class UpdateToggleButton(QWidget): def __init__(self, app_view: ApplicationView, root: QWidget, locale_keys: dict, checked: bool = True): super(UpdateToggleButton, self).__init__() self.app_view = app_view self.root = root layout = QHBoxLayout() layout.setContentsMargins(2, 2, 2, 0) layout.setAlignment(Qt.AlignCenter) self.setLayout(layout) self.bt = QToolButton() self.bt.setCheckable(True) self.bt.clicked.connect(self.change_state) self.bt.setIcon(QIcon(resource.get_path('img/app_update.svg'))) self.bt.setStyleSheet('QToolButton { background: #4EC306 } ' + 'QToolButton:checked { background: gray }') layout.addWidget(self.bt) self.setToolTip( locale_keys['manage_window.apps_table.upgrade_toggle.tooltip']) if not checked: self.bt.click() def change_state(self, not_checked: bool): self.app_view.update_checked = not not_checked self.root.change_update_state(change_filters=False)
class UpdateToggleButton(QWidget): def __init__(self, app_view: PackageView, root: QWidget, i18n: I18n, checked: bool = True, clickable: bool = True): super(UpdateToggleButton, self).__init__() self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.app_view = app_view self.root = root layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setAlignment(Qt.AlignCenter) self.setLayout(layout) self.bt = QToolButton() self.bt.setCheckable(clickable) self.bt.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) if clickable: self.bt.clicked.connect(self.change_state) self.bt.setIcon(QIcon(resource.get_path('img/app_update.svg'))) self.bt.setStyleSheet('QToolButton { background: #20A435 } ' + ('QToolButton:checked { background: gray }' if clickable else '')) layout.addWidget(self.bt) self.setToolTip(i18n['manage_window.apps_table.upgrade_toggle.tooltip']) if not checked: self.bt.click() def change_state(self, not_checked: bool): self.app_view.update_checked = not not_checked self.root.update_bt_upgrade()
class UpdateToggleButton(QWidget): def __init__(self, pkg: PackageView, root: QWidget, i18n: I18n, checked: bool = True, clickable: bool = True): super(UpdateToggleButton, self).__init__() self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.app_view = pkg self.root = root layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setAlignment(Qt.AlignCenter) self.setLayout(layout) self.bt = QToolButton() self.bt.setCursor(QCursor(Qt.PointingHandCursor)) self.bt.setCheckable(True) self.bt.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) if clickable: self.bt.clicked.connect(self.change_state) self.bt.setStyleSheet('QToolButton { background: ' + GREEN + ' }' + 'QToolButton:checked { background: gray } ' + ('QToolButton:disabled { background: #d69003 }' if not clickable and not checked else '')) layout.addWidget(self.bt) if not checked: self.bt.click() if clickable: self.bt.setIcon(QIcon(resource.get_path('img/app_update.svg'))) self.setToolTip('{} {}'.format(i18n['manage_window.apps_table.upgrade_toggle.tooltip'], i18n['manage_window.apps_table.upgrade_toggle.enabled.tooltip'])) else: if not checked: self.bt.setIcon(QIcon(resource.get_path('img/exclamation.svg'))) self.bt.setEnabled(False) tooltip = i18n['{}.update.disabled.tooltip'.format(pkg.model.gem_name)] if tooltip: self.setToolTip(tooltip) else: self.setToolTip('{} {}'.format(i18n['manage_window.apps_table.upgrade_toggle.tooltip'], i18n['manage_window.apps_table.upgrade_toggle.disabled.tooltip'])) else: self.bt.setIcon(QIcon(resource.get_path('img/app_update.svg'))) self.bt.setCheckable(False) def change_state(self, not_checked: bool): self.app_view.update_checked = not not_checked self.root.update_bt_upgrade()