PluginPySide2PyQt.py

Sat, 23 Dec 2023 15:48:58 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Dec 2023 15:48:58 +0100
branch
eric7
changeset 68
4094f1fb16a7
parent 67
ddbc80977081
child 69
8424325c236b
permissions
-rw-r--r--

Updated copyright for 2024.

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
68
4094f1fb16a7 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
3 # Copyright (c) 2013 - 2024 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 """
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
7 Module implementing the PySide to PyQt (and vice versa) plug-in.
0
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
53
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
10 import contextlib
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
13 from PyQt6.QtCore import QObject, QTranslator
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
14 from PyQt6.QtWidgets import QMenu
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
64
023600ebd385 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
0
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
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
19 name = "PySide to PyQt (and vice versa) Plug-in"
0
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
64
023600ebd385 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
23 version = "10.1.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"
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
26 shortDescription = "Convert PySide file to PyQt and vice versa"
50
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
27 longDescription = (
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
28 """This plug-in implements a tool to convert a PySide2 file to PyQt5"""
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
29 """ and vice versa or a PySide6 file to PyQt6 and vice versa. It works"""
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
30 """ with the text of the current editor."""
50
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
31 )
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 needsRestart = False
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 pyqtApi = 2
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 """
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
41 Class implementing the PySide to PyQt (and vice versa) plugin.
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
43
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 def __init__(self, ui):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Constructor
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
47
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
48 @param ui reference to the user interface object
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
49 @type UserInterface
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
55
f9706d6a2ece Bug fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
51 super().__init__(ui)
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__ui = ui
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
53
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__translator = None
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__loadTranslator()
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
56
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
57 self.__initMenu()
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
58
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
59 self.__editors = {}
36
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
60 self.__mainActions = []
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
61
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 def activate(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Public method to activate this plugin.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
65
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
66 @return tuple of None and activation status
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
67 @rtype (None, bool)
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 global error
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
70 error = "" # clear previous error
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
71
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.__ui.showMenu.connect(self.__populateMenu)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
73
36
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
74 menu = self.__ui.getMenu("plugin_tools")
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
75 if menu is not None:
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
76 if not menu.isEmpty():
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
77 act = menu.addSeparator()
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
78 self.__mainActions.append(act)
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
79 act = menu.addMenu(self.__menu)
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
80 self.__mainActions.append(act)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
81
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
82 ericApp().getObject("ViewManager").editorOpenedEd.connect(self.__editorOpened)
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
83 ericApp().getObject("ViewManager").editorClosedEd.connect(self.__editorClosed)
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
84
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
85 for editor in ericApp().getObject("ViewManager").getOpenEditors():
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
86 self.__editorOpened(editor)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
87
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 return None, True
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
89
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 def deactivate(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 Public method to deactivate this plugin.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.__ui.showMenu.disconnect(self.__populateMenu)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
95
36
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
96 menu = self.__ui.getMenu("plugin_tools")
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
97 if menu is not None:
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
98 for act in self.__mainActions:
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
99 menu.removeAction(act)
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
100 self.__mainActions = []
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
101
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
102 ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
103 self.__editorOpened
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
104 )
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
105 ericApp().getObject("ViewManager").editorClosedEd.disconnect(
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
106 self.__editorClosed
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
107 )
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
108
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
109 for editor, acts in self.__editors.items():
30
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
110 editor.showMenu.disconnect(self.__editorShowMenu)
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
111 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
112 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
113 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
114 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
115 self.__editors = {}
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
116
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 def __loadTranslator(self):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 Private method to load the translation file.
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 if self.__ui is not None:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 loc = self.__ui.getLocale()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 if loc and loc != "C":
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 locale_dir = os.path.join(
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
125 os.path.dirname(__file__), "PySide2PyQt", "i18n"
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
126 )
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 translation = "pyside2pyqt_{0}".format(loc)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 translator = QTranslator(None)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 loaded = translator.load(translation, locale_dir)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 if loaded:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.__translator = translator
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
132 ericApp().installTranslator(self.__translator)
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 else:
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
134 print(
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
135 "Warning: translation file '{0}' could not be"
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
136 " loaded.".format(translation)
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
137 )
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 print("Using default.")
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
139
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
140 def __initMenu(self):
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
141 """
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
142 Private method to initialize the menu.
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
143 """
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
144 self.__menu = QMenu(self.tr("PySide to/from PyQt"))
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
145 self.__menu.addAction(
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
146 self.tr("PySide2 to PyQt5"), lambda: self.__pyside2Pyqt("pyside2", "pyqt5")
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
147 )
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
148 self.__menu.addAction(
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
149 self.tr("PyQt5 to PySide2"), lambda: self.__pyqt2Pyside("pyqt5", "pyside2")
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
150 )
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
151 self.__menu.addSeparator()
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
152 self.__menu.addAction(
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
153 self.tr("PySide6 to PyQt6"), lambda: self.__pyside2Pyqt("pyside6", "pyqt6")
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
154 )
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
155 self.__menu.addAction(
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
156 self.tr("PyQt6 to PySide6"), lambda: self.__pyqt2Pyside("pyqt6", "pyside6")
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
157 )
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
158 self.__menu.setEnabled(False)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
159
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 def __populateMenu(self, name, menu):
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Private slot to populate the tools menu with our entries.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
163
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
164 @param name name of the menu
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
165 @type str
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
166 @param menu reference to the menu to be populated
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
167 @type QMenu
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
36
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
169 if name not in ["Tools", "PluginTools"]:
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 return
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
171
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
172 editor = ericApp().getObject("ViewManager").activeWindow()
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
173
36
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
174 if name == "Tools":
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
175 if not menu.isEmpty():
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
176 menu.addSeparator()
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
177 act = menu.addMenu(self.__menu)
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
178 act.setEnabled(editor is not None)
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
179 elif name == "PluginTools" and self.__mainActions:
fa0e373b6c3c Adaptation for the new plug-in tools menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 34
diff changeset
180 self.__mainActions[-1].setEnabled(editor is not None)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
181
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
182 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
183 """
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
184 Private slot called, when a new editor was opened.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
185
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
186 @param editor reference to the new editor
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
187 @type Editor
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
188 """
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
189 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
190 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
191 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
192 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
193 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
194 self.__editors[editor].append(act)
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
195 act = menu.addMenu(self.__menu)
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
196 self.__editors[editor].append(act)
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
197 self.__menu.setEnabled(True)
30
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
198 editor.showMenu.connect(self.__editorShowMenu)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
199
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
200 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
201 """
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
202 Private slot called, when an editor was closed.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
203
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
204 @param editor reference to the editor
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
205 @type Editor
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
206 """
53
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
207 with contextlib.suppress(KeyError):
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
208 del self.__editors[editor]
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
209 if not self.__editors:
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
210 self.__menu.setEnabled(False)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
211
30
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
212 def __editorShowMenu(self, menuName, menu, editor):
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
213 """
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
214 Private slot called, when the the editor context menu or a submenu is
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
215 about to be shown.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
216
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
217 @param menuName name of the menu to be shown
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
218 @type str
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
219 @param menu reference to the menu
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
220 @type QMenu
30
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
221 @param editor reference to the editor
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
222 @type Editor
30
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
223 """
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
224 if menuName == "Tools" and self.__menu.menuAction() not in menu.actions():
53
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
225 # Re-add our menu
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
226 self.__editors[editor] = []
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
227 if not menu.isEmpty():
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
228 act = menu.addSeparator()
30
2f978a55c8e3 Added code to repopulate the Tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 29
diff changeset
229 self.__editors[editor].append(act)
53
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
230 act = menu.addMenu(self.__menu)
52bc3465c1bc Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
231 self.__editors[editor].append(act)
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
232
43
25977715166f Added actions to convert to/from PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
233 def __pyside2Pyqt(self, pyside, pyqt):
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 """
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 Private slot to convert the code of the current editor from PySide
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
236 to PyQt.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
237
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
238 @param pyside PySide variant (pyside2 or pyside6)
43
25977715166f Added actions to convert to/from PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
239 @type str
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
240 @param pyqt PyQt variant (pyqt5 or pyqt6)
43
25977715166f Added actions to convert to/from PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
241 @type str
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
243 editor = ericApp().getObject("ViewManager").activeWindow()
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 if editor is None:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 return
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
246
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 text = editor.text()
50
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
248 if pyqt == "pyqt5" and pyside == "pyside2":
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
249 newText = (
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
250 text.replace("PySide2", "PyQt5")
50
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
251 .replace("Signal", "pyqtSignal")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
252 .replace("Slot", "pyqtSlot")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
253 .replace("Property", "pyqtProperty")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
254 .replace("pyside2-uic", "pyuic5")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
255 .replace("pyside2-rcc", "pyrcc5")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
256 .replace("pyside2-lupdate", "pylupdate5")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
257 )
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
258 elif pyqt == "pyqt6" and pyside == "pyside6":
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
259 newText = (
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
260 text.replace("PySide6", "PyQt6")
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
261 .replace("Signal", "pyqtSignal")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
262 .replace("Slot", "pyqtSlot")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
263 .replace("Property", "pyqtProperty")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
264 .replace("pyside6-uic", "pyuic6")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
265 .replace("pyside6-lupdate", "pylupdate6")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
266 )
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
267 else:
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
268 return
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
269
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 if newText != text:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 editor.beginUndoAction()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 editor.selectAll()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 editor.replaceSelectedText(newText)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 editor.endUndoAction()
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
275
43
25977715166f Added actions to convert to/from PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
276 def __pyqt2Pyside(self, pyqt, pyside):
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 """
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
278 Private slot to convert the code of the current editor from PyQt
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 to PySide.
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
280
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
281 @param pyqt PyQt variant (pyqt5 or pyqt6)
43
25977715166f Added actions to convert to/from PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
282 @type str
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
283 @param pyside PySide variant (pyside2 or pyside6)
43
25977715166f Added actions to convert to/from PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
284 @type str
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 """
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
286 editor = ericApp().getObject("ViewManager").activeWindow()
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 if editor is None:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 return
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
289
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 text = editor.text()
50
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
291 if pyqt == "pyqt5" and pyside == "pyside2":
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
292 newText = (
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
293 text.replace("PyQt5", "PySide2")
50
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
294 .replace("pyqtSignal", "Signal")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
295 .replace("pyqtSlot", "Slot")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
296 .replace("pyqtProperty", "Property")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
297 .replace("pyuic5", "pyside2-uic")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
298 .replace("pyrcc5", "pyside2-rcc")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
299 .replace("pylupdate5", "pyside2-lupdate")
5e4b312590ba Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 49
diff changeset
300 )
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
301 elif pyqt == "pyqt6" and pyside == "pyside6":
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
302 newText = (
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
303 text.replace("PyQt6", "PySide6")
58
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
304 .replace("pyqtSignal", "Signal")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
305 .replace("pyqtSlot", "Slot")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
306 .replace("pyqtProperty", "Property")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
307 .replace("pyuic6", "pyside6-uic")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
308 .replace("pylupdate6", "pyside6-lupdate")
2c8ec39c1d80 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
309 )
24
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
310 else:
edefb5877e13 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
311 return
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
312
0
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 if newText != text:
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 editor.beginUndoAction()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 editor.selectAll()
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 editor.replaceSelectedText(newText)
4e3bb54c22d7 PySide to PyQt4 converter project started.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 editor.endUndoAction()
40
8cd070490a40 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
318
63
3f3062df2e91 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
319
40
8cd070490a40 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
320 #
8cd070490a40 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
321 # eflag: noqa = M801

eric ide

mercurial