Project/ProjectOthersBrowser.py

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

eric ide

mercurial