diff --git a/pype/modules/clockify/clockify.py b/pype/modules/clockify/clockify.py
index fea15a1bea..4309bff9f2 100644
--- a/pype/modules/clockify/clockify.py
+++ b/pype/modules/clockify/clockify.py
@@ -1,9 +1,8 @@
import os
import threading
+import time
+
from pype.api import Logger
-from avalon import style
-from Qt import QtWidgets
-from .widgets import ClockifySettings, MessageWidget
from .clockify_api import ClockifyAPI
from .constants import CLOCKIFY_FTRACK_USER_PATH
@@ -17,11 +16,21 @@ class ClockifyModule:
os.environ["CLOCKIFY_WORKSPACE"] = self.workspace_name
+ self.timer_manager = None
+ self.MessageWidgetClass = None
+
+ self.clockapi = ClockifyAPI(master_parent=self)
+
self.log = Logger().get_logger(self.__class__.__name__, "PypeTray")
+ self.tray_init(main_parent, parent)
+
+ def tray_init(self, main_parent, parent):
+ from .widgets import ClockifySettings, MessageWidget
+
+ self.MessageWidgetClass = MessageWidget
self.main_parent = main_parent
self.parent = parent
- self.clockapi = ClockifyAPI(master_parent=self)
self.message_widget = None
self.widget_settings = ClockifySettings(main_parent, self)
self.widget_settings_required = None
@@ -57,11 +66,10 @@ class ClockifyModule:
)
if 'AvalonApps' in modules:
- from launcher import lib
- actions_path = os.path.sep.join([
+ actions_path = os.path.join(
os.path.dirname(__file__),
'launcher_actions'
- ])
+ )
current = os.environ.get('AVALON_ACTIONS', '')
if current:
current += os.pathsep
@@ -78,12 +86,12 @@ class ClockifyModule:
self.stop_timer()
def timer_started(self, data):
- if hasattr(self, 'timer_manager'):
+ if self.timer_manager:
self.timer_manager.start_timers(data)
def timer_stopped(self):
self.bool_timer_run = False
- if hasattr(self, 'timer_manager'):
+ if self.timer_manager:
self.timer_manager.stop_timers()
def start_timer_check(self):
@@ -102,7 +110,7 @@ class ClockifyModule:
self.thread_timer_check = None
def check_running(self):
- import time
+
while self.bool_thread_check_running is True:
bool_timer_run = False
if self.clockapi.get_in_progress() is not None:
@@ -156,15 +164,14 @@ class ClockifyModule:
self.timer_stopped()
def signed_in(self):
- if hasattr(self, 'timer_manager'):
- if not self.timer_manager:
- return
+ if not self.timer_manager:
+ return
- if not self.timer_manager.last_task:
- return
+ if not self.timer_manager.last_task:
+ return
- if self.timer_manager.is_running:
- self.start_timer_manager(self.timer_manager.last_task)
+ if self.timer_manager.is_running:
+ self.start_timer_manager(self.timer_manager.last_task)
def start_timer(self, input_data):
# If not api key is not entered then skip
@@ -197,11 +204,14 @@ class ClockifyModule:
"
Please inform your Project Manager."
).format(project_name, str(self.clockapi.workspace_name))
- self.message_widget = MessageWidget(
- self.main_parent, msg, "Clockify - Info Message"
- )
- self.message_widget.closed.connect(self.on_message_widget_close)
- self.message_widget.show()
+ if self.MessageWidgetClass:
+ self.message_widget = self.MessageWidgetClass(
+ self.main_parent, msg, "Clockify - Info Message"
+ )
+ self.message_widget.closed.connect(
+ self.on_message_widget_close
+ )
+ self.message_widget.show()
return
@@ -227,31 +237,29 @@ class ClockifyModule:
# Definition of Tray menu
def tray_menu(self, parent_menu):
# Menu for Tray App
- self.menu = QtWidgets.QMenu('Clockify', parent_menu)
- self.menu.setProperty('submenu', 'on')
- self.menu.setStyleSheet(style.load_stylesheet())
+ from Qt import QtWidgets
+ menu = QtWidgets.QMenu("Clockify", parent_menu)
+ menu.setProperty("submenu", "on")
# Actions
- self.aShowSettings = QtWidgets.QAction(
- "Settings", self.menu
- )
- self.aStopTimer = QtWidgets.QAction(
- "Stop timer", self.menu
- )
+ action_show_settings = QtWidgets.QAction("Settings", menu)
+ action_stop_timer = QtWidgets.QAction("Stop timer", menu)
- self.menu.addAction(self.aShowSettings)
- self.menu.addAction(self.aStopTimer)
+ menu.addAction(action_show_settings)
+ menu.addAction(action_stop_timer)
- self.aShowSettings.triggered.connect(self.show_settings)
- self.aStopTimer.triggered.connect(self.stop_timer)
+ action_show_settings.triggered.connect(self.show_settings)
+ action_stop_timer.triggered.connect(self.stop_timer)
+
+ self.action_stop_timer = action_stop_timer
self.set_menu_visibility()
- parent_menu.addMenu(self.menu)
+ parent_menu.addMenu(menu)
def show_settings(self):
self.widget_settings.input_api_key.setText(self.clockapi.get_api_key())
self.widget_settings.show()
def set_menu_visibility(self):
- self.aStopTimer.setVisible(self.bool_timer_run)
+ self.action_stop_timer.setVisible(self.bool_timer_run)
diff --git a/pype/modules/logging/gui/__init__.py b/pype/modules/logging/tray/gui/__init__.py
similarity index 100%
rename from pype/modules/logging/gui/__init__.py
rename to pype/modules/logging/tray/gui/__init__.py
diff --git a/pype/modules/logging/gui/app.py b/pype/modules/logging/tray/gui/app.py
similarity index 100%
rename from pype/modules/logging/gui/app.py
rename to pype/modules/logging/tray/gui/app.py
diff --git a/pype/modules/logging/gui/models.py b/pype/modules/logging/tray/gui/models.py
similarity index 100%
rename from pype/modules/logging/gui/models.py
rename to pype/modules/logging/tray/gui/models.py
diff --git a/pype/modules/logging/gui/widgets.py b/pype/modules/logging/tray/gui/widgets.py
similarity index 100%
rename from pype/modules/logging/gui/widgets.py
rename to pype/modules/logging/tray/gui/widgets.py
diff --git a/pype/modules/logging/tray/logging_module.py b/pype/modules/logging/tray/logging_module.py
index 9b26d5d9bf..84b40f68e1 100644
--- a/pype/modules/logging/tray/logging_module.py
+++ b/pype/modules/logging/tray/logging_module.py
@@ -1,6 +1,4 @@
-from Qt import QtWidgets
from pype.api import Logger
-from ..gui.app import LogsWindow
class LoggingModule:
@@ -8,7 +6,13 @@ class LoggingModule:
self.parent = parent
self.log = Logger().get_logger(self.__class__.__name__, "logging")
+ self.window = None
+
+ self.tray_init(main_parent, parent)
+
+ def tray_init(self, main_parent, parent):
try:
+ from .gui.app import LogsWindow
self.window = LogsWindow()
self.tray_menu = self._tray_menu
except Exception:
@@ -18,12 +22,12 @@ class LoggingModule:
# Definition of Tray menu
def _tray_menu(self, parent_menu):
+ from Qt import QtWidgets
# Menu for Tray App
menu = QtWidgets.QMenu('Logging', parent_menu)
- # menu.setProperty('submenu', 'on')
show_action = QtWidgets.QAction("Show Logs", menu)
- show_action.triggered.connect(self.on_show_logs)
+ show_action.triggered.connect(self._show_logs_gui)
menu.addAction(show_action)
parent_menu.addMenu(menu)
@@ -34,5 +38,6 @@ class LoggingModule:
def process_modules(self, modules):
return
- def on_show_logs(self):
- self.window.show()
+ def _show_logs_gui(self):
+ if self.window:
+ self.window.show()
diff --git a/pype/modules/muster/muster.py b/pype/modules/muster/muster.py
index 629fb12635..beb30690ac 100644
--- a/pype/modules/muster/muster.py
+++ b/pype/modules/muster/muster.py
@@ -1,10 +1,7 @@
-import appdirs
-from avalon import style
-from Qt import QtWidgets
import os
import json
-from .widget_login import MusterLogin
-from avalon.vendor import requests
+import appdirs
+import requests
class MusterModule:
@@ -21,6 +18,11 @@ class MusterModule:
self.cred_path = os.path.join(
self.cred_folder_path, self.cred_filename
)
+ self.tray_init(main_parent, parent)
+
+ def tray_init(self, main_parent, parent):
+ from .widget_login import MusterLogin
+
self.main_parent = main_parent
self.parent = parent
self.widget_login = MusterLogin(main_parent, self)
@@ -38,10 +40,6 @@ class MusterModule:
pass
def process_modules(self, modules):
-
- def api_callback():
- self.aShowLogin.trigger()
-
if "RestApiServer" in modules:
def api_show_login():
self.aShowLogin.trigger()
@@ -51,13 +49,12 @@ class MusterModule:
# Definition of Tray menu
def tray_menu(self, parent):
- """
- Add **change credentials** option to tray menu.
- """
+ """Add **change credentials** option to tray menu."""
+ from Qt import QtWidgets
+
# Menu for Tray App
self.menu = QtWidgets.QMenu('Muster', parent)
self.menu.setProperty('submenu', 'on')
- self.menu.setStyleSheet(style.load_stylesheet())
# Actions
self.aShowLogin = QtWidgets.QAction(
@@ -91,9 +88,9 @@ class MusterModule:
if not MUSTER_REST_URL:
raise AttributeError("Muster REST API url not set")
params = {
- 'username': username,
- 'password': password
- }
+ 'username': username,
+ 'password': password
+ }
api_entry = '/api/login'
response = self._requests_post(
MUSTER_REST_URL + api_entry, params=params)
diff --git a/pype/modules/standalonepublish/standalonepublish_module.py b/pype/modules/standalonepublish/standalonepublish_module.py
index ed997bfd9f..f8bc0c6f24 100644
--- a/pype/modules/standalonepublish/standalonepublish_module.py
+++ b/pype/modules/standalonepublish/standalonepublish_module.py
@@ -2,7 +2,6 @@ import os
import sys
import subprocess
import pype
-from pype import tools
class StandAlonePublishModule:
@@ -30,6 +29,7 @@ class StandAlonePublishModule:
))
def show(self):
+ from pype import tools
standalone_publisher_tool_path = os.path.join(
os.path.dirname(tools.__file__),
"standalonepublish"
diff --git a/pype/modules/timers_manager/__init__.py b/pype/modules/timers_manager/__init__.py
index a8a478d7ae..9de205f088 100644
--- a/pype/modules/timers_manager/__init__.py
+++ b/pype/modules/timers_manager/__init__.py
@@ -1,5 +1,4 @@
from .timers_manager import TimersManager
-from .widget_user_idle import WidgetUserIdle
CLASS_DEFINIION = TimersManager
diff --git a/pype/modules/timers_manager/timers_manager.py b/pype/modules/timers_manager/timers_manager.py
index 82ba1013f0..62767c24f1 100644
--- a/pype/modules/timers_manager/timers_manager.py
+++ b/pype/modules/timers_manager/timers_manager.py
@@ -1,21 +1,7 @@
-from .widget_user_idle import WidgetUserIdle, SignalHandler
-from pype.api import Logger, config
+from pype.api import Logger
-class Singleton(type):
- """ Signleton implementation
- """
- _instances = {}
-
- def __call__(cls, *args, **kwargs):
- if cls not in cls._instances:
- cls._instances[cls] = super(
- Singleton, cls
- ).__call__(*args, **kwargs)
- return cls._instances[cls]
-
-
-class TimersManager(metaclass=Singleton):
+class TimersManager:
""" Handles about Timers.
Should be able to start/stop all timers at once.
@@ -41,7 +27,13 @@ class TimersManager(metaclass=Singleton):
self.idle_man = None
self.signal_handler = None
+
+ self.trat_init(tray_widget, main_widget)
+
+ def trat_init(self, tray_widget, main_widget):
+ from .widget_user_idle import WidgetUserIdle, SignalHandler
self.widget_user_idle = WidgetUserIdle(self, tray_widget)
+ self.signal_handler = SignalHandler(self)
def set_signal_times(self):
try:
@@ -119,7 +111,6 @@ class TimersManager(metaclass=Singleton):
"""
if 'IdleManager' in modules:
- self.signal_handler = SignalHandler(self)
if self.set_signal_times() is True:
self.register_to_idle_manager(modules['IdleManager'])
diff --git a/pype/modules/user/user_module.py b/pype/modules/user/user_module.py
index f2de9dc2fb..dc57fe4a63 100644
--- a/pype/modules/user/user_module.py
+++ b/pype/modules/user/user_module.py
@@ -3,8 +3,6 @@ import json
import getpass
import appdirs
-from Qt import QtWidgets
-from .widget_user import UserWidget
from pype.api import Logger
@@ -24,6 +22,12 @@ class UserModule:
self.cred_path = os.path.normpath(os.path.join(
self.cred_folder_path, self.cred_filename
))
+ self.widget_login = None
+
+ self.tray_init(main_parent, parent)
+
+ def tray_init(self, main_parent=None, parent=None):
+ from .widget_user import UserWidget
self.widget_login = UserWidget(self)
self.load_credentials()
@@ -66,6 +70,7 @@ class UserModule:
# Definition of Tray menu
def tray_menu(self, parent_menu):
+ from Qt import QtWidgets
"""Add menu or action to Tray(or parent)'s menu"""
action = QtWidgets.QAction("Username", parent_menu)
action.triggered.connect(self.show_widget)
@@ -121,7 +126,8 @@ class UserModule:
self.cred = {"username": username}
os.environ[self.env_name] = username
- self.widget_login.set_user(username)
+ if self.widget_login:
+ self.widget_login.set_user(username)
try:
file = open(self.cred_path, "w")
file.write(json.dumps(self.cred))