diff -r dab01678626d -r 1c858879d3d0 Plugins/UiExtensionPlugins/Translator/Translator.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/UiExtensionPlugins/Translator/Translator.py Sun Dec 10 16:23:29 2017 +0100 @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2014 - 2017 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the translator object. +""" + +from __future__ import unicode_literals + +import os + +from PyQt5.QtCore import Qt, QObject +from PyQt5.QtGui import QKeySequence + +from E5Gui.E5Action import E5Action + +import UI.PixmapCache + + +class Translator(QObject): + """ + Class implementing the translator object. + """ + def __init__(self, plugin, parent=None): + """ + Constructor + + @param plugin reference to the plugin object (TranslatorPlugin) + @param parent parent (QObject) + """ + QObject.__init__(self, parent) + + self.__plugin = plugin + self.__ui = parent + + self.__widget = None + + def activate(self): + """ + Public method to activate the translator. + """ + from .TranslatorWidget import TranslatorWidget + + self.__widget = TranslatorWidget(self.__plugin, self) + self.__ui.addSideWidget( + self.__ui.BottomSide, self.__widget, + UI.PixmapCache.getIcon( + os.path.join(os.path.dirname(__file__), "icons", "flag.png")), + self.tr("Translator")) + + self.__activateAct = E5Action( + self.tr('Translator'), + self.tr('T&ranslator'), + QKeySequence(self.tr("Alt+Shift+R")), + 0, self, + 'translator_activate') + self.__activateAct.setStatusTip(self.tr( + "Switch the input focus to the Translator window.")) + self.__activateAct.setWhatsThis(self.tr( + """<b>Activate Translator</b>""" + """<p>This switches the input focus to the Translator""" + """ window.</p>""" + )) + self.__activateAct.triggered.connect(self.__activateWidget) + + self.__ui.addE5Actions([self.__activateAct], 'ui') + menu = self.__ui.getMenu("subwindow") + menu.addAction(self.__activateAct) + + 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 getAppIcon(self, name): + """ + Public method to get an icon. + + @param name name of the icon file (string) + @return icon (QIcon) + """ + return UI.PixmapCache.getIcon(os.path.join( + os.path.dirname(__file__), "icons", name)) + + 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)