--- a/QScintilla/Editor.py Sat Jan 06 18:59:24 2018 +0100 +++ b/QScintilla/Editor.py Sun Jan 07 17:18:07 2018 +0100 @@ -718,10 +718,13 @@ self.menuActs["Copy"] = self.menu.addAction( UI.PixmapCache.getIcon("editCopy.png"), self.tr('Copy'), self.copy) - self.menu.addAction( + self.menuActs["Paste"] = self.menu.addAction( UI.PixmapCache.getIcon("editPaste.png"), self.tr('Paste'), self.paste) if not self.miniMenu: + self.menuActs["ExecuteSelection"] = self.menu.addAction( + self.tr("Execute Selection In Console"), + self.__executeSelection) self.menu.addSeparator() self.menu.addAction( UI.PixmapCache.getIcon("editIndent.png"), @@ -747,7 +750,9 @@ self.menu.addAction(self.tr('Select all'), self.__selectAll) self.menu.addAction( self.tr('Deselect all'), self.__deselectAll) - self.menu.addSeparator() + else: + self.menuActs["ExecuteSelection"] = None + self.menu.addSeparator() self.menuActs["SpellCheck"] = self.menu.addAction( UI.PixmapCache.getIcon("spellchecking.png"), self.tr('Check spelling...'), self.checkSpelling) @@ -5139,9 +5144,12 @@ self.menuActs["Undo"].setEnabled(self.isUndoAvailable()) self.menuActs["Redo"].setEnabled(self.isRedoAvailable()) self.menuActs["Revert"].setEnabled(self.isModified()) - if not self.miniMenu: - self.menuActs["Cut"].setEnabled(self.hasSelectedText()) - self.menuActs["Copy"].setEnabled(self.hasSelectedText()) + self.menuActs["Cut"].setEnabled(self.hasSelectedText()) + self.menuActs["Copy"].setEnabled(self.hasSelectedText()) + if self.menuActs["ExecuteSelection"] is not None: + self.menuActs["ExecuteSelection"].setEnabled( + self.hasSelectedText()) + self.menuActs["Paste"].setEnabled(self.canPaste()) if not self.isResourcesFile: if self.fileName and self.isPyFile(): self.menuActs["Show"].setEnabled(True) @@ -7149,7 +7157,7 @@ self.completer.setEnabled(False) ####################################################################### - ## Autocompleting templates + ## Auto-completing templates ####################################################################### def editorCommand(self, cmd): @@ -7970,3 +7978,10 @@ keys.append(key) for key in keys: del self.__mouseClickHandlers[key] + + def __executeSelection(self): + """ + Private slot to execute the selected text in the shell window. + """ + txt = self.selectedText() + e5App().getObject("Shell").executeLines(txt)