Project/ProjectOthersBrowser.py

branch
Py2 comp.
changeset 3057
10516539f238
parent 2525
8b507a9a2d40
parent 2995
63d874899b8b
child 3058
0a02c433f52d
equal deleted inserted replaced
3056:9986ec0e559a 3057:10516539f238
2 2
3 # Copyright (c) 2002 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> 3 # Copyright (c) 2002 - 2013 Detlev Offenbach <detlev@die-offenbachs.de>
4 # 4 #
5 5
6 """ 6 """
7 Module implementing a class used to display the parts of the project, that don't fit 7 Module implementing a class used to display the parts of the project, that
8 the other categories. 8 don't fit the other categories.
9 """ 9 """
10 10
11 from __future__ import unicode_literals # __IGNORE_WARNING__ 11 from __future__ import unicode_literals # __IGNORE_WARNING__
12 12
13 import mimetypes 13 import mimetypes
21 from .ProjectBaseBrowser import ProjectBaseBrowser 21 from .ProjectBaseBrowser import ProjectBaseBrowser
22 22
23 23
24 class ProjectOthersBrowser(ProjectBaseBrowser): 24 class ProjectOthersBrowser(ProjectBaseBrowser):
25 """ 25 """
26 A class used to display the parts of the project, that don't fit the other categories. 26 A class used to display the parts of the project, that don't fit the
27 other categories.
27 28
28 @signal sourceFile(str) emitted to open a file 29 @signal sourceFile(str) emitted to open a file
29 @signal pixmapFile(str) emitted to open a pixmap file 30 @signal pixmapFile(str) emitted to open a pixmap file
30 @signal pixmapEditFile(str) emitted to edit a pixmap file 31 @signal pixmapEditFile(str) emitted to edit a pixmap file
31 @signal svgFile(str) emitted to open a SVG file 32 @signal svgFile(str) emitted to open a SVG file
32 @signal closeSourceWindow(str) emitted after a file has been removed/deleted 33 @signal closeSourceWindow(str) emitted after a file has been
33 from the project 34 removed/deleted from the project
34 @signal showMenu(str, QMenu) emitted when a menu is about to be shown. The name 35 @signal showMenu(str, QMenu) emitted when a menu is about to be shown.
35 of the menu and a reference to the menu are given. 36 The name of the menu and a reference to the menu are given.
36 """ 37 """
37 showMenu = pyqtSignal(str, QMenu) 38 showMenu = pyqtSignal(str, QMenu)
38 39
39 def __init__(self, project, parent=None): 40 def __init__(self, project, parent=None):
40 """ 41 """
41 Constructor 42 Constructor
42 43
43 @param project reference to the project object 44 @param project reference to the project object
44 @param parent parent widget of this browser (QWidget) 45 @param parent parent widget of this browser (QWidget)
45 """ 46 """
46 ProjectBaseBrowser.__init__(self, project, ProjectBrowserOthersType, parent) 47 ProjectBaseBrowser.__init__(self, project, ProjectBrowserOthersType,
48 parent)
47 49
48 self.selectedItemsFilter = [ProjectBrowserFileItem, ProjectBrowserDirectoryItem] 50 self.selectedItemsFilter = [ProjectBrowserFileItem,
51 ProjectBrowserDirectoryItem]
49 self.specialMenuEntries = [1] 52 self.specialMenuEntries = [1]
50 53
51 self.setWindowTitle(self.trUtf8('Others')) 54 self.setWindowTitle(self.trUtf8('Others'))
52 55
53 self.setWhatsThis(self.trUtf8( 56 self.setWhatsThis(self.trUtf8(
72 self._editPixmap) 75 self._editPixmap)
73 self.menu.addSeparator() 76 self.menu.addSeparator()
74 self.renameFileAct = self.menu.addAction(self.trUtf8('Rename file'), 77 self.renameFileAct = self.menu.addAction(self.trUtf8('Rename file'),
75 self._renameFile) 78 self._renameFile)
76 self.menuActions.append(self.renameFileAct) 79 self.menuActions.append(self.renameFileAct)
77 act = self.menu.addAction(self.trUtf8('Remove from project'), self.__removeItem) 80 act = self.menu.addAction(
81 self.trUtf8('Remove from project'), self.__removeItem)
78 self.menuActions.append(act) 82 self.menuActions.append(act)
79 act = self.menu.addAction(self.trUtf8('Delete'), self.__deleteItem) 83 act = self.menu.addAction(self.trUtf8('Delete'), self.__deleteItem)
80 self.menuActions.append(act) 84 self.menuActions.append(act)
81 self.menu.addSeparator() 85 self.menu.addSeparator()
82 self.menu.addAction(self.trUtf8('Add files...'), self.project.addOthersFiles) 86 self.menu.addAction(
83 self.menu.addAction(self.trUtf8('Add directory...'), self.project.addOthersDir) 87 self.trUtf8('Add files...'), self.project.addOthersFiles)
88 self.menu.addAction(
89 self.trUtf8('Add directory...'), self.project.addOthersDir)
84 self.menu.addSeparator() 90 self.menu.addSeparator()
85 self.menu.addAction(self.trUtf8('Refresh'), self.__refreshItem) 91 self.menu.addAction(self.trUtf8('Refresh'), self.__refreshItem)
86 self.menu.addSeparator() 92 self.menu.addSeparator()
87 self.menu.addAction(self.trUtf8('Copy Path to Clipboard'), 93 self.menu.addAction(self.trUtf8('Copy Path to Clipboard'),
88 self._copyToClipboard) 94 self._copyToClipboard)
110 116
111 self.multiMenu.addSeparator() 117 self.multiMenu.addSeparator()
112 act = self.multiMenu.addAction(self.trUtf8('Remove from project'), 118 act = self.multiMenu.addAction(self.trUtf8('Remove from project'),
113 self.__removeItem) 119 self.__removeItem)
114 self.multiMenuActions.append(act) 120 self.multiMenuActions.append(act)
115 act = self.multiMenu.addAction(self.trUtf8('Delete'), self.__deleteItem) 121 act = self.multiMenu.addAction(
122 self.trUtf8('Delete'), self.__deleteItem)
116 self.multiMenuActions.append(act) 123 self.multiMenuActions.append(act)
117 self.multiMenu.addSeparator() 124 self.multiMenu.addSeparator()
118 self.multiMenu.addAction(self.trUtf8('Expand all directories'), 125 self.multiMenu.addAction(self.trUtf8('Expand all directories'),
119 self._expandAllDirs) 126 self._expandAllDirs)
120 self.multiMenu.addAction(self.trUtf8('Collapse all directories'), 127 self.multiMenu.addAction(self.trUtf8('Collapse all directories'),
236 else: 243 else:
237 QDesktopServices.openUrl(QUrl(itm.fileName())) 244 QDesktopServices.openUrl(QUrl(itm.fileName()))
238 245
239 def __removeItem(self): 246 def __removeItem(self):
240 """ 247 """
241 Private slot to remove the selected entry from the OTHERS project data area. 248 Private slot to remove the selected entry from the OTHERS project
249 data area.
242 """ 250 """
243 itmList = self.getSelectedItems() 251 itmList = self.getSelectedItems()
244 252
245 for itm in itmList[:]: 253 for itm in itmList[:]:
246 if isinstance(itm, ProjectBrowserFileItem): 254 if isinstance(itm, ProjectBrowserFileItem):
251 dn = itm.dirName() 259 dn = itm.dirName()
252 self.project.removeDirectory(dn) 260 self.project.removeDirectory(dn)
253 261
254 def __deleteItem(self): 262 def __deleteItem(self):
255 """ 263 """
256 Private method to delete the selected entry from the OTHERS project data area. 264 Private method to delete the selected entry from the OTHERS project
265 data area.
257 """ 266 """
258 itmList = self.getSelectedItems() 267 itmList = self.getSelectedItems()
259 268
260 items = [] 269 items = []
261 names = [] 270 names = []
281 names.extend(dirNames) 290 names.extend(dirNames)
282 del itmList 291 del itmList
283 del dirFullNames 292 del dirFullNames
284 del dirNames 293 del dirNames
285 294
286 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog 295 from UI.DeleteFilesConfirmationDialog import \
296 DeleteFilesConfirmationDialog
287 dlg = DeleteFilesConfirmationDialog(self.parent(), 297 dlg = DeleteFilesConfirmationDialog(self.parent(),
288 self.trUtf8("Delete files/directories"), 298 self.trUtf8("Delete files/directories"),
289 self.trUtf8("Do you really want to delete these entries from the project?"), 299 self.trUtf8(
300 "Do you really want to delete these entries from the"
301 " project?"),
290 names) 302 names)
291 303
292 if dlg.exec_() == QDialog.Accepted: 304 if dlg.exec_() == QDialog.Accepted:
293 for itm, fn2, fn in zip(items[:], fullNames, names): 305 for itm, fn2, fn in zip(items[:], fullNames, names):
294 if isinstance(itm, ProjectBrowserFileItem): 306 if isinstance(itm, ProjectBrowserFileItem):

eric ide

mercurial