[processing] automatically open results viewer panel when items added

This commit is contained in:
nirvn 2018-02-12 17:36:12 +07:00 committed by Mathieu Pellerin
parent 207a94738d
commit 4ada4989e5
2 changed files with 11 additions and 3 deletions

View File

@ -180,8 +180,6 @@ class ProcessingPlugin:
self.iface.addDockWidget(Qt.RightDockWidgetArea, self.resultsDock) self.iface.addDockWidget(Qt.RightDockWidgetArea, self.resultsDock)
self.resultsDock.hide() self.resultsDock.hide()
resultsList.resultAdded.connect(self.resultsDock.fillTree)
self.menu = QMenu(self.iface.mainWindow().menuBar()) self.menu = QMenu(self.iface.mainWindow().menuBar())
self.menu.setObjectName('processing') self.menu.setObjectName('processing')
self.menu.setTitle(self.tr('Pro&cessing')) self.menu.setTitle(self.tr('Pro&cessing'))

View File

@ -32,6 +32,7 @@ from qgis.PyQt import uic
from qgis.PyQt.QtCore import (QUrl, from qgis.PyQt.QtCore import (QUrl,
QFileInfo, QFileInfo,
QDir) QDir)
from qgis.gui import QgsDockWidget
from qgis.PyQt.QtGui import QDesktopServices from qgis.PyQt.QtGui import QDesktopServices
from qgis.PyQt.QtWidgets import QTreeWidgetItem from qgis.PyQt.QtWidgets import QTreeWidgetItem
@ -42,12 +43,14 @@ WIDGET, BASE = uic.loadUiType(
os.path.join(pluginPath, 'ui', 'resultsdockbase.ui')) os.path.join(pluginPath, 'ui', 'resultsdockbase.ui'))
class ResultsDock(BASE, WIDGET): class ResultsDock(QgsDockWidget, WIDGET):
def __init__(self): def __init__(self):
super(ResultsDock, self).__init__(None) super(ResultsDock, self).__init__(None)
self.setupUi(self) self.setupUi(self)
resultsList.resultAdded.connect(self.addResult)
self.treeResults.currentItemChanged.connect(self.updateDescription) self.treeResults.currentItemChanged.connect(self.updateDescription)
self.treeResults.itemDoubleClicked.connect(self.openResult) self.treeResults.itemDoubleClicked.connect(self.openResult)
@ -56,6 +59,13 @@ class ResultsDock(BASE, WIDGET):
self.fillTree() self.fillTree()
def addResult(self):
self.fillTree()
# Automatically open the panel for users to see output
self.setUserVisible(True)
self.treeResults.setCurrentItem(self.treeResults.topLevelItem(0))
def fillTree(self): def fillTree(self):
self.treeResults.blockSignals(True) self.treeResults.blockSignals(True)
self.treeResults.clear() self.treeResults.clear()