mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
[processing] config dialog: only save menu configuration if needed
Conflicts: python/plugins/processing/gui/ConfigDialog.py
This commit is contained in:
parent
f852603f07
commit
4c31bc407e
@ -31,8 +31,7 @@ import os
|
||||
|
||||
from qgis.PyQt import uic
|
||||
from qgis.PyQt.QtCore import (Qt,
|
||||
QEvent
|
||||
)
|
||||
QEvent)
|
||||
from qgis.PyQt.QtWidgets import (QFileDialog,
|
||||
QDialog,
|
||||
QStyle,
|
||||
@ -46,7 +45,9 @@ from qgis.PyQt.QtWidgets import (QFileDialog,
|
||||
QPushButton)
|
||||
from qgis.PyQt.QtGui import (QIcon,
|
||||
QStandardItemModel,
|
||||
QStandardItem)
|
||||
QStandardItem,
|
||||
QApplication,
|
||||
QCursor)
|
||||
|
||||
from qgis.gui import (QgsDoubleSpinBox,
|
||||
QgsSpinBox
|
||||
@ -58,8 +59,7 @@ from processing.core.ProcessingConfig import (ProcessingConfig,
|
||||
Setting)
|
||||
from processing.core.Processing import Processing
|
||||
from processing.gui.DirectorySelectorDialog import DirectorySelectorDialog
|
||||
from processing.gui.menus import defaultMenuEntries, updateMenus
|
||||
from processing.gui.menus import menusSettingsGroup
|
||||
from processing.gui.menus import defaultMenuEntries, updateMenus, menusSettingsGroup
|
||||
|
||||
|
||||
pluginPath = os.path.split(os.path.dirname(__file__))[0]
|
||||
@ -93,7 +93,8 @@ class ConfigDialog(BASE, WIDGET):
|
||||
|
||||
self.fillTree()
|
||||
|
||||
self.tree.expanded.connect(self.adjustColumns)
|
||||
self.saveMenus = False
|
||||
self.tree.expanded.connect(self.itemExpanded)
|
||||
|
||||
def textChanged(self):
|
||||
text = str(self.searchBox.text().lower())
|
||||
@ -192,14 +193,14 @@ class ConfigDialog(BASE, WIDGET):
|
||||
"""
|
||||
Filter 'Menus' items
|
||||
"""
|
||||
menusItem = QStandardItem(self.tr('Menus'))
|
||||
self.menusItem = QStandardItem(self.tr('Menus'))
|
||||
icon = QIcon(os.path.join(pluginPath, 'images', 'menu.png'))
|
||||
menusItem.setIcon(icon)
|
||||
menusItem.setEditable(False)
|
||||
self.menusItem.setIcon(icon)
|
||||
self.menusItem.setEditable(False)
|
||||
emptyItem = QStandardItem()
|
||||
emptyItem.setEditable(False)
|
||||
|
||||
rootItem.insertRow(0, [menusItem, emptyItem])
|
||||
rootItem.insertRow(0, [self.menusItem, emptyItem])
|
||||
|
||||
button = QPushButton(self.tr('Reset to defaults'))
|
||||
button.clicked.connect(self.resetMenusToDefaults)
|
||||
@ -248,7 +249,7 @@ class ConfigDialog(BASE, WIDGET):
|
||||
emptyItem = QStandardItem()
|
||||
emptyItem.setEditable(False)
|
||||
|
||||
menusItem.appendRow([groupItem, emptyItem])
|
||||
self.menusItem.appendRow([groupItem, emptyItem])
|
||||
|
||||
self.tree.sortByColumn(0, Qt.AscendingOrder)
|
||||
self.adjustColumns()
|
||||
@ -261,24 +262,32 @@ class ConfigDialog(BASE, WIDGET):
|
||||
setting = ProcessingConfig.settings["MENU_" + alg.commandLineName()]
|
||||
item = self.items[setting]
|
||||
item.setData(d, Qt.EditRole)
|
||||
self.saveMenus = True
|
||||
|
||||
def accept(self):
|
||||
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
|
||||
for setting in list(self.items.keys()):
|
||||
if isinstance(setting.value, bool):
|
||||
setting.setValue(self.items[setting].checkState() == Qt.Checked)
|
||||
else:
|
||||
try:
|
||||
setting.setValue(str(self.items[setting].text()))
|
||||
except ValueError as e:
|
||||
QMessageBox.warning(self, self.tr('Wrong value'),
|
||||
self.tr('Wrong value for parameter "%s":\n\n%s' % (setting.description, str(e))))
|
||||
return
|
||||
setting.save()
|
||||
if setting.group != menusSettingsGroup or self.saveMenus:
|
||||
if isinstance(setting.value, bool):
|
||||
setting.setValue(self.items[setting].checkState() == Qt.Checked)
|
||||
else:
|
||||
try:
|
||||
setting.setValue(str(self.items[setting].text()))
|
||||
except ValueError as e:
|
||||
QMessageBox.warning(self, self.tr('Wrong value'),
|
||||
self.tr('Wrong value for parameter "%s":\n\n%s' % (setting.description, str(e))))
|
||||
return
|
||||
setting.save()
|
||||
Processing.updateAlgsList()
|
||||
settingsWatcher.settingsChanged.emit()
|
||||
|
||||
QApplication.restoreOverrideCursor()
|
||||
QDialog.accept(self)
|
||||
|
||||
def itemExpanded(self, idx):
|
||||
if idx == self.menusItem.index():
|
||||
self.saveMenus = True
|
||||
self.adjustColumns()
|
||||
|
||||
def adjustColumns(self):
|
||||
self.tree.resizeColumnToContents(0)
|
||||
self.tree.resizeColumnToContents(1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user