eric7/Plugins/PluginWizardQFileDialog.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8318
962bce857696
child 8358
144a6b854f70
equal deleted inserted replaced
8355:8a7677a63c8d 8356:68ec9c3d4de5
10 import re 10 import re
11 11
12 from PyQt6.QtCore import QObject 12 from PyQt6.QtCore import QObject
13 from PyQt6.QtWidgets import QDialog 13 from PyQt6.QtWidgets import QDialog
14 14
15 from E5Gui.E5Application import e5App 15 from E5Gui.EricApplication import ericApp
16 from E5Gui.E5Action import E5Action 16 from E5Gui.EricAction import EricAction
17 from E5Gui import E5MessageBox 17 from E5Gui import EricMessageBox
18 18
19 import UI.Info 19 import UI.Info
20 20
21 # Start-Of-Header 21 # Start-Of-Header
22 name = "QFileDialog Wizard Plugin" 22 name = "QFileDialog Wizard Plugin"
66 Public method to deactivate this plugin. 66 Public method to deactivate this plugin.
67 """ 67 """
68 menu = self.__ui.getMenu("wizards") 68 menu = self.__ui.getMenu("wizards")
69 if menu: 69 if menu:
70 menu.removeAction(self.qFileDialogAction) 70 menu.removeAction(self.qFileDialogAction)
71 menu.removeAction(self.e5FileDialogAction) 71 menu.removeAction(self.ericFileDialogAction)
72 self.__ui.removeE5Actions( 72 self.__ui.removeEricActions(
73 [self.qFileDialogAction, self.e5FileDialogAction], 73 [self.qFileDialogAction, self.ericFileDialogAction],
74 'wizards') 74 'wizards')
75 75
76 def __initActions(self): 76 def __initActions(self):
77 """ 77 """
78 Private method to initialize the actions. 78 Private method to initialize the actions.
79 """ 79 """
80 self.qFileDialogAction = E5Action( 80 self.qFileDialogAction = EricAction(
81 self.tr('QFileDialog Wizard'), 81 self.tr('QFileDialog Wizard'),
82 self.tr('Q&FileDialog Wizard...'), 0, 0, self, 82 self.tr('Q&FileDialog Wizard...'), 0, 0, self,
83 'wizards_qfiledialog') 83 'wizards_qfiledialog')
84 self.qFileDialogAction.setStatusTip(self.tr('QFileDialog Wizard')) 84 self.qFileDialogAction.setStatusTip(self.tr('QFileDialog Wizard'))
85 self.qFileDialogAction.setWhatsThis(self.tr( 85 self.qFileDialogAction.setWhatsThis(self.tr(
88 """ needed to create a QFileDialog. The generated code is""" 88 """ needed to create a QFileDialog. The generated code is"""
89 """ inserted at the current cursor position.</p>""" 89 """ inserted at the current cursor position.</p>"""
90 )) 90 ))
91 self.qFileDialogAction.triggered.connect(self.__handleQFileDialog) 91 self.qFileDialogAction.triggered.connect(self.__handleQFileDialog)
92 92
93 self.e5FileDialogAction = E5Action( 93 self.ericFileDialogAction = EricAction(
94 self.tr('E5FileDialog Wizard'), 94 self.tr('EricFileDialog Wizard'),
95 self.tr('E&5FileDialog Wizard...'), 0, 0, self, 95 self.tr('E&5FileDialog Wizard...'), 0, 0, self,
96 'wizards_e5filedialog') 96 'wizards_e5filedialog')
97 self.e5FileDialogAction.setStatusTip(self.tr('E5FileDialog Wizard')) 97 self.ericFileDialogAction.setStatusTip(self.tr('EricFileDialog Wizard'))
98 self.e5FileDialogAction.setWhatsThis(self.tr( 98 self.ericFileDialogAction.setWhatsThis(self.tr(
99 """<b>E5FileDialog Wizard</b>""" 99 """<b>EricFileDialog Wizard</b>"""
100 """<p>This wizard opens a dialog for entering all the parameters""" 100 """<p>This wizard opens a dialog for entering all the parameters"""
101 """ needed to create an E5FileDialog. The generated code is""" 101 """ needed to create an EricFileDialog. The generated code is"""
102 """ inserted at the current cursor position.</p>""" 102 """ inserted at the current cursor position.</p>"""
103 )) 103 ))
104 self.e5FileDialogAction.triggered.connect(self.__handleE5FileDialog) 104 self.ericFileDialogAction.triggered.connect(self.__handleEricFileDialog)
105 105
106 self.__ui.addE5Actions( 106 self.__ui.addEricActions(
107 [self.qFileDialogAction, self.e5FileDialogAction], 107 [self.qFileDialogAction, self.ericFileDialogAction],
108 'wizards') 108 'wizards')
109 109
110 def __initMenu(self): 110 def __initMenu(self):
111 """ 111 """
112 Private method to add the actions to the right menu. 112 Private method to add the actions to the right menu.
113 """ 113 """
114 menu = self.__ui.getMenu("wizards") 114 menu = self.__ui.getMenu("wizards")
115 if menu: 115 if menu:
116 menu.addAction(self.e5FileDialogAction) 116 menu.addAction(self.ericFileDialogAction)
117 menu.addAction(self.qFileDialogAction) 117 menu.addAction(self.qFileDialogAction)
118 118
119 def __callForm(self, editor, variant): 119 def __callForm(self, editor, variant):
120 """ 120 """
121 Private method to display a dialog and get the code. 121 Private method to display a dialog and get the code.
122 122
123 @param editor reference to the current editor 123 @param editor reference to the current editor
124 @type Editor 124 @type Editor
125 @param variant variant of code to be generated 125 @param variant variant of code to be generated
126 (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5) 126 (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5)
127 @type int 127 @type int
128 @return the generated code (string) 128 @return the generated code (string)
129 """ 129 """
130 from WizardPlugins.FileDialogWizard.FileDialogWizardDialog import ( 130 from WizardPlugins.FileDialogWizard.FileDialogWizardDialog import (
131 FileDialogWizardDialog 131 FileDialogWizardDialog
145 def __handle(self, variant): 145 def __handle(self, variant):
146 """ 146 """
147 Private method to handle the wizards action. 147 Private method to handle the wizards action.
148 148
149 @param variant dialog variant to be generated 149 @param variant dialog variant to be generated
150 (E5FileDialog or QFileDialog) 150 (EricFileDialog or QFileDialog)
151 @type str 151 @type str
152 @exception ValueError raised to indicate an illegal file dialog variant 152 @exception ValueError raised to indicate an illegal file dialog variant
153 """ 153 """
154 editor = e5App().getObject("ViewManager").activeWindow() 154 editor = ericApp().getObject("ViewManager").activeWindow()
155 155
156 if editor is None: 156 if editor is None:
157 E5MessageBox.critical( 157 EricMessageBox.critical(
158 self.__ui, 158 self.__ui,
159 self.tr('No current editor'), 159 self.tr('No current editor'),
160 self.tr('Please open or create a file first.')) 160 self.tr('Please open or create a file first.'))
161 else: 161 else:
162 if variant not in ("QFileDialog", "E5FileDialog"): 162 if variant not in ("QFileDialog", "EricFileDialog"):
163 raise ValueError("Illegal dialog variant given") 163 raise ValueError("Illegal dialog variant given")
164 164
165 if variant == "QFileDialog": 165 if variant == "QFileDialog":
166 match = self.__pyqtRe.search(editor.text()) 166 match = self.__pyqtRe.search(editor.text())
167 if match is None: 167 if match is None:
169 dialogVariant = 0 169 dialogVariant = 0
170 else: 170 else:
171 # PyQt5/PyQt6 171 # PyQt5/PyQt6
172 dialogVariant = int(match.group(1)) 172 dialogVariant = int(match.group(1))
173 else: 173 else:
174 # E5FileDialog 174 # EricFileDialog
175 dialogVariant = -1 175 dialogVariant = -1
176 176
177 code, ok = self.__callForm(editor, dialogVariant) 177 code, ok = self.__callForm(editor, dialogVariant)
178 if ok: 178 if ok:
179 line, index = editor.getCursorPosition() 179 line, index = editor.getCursorPosition()
186 """ 186 """
187 Private slot to handle the wizard QFileDialog action. 187 Private slot to handle the wizard QFileDialog action.
188 """ 188 """
189 self.__handle("QFileDialog") 189 self.__handle("QFileDialog")
190 190
191 def __handleE5FileDialog(self): 191 def __handleEricFileDialog(self):
192 """ 192 """
193 Private slot to handle the wizard E5FileDialog action. 193 Private slot to handle the wizard EricFileDialog action.
194 """ 194 """
195 self.__handle("E5FileDialog") 195 self.__handle("EricFileDialog")

eric ide

mercurial