src/eric7/Project/ProjectOthersBrowser.py

branch
server
changeset 10631
00f5aae565a3
parent 10439
21c28b0f9e41
child 10845
bbcad422aea7
equal deleted inserted replaced
10630:552a790fd9bc 10631:00f5aae565a3
15 from PyQt6.QtWidgets import QDialog, QMenu 15 from PyQt6.QtWidgets import QDialog, QMenu
16 16
17 from eric7 import Preferences 17 from eric7 import Preferences
18 from eric7.EricGui import EricPixmapCache 18 from eric7.EricGui import EricPixmapCache
19 from eric7.EricWidgets import EricMessageBox 19 from eric7.EricWidgets import EricMessageBox
20 from eric7.SystemUtilities import FileSystemUtilities
20 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog 21 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
21 from eric7.Utilities import MimeTypes 22 from eric7.Utilities import MimeTypes
22 23
23 from .FileCategoryRepositoryItem import FileCategoryRepositoryItem 24 from .FileCategoryRepositoryItem import FileCategoryRepositoryItem
24 from .ProjectBaseBrowser import ProjectBaseBrowser 25 from .ProjectBaseBrowser import ProjectBaseBrowser
157 self.menu.addAction(self.tr("Add files..."), self.__addOthersFiles) 158 self.menu.addAction(self.tr("Add files..."), self.__addOthersFiles)
158 self.menu.addAction(self.tr("Add directory..."), self.__addOthersDirectory) 159 self.menu.addAction(self.tr("Add directory..."), self.__addOthersDirectory)
159 self.menu.addSeparator() 160 self.menu.addSeparator()
160 self.menu.addAction(self.tr("Refresh"), self.__refreshItem) 161 self.menu.addAction(self.tr("Refresh"), self.__refreshItem)
161 self.menu.addSeparator() 162 self.menu.addSeparator()
162 self.menu.addAction(self.tr("Show in File Manager"), self._showInFileManager) 163 self.menuFileManagerAct = self.menu.addAction(
164 self.tr("Show in File Manager"), self._showInFileManager
165 )
163 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) 166 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
164 self.menu.addSeparator() 167 self.menu.addSeparator()
165 self.menu.addAction(self.tr("Expand all directories"), self._expandAllDirs) 168 self.menu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
166 self.menu.addAction(self.tr("Collapse all directories"), self._collapseAllDirs) 169 self.menu.addAction(self.tr("Collapse all directories"), self._collapseAllDirs)
167 self.menu.addSeparator() 170 self.menu.addSeparator()
178 self.dirMenuActions.append(self.deleteDirAct) 181 self.dirMenuActions.append(self.deleteDirAct)
179 self.dirMenu.addSeparator() 182 self.dirMenu.addSeparator()
180 self.dirMenu.addAction(self.tr("Add files..."), self.__addOthersFiles) 183 self.dirMenu.addAction(self.tr("Add files..."), self.__addOthersFiles)
181 self.dirMenu.addAction(self.tr("Add directory..."), self.__addOthersDirectory) 184 self.dirMenu.addAction(self.tr("Add directory..."), self.__addOthersDirectory)
182 self.dirMenu.addSeparator() 185 self.dirMenu.addSeparator()
183 self.dirMenu.addAction(self.tr("Show in File Manager"), self._showInFileManager) 186 self.dirMenuFileManagerAct = self.dirMenu.addAction(
187 self.tr("Show in File Manager"), self._showInFileManager
188 )
184 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) 189 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
185 self.dirMenu.addSeparator() 190 self.dirMenu.addSeparator()
186 self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) 191 self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
187 self.dirMenu.addAction( 192 self.dirMenu.addAction(
188 self.tr("Collapse all directories"), self._collapseAllDirs 193 self.tr("Collapse all directories"), self._collapseAllDirs
196 ) 201 )
197 self.backMenu.addAction( 202 self.backMenu.addAction(
198 self.tr("Add directory..."), lambda: self.project.addDirectory("OTHERS") 203 self.tr("Add directory..."), lambda: self.project.addDirectory("OTHERS")
199 ) 204 )
200 self.backMenu.addSeparator() 205 self.backMenu.addSeparator()
201 self.backMenu.addAction( 206 self.backMenuFileManagerAct = self.backMenu.addAction(
202 self.tr("Show in File Manager"), self._showProjectInFileManager 207 self.tr("Show in File Manager"), self._showProjectInFileManager
203 ) 208 )
204 self.backMenu.addSeparator() 209 self.backMenu.addSeparator()
205 self.backMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) 210 self.backMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs)
206 self.backMenu.addAction( 211 self.backMenu.addAction(
238 @param coord the position of the mouse pointer 243 @param coord the position of the mouse pointer
239 @type QPoint 244 @type QPoint
240 """ 245 """
241 if not self.project.isOpen(): 246 if not self.project.isOpen():
242 return 247 return
248
249 isRemote = FileSystemUtilities.isRemoteFileName(self.project.getProjectPath())
243 250
244 with contextlib.suppress(Exception): # secok 251 with contextlib.suppress(Exception): # secok
245 cnt = self.getSelectedItemsCount( 252 cnt = self.getSelectedItemsCount(
246 [ 253 [
247 ProjectBrowserFileItem, 254 ProjectBrowserFileItem,
270 if isinstance(itm, ProjectBrowserFileItem): 277 if isinstance(itm, ProjectBrowserFileItem):
271 self.editPixmapAct.setVisible(itm.isPixmapFile()) 278 self.editPixmapAct.setVisible(itm.isPixmapFile())
272 self.openInEditorAct.setVisible(itm.isSvgFile()) 279 self.openInEditorAct.setVisible(itm.isSvgFile())
273 self.openInPdfViewerAct.setVisible(itm.isPdfFile()) 280 self.openInPdfViewerAct.setVisible(itm.isPdfFile())
274 self.mimeTypeAct.setVisible(True) 281 self.mimeTypeAct.setVisible(True)
282 self.menuFileManagerAct.setVisible(not isRemote)
275 self.menu.popup(self.mapToGlobal(coord)) 283 self.menu.popup(self.mapToGlobal(coord))
276 elif isinstance(itm, ProjectBrowserDirectoryItem): 284 elif isinstance(
285 itm,
286 (
287 ProjectBrowserDirectoryItem,
288 ProjectBrowserSimpleDirectoryItem,
289 ),
290 ):
277 self.removeDirAct.setVisible(True) 291 self.removeDirAct.setVisible(True)
278 self.deleteDirAct.setVisible(True) 292 self.deleteDirAct.setVisible(True)
279 self.dirMenu.popup(self.mapToGlobal(coord)) 293 self.dirMenuFileManagerAct.setVisible(not isRemote)
280 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem):
281 self.removeDirAct.setVisible(False)
282 self.deleteDirAct.setVisible(False)
283 self.dirMenu.popup(self.mapToGlobal(coord)) 294 self.dirMenu.popup(self.mapToGlobal(coord))
284 else: 295 else:
296 self.backMenuFileManagerAct.setVisible(not isRemote)
285 self.backMenu.popup(self.mapToGlobal(coord)) 297 self.backMenu.popup(self.mapToGlobal(coord))
286 else: 298 else:
299 self.backMenuFileManagerAct.setVisible(not isRemote)
287 self.backMenu.popup(self.mapToGlobal(coord)) 300 self.backMenu.popup(self.mapToGlobal(coord))
288 301
289 def __showContextMenu(self): 302 def __showContextMenu(self):
290 """ 303 """
291 Private slot called by the menu aboutToShow signal. 304 Private slot called by the menu aboutToShow signal.
334 itm = self.model().item(self.currentIndex()) 347 itm = self.model().item(self.currentIndex())
335 if isinstance( 348 if isinstance(
336 itm, (ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem) 349 itm, (ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem)
337 ): 350 ):
338 self.renameFileAct.setEnabled(False) 351 self.renameFileAct.setEnabled(False)
339 else: 352 elif self.vcsHelper is not None:
340 self.vcsHelper.showContextMenu(menu, self.menuActions) 353 self.vcsHelper.showContextMenu(menu, self.menuActions)
341 354
342 def _editPixmap(self): 355 def _editPixmap(self):
343 """ 356 """
344 Protected slot to handle the open in icon editor popup menu entry. 357 Protected slot to handle the open in icon editor popup menu entry.

eric ide

mercurial