QGIS/python/plugins/sextante/SextantePlugin.py

129 lines
4.5 KiB
Python
Raw Normal View History

import os, sys
import inspect
2012-09-15 18:25:25 +03:00
from PyQt4.QtCore import *
from PyQt4.QtGui import *
2012-09-15 18:25:25 +03:00
from qgis.core import *
2012-09-15 18:25:25 +03:00
from sextante.core.Sextante import Sextante
from sextante.core.QGisLayers import QGisLayers
from sextante.core.SextanteUtils import SextanteUtils
from sextante.gui.SextanteToolbox import SextanteToolbox
from sextante.gui.HistoryDialog import HistoryDialog
2012-09-15 18:25:25 +03:00
from sextante.gui.ConfigDialog import ConfigDialog
from sextante.gui.ResultsDialog import ResultsDialog
from sextante.modeler.ModelerDialog import ModelerDialog
2012-09-15 18:25:25 +03:00
from sextante.about.AboutDialog import AboutDialog
2012-09-18 20:02:43 +03:00
import resources_rc
2012-09-15 18:25:25 +03:00
cmd_folder = os.path.split(inspect.getfile( inspect.currentframe() ))[0]
if cmd_folder not in sys.path:
sys.path.insert(0, cmd_folder)
class SextantePlugin:
def __init__(self, iface):
self.iface = iface
QGisLayers.setInterface(iface)
Sextante.initialize()
Sextante.setInterface(iface)
def initGui(self):
self.toolbox = SextanteToolbox(self.iface)
self.toolbox.setVisible(False)
Sextante.addAlgListListener(self.toolbox)
self.menu = QMenu(self.iface.mainWindow())
self.menu.setTitle(QCoreApplication.translate("SEXTANTE", "Analysis"))
2012-09-15 18:25:25 +03:00
2012-09-18 20:02:43 +03:00
self.toolboxAction = QAction(QIcon(":/sextante/images/toolbox.png"),
QCoreApplication.translate("SEXTANTE", "&SEXTANTE Toolbox"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.toolboxAction, SIGNAL("triggered()"), self.openToolbox)
self.menu.addAction(self.toolboxAction)
2012-09-18 20:02:43 +03:00
self.modelerAction = QAction(QIcon(":/sextante/images/model.png"),
QCoreApplication.translate("SEXTANTE", "&SEXTANTE Modeler"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.modelerAction, SIGNAL("triggered()"), self.openModeler)
self.menu.addAction(self.modelerAction)
2012-09-18 20:02:43 +03:00
self.historyAction = QAction(QIcon(":/sextante/images/history.gif"),
QCoreApplication.translate("SEXTANTE", "&SEXTANTE History and log"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.historyAction, SIGNAL("triggered()"), self.openHistory)
self.menu.addAction(self.historyAction)
2012-09-18 20:02:43 +03:00
self.configAction = QAction(QIcon(":/sextante/images/config.png"),
QCoreApplication.translate("SEXTANTE", "&SEXTANTE options and configuration"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.configAction, SIGNAL("triggered()"), self.openConfig)
self.menu.addAction(self.configAction)
2012-09-18 20:02:43 +03:00
self.resultsAction = QAction(QIcon(":/sextante/images/results.png"),
QCoreApplication.translate("SEXTANTE", "&SEXTANTE results viewer"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.resultsAction, SIGNAL("triggered()"), self.openResults)
self.menu.addAction(self.resultsAction)
2012-09-18 20:02:43 +03:00
self.helpAction = QAction(QIcon(":/sextante/images/help.png"),
QCoreApplication.translate("SEXTANTE", "&SEXTANTE help"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.helpAction, SIGNAL("triggered()"), self.openHelp)
self.menu.addAction(self.helpAction)
2012-09-18 20:02:43 +03:00
self.aboutAction = QAction(QIcon(":/sextante/images/info.png"),
QCoreApplication.translate("SEXTANTE", "&About SEXTANTE"),
self.iface.mainWindow())
2012-09-15 18:25:25 +03:00
QObject.connect(self.aboutAction, SIGNAL("triggered()"), self.openAbout)
self.menu.addAction(self.aboutAction)
menuBar = self.iface.mainWindow().menuBar()
menuBar.insertMenu(menuBar.actions()[-1], self.menu)
def unload(self):
self.toolbox.setVisible(False)
self.menu.deleteLater()
#delete temporary output files
folder = SextanteUtils.tempFolder()
for f in os.listdir(folder):
path = os.path.join(folder,f)
try:
os.unlink(path)
except:
#leave files that could not be deleted
pass
def openToolbox(self):
self.toolbox.setVisible(True)
def openModeler(self):
dlg = ModelerDialog()
dlg.exec_()
if dlg.update:
self.toolbox.updateTree()
def openResults(self):
dlg = ResultsDialog()
dlg.exec_()
def openHistory(self):
dlg = HistoryDialog()
dlg.exec_()
def openConfig(self):
dlg = ConfigDialog(self.toolbox)
dlg.exec_()
def openAbout(self):
dlg = AboutDialog()
2012-09-15 18:25:25 +03:00
dlg.exec_()
def openHelp(self):
QDesktopServices.openUrl(QUrl(os.path.dirname(__file__) + "/help/index.html"))