handling no gem set for the tray mode

This commit is contained in:
Vinicius Moreira
2019-09-11 18:25:52 -03:00
parent fb779cd650
commit 33708f054b
10 changed files with 39 additions and 24 deletions

View File

@@ -354,8 +354,8 @@ class AppsTable(QTableWidget):
publisher = publisher.strip()
full_publisher = publisher
if len(publisher) > 10:
publisher = full_publisher[0:10] + '...'
if len(publisher) > 20:
publisher = full_publisher[0:20] + '...'
if not publisher:
if not pkg.model.installed:

View File

@@ -16,14 +16,15 @@ from bauh.view.qt.components import MultipleSelectQt, CheckboxQt, new_spacer
class GemSelectorPanel(QWidget):
def __init__(self, managers: List[SoftwareManager], i18n: dict, managers_set: List[str], exit_on_close: bool = True):
def __init__(self, managers: List[SoftwareManager], i18n: dict, managers_set: List[str], show_panel_after_restart: bool = False):
super(GemSelectorPanel, self).__init__()
self.managers = managers
self.setLayout(QGridLayout())
self.setWindowIcon(QIcon(resource.get_path('img/logo.svg', ROOT_DIR)))
self.setWindowTitle(i18n['welcome'].capitalize() if not managers_set else i18n['gem_selector.title'])
self.resize(400, 400)
self.exit_on_close = exit_on_close
self.exit_on_close = not managers_set
self.show_panel_after_restart = show_panel_after_restart
self.label_question = QLabel(i18n['gem_selector.question'])
self.label_question.setStyleSheet('QLabel { font-weight: bold}')
@@ -74,7 +75,13 @@ class GemSelectorPanel(QWidget):
def save(self):
config = Configuration(gems=[o.value for o in self.gem_select_model.values])
save(config)
subprocess.Popen([sys.executable, *sys.argv])
restart_cmd = [sys.executable, *sys.argv]
if self.show_panel_after_restart:
restart_cmd.append('--show-panel')
subprocess.Popen(restart_cmd)
QCoreApplication.exit()
def exit(self):

View File

@@ -9,6 +9,7 @@ from bauh.api.abstract.model import PackageUpdate
from bauh import __app_name__
from bauh.api.abstract.controller import SoftwareManager
from bauh.core.config import Configuration
from bauh.util import util, resource
from bauh.view.qt.about import AboutDialog
from bauh.view.qt.window import ManageWindow
@@ -33,10 +34,11 @@ class UpdateCheck(QThread):
class TrayIcon(QSystemTrayIcon):
def __init__(self, locale_keys: dict, manager: SoftwareManager, manage_window: ManageWindow, check_interval: int = 60, update_notification: bool = True):
def __init__(self, locale_keys: dict, manager: SoftwareManager, manage_window: ManageWindow, config: Configuration, check_interval: int = 60, update_notification: bool = True):
super(TrayIcon, self).__init__()
self.locale_keys = locale_keys
self.manager = manager
self.config = config
self.icon_default = QIcon(resource.get_path('img/logo.png'))
self.icon_update = QIcon(resource.get_path('img/logo_update.png'))
@@ -116,8 +118,12 @@ class TrayIcon(QSystemTrayIcon):
if self.manage_window.isMinimized():
self.manage_window.setWindowState(Qt.WindowNoState)
elif not self.manage_window.isVisible():
self.manage_window.refresh_apps()
self.manage_window.show()
if self.config.gems:
self.manage_window.refresh_apps()
self.manage_window.show()
else:
self.manage_window.show()
self.manage_window.show_gems_selector()
def show_about(self):

View File

@@ -901,10 +901,12 @@ class ManageWindow(QWidget):
else:
self.checkbox_console.setChecked(True)
def _show_gems_selector(self):
def show_gems_selector(self):
managers = gems.load_managers(context=self.context, locale=None)
enabled_managers = [m for m in managers if m.is_enabled()]
gem_panel = GemSelectorPanel(managers=enabled_managers, i18n=self.i18n, managers_set=self.config.gems, exit_on_close=False)
gem_panel = GemSelectorPanel(managers=enabled_managers, i18n=self.i18n,
managers_set=self.config.gems,
show_panel_after_restart=bool(self.tray_icon))
gem_panel.show()
def _show_settings_menu(self):
@@ -913,7 +915,7 @@ class ManageWindow(QWidget):
action_gems = QAction(self.i18n['manage_window.settings.gems'])
action_gems.setIcon(self.icon_app)
action_gems.triggered.connect(self._show_gems_selector)
action_gems.triggered.connect(self.show_gems_selector)
menu_row.addAction(action_gems)
action_about = QAction(self.i18n['manage_window.settings.about'])