diff -r b907cb69c2c7 -r 28b7956c9608 TimeTracker/TimeTracker.py --- a/TimeTracker/TimeTracker.py Sun Oct 21 19:44:36 2012 +0200 +++ b/TimeTracker/TimeTracker.py Sat Nov 03 16:53:13 2012 +0100 @@ -9,10 +9,12 @@ import os -from PyQt4.QtCore import QObject +from PyQt4.QtCore import Qt, QObject +from PyQt4.QtGui import QKeySequence from E5Gui.E5Application import e5App from E5Gui import E5MessageBox +from E5Gui.E5Action import E5Action from .TimeTrackEntry import TimeTrackEntry from .TimeTrackerWidget import TimeTrackerWidget @@ -39,13 +41,6 @@ self.__ui = parent self.__e5project = e5App().getObject("Project") - - self.__widget = TimeTrackerWidget(self) - self.__ui.addSideWidget(self.__ui.BottomSide, self.__widget, - UI.PixmapCache.getIcon(os.path.join("TimeTracker", "icons", "clock.png")), - self.tr("Time Tracker")) - - self.__initialize() def __initialize(self): """ @@ -61,6 +56,43 @@ self.__widget.clear() self.__widget.setEnabled(False) + def activate(self): + """ + Public method to activate the time tracker. + """ + self.__widget = TimeTrackerWidget(self) + self.__ui.addSideWidget(self.__ui.BottomSide, self.__widget, + UI.PixmapCache.getIcon(os.path.join("TimeTracker", "icons", "clock.png")), + self.tr("Time Tracker")) + + self.__activateAct = E5Action(self.trUtf8('Time Tracker'), + self.trUtf8('T&ime Tracker'), + QKeySequence(self.trUtf8("Alt+Shift+I")), + 0, self, + 'time_tracker_activate') + self.__activateAct.setStatusTip(self.trUtf8( + "Switch the input focus to the Time Tracker window.")) + self.__activateAct.setWhatsThis(self.trUtf8( + """<b>Activate Time Tracker</b>""" + """<p>This switches the input focus to the Time Tracker window.</p>""" + )) + self.__activateAct.triggered[()].connect(self.__activateWidget) + + self.__ui.addE5Actions([self.__activateAct], 'ui') + menu = self.__ui.getMenu("subwindow") + menu.addAction(self.__activateAct) + + self.__initialize() + + def deactivate(self): + """ + Public method to deactivate the time tracker. + """ + menu = self.__ui.getMenu("subwindow") + menu.removeAction(self.__activateAct) + self.__ui.removeE5Actions([self.__activateAct], 'ui') + self.__ui.removeSideWidget(self.__widget) + def projectOpened(self): """ Public slot to handle the projectOpened signal. @@ -84,8 +116,9 @@ """ Public slot to handle the projectClosed signal. """ - self.stopTrackerEntry() - self.saveTrackerEntries() + if self.__projectOpen: + self.stopTrackerEntry() + self.saveTrackerEntries() self.__initialize() def __readTrackerEntries(self): @@ -402,3 +435,17 @@ @return the requested setting """ return self.__plugin.getPreferences(key) + + def __activateWidget(self): + """ + Private slot to handle the activation of the project browser. + """ + if self.__ui.layout == "Toolboxes": + self.__ui.hToolboxDock.show() + self.__ui.hToolboxDock.setCurrentWidget(self.__widget) + elif self.__ui.layout == "Sidebars": + self.__ui.bottomSidebar.show() + self.__ui.bottomSidebar.setCurrentWidget(self.__widget) + else: + self.__widget.show() + self.__widget.setFocus(Qt.ActiveWindowFocusReason)