|
18 | 18 | ***************************************************************************/
|
19 | 19 | Some portions of code were taken from https://code.google.com/p/pydee/
|
20 | 20 | """
|
| 21 | +import os |
21 | 22 |
|
22 |
| -from PyQt4.QtCore import Qt, QTimer, QSettings, QCoreApplication, QSize, QByteArray, QFileInfo, SIGNAL |
23 |
| -from PyQt4.QtGui import QDockWidget, QToolBar, QToolButton, QWidget, QSplitter, QTreeWidget, QAction, QFileDialog, QCheckBox, QSizePolicy, QMenu, QGridLayout, QApplication |
| 23 | +from PyQt4.QtCore import Qt, QTimer, QSettings, QCoreApplication, QSize, QByteArray, QFileInfo, SIGNAL, QUrl |
| 24 | +from PyQt4.QtGui import QDockWidget, QToolBar, QToolButton, QWidget,\ |
| 25 | + QSplitter, QTreeWidget, QAction, QFileDialog, QCheckBox, QSizePolicy, QMenu, QGridLayout, QApplication, \ |
| 26 | + QDesktopServices |
24 | 27 | from PyQt4.QtGui import QVBoxLayout
|
25 | 28 | from PyQt4 import pyqtconfig
|
26 | 29 | from qgis.utils import iface
|
@@ -168,6 +171,16 @@ def __init__(self, parent=None):
|
168 | 171 | self.openFileButton.setIconVisibleInMenu(True)
|
169 | 172 | self.openFileButton.setToolTip(openFileBt)
|
170 | 173 | self.openFileButton.setText(openFileBt)
|
| 174 | + |
| 175 | + openExtEditorBt = QCoreApplication.translate("PythonConsole", "Open in external editor") |
| 176 | + self.openInEditorButton = QAction(self) |
| 177 | + self.openInEditorButton.setCheckable(False) |
| 178 | + self.openInEditorButton.setEnabled(True) |
| 179 | + self.openInEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconShowEditorConsole.png")) |
| 180 | + self.openInEditorButton.setMenuRole(QAction.PreferencesRole) |
| 181 | + self.openInEditorButton.setIconVisibleInMenu(True) |
| 182 | + self.openInEditorButton.setToolTip(openExtEditorBt) |
| 183 | + self.openInEditorButton.setText(openExtEditorBt) |
171 | 184 | ## Action for Save File
|
172 | 185 | saveFileBt = QCoreApplication.translate("PythonConsole", "Save")
|
173 | 186 | self.saveFileButton = QAction(self)
|
@@ -389,6 +402,7 @@ def __init__(self, parent=None):
|
389 | 402 | self.toolBarEditor.setMovable(False)
|
390 | 403 | self.toolBarEditor.setFloatable(False)
|
391 | 404 | self.toolBarEditor.addAction(self.openFileButton)
|
| 405 | + self.toolBarEditor.addAction(self.openInEditorButton) |
392 | 406 | self.toolBarEditor.addSeparator()
|
393 | 407 | self.toolBarEditor.addAction(self.saveFileButton)
|
394 | 408 | self.toolBarEditor.addAction(self.saveAsFileButton)
|
@@ -519,6 +533,7 @@ def __init__(self, parent=None):
|
519 | 533 | self.loadQtGuiButton.triggered.connect(self.qtGui)
|
520 | 534 | self.runButton.triggered.connect(self.shell.entered)
|
521 | 535 | self.openFileButton.triggered.connect(self.openScriptFile)
|
| 536 | + self.openInEditorButton.triggered.connect(self.openScriptFileExtEditor) |
522 | 537 | self.saveFileButton.triggered.connect(self.saveScriptFile)
|
523 | 538 | self.saveAsFileButton.triggered.connect(self.saveAsScriptFile)
|
524 | 539 | self.helpButton.triggered.connect(self.openHelp)
|
@@ -602,6 +617,15 @@ def commentCode(self):
|
602 | 617 | def uncommentCode(self):
|
603 | 618 | self.tabEditorWidget.currentWidget().newEditor.commentEditorCode(False)
|
604 | 619 |
|
| 620 | + def openScriptFileExtEditor(self): |
| 621 | + tabWidget = self.tabEditorWidget.currentWidget() |
| 622 | + path = tabWidget.path |
| 623 | + import subprocess |
| 624 | + try: |
| 625 | + subprocess.Popen([os.environ['EDITOR'], path]) |
| 626 | + except KeyError: |
| 627 | + QDesktopServices.openUrl(QUrl.fromLocalFile(path)) |
| 628 | + |
605 | 629 | def openScriptFile(self):
|
606 | 630 | lastDirPath = self.settings.value("pythonConsole/lastDirPath", "")
|
607 | 631 | openFileTr = QCoreApplication.translate("PythonConsole", "Open File")
|
|
0 commit comments