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): |
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): |