eric6/Project/ProjectProtocolsBrowser.py

changeset 7266
d001bc703c29
parent 7229
53054eb5b15a
child 7360
9190402e4505
equal deleted inserted replaced
7265:0665c4d509c9 7266:d001bc703c29
18 18
19 from E5Gui.E5Application import e5App 19 from E5Gui.E5Application import e5App
20 from E5Gui import E5MessageBox 20 from E5Gui import E5MessageBox
21 from E5Gui.E5ProgressDialog import E5ProgressDialog 21 from E5Gui.E5ProgressDialog import E5ProgressDialog
22 22
23 from .ProjectBrowserModel import ProjectBrowserFileItem, \ 23 from .ProjectBrowserModel import (
24 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \ 24 ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
25 ProjectBrowserProtocolsType 25 ProjectBrowserDirectoryItem, ProjectBrowserProtocolsType
26 )
26 from .ProjectBaseBrowser import ProjectBaseBrowser 27 from .ProjectBaseBrowser import ProjectBaseBrowser
27 28
28 from UI.BrowserModel import BrowserFileItem, BrowserClassItem, \ 29 from UI.BrowserModel import (
29 BrowserMethodItem, BrowserClassAttributeItem 30 BrowserFileItem, BrowserClassItem, BrowserMethodItem,
31 BrowserClassAttributeItem
32 )
30 import UI.PixmapCache 33 import UI.PixmapCache
31 34
32 import Preferences 35 import Preferences
33 import Utilities 36 import Utilities
34 37
58 @type QWidget 61 @type QWidget
59 """ 62 """
60 ProjectBaseBrowser.__init__(self, project, 63 ProjectBaseBrowser.__init__(self, project,
61 ProjectBrowserProtocolsType, parent) 64 ProjectBrowserProtocolsType, parent)
62 65
63 self.selectedItemsFilter = \ 66 self.selectedItemsFilter = [ProjectBrowserFileItem,
64 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem] 67 ProjectBrowserSimpleDirectoryItem]
65 68
66 self.setWindowTitle(self.tr('Protocols (protobuf)')) 69 self.setWindowTitle(self.tr('Protocols (protobuf)'))
67 70
68 self.setWhatsThis(self.tr( 71 self.setWhatsThis(self.tr(
69 """<b>Project Protocols Browser</b>""" 72 """<b>Project Protocols Browser</b>"""
296 [ProjectBrowserFileItem, BrowserClassItem, 299 [ProjectBrowserFileItem, BrowserClassItem,
297 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem]) 300 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem])
298 cnt = categories["sum"] 301 cnt = categories["sum"]
299 302
300 bfcnt = categories[str(ProjectBrowserFileItem)] 303 bfcnt = categories[str(ProjectBrowserFileItem)]
301 cmcnt = categories[str(BrowserClassItem)] + \ 304 cmcnt = (
305 categories[str(BrowserClassItem)] +
302 categories[str(BrowserMethodItem)] 306 categories[str(BrowserMethodItem)]
307 )
303 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)] 308 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)]
304 if cnt > 1 and cnt == bfcnt: 309 if cnt > 1 and cnt == bfcnt:
305 self.multiMenu.popup(self.mapToGlobal(coord)) 310 self.multiMenu.popup(self.mapToGlobal(coord))
306 elif cnt > 1 and cnt == sdcnt: 311 elif cnt > 1 and cnt == sdcnt:
307 self.dirMultiMenu.popup(self.mapToGlobal(coord)) 312 self.dirMultiMenu.popup(self.mapToGlobal(coord))
310 if cnt == 1 and index.isValid(): 315 if cnt == 1 and index.isValid():
311 if bfcnt == 1 or cmcnt == 1: 316 if bfcnt == 1 or cmcnt == 1:
312 itm = self.model().item(index) 317 itm = self.model().item(index)
313 if isinstance(itm, ProjectBrowserFileItem): 318 if isinstance(itm, ProjectBrowserFileItem):
314 self.sourceMenu.popup(self.mapToGlobal(coord)) 319 self.sourceMenu.popup(self.mapToGlobal(coord))
315 elif isinstance(itm, BrowserClassItem) or \ 320 elif isinstance(
316 isinstance(itm, BrowserMethodItem): 321 itm,
322 (BrowserClassItem, BrowserMethodItem)
323 ):
317 self.menu.popup(self.mapToGlobal(coord)) 324 self.menu.popup(self.mapToGlobal(coord))
318 else: 325 else:
319 self.backMenu.popup(self.mapToGlobal(coord)) 326 self.backMenu.popup(self.mapToGlobal(coord))
320 elif sdcnt == 1: 327 elif sdcnt == 1:
321 self.dirMenu.popup(self.mapToGlobal(coord)) 328 self.dirMenu.popup(self.mapToGlobal(coord))
390 def __addProtocolFiles(self): 397 def __addProtocolFiles(self):
391 """ 398 """
392 Private method to add protocol files to the project. 399 Private method to add protocol files to the project.
393 """ 400 """
394 itm = self.model().item(self.currentIndex()) 401 itm = self.model().item(self.currentIndex())
395 if isinstance(itm, ProjectBrowserFileItem) or \ 402 if isinstance(
396 isinstance(itm, BrowserClassItem) or \ 403 itm,
397 isinstance(itm, BrowserMethodItem): 404 (ProjectBrowserFileItem, BrowserClassItem, BrowserMethodItem)
405 ):
398 dn = os.path.dirname(itm.fileName()) 406 dn = os.path.dirname(itm.fileName())
399 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ 407 elif isinstance(
400 isinstance(itm, ProjectBrowserDirectoryItem): 408 itm,
409 (ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem)
410 ):
401 dn = itm.dirName() 411 dn = itm.dirName()
402 else: 412 else:
403 dn = None 413 dn = None
404 self.project.addFiles('protocol', dn) 414 self.project.addFiles('protocol', dn)
405 415
406 def __addProtocolsDirectory(self): 416 def __addProtocolsDirectory(self):
407 """ 417 """
408 Private method to add protocol files of a directory to the project. 418 Private method to add protocol files of a directory to the project.
409 """ 419 """
410 itm = self.model().item(self.currentIndex()) 420 itm = self.model().item(self.currentIndex())
411 if isinstance(itm, ProjectBrowserFileItem) or \ 421 if isinstance(
412 isinstance(itm, BrowserClassItem) or \ 422 itm,
413 isinstance(itm, BrowserMethodItem): 423 (ProjectBrowserFileItem, BrowserClassItem, BrowserMethodItem)
424 ):
414 dn = os.path.dirname(itm.fileName()) 425 dn = os.path.dirname(itm.fileName())
415 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ 426 elif isinstance(
416 isinstance(itm, ProjectBrowserDirectoryItem): 427 itm,
428 (ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem)
429 ):
417 dn = itm.dirName() 430 dn = itm.dirName()
418 else: 431 else:
419 dn = None 432 dn = None
420 self.project.addDirectory('protocol', dn) 433 self.project.addDirectory('protocol', dn)
421 434
431 fn2 = itm.fileName() 444 fn2 = itm.fileName()
432 fullNames.append(fn2) 445 fullNames.append(fn2)
433 fn = self.project.getRelativePath(fn2) 446 fn = self.project.getRelativePath(fn2)
434 files.append(fn) 447 files.append(fn)
435 448
436 from UI.DeleteFilesConfirmationDialog import \ 449 from UI.DeleteFilesConfirmationDialog import (
437 DeleteFilesConfirmationDialog 450 DeleteFilesConfirmationDialog
451 )
438 dlg = DeleteFilesConfirmationDialog( 452 dlg = DeleteFilesConfirmationDialog(
439 self.parent(), 453 self.parent(),
440 self.tr("Delete Protocols"), 454 self.tr("Delete Protocols"),
441 self.tr("Do you really want to delete these protocol files from" 455 self.tr("Do you really want to delete these protocol files from"
442 " the project?"), 456 " the project?"),
469 exe = sys.executable 483 exe = sys.executable
470 exeArgs = ['-m', 'grpc_tools.protoc'] 484 exeArgs = ['-m', 'grpc_tools.protoc']
471 else: 485 else:
472 exe = Preferences.getProtobuf("protoc") 486 exe = Preferences.getProtobuf("protoc")
473 if exe == "": 487 if exe == "":
474 exe = Utilities.isWindowsPlatform() and \ 488 exe = (
489 Utilities.isWindowsPlatform() and
475 "protoc.exe" or "protoc" 490 "protoc.exe" or "protoc"
491 )
476 if not Utilities.isinpath(exe): 492 if not Utilities.isinpath(exe):
477 exe = None 493 exe = None
478 494
479 return exe, exeArgs 495 return exe, exeArgs
480 496

eric ide

mercurial