20 from .ProjectBrowserSortFilterProxyModel import ProjectBrowserSortFilterProxyModel |
20 from .ProjectBrowserSortFilterProxyModel import ProjectBrowserSortFilterProxyModel |
21 |
21 |
22 class ProjectBaseBrowser(Browser): |
22 class ProjectBaseBrowser(Browser): |
23 """ |
23 """ |
24 Baseclass implementing common functionality for the various project browsers. |
24 Baseclass implementing common functionality for the various project browsers. |
|
25 |
|
26 @signal closeSourceWindow(str) emitted to close a source file |
25 """ |
27 """ |
|
28 closeSourceWindow = pyqtSignal(str) |
|
29 |
26 def __init__(self, project, type_, parent = None): |
30 def __init__(self, project, type_, parent = None): |
27 """ |
31 """ |
28 Constructor |
32 Constructor |
29 |
33 |
30 @param project reference to the project object |
34 @param project reference to the project object |
53 self.DeselectFlags = QItemSelectionModel.SelectionFlags(\ |
57 self.DeselectFlags = QItemSelectionModel.SelectionFlags(\ |
54 QItemSelectionModel.Deselect | QItemSelectionModel.Rows) |
58 QItemSelectionModel.Deselect | QItemSelectionModel.Rows) |
55 |
59 |
56 self.setContextMenuPolicy(Qt.CustomContextMenu) |
60 self.setContextMenuPolicy(Qt.CustomContextMenu) |
57 self.customContextMenuRequested.connect(self._contextMenuRequested) |
61 self.customContextMenuRequested.connect(self._contextMenuRequested) |
58 self.connect(self, SIGNAL("activated(const QModelIndex &)"), self._openItem) |
62 self.activated.connect(self._openItem) |
59 self.connect(self._model, SIGNAL("rowsInserted(const QModelIndex &, int, int)"), |
63 self._model.rowsInserted.connect(self.__modelRowsInserted) |
60 self.__modelRowsInserted) |
|
61 self._connectExpandedCollapsed() |
64 self._connectExpandedCollapsed() |
62 |
65 |
63 self._createPopupMenus() |
66 self._createPopupMenus() |
64 |
67 |
65 self.currentItemName = None |
68 self.currentItemName = None |
71 |
74 |
72 def _connectExpandedCollapsed(self): |
75 def _connectExpandedCollapsed(self): |
73 """ |
76 """ |
74 Protected method to connect the expanded and collapsed signals. |
77 Protected method to connect the expanded and collapsed signals. |
75 """ |
78 """ |
76 self.connect(self, SIGNAL("expanded(const QModelIndex &)"), |
79 self.expanded.connect(self._resizeColumns) |
77 self._resizeColumns) |
80 self.collapsed.connect(self._resizeColumns) |
78 self.connect(self, SIGNAL("collapsed(const QModelIndex &)"), |
|
79 self._resizeColumns) |
|
80 |
81 |
81 def _disconnectExpandedCollapsed(self): |
82 def _disconnectExpandedCollapsed(self): |
82 """ |
83 """ |
83 Protected method to disconnect the expanded and collapsed signals. |
84 Protected method to disconnect the expanded and collapsed signals. |
84 """ |
85 """ |
85 self.disconnect(self, SIGNAL("expanded(const QModelIndex &)"), |
86 self.expanded.disconnect(self._resizeColumns) |
86 self._resizeColumns) |
87 self.collapsed.disconnect(self._resizeColumns) |
87 self.disconnect(self, SIGNAL("collapsed(const QModelIndex &)"), |
|
88 self._resizeColumns) |
|
89 |
88 |
90 def _createPopupMenus(self): |
89 def _createPopupMenus(self): |
91 """ |
90 """ |
92 Protected overloaded method to generate the popup menus. |
91 Protected overloaded method to generate the popup menus. |
93 """ |
92 """ |
257 """ |
256 """ |
258 itmList = self.getSelectedItems() |
257 itmList = self.getSelectedItems() |
259 |
258 |
260 for itm in itmList[:]: |
259 for itm in itmList[:]: |
261 fn = itm.fileName() |
260 fn = itm.fileName() |
262 self.emit(SIGNAL('closeSourceWindow'), fn) |
261 self.closeSourceWindow.emit(fn) |
263 self.project.removeFile(fn) |
262 self.project.removeFile(fn) |
264 |
263 |
265 def _removeDir(self): |
264 def _removeDir(self): |
266 """ |
265 """ |
267 Protected method to remove a (single) directory from the project. |
266 Protected method to remove a (single) directory from the project. |