--- a/src/eric7/UI/FindFileWidget.py Sun Jan 07 11:19:50 2024 +0100 +++ b/src/eric7/UI/FindFileWidget.py Sun Jan 07 11:42:41 2024 +0100 @@ -949,35 +949,45 @@ @param pos position the context menu shall be shown @type QPoint """ - menu = QMenu(self) + if ( + self.findList.topLevelItemCount() + and (self.findList.selectedItems() or self.__replaceMode) + ): + menu = QMenu(self) - menu.addAction(self.tr("Open"), self.__openFile) - menu.addAction(self.tr("Copy Path to Clipboard"), self.__copyToClipboard) - if self.__replaceMode: - menu.addSeparator() - menu.addAction(self.tr("Select All"), self.__selectAll) - menu.addAction(self.tr("Deselect All"), self.__deselectAll) + if self.findList.selectedItems(): + menu.addAction(self.tr("Open"), self.__openFile) + menu.addAction( + self.tr("Copy Path to Clipboard"), self.__copyToClipboard + ) + if self.__replaceMode: + menu.addSeparator() + menu.addAction(self.tr("Select All"), self.__selectAll) + menu.addAction(self.tr("Deselect All"), self.__deselectAll) - menu.exec(QCursor.pos()) + menu.exec(QCursor.pos()) @pyqtSlot() def __openFile(self): """ Private slot to open the currently selected entry. """ - itm = self.findList.selectedItems()[0] - self.on_findList_itemDoubleClicked(itm, 0) + selectedItems = self.findList.selectedItems() + if selectedItems: + self.on_findList_itemDoubleClicked(selectedItems[0], 0) @pyqtSlot() def __copyToClipboard(self): """ Private slot to copy the path of an entry to the clipboard. """ - itm = self.findList.selectedItems()[0] - fn = itm.parent().text(0) if itm.parent() else itm.text(0) + selectedItems = self.findList.selectedItems() + if selectedItems: + itm = selectedItems[0] + fn = itm.parent().text(0) if itm.parent() else itm.text(0) - cb = QApplication.clipboard() - cb.setText(fn) + cb = QApplication.clipboard() + cb.setText(fn) @pyqtSlot() def __deselectAll(self):