Skip to content

Commit dd4b34e

Browse files
committed
[processing] Modeller should not be modal
1 parent 07b25af commit dd4b34e

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

python/plugins/processing/ProcessingPlugin.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,11 @@ def openToolbox(self):
159159

160160
def openModeler(self):
161161
dlg = ModelerDialog()
162-
dlg.exec_()
163-
if dlg.update:
164-
algList.reloadProvider('model')
162+
dlg.update_model.connect(self.updateModel)
163+
dlg.show()
164+
165+
def updateModel(self):
166+
algList.reloadProvider('model')
165167

166168
def openResults(self):
167169
dlg = ResultsDialog()

python/plugins/processing/modeler/CreateNewModelAction.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ def getIcon(self):
4545

4646
def execute(self):
4747
dlg = ModelerDialog()
48-
dlg.exec_()
49-
if dlg.update:
50-
algList.reloadProvider('model')
48+
dlg.update_model.connect(self.updateModel)
49+
dlg.show()
50+
51+
def updateModel(self):
52+
algList.reloadProvider('model')

python/plugins/processing/modeler/EditModelAction.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ def isEnabled(self):
4141

4242
def execute(self):
4343
dlg = ModelerDialog(self.itemData.getCopy())
44-
dlg.exec_()
45-
if dlg.update:
46-
algList.reloadProvider('model')
44+
dlg.update_model.connect(self.updateModel)
45+
dlg.show()
46+
47+
def updateModel(self):
48+
algList.reloadProvider('model')

python/plugins/processing/modeler/ModelerDialog.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import os
3232

3333
from qgis.PyQt import uic
34-
from qgis.PyQt.QtCore import Qt, QRectF, QMimeData, QPoint, QPointF, QSettings, QByteArray
34+
from qgis.PyQt.QtCore import Qt, QRectF, QMimeData, QPoint, QPointF, QSettings, QByteArray, pyqtSignal
3535
from qgis.PyQt.QtWidgets import QGraphicsView, QTreeWidget, QMessageBox, QFileDialog, QTreeWidgetItem, QSizePolicy
3636
from qgis.PyQt.QtGui import QIcon, QImage, QPainter
3737
from qgis.core import QgsApplication
@@ -57,6 +57,8 @@ class ModelerDialog(BASE, WIDGET):
5757

5858
CANVAS_SIZE = 4000
5959

60+
update_model = pyqtSignal()
61+
6062
def __init__(self, alg=None):
6163
super(ModelerDialog, self).__init__(None)
6264
self.setupUi(self)
@@ -205,9 +207,6 @@ def _mimeDataAlgorithm(items):
205207
self.view.centerOn(0, 0)
206208
self.alg.setModelerView(self)
207209
self.help = None
208-
# Indicates whether to update or not the toolbox after
209-
# closing this dialog
210-
self.update = False
211210

212211
self.hasChanged = False
213212

@@ -339,7 +338,7 @@ def saveModel(self, saveAs):
339338
return
340339
fout.write(text)
341340
fout.close()
342-
self.update = True
341+
self.update_model.emit()
343342
self.bar.pushMessage("", "Model was correctly saved", level=QgsMessageBar.SUCCESS, duration=5)
344343

345344
self.hasChanged = False

0 commit comments

Comments
 (0)