162 |
163 |
163 def _resort(self): |
164 def _resort(self): |
164 """ |
165 """ |
165 Protected slot to resort the tree. |
166 Protected slot to resort the tree. |
166 """ |
167 """ |
167 self.model().sort(self.header().sortIndicatorSection(), |
168 self.model().sort(self.header().sortIndicatorSection(), |
168 self.header().sortIndicatorOrder()) |
169 self.header().sortIndicatorOrder()) |
169 |
170 |
170 def __createPopupMenus(self): |
171 def __createPopupMenus(self): |
171 """ |
172 """ |
172 Private method to generate the various popup menus. |
173 Private method to generate the various popup menus. |
173 """ |
174 """ |
174 # create the popup menu for source files |
175 # create the popup menu for source files |
175 self.sourceMenu = QMenu(self) |
176 self.sourceMenu = QMenu(self) |
176 self.sourceMenu.addAction(QApplication.translate('Browser', 'Open'), |
177 self.sourceMenu.addAction(QApplication.translate('Browser', 'Open'), |
177 self._openItem) |
178 self._openItem) |
178 self.unittestAct = self.sourceMenu.addAction( |
179 self.unittestAct = self.sourceMenu.addAction( |
179 QApplication.translate('Browser', 'Run unittest...'), self.handleUnittest) |
180 QApplication.translate('Browser', 'Run unittest...'), self.handleUnittest) |
180 self.sourceMenu.addAction( |
181 self.sourceMenu.addAction( |
181 QApplication.translate('Browser', 'Copy Path to Clipboard'), |
182 QApplication.translate('Browser', 'Copy Path to Clipboard'), |
182 self._copyToClipboard) |
183 self._copyToClipboard) |
183 |
184 |
184 # create the popup menu for general use |
185 # create the popup menu for general use |
185 self.menu = QMenu(self) |
186 self.menu = QMenu(self) |
186 self.menu.addAction(QApplication.translate('Browser', 'Open'), self._openItem) |
187 self.menu.addAction(QApplication.translate('Browser', 'Open'), self._openItem) |
187 self.editPixmapAct = \ |
188 self.editPixmapAct = \ |
188 self.menu.addAction(QApplication.translate('Browser', 'Open in Icon Editor'), |
189 self.menu.addAction(QApplication.translate('Browser', 'Open in Icon Editor'), |
189 self._editPixmap) |
190 self._editPixmap) |
190 self.menu.addAction( |
191 self.menu.addAction( |
191 QApplication.translate('Browser', 'Copy Path to Clipboard'), |
192 QApplication.translate('Browser', 'Copy Path to Clipboard'), |
192 self._copyToClipboard) |
193 self._copyToClipboard) |
193 if self.__embeddedBrowser in [1, 2]: |
194 if self.__embeddedBrowser in [1, 2]: |
194 self.menu.addSeparator() |
195 self.menu.addSeparator() |
195 self.menu.addAction(QApplication.translate('Browser', 'Configure...'), |
196 self.menu.addAction(QApplication.translate('Browser', 'Configure...'), |
196 self.__configure) |
197 self.__configure) |
197 |
198 |
198 # create the menu for multiple selected files |
199 # create the menu for multiple selected files |
199 self.multiMenu = QMenu(self) |
200 self.multiMenu = QMenu(self) |
200 self.multiMenu.addAction(QApplication.translate('Browser', 'Open'), |
201 self.multiMenu.addAction(QApplication.translate('Browser', 'Open'), |
201 self._openItem) |
202 self._openItem) |
202 if self.__embeddedBrowser in [1, 2]: |
203 if self.__embeddedBrowser in [1, 2]: |
203 self.multiMenu.addSeparator() |
204 self.multiMenu.addSeparator() |
204 self.multiMenu.addAction(QApplication.translate('Browser', 'Configure...'), |
205 self.multiMenu.addAction(QApplication.translate('Browser', 'Configure...'), |
205 self.__configure) |
206 self.__configure) |
206 |
207 |
207 # create the directory menu |
208 # create the directory menu |
208 self.dirMenu = QMenu(self) |
209 self.dirMenu = QMenu(self) |
209 self.dirMenu.addAction(QApplication.translate('Browser', |
210 self.dirMenu.addAction(QApplication.translate('Browser', |
210 'New toplevel directory...'), |
211 'New toplevel directory...'), |
211 self.__newToplevelDir) |
212 self.__newToplevelDir) |
212 self.addAsTopLevelAct = self.dirMenu.addAction( |
213 self.addAsTopLevelAct = self.dirMenu.addAction( |
213 QApplication.translate('Browser', 'Add as toplevel directory'), |
214 QApplication.translate('Browser', 'Add as toplevel directory'), |
214 self.__addAsToplevelDir) |
215 self.__addAsToplevelDir) |
215 self.removeFromToplevelAct = self.dirMenu.addAction( |
216 self.removeFromToplevelAct = self.dirMenu.addAction( |
216 QApplication.translate('Browser', 'Remove from toplevel'), |
217 QApplication.translate('Browser', 'Remove from toplevel'), |
217 self.__removeToplevel) |
218 self.__removeToplevel) |
218 self.dirMenu.addSeparator() |
219 self.dirMenu.addSeparator() |
219 self.dirMenu.addAction(QApplication.translate('Browser', |
220 self.dirMenu.addAction(QApplication.translate('Browser', |
220 'Refresh directory'), |
221 'Refresh directory'), |
221 self.__refreshDirectory) |
222 self.__refreshDirectory) |
222 self.dirMenu.addSeparator() |
223 self.dirMenu.addSeparator() |
223 self.dirMenu.addAction(QApplication.translate('Browser', |
224 self.dirMenu.addAction(QApplication.translate('Browser', |
224 'Find in this directory'), |
225 'Find in this directory'), |
225 self.__findInDirectory) |
226 self.__findInDirectory) |
226 self.dirMenu.addAction(QApplication.translate('Browser', |
227 self.dirMenu.addAction(QApplication.translate('Browser', |
227 'Find&&Replace in this directory'), |
228 'Find&&Replace in this directory'), |
228 self.__replaceInDirectory) |
229 self.__replaceInDirectory) |
229 self.dirMenu.addAction( |
230 self.dirMenu.addAction( |
230 QApplication.translate('Browser', 'Copy Path to Clipboard'), |
231 QApplication.translate('Browser', 'Copy Path to Clipboard'), |
231 self._copyToClipboard) |
232 self._copyToClipboard) |
232 if self.__embeddedBrowser in [1, 2]: |
233 if self.__embeddedBrowser in [1, 2]: |
233 self.dirMenu.addSeparator() |
234 self.dirMenu.addSeparator() |
234 self.dirMenu.addAction(QApplication.translate('Browser', 'Configure...'), |
235 self.dirMenu.addAction(QApplication.translate('Browser', 'Configure...'), |
235 self.__configure) |
236 self.__configure) |
236 |
237 |
237 # create the background menu |
238 # create the background menu |
238 self.backMenu = QMenu(self) |
239 self.backMenu = QMenu(self) |
239 self.backMenu.addAction(QApplication.translate('Browser', |
240 self.backMenu.addAction(QApplication.translate('Browser', |
240 'New toplevel directory...'), |
241 'New toplevel directory...'), |
241 self.__newToplevelDir) |
242 self.__newToplevelDir) |
242 if self.__embeddedBrowser in [1, 2]: |
243 if self.__embeddedBrowser in [1, 2]: |
243 self.backMenu.addSeparator() |
244 self.backMenu.addSeparator() |
244 self.backMenu.addAction(QApplication.translate('Browser', 'Configure...'), |
245 self.backMenu.addAction(QApplication.translate('Browser', 'Configure...'), |
245 self.__configure) |
246 self.__configure) |
246 |
247 |
247 def mouseDoubleClickEvent(self, mouseEvent): |
248 def mouseDoubleClickEvent(self, mouseEvent): |
248 """ |
249 """ |
249 Protected method of QAbstractItemView. |
250 Protected method of QAbstractItemView. |
250 |
251 |
251 Reimplemented to disable expanding/collapsing |
252 Reimplemented to disable expanding/collapsing |
252 of items when double-clicking. Instead the double-clicked entry is opened. |
253 of items when double-clicking. Instead the double-clicked entry is opened. |
253 |
254 |
254 @param mouseEvent the mouse event (QMouseEvent) |
255 @param mouseEvent the mouse event (QMouseEvent) |
356 if type_ is None or type_.split("/")[0] == "text": |
357 if type_ is None or type_.split("/")[0] == "text": |
357 self.sourceFile[str].emit(itm.fileName()) |
358 self.sourceFile[str].emit(itm.fileName()) |
358 else: |
359 else: |
359 QDesktopServices.openUrl(QUrl(itm.fileName())) |
360 QDesktopServices.openUrl(QUrl(itm.fileName())) |
360 elif isinstance(itm, BrowserClassItem): |
361 elif isinstance(itm, BrowserClassItem): |
361 self.sourceFile[str, int].emit(itm.fileName(), |
362 self.sourceFile[str, int].emit(itm.fileName(), |
362 itm.classObject().lineno) |
363 itm.classObject().lineno) |
363 elif isinstance(itm, BrowserMethodItem): |
364 elif isinstance(itm, BrowserMethodItem): |
364 self.sourceFile[str, int].emit(itm.fileName(), |
365 self.sourceFile[str, int].emit(itm.fileName(), |
365 itm.functionObject().lineno) |
366 itm.functionObject().lineno) |
366 elif isinstance(itm, BrowserClassAttributeItem): |
367 elif isinstance(itm, BrowserClassAttributeItem): |
367 self.sourceFile[str, int].emit(itm.fileName(), |
368 self.sourceFile[str, int].emit(itm.fileName(), |
368 itm.attributeObject().lineno) |
369 itm.attributeObject().lineno) |
369 |
370 |
370 def _editPixmap(self): |
371 def _editPixmap(self): |
371 """ |
372 """ |
372 Protected slot to handle the open in icon editor popup menu entry. |
373 Protected slot to handle the open in icon editor popup menu entry. |