def __init__(self, parent, source): """ Set up the child widgets. """ super().__init__(parent) self.source = source self.name = QLabel() self.updated = QLabel() layout = QVBoxLayout() self.setLayout(layout) self.summary = QWidget(self) self.summary_layout = QHBoxLayout() self.summary.setLayout(self.summary_layout) self.attached = load_svg('paperclip.svg') self.attached.setMaximumSize(16, 16) self.summary_layout.addWidget(self.name) self.summary_layout.addStretch() self.summary_layout.addWidget(self.attached) layout.addWidget(self.summary) layout.addWidget(self.updated) self.delete = load_svg('cross.svg') self.delete.setMaximumSize(16, 16) self.delete.mouseReleaseEvent = self.delete_source self.summary_layout.addWidget(self.delete) self.update()
def __init__(self, parent, source): """ Set up the child widgets. """ super().__init__(parent) self.source = source layout = QVBoxLayout() self.setLayout(layout) self.summary = QWidget(self) summary_layout = QHBoxLayout() self.summary.setLayout(summary_layout) self.attached = load_svg('paperclip.svg') self.attached.setMaximumSize(16, 16) self.starred = load_svg('star_on.svg') self.starred.setMaximumSize(16, 16) self.name = QLabel() summary_layout.addWidget(self.name) summary_layout.addStretch() summary_layout.addWidget(self.attached) summary_layout.addWidget(self.starred) layout.addWidget(self.summary) self.updated = QLabel() layout.addWidget(self.updated) self.details = QLabel() self.details.setWordWrap(True) layout.addWidget(self.details) self.update()
def display_star_icon(self): """ Show the correct star icon """ if getattr(self, 'starred', None): # Delete icon if it exists. self.summary_layout.removeWidget(self.starred) if self.source.is_starred: self.starred = load_svg('star_on.svg') else: self.starred = load_svg('star_off.svg') self.summary_layout.addWidget(self.starred) self.starred.setMaximumSize(16, 16) self.starred.mousePressEvent = self.toggle_star
def update(self): """ Updates the displayed values with the current values from self.source. TODO: Style this widget properly and work out what should be in the self.details label. """ self.updated.setText(arrow.get(self.source.last_updated).humanize()) if self.source.is_starred: self.starred = load_svg('star_on.svg') else: self.starred = load_svg('star_off.svg') self.name.setText("<strong>{}</strong>".format( self.source.journalist_designation)) self.details.setText("Lorum ipsum dolor sit amet thingy dodah...")
def update_image(self, filename: str, svg_size: str = None) -> None: self.svg = load_svg(filename) self.svg.setFixedSize(svg_size) if svg_size else self.svg.setFixedSize(QSize()) child = self.layout().takeAt(0) if child and child.widget(): child.widget().deleteLater() self.layout().addWidget(self.svg)
def __init__(self, filename: str, svg_size: str = None) -> None: super().__init__() # Remove margins and spacing layout = QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) self.setLayout(layout) # Add SVG and set its size self.svg = load_svg(filename) self.svg.setFixedSize(svg_size) if svg_size else self.svg.setFixedSize(QSize()) layout.addWidget(self.svg)