Project/ProjectInterfacesBrowser.py

branch
Py2 comp.
changeset 3484
645c12de6b0c
parent 3178
f25fc1364c88
parent 3190
a9a94491c4fd
child 3515
1b8381afe38f
equal deleted inserted replaced
3456:96232974dcdb 3484:645c12de6b0c
8 of the project. 8 of the project.
9 """ 9 """
10 10
11 from __future__ import unicode_literals 11 from __future__ import unicode_literals
12 try: 12 try:
13 str = unicode # __IGNORE_WARNING__ 13 str = unicode
14 except (NameError): 14 except NameError:
15 pass 15 pass
16 16
17 import os 17 import os
18 import glob 18 import glob
19 19
73 ProjectBrowserInterfaceType, parent) 73 ProjectBrowserInterfaceType, parent)
74 74
75 self.selectedItemsFilter = \ 75 self.selectedItemsFilter = \
76 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem] 76 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem]
77 77
78 self.setWindowTitle(self.trUtf8('Interfaces (IDL)')) 78 self.setWindowTitle(self.tr('Interfaces (IDL)'))
79 79
80 self.setWhatsThis(self.trUtf8( 80 self.setWhatsThis(self.tr(
81 """<b>Project Interfaces Browser</b>""" 81 """<b>Project Interfaces Browser</b>"""
82 """<p>This allows to easily see all interfaces (CORBA IDL files)""" 82 """<p>This allows to easily see all interfaces (CORBA IDL files)"""
83 """ contained in the current project. Several actions can be""" 83 """ contained in the current project. Several actions can be"""
84 """ executed via the context menu.</p>""" 84 """ executed via the context menu.</p>"""
85 )) 85 ))
97 self.dirMultiMenuActions = [] 97 self.dirMultiMenuActions = []
98 98
99 self.sourceMenu = QMenu(self) 99 self.sourceMenu = QMenu(self)
100 if self.omniidl is not None: 100 if self.omniidl is not None:
101 self.sourceMenu.addAction( 101 self.sourceMenu.addAction(
102 self.trUtf8('Compile interface'), self.__compileInterface) 102 self.tr('Compile interface'), self.__compileInterface)
103 self.sourceMenu.addAction( 103 self.sourceMenu.addAction(
104 self.trUtf8('Compile all interfaces'), 104 self.tr('Compile all interfaces'),
105 self.__compileAllInterfaces) 105 self.__compileAllInterfaces)
106 self.sourceMenu.addAction(self.trUtf8('Open'), self._openItem) 106 self.sourceMenu.addAction(self.tr('Open'), self._openItem)
107 self.sourceMenu.addSeparator() 107 self.sourceMenu.addSeparator()
108 act = self.sourceMenu.addAction( 108 act = self.sourceMenu.addAction(
109 self.trUtf8('Rename file'), self._renameFile) 109 self.tr('Rename file'), self._renameFile)
110 self.menuActions.append(act) 110 self.menuActions.append(act)
111 act = self.sourceMenu.addAction( 111 act = self.sourceMenu.addAction(
112 self.trUtf8('Remove from project'), self._removeFile) 112 self.tr('Remove from project'), self._removeFile)
113 self.menuActions.append(act) 113 self.menuActions.append(act)
114 act = self.sourceMenu.addAction( 114 act = self.sourceMenu.addAction(
115 self.trUtf8('Delete'), self.__deleteFile) 115 self.tr('Delete'), self.__deleteFile)
116 self.menuActions.append(act) 116 self.menuActions.append(act)
117 self.sourceMenu.addSeparator() 117 self.sourceMenu.addSeparator()
118 self.sourceMenu.addAction( 118 self.sourceMenu.addAction(
119 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles) 119 self.tr('Add interfaces...'), self.__addInterfaceFiles)
120 self.sourceMenu.addAction( 120 self.sourceMenu.addAction(
121 self.trUtf8('Add interfaces directory...'), 121 self.tr('Add interfaces directory...'),
122 self.__addInterfacesDirectory) 122 self.__addInterfacesDirectory)
123 self.sourceMenu.addSeparator() 123 self.sourceMenu.addSeparator()
124 self.sourceMenu.addAction( 124 self.sourceMenu.addAction(
125 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard) 125 self.tr('Copy Path to Clipboard'), self._copyToClipboard)
126 self.sourceMenu.addSeparator() 126 self.sourceMenu.addSeparator()
127 self.sourceMenu.addAction( 127 self.sourceMenu.addAction(
128 self.trUtf8('Expand all directories'), self._expandAllDirs) 128 self.tr('Expand all directories'), self._expandAllDirs)
129 self.sourceMenu.addAction( 129 self.sourceMenu.addAction(
130 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 130 self.tr('Collapse all directories'), self._collapseAllDirs)
131 self.sourceMenu.addSeparator() 131 self.sourceMenu.addSeparator()
132 self.sourceMenu.addAction(self.trUtf8('Configure...'), self._configure) 132 self.sourceMenu.addAction(self.tr('Configure...'), self._configure)
133 self.sourceMenu.addAction( 133 self.sourceMenu.addAction(
134 self.trUtf8('Configure CORBA...'), self.__configureCorba) 134 self.tr('Configure CORBA...'), self.__configureCorba)
135 135
136 self.menu = QMenu(self) 136 self.menu = QMenu(self)
137 if self.omniidl is not None: 137 if self.omniidl is not None:
138 self.menu.addAction( 138 self.menu.addAction(
139 self.trUtf8('Compile interface'), self.__compileInterface) 139 self.tr('Compile interface'), self.__compileInterface)
140 self.menu.addAction( 140 self.menu.addAction(
141 self.trUtf8('Compile all interfaces'), 141 self.tr('Compile all interfaces'),
142 self.__compileAllInterfaces) 142 self.__compileAllInterfaces)
143 self.menu.addAction(self.trUtf8('Open'), self._openItem) 143 self.menu.addAction(self.tr('Open'), self._openItem)
144 self.menu.addSeparator() 144 self.menu.addSeparator()
145 self.menu.addAction( 145 self.menu.addAction(
146 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles) 146 self.tr('Add interfaces...'), self.__addInterfaceFiles)
147 self.menu.addAction( 147 self.menu.addAction(
148 self.trUtf8('Add interfaces directory...'), 148 self.tr('Add interfaces directory...'),
149 self.__addInterfacesDirectory) 149 self.__addInterfacesDirectory)
150 self.menu.addSeparator() 150 self.menu.addSeparator()
151 self.menu.addAction( 151 self.menu.addAction(
152 self.trUtf8('Expand all directories'), self._expandAllDirs) 152 self.tr('Expand all directories'), self._expandAllDirs)
153 self.menu.addAction( 153 self.menu.addAction(
154 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 154 self.tr('Collapse all directories'), self._collapseAllDirs)
155 self.menu.addSeparator() 155 self.menu.addSeparator()
156 self.menu.addAction(self.trUtf8('Configure...'), self._configure) 156 self.menu.addAction(self.tr('Configure...'), self._configure)
157 self.menu.addAction( 157 self.menu.addAction(
158 self.trUtf8('Configure CORBA...'), self.__configureCorba) 158 self.tr('Configure CORBA...'), self.__configureCorba)
159 159
160 self.backMenu = QMenu(self) 160 self.backMenu = QMenu(self)
161 if self.omniidl is not None: 161 if self.omniidl is not None:
162 self.backMenu.addAction( 162 self.backMenu.addAction(
163 self.trUtf8('Compile all interfaces'), 163 self.tr('Compile all interfaces'),
164 self.__compileAllInterfaces) 164 self.__compileAllInterfaces)
165 self.backMenu.addSeparator() 165 self.backMenu.addSeparator()
166 self.backMenu.addAction( 166 self.backMenu.addAction(
167 self.trUtf8('Add interfaces...'), self.project.addIdlFiles) 167 self.tr('Add interfaces...'), self.project.addIdlFiles)
168 self.backMenu.addAction( 168 self.backMenu.addAction(
169 self.trUtf8('Add interfaces directory...'), self.project.addIdlDir) 169 self.tr('Add interfaces directory...'), self.project.addIdlDir)
170 self.backMenu.addSeparator() 170 self.backMenu.addSeparator()
171 self.backMenu.addAction( 171 self.backMenu.addAction(
172 self.trUtf8('Expand all directories'), self._expandAllDirs) 172 self.tr('Expand all directories'), self._expandAllDirs)
173 self.backMenu.addAction( 173 self.backMenu.addAction(
174 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 174 self.tr('Collapse all directories'), self._collapseAllDirs)
175 self.backMenu.addSeparator() 175 self.backMenu.addSeparator()
176 self.backMenu.addAction(self.trUtf8('Configure...'), self._configure) 176 self.backMenu.addAction(self.tr('Configure...'), self._configure)
177 self.backMenu.addAction( 177 self.backMenu.addAction(
178 self.trUtf8('Configure CORBA...'), self.__configureCorba) 178 self.tr('Configure CORBA...'), self.__configureCorba)
179 self.backMenu.setEnabled(False) 179 self.backMenu.setEnabled(False)
180 180
181 # create the menu for multiple selected files 181 # create the menu for multiple selected files
182 self.multiMenu = QMenu(self) 182 self.multiMenu = QMenu(self)
183 if self.omniidl is not None: 183 if self.omniidl is not None:
184 self.multiMenu.addAction( 184 self.multiMenu.addAction(
185 self.trUtf8('Compile interfaces'), 185 self.tr('Compile interfaces'),
186 self.__compileSelectedInterfaces) 186 self.__compileSelectedInterfaces)
187 self.multiMenu.addAction(self.trUtf8('Open'), self._openItem) 187 self.multiMenu.addAction(self.tr('Open'), self._openItem)
188 self.multiMenu.addSeparator() 188 self.multiMenu.addSeparator()
189 act = self.multiMenu.addAction( 189 act = self.multiMenu.addAction(
190 self.trUtf8('Remove from project'), self._removeFile) 190 self.tr('Remove from project'), self._removeFile)
191 self.multiMenuActions.append(act) 191 self.multiMenuActions.append(act)
192 act = self.multiMenu.addAction( 192 act = self.multiMenu.addAction(
193 self.trUtf8('Delete'), self.__deleteFile) 193 self.tr('Delete'), self.__deleteFile)
194 self.multiMenuActions.append(act) 194 self.multiMenuActions.append(act)
195 self.multiMenu.addSeparator() 195 self.multiMenu.addSeparator()
196 self.multiMenu.addAction( 196 self.multiMenu.addAction(
197 self.trUtf8('Expand all directories'), self._expandAllDirs) 197 self.tr('Expand all directories'), self._expandAllDirs)
198 self.multiMenu.addAction( 198 self.multiMenu.addAction(
199 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 199 self.tr('Collapse all directories'), self._collapseAllDirs)
200 self.multiMenu.addSeparator() 200 self.multiMenu.addSeparator()
201 self.multiMenu.addAction(self.trUtf8('Configure...'), self._configure) 201 self.multiMenu.addAction(self.tr('Configure...'), self._configure)
202 self.multiMenu.addAction( 202 self.multiMenu.addAction(
203 self.trUtf8('Configure CORBA...'), self.__configureCorba) 203 self.tr('Configure CORBA...'), self.__configureCorba)
204 204
205 self.dirMenu = QMenu(self) 205 self.dirMenu = QMenu(self)
206 if self.omniidl is not None: 206 if self.omniidl is not None:
207 self.dirMenu.addAction( 207 self.dirMenu.addAction(
208 self.trUtf8('Compile all interfaces'), 208 self.tr('Compile all interfaces'),
209 self.__compileAllInterfaces) 209 self.__compileAllInterfaces)
210 self.dirMenu.addSeparator() 210 self.dirMenu.addSeparator()
211 act = self.dirMenu.addAction( 211 act = self.dirMenu.addAction(
212 self.trUtf8('Remove from project'), self._removeFile) 212 self.tr('Remove from project'), self._removeFile)
213 self.dirMenuActions.append(act) 213 self.dirMenuActions.append(act)
214 act = self.dirMenu.addAction( 214 act = self.dirMenu.addAction(
215 self.trUtf8('Delete'), self._deleteDirectory) 215 self.tr('Delete'), self._deleteDirectory)
216 self.dirMenuActions.append(act) 216 self.dirMenuActions.append(act)
217 self.dirMenu.addSeparator() 217 self.dirMenu.addSeparator()
218 self.dirMenu.addAction( 218 self.dirMenu.addAction(
219 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles) 219 self.tr('Add interfaces...'), self.__addInterfaceFiles)
220 self.dirMenu.addAction( 220 self.dirMenu.addAction(
221 self.trUtf8('Add interfaces directory...'), 221 self.tr('Add interfaces directory...'),
222 self.__addInterfacesDirectory) 222 self.__addInterfacesDirectory)
223 self.dirMenu.addSeparator() 223 self.dirMenu.addSeparator()
224 self.dirMenu.addAction( 224 self.dirMenu.addAction(
225 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard) 225 self.tr('Copy Path to Clipboard'), self._copyToClipboard)
226 self.dirMenu.addSeparator() 226 self.dirMenu.addSeparator()
227 self.dirMenu.addAction( 227 self.dirMenu.addAction(
228 self.trUtf8('Expand all directories'), self._expandAllDirs) 228 self.tr('Expand all directories'), self._expandAllDirs)
229 self.dirMenu.addAction( 229 self.dirMenu.addAction(
230 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 230 self.tr('Collapse all directories'), self._collapseAllDirs)
231 self.dirMenu.addSeparator() 231 self.dirMenu.addSeparator()
232 self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure) 232 self.dirMenu.addAction(self.tr('Configure...'), self._configure)
233 self.dirMenu.addAction( 233 self.dirMenu.addAction(
234 self.trUtf8('Configure CORBA...'), self.__configureCorba) 234 self.tr('Configure CORBA...'), self.__configureCorba)
235 235
236 self.dirMultiMenu = QMenu(self) 236 self.dirMultiMenu = QMenu(self)
237 if self.omniidl is not None: 237 if self.omniidl is not None:
238 self.dirMultiMenu.addAction( 238 self.dirMultiMenu.addAction(
239 self.trUtf8('Compile all interfaces'), 239 self.tr('Compile all interfaces'),
240 self.__compileAllInterfaces) 240 self.__compileAllInterfaces)
241 self.dirMultiMenu.addSeparator() 241 self.dirMultiMenu.addSeparator()
242 self.dirMultiMenu.addAction( 242 self.dirMultiMenu.addAction(
243 self.trUtf8('Add interfaces...'), self.project.addIdlFiles) 243 self.tr('Add interfaces...'), self.project.addIdlFiles)
244 self.dirMultiMenu.addAction( 244 self.dirMultiMenu.addAction(
245 self.trUtf8('Add interfaces directory...'), self.project.addIdlDir) 245 self.tr('Add interfaces directory...'), self.project.addIdlDir)
246 self.dirMultiMenu.addSeparator() 246 self.dirMultiMenu.addSeparator()
247 self.dirMultiMenu.addAction( 247 self.dirMultiMenu.addAction(
248 self.trUtf8('Expand all directories'), self._expandAllDirs) 248 self.tr('Expand all directories'), self._expandAllDirs)
249 self.dirMultiMenu.addAction( 249 self.dirMultiMenu.addAction(
250 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 250 self.tr('Collapse all directories'), self._collapseAllDirs)
251 self.dirMultiMenu.addSeparator() 251 self.dirMultiMenu.addSeparator()
252 self.dirMultiMenu.addAction( 252 self.dirMultiMenu.addAction(
253 self.trUtf8('Configure...'), self._configure) 253 self.tr('Configure...'), self._configure)
254 self.dirMultiMenu.addAction(self.trUtf8('Configure CORBA...'), 254 self.dirMultiMenu.addAction(self.tr('Configure CORBA...'),
255 self.__configureCorba) 255 self.__configureCorba)
256 256
257 self.sourceMenu.aboutToShow.connect(self.__showContextMenu) 257 self.sourceMenu.aboutToShow.connect(self.__showContextMenu)
258 self.multiMenu.aboutToShow.connect(self.__showContextMenuMulti) 258 self.multiMenu.aboutToShow.connect(self.__showContextMenuMulti)
259 self.dirMenu.aboutToShow.connect(self.__showContextMenuDir) 259 self.dirMenu.aboutToShow.connect(self.__showContextMenuDir)
422 422
423 from UI.DeleteFilesConfirmationDialog import \ 423 from UI.DeleteFilesConfirmationDialog import \
424 DeleteFilesConfirmationDialog 424 DeleteFilesConfirmationDialog
425 dlg = DeleteFilesConfirmationDialog( 425 dlg = DeleteFilesConfirmationDialog(
426 self.parent(), 426 self.parent(),
427 self.trUtf8("Delete interfaces"), 427 self.tr("Delete interfaces"),
428 self.trUtf8("Do you really want to delete these interfaces from" 428 self.tr("Do you really want to delete these interfaces from"
429 " the project?"), 429 " the project?"),
430 files) 430 files)
431 431
432 if dlg.exec_() == QDialog.Accepted: 432 if dlg.exec_() == QDialog.Accepted:
433 for fn2, fn in zip(fullNames, files): 433 for fn2, fn in zip(fullNames, files):
434 self.closeSourceWindow.emit(fn2) 434 self.closeSourceWindow.emit(fn2)
491 for file in fileList: 491 for file in fileList:
492 self.project.appendFile(file) 492 self.project.appendFile(file)
493 if not self.noDialog and not ui.notificationsEnabled(): 493 if not self.noDialog and not ui.notificationsEnabled():
494 E5MessageBox.information( 494 E5MessageBox.information(
495 self, 495 self,
496 self.trUtf8("Interface Compilation"), 496 self.tr("Interface Compilation"),
497 self.trUtf8( 497 self.tr(
498 "The compilation of the interface file was" 498 "The compilation of the interface file was"
499 " successful.")) 499 " successful."))
500 else: 500 else:
501 ui.showNotification( 501 ui.showNotification(
502 UI.PixmapCache.getPixmap("corba48.png"), 502 UI.PixmapCache.getPixmap("corba48.png"),
503 self.trUtf8("Interface Compilation"), 503 self.tr("Interface Compilation"),
504 self.trUtf8( 504 self.tr(
505 "The compilation of the interface file was" 505 "The compilation of the interface file was"
506 " successful.")) 506 " successful."))
507 else: 507 else:
508 if not self.noDialog: 508 if not self.noDialog:
509 E5MessageBox.information( 509 E5MessageBox.information(
510 self, 510 self,
511 self.trUtf8("Interface Compilation"), 511 self.tr("Interface Compilation"),
512 self.trUtf8( 512 self.tr(
513 "The compilation of the interface file failed.")) 513 "The compilation of the interface file failed."))
514 else: 514 else:
515 ui.showNotification( 515 ui.showNotification(
516 UI.PixmapCache.getPixmap("corba48.png"), 516 UI.PixmapCache.getPixmap("corba48.png"),
517 self.trUtf8("Interface Compilation"), 517 self.tr("Interface Compilation"),
518 self.trUtf8( 518 self.tr(
519 "The compilation of the interface file failed.")) 519 "The compilation of the interface file failed."))
520 self.compileProc = None 520 self.compileProc = None
521 521
522 def __compileIDL(self, fn, noDialog=False, progress=None): 522 def __compileIDL(self, fn, noDialog=False, progress=None):
523 """ 523 """
553 self.compileRunning = False 553 self.compileRunning = False
554 if progress is not None: 554 if progress is not None:
555 progress.cancel() 555 progress.cancel()
556 E5MessageBox.critical( 556 E5MessageBox.critical(
557 self, 557 self,
558 self.trUtf8('Process Generation Error'), 558 self.tr('Process Generation Error'),
559 self.trUtf8( 559 self.tr(
560 '<p>Could not start {0}.<br>' 560 '<p>Could not start {0}.<br>'
561 'Ensure that it is in the search path.</p>' 561 'Ensure that it is in the search path.</p>'
562 ).format(self.omniidl)) 562 ).format(self.omniidl))
563 return None 563 return None
564 564
577 Private method to compile all interfaces to python. 577 Private method to compile all interfaces to python.
578 """ 578 """
579 if self.omniidl is not None: 579 if self.omniidl is not None:
580 numIDLs = len(self.project.pdata["INTERFACES"]) 580 numIDLs = len(self.project.pdata["INTERFACES"])
581 progress = E5ProgressDialog( 581 progress = E5ProgressDialog(
582 self.trUtf8("Compiling interfaces..."), 582 self.tr("Compiling interfaces..."),
583 self.trUtf8("Abort"), 0, numIDLs, 583 self.tr("Abort"), 0, numIDLs,
584 self.trUtf8("%v/%m Interfaces"), self) 584 self.tr("%v/%m Interfaces"), self)
585 progress.setModal(True) 585 progress.setModal(True)
586 progress.setMinimumDuration(0) 586 progress.setMinimumDuration(0)
587 i = 0 587 i = 0
588 588
589 for fn in self.project.pdata["INTERFACES"]: 589 for fn in self.project.pdata["INTERFACES"]:
611 611
612 files = [self.project.getRelativePath(itm.fileName()) 612 files = [self.project.getRelativePath(itm.fileName())
613 for itm in items] 613 for itm in items]
614 numIDLs = len(files) 614 numIDLs = len(files)
615 progress = E5ProgressDialog( 615 progress = E5ProgressDialog(
616 self.trUtf8("Compiling interfaces..."), 616 self.tr("Compiling interfaces..."),
617 self.trUtf8("Abort"), 0, numIDLs, 617 self.tr("Abort"), 0, numIDLs,
618 self.trUtf8("%v/%m Interfaces"), self) 618 self.tr("%v/%m Interfaces"), self)
619 progress.setModal(True) 619 progress.setModal(True)
620 progress.setMinimumDuration(0) 620 progress.setMinimumDuration(0)
621 i = 0 621 i = 0
622 622
623 for fn in files: 623 for fn in files:

eric ide

mercurial