From a95cbe9d2f8b39ab4edb24918d95a767d71cf191 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 26 Jul 2017 09:45:27 +1000 Subject: [PATCH] Move 'Run as batch' button to bottom of algorithm dialog Inserting it into the tab widget doesn't work well cross platform/between hidpi/lowdpi displays. So instead add it as a normal button in the button box. Also fix capitalization of button text Fixes #16767 --- .../processing/algs/gdal/GdalAlgorithmDialog.py | 15 +++++---------- python/plugins/processing/gui/AlgorithmDialog.py | 11 +++-------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py b/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py index 2251562de67..a3f56c8cf65 100644 --- a/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py +++ b/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py @@ -33,7 +33,8 @@ from qgis.PyQt.QtWidgets import (QWidget, QLineEdit, QComboBox, QCheckBox, - QSizePolicy) + QSizePolicy, + QDialogButtonBox) from qgis.gui import QgsMessageBar @@ -57,15 +58,9 @@ class GdalAlgorithmDialog(AlgorithmDialog): self.setMainWidget(GdalParametersPanel(self, alg)) - cornerWidget = QWidget() - layout = QVBoxLayout() - layout.setContentsMargins(0, 0, 0, 5) - self.tabWidget.setStyleSheet("QTabBar::tab { height: 30px; }") - runAsBatchButton = QPushButton(self.tr("Run as batch process...")) - runAsBatchButton.clicked.connect(self.runAsBatch) - layout.addWidget(runAsBatchButton) - cornerWidget.setLayout(layout) - self.tabWidget.setCornerWidget(cornerWidget) + self.runAsBatchButton = QPushButton(self.tr("Run as Batch Process…")) + self.runAsBatchButton.clicked.connect(self.runAsBatch) + self.buttonBox.addButton(self.runAsBatchButton, QDialogButtonBox.ResetRole) # reset role to ensure left alignment self.mainWidget.parametersHaveChanged() diff --git a/python/plugins/processing/gui/AlgorithmDialog.py b/python/plugins/processing/gui/AlgorithmDialog.py index c8f758d22d6..4c7d96c14ba 100644 --- a/python/plugins/processing/gui/AlgorithmDialog.py +++ b/python/plugins/processing/gui/AlgorithmDialog.py @@ -30,7 +30,7 @@ from pprint import pformat import time from qgis.PyQt.QtCore import Qt -from qgis.PyQt.QtWidgets import QMessageBox, QApplication, QPushButton, QWidget, QVBoxLayout, QSizePolicy +from qgis.PyQt.QtWidgets import QMessageBox, QApplication, QPushButton, QWidget, QVBoxLayout, QSizePolicy, QDialogButtonBox from qgis.PyQt.QtGui import QCursor, QColor, QPalette from qgis.core import (QgsProject, @@ -83,14 +83,9 @@ class AlgorithmDialog(AlgorithmDialogBase): self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.layout().insertWidget(0, self.bar) - self.cornerWidget = QWidget() - layout = QVBoxLayout() - layout.setContentsMargins(0, 0, 0, 5) - self.runAsBatchButton = QPushButton(self.tr("Run as batch process...")) + self.runAsBatchButton = QPushButton(self.tr("Run as Batch Process…")) self.runAsBatchButton.clicked.connect(self.runAsBatch) - layout.addWidget(self.runAsBatchButton) - self.cornerWidget.setLayout(layout) - self.tabWidget.setCornerWidget(self.cornerWidget) + self.buttonBox.addButton(self.runAsBatchButton, QDialogButtonBox.ResetRole) # reset role to ensure left alignment def getParametersPanel(self, alg, parent): return ParametersPanel(parent, alg)