PluginProjectDjangoTagsMenu.py

Tue, 10 Dec 2024 15:48:58 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:48:58 +0100
branch
eric7
changeset 74
a25b858e18a7
parent 72
529f1c17c93e
permissions
-rw-r--r--

Updated copyright for 2025.

1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
74
a25b858e18a7 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
3 # Copyright (c) 2014 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the Django tags menu plugin.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
10 import contextlib
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11 import os
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
12
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
13 from PyQt6.QtCore import QObject, QTranslator
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
14 from PyQt6.QtWidgets import QMenu
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
15
65
2616383c037c Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
16 from eric7.EricWidgets.EricApplication import ericApp
2
4be31b0908c7 Started implementing the tags functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
17 from ProjectDjangoTagsMenu.DjangoTagsMenuHandler import DjangoTagsMenuHandler
4be31b0908c7 Started implementing the tags functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
18
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19 # Start-of-Header
72
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
20 __header__ = {
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
21 "name": "Django Tags Menu Plugin",
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
22 "author": "Detlev Offenbach <detlev@die-offenbachs.de>",
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
23 "autoactivate": True,
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
24 "deactivateable": True,
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
25 "version": "10.2.1",
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
26 "className": "ProjectDjangoTagsMenuPlugin",
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
27 "packageName": "ProjectDjangoTagsMenu",
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
28 "shortDescription": "Tags menu for Django projects.",
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
29 "longDescription": (
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
30 "This plug-in adds a menu to select various tag templates to the"
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
31 " Django menu."
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
32 ),
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
33 "needsRestart": False,
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
34 "hasCompiledForms": True,
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
35 "pyqtApi": 2,
529f1c17c93e - changed to the new style header
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
36 }
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37 # End-of-Header
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39 error = ""
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42 class ProjectDjangoTagsMenuPlugin(QObject):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 Class implementing the Django tags menu plugin.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 """
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
46
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47 def __init__(self, ui):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49 Constructor
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
50
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
51 @param ui reference to the user interface object
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
52 @type UserInterface
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 """
52
c264091162a2 - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 51
diff changeset
54 super().__init__(ui)
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
55 self.__ui = ui
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
56
32
7069d21f1110 Fixed a bug causing the translations not being loaded.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
57 self.__translator = None
7069d21f1110 Fixed a bug causing the translations not being loaded.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
58 self.__loadTranslator()
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
59
2
4be31b0908c7 Started implementing the tags functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
60 self.__handler = DjangoTagsMenuHandler(ui, self)
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
61
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
62 self.__initMenu()
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
63
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
64 def __initMenu(self):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
66 Private slot to initialize the tags menu.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
68 self.__menuAttached = False
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
69 self.__menuAction = None
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
70 self.__menuSeparator = None
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
71
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72 self.__menu = QMenu(self.tr("Template Tags"))
2
4be31b0908c7 Started implementing the tags functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
73 self.__handler.initMenus(self.__menu)
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
74
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 def __attachMenu(self):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 Private method to attach the menu to the Django menu.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 if not self.__menuAttached:
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
80 with contextlib.suppress(KeyError):
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
81 pluginObject = ericApp().getPluginObject("ProjectDjango")
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 djangoMenu = pluginObject.getMenu("main")
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
83 djangoDatabaseMenuAction = pluginObject.getMenu("database").menuAction()
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 self.__menuAction = djangoMenu.insertMenu(
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
85 djangoDatabaseMenuAction, self.__menu
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
86 )
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87 self.__menuSeparator = djangoMenu.insertSeparator(
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
88 djangoDatabaseMenuAction
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
89 )
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 self.__menuAttached = True
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
91
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92 def __detachMenu(self):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
94 Private method to detach the menu from the Django menu.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
95 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
96 if self.__menuAttached:
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
97 with contextlib.suppress(KeyError):
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
98 pluginObject = ericApp().getPluginObject("ProjectDjango")
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 djangoMenu = pluginObject.getMenu("main")
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 djangoMenu.removeAction(self.__menuAction)
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101 djangoMenu.removeAction(self.__menuSeparator)
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
102
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 self.__menuAction = None
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 self.__menuSeparator = None
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
105 self.__menuAttached = False
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
106
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
107 def activate(self):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
108 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109 Public method to activate this plugin.
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
110
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
111 @return tuple of None and activation status
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
112 @rtype tuple of (None, bool)
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 """
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
114 pluginManager = ericApp().getObject("PluginManager")
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
115 pluginManager.pluginActivated.connect(self.__pluginActivated)
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
116 pluginManager.pluginAboutToBeDeactivated.connect(
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
117 self.__pluginAboutToBeDeactivated
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
118 )
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
119
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 if pluginManager.isPluginActive("PluginProjectDjango"):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 self.__attachMenu()
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
122
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
123 ericApp().getObject("Project").projectClosed.connect(self.__projectClosed)
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
124
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125 return None, True
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
126
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 def deactivate(self):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
129 Public method to deactivate this plugin.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 """
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
131 ericApp().getObject("Project").projectClosed.disconnect(self.__projectClosed)
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
132
3
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
133 self.__handler.closeAllWindows()
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134 self.__detachMenu()
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
135
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
136 pluginManager = ericApp().getObject("PluginManager")
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137 pluginManager.pluginActivated.disconnect(self.__pluginActivated)
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
138 pluginManager.pluginAboutToBeDeactivated.disconnect(
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
139 self.__pluginAboutToBeDeactivated
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
140 )
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
141
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
142 def __loadTranslator(self):
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 Private method to load the translation file.
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 if self.__ui is not None:
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147 loc = self.__ui.getLocale()
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148 if loc and loc != "C":
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 locale_dir = os.path.join(
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
150 os.path.dirname(__file__), "ProjectDjangoTagsMenu", "i18n"
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
151 )
37
06449b2d8cfc Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 35
diff changeset
152 translation = "djangotagsmenu_{0}".format(loc)
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 translator = QTranslator(None)
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 loaded = translator.load(translation, locale_dir)
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
155 if loaded:
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
156 self.__translator = translator
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
157 ericApp().installTranslator(self.__translator)
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 else:
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
159 print(
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
160 "Warning: translation file '{0}' could not be"
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
161 " loaded.".format(translation)
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
162 )
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163 print("Using default.")
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
164
3
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
165 def __projectClosed(self):
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
166 """
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
167 Private slot to handle the projectClosed signal.
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
168 """
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
169 self.__handler.closeAllWindows()
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
170
71
fc1ab84c242f Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 70
diff changeset
171 def __pluginActivated(self, moduleName, pluginObject): # noqa: U100
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
172 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
173 Private slot to react on plugin activation of the Django plugin.
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
174
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
175 @param moduleName name of the module activated
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
176 @type str
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
177 @param pluginObject reference to the activated plug-in object
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
178 @type object
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
179 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
180 if moduleName == "PluginProjectDjango":
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
181 self.__attachMenu()
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
182
71
fc1ab84c242f Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 70
diff changeset
183 def __pluginAboutToBeDeactivated(self, moduleName, pluginObject): # noqa: U100
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185 Private slot to react on the Django plugin about to be deactivated.
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
186
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
187 @param moduleName name of the module about to be deactivated
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
188 @type str
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
189 @param pluginObject reference to the about to be deactivated
55
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
190 plug-in object
5390ef66c327 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
191 @type object
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
192 """
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
193 if moduleName == "PluginProjectDjango":
3
6d10c1249cb8 Implemented template tags 'a' to 'e'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
194 self.__handler.closeAllWindows()
1
b2f26d630942 Implemented the basic framework.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
195 self.__detachMenu()
37
06449b2d8cfc Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 35
diff changeset
196
63
85418cf03fdb Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
197
37
06449b2d8cfc Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 35
diff changeset
198 #
71
fc1ab84c242f Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 70
diff changeset
199 # eflag: noqa = M801, U200

eric ide

mercurial