PluginPySide2PyQt.py

Sat, 26 Apr 2014 15:53:13 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2014 15:53:13 +0200
changeset 21
757e8b5d9f5a
parent 20
c250ccace567
child 24
edefb5877e13
permissions
-rw-r--r--

Released as stable.

0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
20
c250ccace567 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
3 # Copyright (c) 2013 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the PySide to PyQt4 (and vice versa) plug-in.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
21
757e8b5d9f5a Released as stable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
10 from __future__ import unicode_literals
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt4.QtCore import QObject, QTranslator
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from E5Gui.E5Application import e5App
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 # Start-Of-Header
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 name = "PySide to PyQt4 (and vice versa) Plug-in"
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 autoactivate = True
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 deactivateable = True
21
757e8b5d9f5a Released as stable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
23 version = "1.0.0"
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 className = "PySide2PyQtPlugin"
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 packageName = "PySide2PyQt"
7
4a49d6b87459 Corrected the plug-in short description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 shortDescription = "Convert PySide file to PyQt4 and vice versa"
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 longDescription = \
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """This plug-in implements a tool to convert a PySide file""" \
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """ to PyQt4 and vice versa. It works with the text of the""" \
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """ current editor."""
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 needsRestart = False
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 pyqtApi = 2
21
757e8b5d9f5a Released as stable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
33 python2Compatible = True
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 # End-Of-Header
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 error = ""
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 class PySide2PyQtPlugin(QObject):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 Class implementing the PySide to PyQt4 (and vice versa) plugin.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 def __init__(self, ui):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 Constructor
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param ui reference to the user interface object (UI.UserInterface)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 QObject.__init__(self, ui)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__ui = ui
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__translator = None
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__loadTranslator()
16
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
54
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
55 self.__editors = {}
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def activate(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Public method to activate this plugin.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 @return tuple of None and activation status (boolean)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 global error
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 error = "" # clear previous error
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.__ui.showMenu.connect(self.__populateMenu)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
16
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
68 e5App().getObject("ViewManager").editorOpenedEd.connect(
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
69 self.__editorOpened)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
70 e5App().getObject("ViewManager").editorClosedEd.connect(
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
71 self.__editorClosed)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
72
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
73 for editor in e5App().getObject("ViewManager").getOpenEditors():
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
74 self.__editorOpened(editor)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
75
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 return None, True
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 def deactivate(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 Public method to deactivate this plugin.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.__ui.showMenu.disconnect(self.__populateMenu)
16
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
83
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
84 e5App().getObject("ViewManager").editorOpenedEd.disconnect(
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
85 self.__editorOpened)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
86 e5App().getObject("ViewManager").editorClosedEd.disconnect(
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
87 self.__editorClosed)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
88
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
89 for editor, acts in self.__editors.items():
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
90 menu = editor.getMenu("Tools")
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
91 if menu is not None:
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
92 for act in acts:
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
93 menu.removeAction(act)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
94 self.__editors = {}
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 def __loadTranslator(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 Private method to load the translation file.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 if self.__ui is not None:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 loc = self.__ui.getLocale()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 if loc and loc != "C":
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 locale_dir = os.path.join(
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 os.path.dirname(__file__), "PySide2PyQt", "i18n")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 translation = "pyside2pyqt_{0}".format(loc)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 translator = QTranslator(None)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 loaded = translator.load(translation, locale_dir)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 if loaded:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.__translator = translator
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 e5App().installTranslator(self.__translator)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 else:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 print("Warning: translation file '{0}' could not be"
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 " loaded.".format(translation))
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 print("Using default.")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 def __populateMenu(self, name, menu):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 Private slot to populate the tools menu with our entries.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 @param name name of the menu (string)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 @param menu reference to the menu to be populated (QMenu)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 if name != "Tools":
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 return
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 editor = e5App().getObject("ViewManager").activeWindow()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 if not menu.isEmpty():
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 menu.addSeparator()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
18
ea533653d9b2 Changed code to always add the entry to the tools menu and disable it, if prerequisites are not fulfilled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
131 menu.addAction(self.tr("PySide to PyQt4"), self.__pyside2Pyqt)\
ea533653d9b2 Changed code to always add the entry to the tools menu and disable it, if prerequisites are not fulfilled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
132 .setEnabled(editor is not None)
ea533653d9b2 Changed code to always add the entry to the tools menu and disable it, if prerequisites are not fulfilled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
133 menu.addAction(self.tr("PyQt4 to PySide"), self.__pyqt2Pyside)\
ea533653d9b2 Changed code to always add the entry to the tools menu and disable it, if prerequisites are not fulfilled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
134 .setEnabled(editor is not None)
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
16
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
136 def __editorOpened(self, editor):
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
137 """
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
138 Private slot called, when a new editor was opened.
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
139
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
140 @param editor reference to the new editor (QScintilla.Editor)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
141 """
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
142 menu = editor.getMenu("Tools")
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
143 if menu is not None:
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
144 self.__editors[editor] = []
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
145 if not menu.isEmpty():
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
146 act = menu.addSeparator()
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
147 self.__editors[editor].append(act)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
148 act = menu.addAction(self.tr("PySide to PyQt4"),
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
149 self.__pyside2Pyqt)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
150 self.__editors[editor].append(act)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
151 act = menu.addAction(self.tr("PyQt4 to PySide"),
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
152 self.__pyqt2Pyside)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
153 self.__editors[editor].append(act)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
154
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
155 def __editorClosed(self, editor):
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
156 """
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
157 Private slot called, when an editor was closed.
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
158
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
159 @param editor reference to the editor (QScintilla.Editor)
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
160 """
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
161 try:
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
162 del self.__editors[editor]
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
163 except KeyError:
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
164 pass
051e29b6bdd6 Added support for the editor Tools context menu (as of eric5 5.4.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
165
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 def __pyside2Pyqt(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 Private slot to convert the code of the current editor from PySide
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 to PyQt4.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 editor = e5App().getObject("ViewManager").activeWindow()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 if editor is None:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 return
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 text = editor.text()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 newText = (text
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 .replace("PySide", "PyQt4")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 .replace("Signal", "pyqtSignal")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 .replace("Slot", "pyqtSlot")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 .replace("Property", "pyqtProperty")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 .replace("pyside-uic", "pyuic4")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 .replace("pyside-rcc", "pyrcc4")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 .replace("pyside-lupdate", "pylupdate4")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 )
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 if newText != text:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 editor.beginUndoAction()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 editor.selectAll()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 editor.replaceSelectedText(newText)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 editor.endUndoAction()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 def __pyqt2Pyside(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 Private slot to convert the code of the current editor from PyQt4
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 to PySide.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 editor = e5App().getObject("ViewManager").activeWindow()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 if editor is None:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 return
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 text = editor.text()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 newText = (text
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 .replace("PyQt4", "PySide")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 .replace("pyqtSignal", "Signal")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 .replace("pyqtSlot", "Slot")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 .replace("pyqtProperty", "Property")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 .replace("pyuic4", "pyside-uic")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 .replace("pyrcc4", "pyside-rcc")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 .replace("pylupdate4", "pyside-lupdate")
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 )
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 if newText != text:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 editor.beginUndoAction()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 editor.selectAll()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 editor.replaceSelectedText(newText)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 editor.endUndoAction()

eric ide

mercurial