Project/ProjectInterfacesBrowser.py

branch
Py2 comp.
changeset 3058
0a02c433f52d
parent 3057
10516539f238
parent 3030
4a0a82ddd9d2
child 3060
5883ce99ee12
equal deleted inserted replaced
3057:10516539f238 3058:0a02c433f52d
95 self.dirMenuActions = [] 95 self.dirMenuActions = []
96 self.dirMultiMenuActions = [] 96 self.dirMultiMenuActions = []
97 97
98 self.sourceMenu = QMenu(self) 98 self.sourceMenu = QMenu(self)
99 if self.omniidl is not None: 99 if self.omniidl is not None:
100 self.sourceMenu.addAction(self.trUtf8('Compile interface'), 100 self.sourceMenu.addAction(
101 self.__compileInterface) 101 self.trUtf8('Compile interface'), self.__compileInterface)
102 self.sourceMenu.addAction(self.trUtf8('Compile all interfaces'), 102 self.sourceMenu.addAction(
103 self.trUtf8('Compile all interfaces'),
103 self.__compileAllInterfaces) 104 self.__compileAllInterfaces)
104 self.sourceMenu.addAction(self.trUtf8('Open'), self._openItem) 105 self.sourceMenu.addAction(self.trUtf8('Open'), self._openItem)
105 self.sourceMenu.addSeparator() 106 self.sourceMenu.addSeparator()
106 act = self.sourceMenu.addAction( 107 act = self.sourceMenu.addAction(
107 self.trUtf8('Rename file'), self._renameFile) 108 self.trUtf8('Rename file'), self._renameFile)
108 self.menuActions.append(act) 109 self.menuActions.append(act)
109 act = self.sourceMenu.addAction(self.trUtf8('Remove from project'), 110 act = self.sourceMenu.addAction(
110 self._removeFile) 111 self.trUtf8('Remove from project'), self._removeFile)
111 self.menuActions.append(act) 112 self.menuActions.append(act)
112 act = self.sourceMenu.addAction( 113 act = self.sourceMenu.addAction(
113 self.trUtf8('Delete'), self.__deleteFile) 114 self.trUtf8('Delete'), self.__deleteFile)
114 self.menuActions.append(act) 115 self.menuActions.append(act)
115 self.sourceMenu.addSeparator() 116 self.sourceMenu.addSeparator()
116 self.sourceMenu.addAction(self.trUtf8('Add interfaces...'), 117 self.sourceMenu.addAction(
117 self.__addInterfaceFiles) 118 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles)
118 self.sourceMenu.addAction(self.trUtf8('Add interfaces directory...'), 119 self.sourceMenu.addAction(
120 self.trUtf8('Add interfaces directory...'),
119 self.__addInterfacesDirectory) 121 self.__addInterfacesDirectory)
120 self.sourceMenu.addSeparator() 122 self.sourceMenu.addSeparator()
121 self.sourceMenu.addAction(self.trUtf8('Copy Path to Clipboard'), 123 self.sourceMenu.addAction(
122 self._copyToClipboard) 124 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard)
123 self.sourceMenu.addSeparator() 125 self.sourceMenu.addSeparator()
124 self.sourceMenu.addAction(self.trUtf8('Expand all directories'), 126 self.sourceMenu.addAction(
125 self._expandAllDirs) 127 self.trUtf8('Expand all directories'), self._expandAllDirs)
126 self.sourceMenu.addAction(self.trUtf8('Collapse all directories'), 128 self.sourceMenu.addAction(
127 self._collapseAllDirs) 129 self.trUtf8('Collapse all directories'), self._collapseAllDirs)
128 self.sourceMenu.addSeparator() 130 self.sourceMenu.addSeparator()
129 self.sourceMenu.addAction(self.trUtf8('Configure...'), self._configure) 131 self.sourceMenu.addAction(self.trUtf8('Configure...'), self._configure)
130 self.sourceMenu.addAction( 132 self.sourceMenu.addAction(
131 self.trUtf8('Configure CORBA...'), self.__configureCorba) 133 self.trUtf8('Configure CORBA...'), self.__configureCorba)
132 134
133 self.menu = QMenu(self) 135 self.menu = QMenu(self)
134 if self.omniidl is not None: 136 if self.omniidl is not None:
135 self.menu.addAction( 137 self.menu.addAction(
136 self.trUtf8('Compile interface'), self.__compileInterface) 138 self.trUtf8('Compile interface'), self.__compileInterface)
137 self.menu.addAction(self.trUtf8('Compile all interfaces'), 139 self.menu.addAction(
140 self.trUtf8('Compile all interfaces'),
138 self.__compileAllInterfaces) 141 self.__compileAllInterfaces)
139 self.menu.addAction(self.trUtf8('Open'), self._openItem) 142 self.menu.addAction(self.trUtf8('Open'), self._openItem)
140 self.menu.addSeparator() 143 self.menu.addSeparator()
141 self.menu.addAction( 144 self.menu.addAction(
142 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles) 145 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles)
143 self.menu.addAction(self.trUtf8('Add interfaces directory...'), 146 self.menu.addAction(
147 self.trUtf8('Add interfaces directory...'),
144 self.__addInterfacesDirectory) 148 self.__addInterfacesDirectory)
145 self.menu.addSeparator() 149 self.menu.addSeparator()
146 self.menu.addAction(self.trUtf8('Expand all directories'), 150 self.menu.addAction(
147 self._expandAllDirs) 151 self.trUtf8('Expand all directories'), self._expandAllDirs)
148 self.menu.addAction(self.trUtf8('Collapse all directories'), 152 self.menu.addAction(
149 self._collapseAllDirs) 153 self.trUtf8('Collapse all directories'), self._collapseAllDirs)
150 self.menu.addSeparator() 154 self.menu.addSeparator()
151 self.menu.addAction(self.trUtf8('Configure...'), self._configure) 155 self.menu.addAction(self.trUtf8('Configure...'), self._configure)
152 self.menu.addAction( 156 self.menu.addAction(
153 self.trUtf8('Configure CORBA...'), self.__configureCorba) 157 self.trUtf8('Configure CORBA...'), self.__configureCorba)
154 158
155 self.backMenu = QMenu(self) 159 self.backMenu = QMenu(self)
156 if self.omniidl is not None: 160 if self.omniidl is not None:
157 self.backMenu.addAction(self.trUtf8('Compile all interfaces'), 161 self.backMenu.addAction(
162 self.trUtf8('Compile all interfaces'),
158 self.__compileAllInterfaces) 163 self.__compileAllInterfaces)
159 self.backMenu.addSeparator() 164 self.backMenu.addSeparator()
160 self.backMenu.addAction(self.trUtf8('Add interfaces...'), 165 self.backMenu.addAction(
161 self.project.addIdlFiles) 166 self.trUtf8('Add interfaces...'), self.project.addIdlFiles)
162 self.backMenu.addAction(self.trUtf8('Add interfaces directory...'), 167 self.backMenu.addAction(
163 self.project.addIdlDir) 168 self.trUtf8('Add interfaces directory...'), self.project.addIdlDir)
164 self.backMenu.addSeparator() 169 self.backMenu.addSeparator()
165 self.backMenu.addAction(self.trUtf8('Expand all directories'), 170 self.backMenu.addAction(
166 self._expandAllDirs) 171 self.trUtf8('Expand all directories'), self._expandAllDirs)
167 self.backMenu.addAction(self.trUtf8('Collapse all directories'), 172 self.backMenu.addAction(
168 self._collapseAllDirs) 173 self.trUtf8('Collapse all directories'), self._collapseAllDirs)
169 self.backMenu.addSeparator() 174 self.backMenu.addSeparator()
170 self.backMenu.addAction(self.trUtf8('Configure...'), self._configure) 175 self.backMenu.addAction(self.trUtf8('Configure...'), self._configure)
171 self.backMenu.addAction( 176 self.backMenu.addAction(
172 self.trUtf8('Configure CORBA...'), self.__configureCorba) 177 self.trUtf8('Configure CORBA...'), self.__configureCorba)
173 self.backMenu.setEnabled(False) 178 self.backMenu.setEnabled(False)
174 179
175 # create the menu for multiple selected files 180 # create the menu for multiple selected files
176 self.multiMenu = QMenu(self) 181 self.multiMenu = QMenu(self)
177 if self.omniidl is not None: 182 if self.omniidl is not None:
178 self.multiMenu.addAction(self.trUtf8('Compile interfaces'), 183 self.multiMenu.addAction(
184 self.trUtf8('Compile interfaces'),
179 self.__compileSelectedInterfaces) 185 self.__compileSelectedInterfaces)
180 self.multiMenu.addAction(self.trUtf8('Open'), self._openItem) 186 self.multiMenu.addAction(self.trUtf8('Open'), self._openItem)
181 self.multiMenu.addSeparator() 187 self.multiMenu.addSeparator()
182 act = self.multiMenu.addAction(self.trUtf8('Remove from project'), 188 act = self.multiMenu.addAction(
183 self._removeFile) 189 self.trUtf8('Remove from project'), self._removeFile)
184 self.multiMenuActions.append(act) 190 self.multiMenuActions.append(act)
185 act = self.multiMenu.addAction( 191 act = self.multiMenu.addAction(
186 self.trUtf8('Delete'), self.__deleteFile) 192 self.trUtf8('Delete'), self.__deleteFile)
187 self.multiMenuActions.append(act) 193 self.multiMenuActions.append(act)
188 self.multiMenu.addSeparator() 194 self.multiMenu.addSeparator()
189 self.multiMenu.addAction(self.trUtf8('Expand all directories'), 195 self.multiMenu.addAction(
190 self._expandAllDirs) 196 self.trUtf8('Expand all directories'), self._expandAllDirs)
191 self.multiMenu.addAction(self.trUtf8('Collapse all directories'), 197 self.multiMenu.addAction(
192 self._collapseAllDirs) 198 self.trUtf8('Collapse all directories'), self._collapseAllDirs)
193 self.multiMenu.addSeparator() 199 self.multiMenu.addSeparator()
194 self.multiMenu.addAction(self.trUtf8('Configure...'), self._configure) 200 self.multiMenu.addAction(self.trUtf8('Configure...'), self._configure)
195 self.multiMenu.addAction( 201 self.multiMenu.addAction(
196 self.trUtf8('Configure CORBA...'), self.__configureCorba) 202 self.trUtf8('Configure CORBA...'), self.__configureCorba)
197 203
198 self.dirMenu = QMenu(self) 204 self.dirMenu = QMenu(self)
199 if self.omniidl is not None: 205 if self.omniidl is not None:
200 self.dirMenu.addAction(self.trUtf8('Compile all interfaces'), 206 self.dirMenu.addAction(
207 self.trUtf8('Compile all interfaces'),
201 self.__compileAllInterfaces) 208 self.__compileAllInterfaces)
202 self.dirMenu.addSeparator() 209 self.dirMenu.addSeparator()
203 act = self.dirMenu.addAction( 210 act = self.dirMenu.addAction(
204 self.trUtf8('Remove from project'), self._removeFile) 211 self.trUtf8('Remove from project'), self._removeFile)
205 self.dirMenuActions.append(act) 212 self.dirMenuActions.append(act)
207 self.trUtf8('Delete'), self._deleteDirectory) 214 self.trUtf8('Delete'), self._deleteDirectory)
208 self.dirMenuActions.append(act) 215 self.dirMenuActions.append(act)
209 self.dirMenu.addSeparator() 216 self.dirMenu.addSeparator()
210 self.dirMenu.addAction( 217 self.dirMenu.addAction(
211 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles) 218 self.trUtf8('Add interfaces...'), self.__addInterfaceFiles)
212 self.dirMenu.addAction(self.trUtf8('Add interfaces directory...'), 219 self.dirMenu.addAction(
220 self.trUtf8('Add interfaces directory...'),
213 self.__addInterfacesDirectory) 221 self.__addInterfacesDirectory)
214 self.dirMenu.addSeparator() 222 self.dirMenu.addSeparator()
215 self.dirMenu.addAction(self.trUtf8('Copy Path to Clipboard'), 223 self.dirMenu.addAction(
216 self._copyToClipboard) 224 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard)
217 self.dirMenu.addSeparator() 225 self.dirMenu.addSeparator()
218 self.dirMenu.addAction(self.trUtf8('Expand all directories'), 226 self.dirMenu.addAction(
219 self._expandAllDirs) 227 self.trUtf8('Expand all directories'), self._expandAllDirs)
220 self.dirMenu.addAction(self.trUtf8('Collapse all directories'), 228 self.dirMenu.addAction(
221 self._collapseAllDirs) 229 self.trUtf8('Collapse all directories'), self._collapseAllDirs)
222 self.dirMenu.addSeparator() 230 self.dirMenu.addSeparator()
223 self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure) 231 self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure)
224 self.dirMenu.addAction( 232 self.dirMenu.addAction(
225 self.trUtf8('Configure CORBA...'), self.__configureCorba) 233 self.trUtf8('Configure CORBA...'), self.__configureCorba)
226 234
227 self.dirMultiMenu = QMenu(self) 235 self.dirMultiMenu = QMenu(self)
228 if self.omniidl is not None: 236 if self.omniidl is not None:
229 self.dirMultiMenu.addAction(self.trUtf8('Compile all interfaces'), 237 self.dirMultiMenu.addAction(
238 self.trUtf8('Compile all interfaces'),
230 self.__compileAllInterfaces) 239 self.__compileAllInterfaces)
231 self.dirMultiMenu.addSeparator() 240 self.dirMultiMenu.addSeparator()
232 self.dirMultiMenu.addAction(self.trUtf8('Add interfaces...'), 241 self.dirMultiMenu.addAction(
233 self.project.addIdlFiles) 242 self.trUtf8('Add interfaces...'), self.project.addIdlFiles)
234 self.dirMultiMenu.addAction(self.trUtf8('Add interfaces directory...'), 243 self.dirMultiMenu.addAction(
235 self.project.addIdlDir) 244 self.trUtf8('Add interfaces directory...'), self.project.addIdlDir)
236 self.dirMultiMenu.addSeparator() 245 self.dirMultiMenu.addSeparator()
237 self.dirMultiMenu.addAction(self.trUtf8('Expand all directories'), 246 self.dirMultiMenu.addAction(
238 self._expandAllDirs) 247 self.trUtf8('Expand all directories'), self._expandAllDirs)
239 self.dirMultiMenu.addAction(self.trUtf8('Collapse all directories'), 248 self.dirMultiMenu.addAction(
240 self._collapseAllDirs) 249 self.trUtf8('Collapse all directories'), self._collapseAllDirs)
241 self.dirMultiMenu.addSeparator() 250 self.dirMultiMenu.addSeparator()
242 self.dirMultiMenu.addAction( 251 self.dirMultiMenu.addAction(
243 self.trUtf8('Configure...'), self._configure) 252 self.trUtf8('Configure...'), self._configure)
244 self.dirMultiMenu.addAction(self.trUtf8('Configure CORBA...'), 253 self.dirMultiMenu.addAction(self.trUtf8('Configure CORBA...'),
245 self.__configureCorba) 254 self.__configureCorba)
353 362
354 for itm in itmList: 363 for itm in itmList:
355 if isinstance(itm, BrowserFileItem): 364 if isinstance(itm, BrowserFileItem):
356 self.sourceFile[str].emit(itm.fileName()) 365 self.sourceFile[str].emit(itm.fileName())
357 elif isinstance(itm, BrowserClassItem): 366 elif isinstance(itm, BrowserClassItem):
358 self.sourceFile[str, int].emit(itm.fileName(), 367 self.sourceFile[str, int].emit(
359 itm.classObject().lineno) 368 itm.fileName(), itm.classObject().lineno)
360 elif isinstance(itm, BrowserMethodItem): 369 elif isinstance(itm, BrowserMethodItem):
361 self.sourceFile[str, int].emit(itm.fileName(), 370 self.sourceFile[str, int].emit(
362 itm.functionObject().lineno) 371 itm.fileName(), itm.functionObject().lineno)
363 elif isinstance(itm, BrowserClassAttributeItem): 372 elif isinstance(itm, BrowserClassAttributeItem):
364 self.sourceFile[str, int].emit(itm.fileName(), 373 self.sourceFile[str, int].emit(
365 itm.attributeObject().lineno) 374 itm.fileName(), itm.attributeObject().lineno)
366 375
367 def __addInterfaceFiles(self): 376 def __addInterfaceFiles(self):
368 """ 377 """
369 Private method to add interface files to the project. 378 Private method to add interface files to the project.
370 """ 379 """
410 fn = self.project.getRelativePath(fn2) 419 fn = self.project.getRelativePath(fn2)
411 files.append(fn) 420 files.append(fn)
412 421
413 from UI.DeleteFilesConfirmationDialog import \ 422 from UI.DeleteFilesConfirmationDialog import \
414 DeleteFilesConfirmationDialog 423 DeleteFilesConfirmationDialog
415 dlg = DeleteFilesConfirmationDialog(self.parent(), 424 dlg = DeleteFilesConfirmationDialog(
425 self.parent(),
416 self.trUtf8("Delete interfaces"), 426 self.trUtf8("Delete interfaces"),
417 self.trUtf8("Do you really want to delete these interfaces from" 427 self.trUtf8("Do you really want to delete these interfaces from"
418 " the project?"), 428 " the project?"),
419 files) 429 files)
420 430
421 if dlg.exec_() == QDialog.Accepted: 431 if dlg.exec_() == QDialog.Accepted:
422 for fn2, fn in zip(fullNames, files): 432 for fn2, fn in zip(fullNames, files):
423 self.closeSourceWindow.emit(fn2) 433 self.closeSourceWindow.emit(fn2)
478 for dir in poaList + npoaList: 488 for dir in poaList + npoaList:
479 fileList += Utilities.direntries(dir, True, "*.py") 489 fileList += Utilities.direntries(dir, True, "*.py")
480 for file in fileList: 490 for file in fileList:
481 self.project.appendFile(file) 491 self.project.appendFile(file)
482 if not self.noDialog and not ui.notificationsEnabled(): 492 if not self.noDialog and not ui.notificationsEnabled():
483 E5MessageBox.information(self, 493 E5MessageBox.information(
494 self,
484 self.trUtf8("Interface Compilation"), 495 self.trUtf8("Interface Compilation"),
485 self.trUtf8( 496 self.trUtf8(
486 "The compilation of the interface file was" 497 "The compilation of the interface file was"
487 " successful.")) 498 " successful."))
488 else: 499 else:
489 ui.showNotification(UI.PixmapCache.getPixmap("corba48.png"), 500 ui.showNotification(
501 UI.PixmapCache.getPixmap("corba48.png"),
490 self.trUtf8("Interface Compilation"), 502 self.trUtf8("Interface Compilation"),
491 self.trUtf8( 503 self.trUtf8(
492 "The compilation of the interface file was" 504 "The compilation of the interface file was"
493 " successful.")) 505 " successful."))
494 else: 506 else:
495 if not self.noDialog: 507 if not self.noDialog:
496 E5MessageBox.information(self, 508 E5MessageBox.information(
509 self,
497 self.trUtf8("Interface Compilation"), 510 self.trUtf8("Interface Compilation"),
498 self.trUtf8( 511 self.trUtf8(
499 "The compilation of the interface file failed.")) 512 "The compilation of the interface file failed."))
500 else: 513 else:
501 ui.showNotification(UI.PixmapCache.getPixmap("corba48.png"), 514 ui.showNotification(
515 UI.PixmapCache.getPixmap("corba48.png"),
502 self.trUtf8("Interface Compilation"), 516 self.trUtf8("Interface Compilation"),
503 self.trUtf8( 517 self.trUtf8(
504 "The compilation of the interface file failed.")) 518 "The compilation of the interface file failed."))
505 self.compileProc = None 519 self.compileProc = None
506 520
536 return self.compileProc 550 return self.compileProc
537 else: 551 else:
538 self.compileRunning = False 552 self.compileRunning = False
539 if progress is not None: 553 if progress is not None:
540 progress.cancel() 554 progress.cancel()
541 E5MessageBox.critical(self, 555 E5MessageBox.critical(
556 self,
542 self.trUtf8('Process Generation Error'), 557 self.trUtf8('Process Generation Error'),
543 self.trUtf8( 558 self.trUtf8(
544 '<p>Could not start {0}.<br>' 559 '<p>Could not start {0}.<br>'
545 'Ensure that it is in the search path.</p>' 560 'Ensure that it is in the search path.</p>'
546 ).format(self.omniidl)) 561 ).format(self.omniidl))
560 """ 575 """
561 Private method to compile all interfaces to python. 576 Private method to compile all interfaces to python.
562 """ 577 """
563 if self.omniidl is not None: 578 if self.omniidl is not None:
564 numIDLs = len(self.project.pdata["INTERFACES"]) 579 numIDLs = len(self.project.pdata["INTERFACES"])
565 progress = QProgressDialog(self.trUtf8("Compiling interfaces..."), 580 progress = QProgressDialog(
581 self.trUtf8("Compiling interfaces..."),
566 self.trUtf8("Abort"), 0, numIDLs, self) 582 self.trUtf8("Abort"), 0, numIDLs, self)
567 progress.setModal(True) 583 progress.setModal(True)
568 progress.setMinimumDuration(0) 584 progress.setMinimumDuration(0)
569 i = 0 585 i = 0
570 586
592 items = self.getSelectedItems() 608 items = self.getSelectedItems()
593 609
594 files = [self.project.getRelativePath(itm.fileName()) \ 610 files = [self.project.getRelativePath(itm.fileName()) \
595 for itm in items] 611 for itm in items]
596 numIDLs = len(files) 612 numIDLs = len(files)
597 progress = QProgressDialog(self.trUtf8("Compiling interfaces..."), 613 progress = QProgressDialog(
614 self.trUtf8("Compiling interfaces..."),
598 self.trUtf8("Abort"), 0, numIDLs, self) 615 self.trUtf8("Abort"), 0, numIDLs, self)
599 progress.setModal(True) 616 progress.setModal(True)
600 progress.setMinimumDuration(0) 617 progress.setMinimumDuration(0)
601 i = 0 618 i = 0
602 619

eric ide

mercurial