minor tray fixes

This commit is contained in:
ingvar1995 2018-05-19 23:20:37 +03:00
parent 77bdabb993
commit f67de1ba91
2 changed files with 16 additions and 15 deletions

View file

@ -328,7 +328,7 @@ class App:
widgets_factory = WidgetsFactory(self._settings, profile, self._profile_manager, self._contacts_manager, widgets_factory = WidgetsFactory(self._settings, profile, self._profile_manager, self._contacts_manager,
self._file_transfer_handler, self._smiley_loader, self._plugin_loader, self._file_transfer_handler, self._smiley_loader, self._plugin_loader,
self._toxes, self._version, self._groups_service) self._toxes, self._version, self._groups_service)
self._tray = tray.init_tray(profile, self._settings, self._ms) self._tray = tray.init_tray(profile, self._settings, self._ms, self._toxes)
self._ms.set_dependencies(widgets_factory, self._tray, self._contacts_manager, self._messenger, profile, self._ms.set_dependencies(widgets_factory, self._tray, self._contacts_manager, self._messenger, profile,
self._plugin_loader, self._file_transfer_handler, history, self._calls_manager, self._plugin_loader, self._file_transfer_handler, history, self._calls_manager,
self._groups_service) self._groups_service)

View file

@ -1,6 +1,7 @@
from PyQt5 import QtWidgets, QtGui, QtCore from PyQt5 import QtWidgets, QtGui, QtCore
from utils.ui import tr from utils.ui import tr
from utils.util import * from utils.util import *
from ui.password_screen import UnlockAppScreen
import os.path import os.path
@ -24,16 +25,16 @@ class Menu(QtWidgets.QMenu):
self._settings = settings self._settings = settings
self._profile = profile self._profile = profile
def newStatus(self, status): def new_status(self, status):
if not self._settings.locked: if not self._settings.locked:
self._profile.Profile.get_instance().set_status(status) self._profile.set_status(status)
self.aboutToShowHandler() self.about_to_show_handler()
self.hide() self.hide()
def aboutToShowHandler(self): def about_to_show_handler(self):
status = self._profile.status status = self._profile.status
act = self.act act = self.act
if status is None or self._ettings.get_instance().locked: if status is None or self._settings.locked:
self.actions()[1].setVisible(False) self.actions()[1].setVisible(False)
else: else:
self.actions()[1].setVisible(True) self.actions()[1].setVisible(True)
@ -52,10 +53,9 @@ class Menu(QtWidgets.QMenu):
self.act.actions()[2].setText(tr('Busy')) self.act.actions()[2].setText(tr('Busy'))
def init_tray(profile, settings, main_screen): def init_tray(profile, settings, main_screen, toxes):
icon = os.path.join(get_images_directory(), 'icon.png') icon = os.path.join(get_images_directory(), 'icon.png')
tray = SystemTrayIcon(QtGui.QIcon(icon)) tray = SystemTrayIcon(QtGui.QIcon(icon))
tray.setObjectName('tray')
menu = Menu(settings, profile) menu = Menu(settings, profile)
show = menu.addAction(tr('Open Toxygen')) show = menu.addAction(tr('Open Toxygen'))
@ -72,7 +72,8 @@ def init_tray(profile, settings, main_screen):
def show_window(): def show_window():
def show(): def show():
if not main_screen.isActiveWindow(): if not main_screen.isActiveWindow():
main_screen.setWindowState(main_screen.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive) main_screen.setWindowState(
main_screen.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
main_screen.activateWindow() main_screen.activateWindow()
main_screen.show() main_screen.show()
if not settings.locked: if not settings.locked:
@ -84,8 +85,8 @@ def init_tray(profile, settings, main_screen):
settings.unlockScreen = False settings.unlockScreen = False
if not settings.unlockScreen: if not settings.unlockScreen:
settings.unlockScreen = True settings.unlockScreen = True
self.p = UnlockAppScreen(toxes.ToxES.get_instance(), correct_pass) show_window.screen = UnlockAppScreen(toxes, correct_pass)
self.p.show() show_window.screen.show()
def tray_activated(reason): def tray_activated(reason):
if reason == QtWidgets.QSystemTrayIcon.DoubleClick: if reason == QtWidgets.QSystemTrayIcon.DoubleClick:
@ -98,10 +99,10 @@ def init_tray(profile, settings, main_screen):
show.triggered.connect(show_window) show.triggered.connect(show_window)
exit.triggered.connect(close_app) exit.triggered.connect(close_app)
menu.aboutToShow.connect(lambda: menu.aboutToShowHandler()) menu.aboutToShow.connect(menu.about_to_show_handler)
online.triggered.connect(lambda: menu.newStatus(0)) online.triggered.connect(lambda: menu.new_status(0))
away.triggered.connect(lambda: menu.newStatus(1)) away.triggered.connect(lambda: menu.new_status(1))
busy.triggered.connect(lambda: menu.newStatus(2)) busy.triggered.connect(lambda: menu.new_status(2))
tray.setContextMenu(menu) tray.setContextMenu(menu)
tray.show() tray.show()