From 7db1a9dfd3492bcda18f23bea12144c3dbde5d26 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Sat, 8 Jul 2017 16:05:39 +1000 Subject: [PATCH] Save and restore window geometry for modeler dialogs --- .../modeler/ModelerParameterDefinitionDialog.py | 13 +++++++++++-- .../processing/modeler/ModelerParametersDialog.py | 15 +++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py b/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py index 05055506093..95d78d97235 100644 --- a/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py +++ b/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py @@ -29,7 +29,8 @@ __revision__ = '$Format:%H$' import math from qgis.gui import QgsExpressionLineEdit, QgsProjectionSelectionWidget -from qgis.core import (QgsCoordinateReferenceSystem, +from qgis.core import (QgsSettings, + QgsCoordinateReferenceSystem, QgsProcessingParameterDefinition, QgsProcessingParameterBoolean, QgsProcessingParameterCrs, @@ -48,7 +49,8 @@ from qgis.core import (QgsCoordinateReferenceSystem, QgsProcessingParameterVectorLayer, QgsProcessingParameterField, QgsProcessingParameterFeatureSource) -from qgis.PyQt.QtCore import Qt +from qgis.PyQt.QtCore import (Qt, + QByteArray) from qgis.PyQt.QtWidgets import (QDialog, QVBoxLayout, QLabel, @@ -98,6 +100,13 @@ class ModelerParameterDefinitionDialog(QDialog): QDialog.__init__(self) self.setModal(True) self.setupUi() + settings = QgsSettings() + self.restoreGeometry(settings.value("/Processing/modelParametersDefinitionDialogGeometry", QByteArray())) + + def closeEvent(self, event): + settings = QgsSettings() + settings.setValue("/Processing/modelParametersDefinitionDialogGeometry", self.saveGeometry()) + super(ModelerParameterDefinitionDialog, self).closeEvent(event) def setupUi(self): self.setWindowTitle(self.tr('Parameter definition')) diff --git a/python/plugins/processing/modeler/ModelerParametersDialog.py b/python/plugins/processing/modeler/ModelerParametersDialog.py index 32aa8d97b07..2a9dd5edf53 100644 --- a/python/plugins/processing/modeler/ModelerParametersDialog.py +++ b/python/plugins/processing/modeler/ModelerParametersDialog.py @@ -28,7 +28,10 @@ __revision__ = '$Format:%H$' import webbrowser -from qgis.PyQt.QtCore import Qt, QUrl, QMetaObject +from qgis.PyQt.QtCore import (Qt, + QUrl, + QMetaObject, + QByteArray) from qgis.PyQt.QtWidgets import (QDialog, QDialogButtonBox, QLabel, QLineEdit, QFrame, QPushButton, QSizePolicy, QVBoxLayout, QHBoxLayout, QWidget) @@ -41,7 +44,8 @@ from qgis.core import (QgsProcessingParameterDefinition, QgsProcessingParameterRasterDestination, QgsProcessingParameterFileDestination, QgsProcessingParameterFolderDestination, - QgsProcessingOutputDefinition) + QgsProcessingOutputDefinition, + QgsSettings) from qgis.gui import (QgsMessageBar, QgsScrollArea, @@ -70,6 +74,13 @@ class ModelerParametersDialog(QDialog): self.childId = algName self.setupUi() self.params = None + settings = QgsSettings() + self.restoreGeometry(settings.value("/Processing/modelParametersDialogGeometry", QByteArray())) + + def closeEvent(self, event): + settings = QgsSettings() + settings.setValue("/Processing/modelParametersDialogGeometry", self.saveGeometry()) + super(ModelerParametersDialog, self).closeEvent(event) def setupUi(self): self.labels = {}