Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

TimersManager: Removed interface of timers manager #2024

Merged
merged 7 commits into from
Sep 20, 2021
105 changes: 63 additions & 42 deletions openpype/modules/default_modules/clockify/clockify_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,15 @@
from openpype_interfaces import (
ITrayModule,
IPluginPaths,
IFtrackEventHandlerPaths,
ITimersManager
IFtrackEventHandlerPaths
)


class ClockifyModule(
OpenPypeModule,
ITrayModule,
IPluginPaths,
IFtrackEventHandlerPaths,
ITimersManager
IFtrackEventHandlerPaths
):
name = "clockify"

Expand All @@ -39,6 +37,11 @@ def initialize(self, modules_settings):

self.clockapi = ClockifyAPI(master_parent=self)

# TimersManager attributes
# - set `timers_manager_connector` only in `tray_init`
self.timers_manager_connector = None
self._timers_manager_module = None

def get_global_environments(self):
return {
"CLOCKIFY_WORKSPACE": self.workspace_name
Expand All @@ -61,6 +64,9 @@ def tray_init(self):
self.bool_timer_run = False
self.bool_api_key_set = self.clockapi.set_api()

# Define itself as TimersManager connector
self.timers_manager_connector = self

def tray_start(self):
if self.bool_api_key_set is False:
self.show_settings()
Expand Down Expand Up @@ -165,10 +171,6 @@ def check_running(self):
self.set_menu_visibility()
time.sleep(5)

def stop_timer(self):
"""Implementation of ITimersManager."""
self.clockapi.finish_time_entry()

def signed_in(self):
if not self.timer_manager:
return
Expand All @@ -179,8 +181,60 @@ def signed_in(self):
if self.timer_manager.is_running:
self.start_timer_manager(self.timer_manager.last_task)

def on_message_widget_close(self):
self.message_widget = None

# Definition of Tray menu
def tray_menu(self, parent_menu):
# Menu for Tray App
from Qt import QtWidgets
menu = QtWidgets.QMenu("Clockify", parent_menu)
menu.setProperty("submenu", "on")

# Actions
action_show_settings = QtWidgets.QAction("Settings", menu)
action_stop_timer = QtWidgets.QAction("Stop timer", menu)

menu.addAction(action_show_settings)
menu.addAction(action_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(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.action_stop_timer.setVisible(self.bool_timer_run)

# --- TimersManager connection methods ---
def register_timers_manager(self, timer_manager_module):
"""Store TimersManager for future use."""
self._timers_manager_module = timer_manager_module

def timer_started(self, data):
"""Tell TimersManager that timer started."""
if self._timers_manager_module is not None:
self._timers_manager_module.timer_started(self._module.id, data)

def timer_stopped(self):
"""Tell TimersManager that timer stopped."""
if self._timers_manager_module is not None:
self._timers_manager_module.timer_stopped(self._module.id)

def stop_timer(self):
"""Called from TimersManager to stop timer."""
self.clockapi.finish_time_entry()

def start_timer(self, input_data):
"""Implementation of ITimersManager."""
"""Called from TimersManager to start timer."""
# If not api key is not entered then skip
if not self.clockapi.get_api_key():
return
Expand Down Expand Up @@ -237,36 +291,3 @@ def start_timer(self, input_data):
self.clockapi.start_time_entry(
description, project_id, tag_ids=tag_ids
)

def on_message_widget_close(self):
self.message_widget = None

# Definition of Tray menu
def tray_menu(self, parent_menu):
# Menu for Tray App
from Qt import QtWidgets
menu = QtWidgets.QMenu("Clockify", parent_menu)
menu.setProperty("submenu", "on")

# Actions
action_show_settings = QtWidgets.QAction("Settings", menu)
action_stop_timer = QtWidgets.QAction("Stop timer", menu)

menu.addAction(action_show_settings)
menu.addAction(action_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(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.action_stop_timer.setVisible(self.bool_timer_run)
39 changes: 27 additions & 12 deletions openpype/modules/default_modules/ftrack/ftrack_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from openpype_interfaces import (
ITrayModule,
IPluginPaths,
ITimersManager,
ILaunchHookPaths,
ISettingsChangeListener,
IFtrackEventHandlerPaths
Expand All @@ -21,7 +20,6 @@ class FtrackModule(
OpenPypeModule,
ITrayModule,
IPluginPaths,
ITimersManager,
ILaunchHookPaths,
ISettingsChangeListener
):
Expand Down Expand Up @@ -61,6 +59,10 @@ def initialize(self, settings):
self.user_event_handlers_paths = user_event_handlers_paths
self.tray_module = None

# TimersManager connection
self.timers_manager_connector = None
self._timers_manager_module = None

def get_global_environments(self):
"""Ftrack's global environments."""
return {
Expand Down Expand Up @@ -102,16 +104,6 @@ def connect_with_modules(self, enabled_modules):
elif key == "user":
self.user_event_handlers_paths.extend(value)

def start_timer(self, data):
"""Implementation of ITimersManager interface."""
if self.tray_module:
self.tray_module.start_timer_manager(data)

def stop_timer(self):
"""Implementation of ITimersManager interface."""
if self.tray_module:
self.tray_module.stop_timer_manager()

def on_system_settings_save(
self, old_value, new_value, changes, new_value_metadata
):
Expand Down Expand Up @@ -343,7 +335,10 @@ def create_ftrack_session(self, **session_kwargs):

def tray_init(self):
from .tray import FtrackTrayWrapper

self.tray_module = FtrackTrayWrapper(self)
# Module is it's own connector to TimersManager
self.timers_manager_connector = self

def tray_menu(self, parent_menu):
return self.tray_module.tray_menu(parent_menu)
Expand All @@ -357,3 +352,23 @@ def tray_exit(self):
def set_credentials_to_env(self, username, api_key):
os.environ["FTRACK_API_USER"] = username or ""
os.environ["FTRACK_API_KEY"] = api_key or ""

# --- TimersManager connection methods ---
def start_timer(self, data):
if self.tray_module:
self.tray_module.start_timer_manager(data)

def stop_timer(self):
if self.tray_module:
self.tray_module.stop_timer_manager()

def register_timers_manager(self, timer_manager_module):
self._timers_manager_module = timer_manager_module

def timer_started(self, data):
if self._timers_manager_module is not None:
self._timers_manager_module.timer_started(self.id, data)

def timer_stopped(self):
if self._timers_manager_module is not None:
self._timers_manager_module.timer_stopped(self.id)
26 changes: 0 additions & 26 deletions openpype/modules/default_modules/timers_manager/interfaces.py

This file was deleted.

Loading