mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Add open in external editor to console
This commit is contained in:
parent
5fb52fa1ed
commit
a05a970dff
@ -18,9 +18,12 @@ email : lrssvtml (at) gmail (dot) com
|
||||
***************************************************************************/
|
||||
Some portions of code were taken from https://code.google.com/p/pydee/
|
||||
"""
|
||||
import os
|
||||
|
||||
from PyQt4.QtCore import Qt, QTimer, QSettings, QCoreApplication, QSize, QByteArray, QFileInfo, SIGNAL
|
||||
from PyQt4.QtGui import QDockWidget, QToolBar, QToolButton, QWidget, QSplitter, QTreeWidget, QAction, QFileDialog, QCheckBox, QSizePolicy, QMenu, QGridLayout, QApplication
|
||||
from PyQt4.QtCore import Qt, QTimer, QSettings, QCoreApplication, QSize, QByteArray, QFileInfo, SIGNAL, QUrl
|
||||
from PyQt4.QtGui import QDockWidget, QToolBar, QToolButton, QWidget,\
|
||||
QSplitter, QTreeWidget, QAction, QFileDialog, QCheckBox, QSizePolicy, QMenu, QGridLayout, QApplication, \
|
||||
QDesktopServices
|
||||
from PyQt4.QtGui import QVBoxLayout
|
||||
from PyQt4 import pyqtconfig
|
||||
from qgis.utils import iface
|
||||
@ -168,6 +171,16 @@ class PythonConsoleWidget(QWidget):
|
||||
self.openFileButton.setIconVisibleInMenu(True)
|
||||
self.openFileButton.setToolTip(openFileBt)
|
||||
self.openFileButton.setText(openFileBt)
|
||||
|
||||
openExtEditorBt = QCoreApplication.translate("PythonConsole", "Open in external editor")
|
||||
self.openInEditorButton = QAction(self)
|
||||
self.openInEditorButton.setCheckable(False)
|
||||
self.openInEditorButton.setEnabled(True)
|
||||
self.openInEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconShowEditorConsole.png"))
|
||||
self.openInEditorButton.setMenuRole(QAction.PreferencesRole)
|
||||
self.openInEditorButton.setIconVisibleInMenu(True)
|
||||
self.openInEditorButton.setToolTip(openExtEditorBt)
|
||||
self.openInEditorButton.setText(openExtEditorBt)
|
||||
## Action for Save File
|
||||
saveFileBt = QCoreApplication.translate("PythonConsole", "Save")
|
||||
self.saveFileButton = QAction(self)
|
||||
@ -389,6 +402,7 @@ class PythonConsoleWidget(QWidget):
|
||||
self.toolBarEditor.setMovable(False)
|
||||
self.toolBarEditor.setFloatable(False)
|
||||
self.toolBarEditor.addAction(self.openFileButton)
|
||||
self.toolBarEditor.addAction(self.openInEditorButton)
|
||||
self.toolBarEditor.addSeparator()
|
||||
self.toolBarEditor.addAction(self.saveFileButton)
|
||||
self.toolBarEditor.addAction(self.saveAsFileButton)
|
||||
@ -519,6 +533,7 @@ class PythonConsoleWidget(QWidget):
|
||||
self.loadQtGuiButton.triggered.connect(self.qtGui)
|
||||
self.runButton.triggered.connect(self.shell.entered)
|
||||
self.openFileButton.triggered.connect(self.openScriptFile)
|
||||
self.openInEditorButton.triggered.connect(self.openScriptFileExtEditor)
|
||||
self.saveFileButton.triggered.connect(self.saveScriptFile)
|
||||
self.saveAsFileButton.triggered.connect(self.saveAsScriptFile)
|
||||
self.helpButton.triggered.connect(self.openHelp)
|
||||
@ -602,6 +617,15 @@ class PythonConsoleWidget(QWidget):
|
||||
def uncommentCode(self):
|
||||
self.tabEditorWidget.currentWidget().newEditor.commentEditorCode(False)
|
||||
|
||||
def openScriptFileExtEditor(self):
|
||||
tabWidget = self.tabEditorWidget.currentWidget()
|
||||
path = tabWidget.path
|
||||
import subprocess
|
||||
try:
|
||||
subprocess.Popen([os.environ['EDITOR'], path])
|
||||
except KeyError:
|
||||
QDesktopServices.openUrl(QUrl.fromLocalFile(path))
|
||||
|
||||
def openScriptFile(self):
|
||||
lastDirPath = self.settings.value("pythonConsole/lastDirPath", "")
|
||||
openFileTr = QCoreApplication.translate("PythonConsole", "Open File")
|
||||
|
Loading…
x
Reference in New Issue
Block a user