Skip to content

Commit 6c014b4

Browse files
committed
[processing] Use c++ recent algorithm log, remove python log
Indirectly fixes #19218
1 parent d232cde commit 6c014b4

File tree

5 files changed

+12
-36
lines changed

5 files changed

+12
-36
lines changed

python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
QgsProject,
4343
QgsMessageLog,
4444
QgsProcessingOutputLayerDefinition)
45-
from qgis.gui import QgsEncodingFileDialog
45+
from qgis.gui import QgsEncodingFileDialog, QgsGui
4646
from qgis.utils import OverrideCursor
4747

4848
from processing.core.ProcessingConfig import ProcessingConfig
@@ -240,6 +240,7 @@ def accept(self):
240240

241241
context = dataobjects.createContext()
242242
ProcessingLog.addToLog(self.alg.asPythonCommand(parameters, context))
243+
QgsGui.instance().processingRecentAlgorithmLog().push(self.alg.id())
243244

244245
self.executed, results = execute(self.alg, parameters, context, self.feedback)
245246
self.setPercentage(0)

python/plugins/processing/core/ProcessingConfig.py

-5
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ class ProcessingConfig:
5656
USE_FILENAME_AS_LAYER_NAME = 'USE_FILENAME_AS_LAYER_NAME'
5757
KEEP_DIALOG_OPEN = 'KEEP_DIALOG_OPEN'
5858
SHOW_DEBUG_IN_DIALOG = 'SHOW_DEBUG_IN_DIALOG'
59-
RECENT_ALGORITHMS = 'RECENT_ALGORITHMS'
6059
PRE_EXECUTION_SCRIPT = 'PRE_EXECUTION_SCRIPT'
6160
POST_EXECUTION_SCRIPT = 'POST_EXECUTION_SCRIPT'
6261
SHOW_CRS_DEF = 'SHOW_CRS_DEF'
@@ -136,10 +135,6 @@ def initialize():
136135
ProcessingConfig.POST_EXECUTION_SCRIPT,
137136
ProcessingConfig.tr('Post-execution script'), '',
138137
valuetype=Setting.FILE))
139-
ProcessingConfig.addSetting(Setting(
140-
ProcessingConfig.tr('General'),
141-
ProcessingConfig.RECENT_ALGORITHMS,
142-
ProcessingConfig.tr('Recent algorithms'), '', hidden=True))
143138
ProcessingConfig.addSetting(Setting(
144139
ProcessingConfig.tr('General'),
145140
ProcessingConfig.MODELS_SCRIPTS_REPO,

python/plugins/processing/core/ProcessingLog.py

-19
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
class ProcessingLog:
3939

4040
DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
41-
recentAlgs = []
4241

4342
@staticmethod
4443
def logFilename():
@@ -63,14 +62,6 @@ def addToLog(msg):
6362
with codecs.open(ProcessingLog.logFilename(), 'a',
6463
encoding='utf-8') as logfile:
6564
logfile.write(line)
66-
algname = msg[len('processing.run("'):]
67-
algname = algname[:algname.index('"')]
68-
if algname not in ProcessingLog.recentAlgs:
69-
ProcessingLog.recentAlgs.append(algname)
70-
recentAlgsString = ';'.join(ProcessingLog.recentAlgs[-6:])
71-
ProcessingConfig.setSettingValue(
72-
ProcessingConfig.RECENT_ALGORITHMS,
73-
recentAlgsString)
7465
except:
7566
pass
7667

@@ -95,16 +86,6 @@ def getLogEntries():
9586

9687
return entries
9788

98-
@staticmethod
99-
def getRecentAlgorithms():
100-
recentAlgsSetting = ProcessingConfig.getSetting(
101-
ProcessingConfig.RECENT_ALGORITHMS)
102-
try:
103-
ProcessingLog.recentAlgs = recentAlgsSetting.split(';')
104-
except:
105-
pass
106-
return ProcessingLog.recentAlgs
107-
10889
@staticmethod
10990
def clearLog():
11091
os.unlink(ProcessingLog.logFilename())

python/plugins/processing/gui/AlgorithmDialog.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@
4444
QgsProcessingParameterFeatureSink,
4545
QgsProcessingParameterRasterDestination,
4646
QgsProcessingAlgorithm)
47-
from qgis.gui import (QgsMessageBar,
47+
from qgis.gui import (QgsGui,
48+
QgsMessageBar,
4849
QgsProcessingAlgorithmDialogBase)
4950
from qgis.utils import iface
5051

@@ -188,6 +189,7 @@ def accept(self):
188189
command = self.algorithm().asPythonCommand(parameters, context)
189190
if command:
190191
ProcessingLog.addToLog(command)
192+
QgsGui.instance().processingRecentAlgorithmLog().push(self.algorithm().id())
191193
self.cancelButton().setEnabled(self.algorithm().flags() & QgsProcessingAlgorithm.FlagCanCancel)
192194

193195
def on_complete(ok, results):

python/plugins/processing/gui/ProcessingToolbox.py

+7-10
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
from qgis.utils import iface
3636
from qgis.core import (QgsApplication,
3737
QgsProcessingAlgorithm)
38-
from qgis.gui import QgsDockWidget
38+
from qgis.gui import (QgsGui,
39+
QgsDockWidget)
3940

4041
from processing.gui.Postprocessing import handleAlgorithmResults
4142
from processing.core.ProcessingLog import ProcessingLog
@@ -107,6 +108,7 @@ def openSettings(url):
107108

108109
QgsApplication.processingRegistry().providerRemoved.connect(self.removeProvider)
109110
QgsApplication.processingRegistry().providerAdded.connect(self.addProvider)
111+
QgsGui.instance().processingRecentAlgorithmLog().changed.connect(self.addRecentAlgorithms)
110112
settingsWatcher.settingsChanged.connect(self.fillTree)
111113

112114
def showDisabled(self):
@@ -349,11 +351,6 @@ def executeAlgorithm(self):
349351
except:
350352
pass
351353
canvas.setMapTool(prevMapTool)
352-
if dlg.wasExecuted():
353-
showRecent = ProcessingConfig.getSetting(
354-
ProcessingConfig.SHOW_RECENT_ALGORITHMS)
355-
if showRecent:
356-
self.addRecentAlgorithms(True)
357354
else:
358355
feedback = MessageBarProgress()
359356
context = dataobjects.createContext(feedback)
@@ -366,11 +363,11 @@ def fillTree(self):
366363
self.fillTreeUsingProviders()
367364
self.addRecentAlgorithms(False)
368365

369-
def addRecentAlgorithms(self, updating):
366+
def addRecentAlgorithms(self, updating=True):
370367
showRecent = ProcessingConfig.getSetting(
371368
ProcessingConfig.SHOW_RECENT_ALGORITHMS)
372369
if showRecent:
373-
recent = ProcessingLog.getRecentAlgorithms()
370+
recent = QgsGui.instance().processingRecentAlgorithmLog().recentAlgorithmIds()
374371
if len(recent) != 0:
375372
found = False
376373
if updating:
@@ -382,8 +379,8 @@ def addRecentAlgorithms(self, updating):
382379

383380
recentItem = QTreeWidgetItem()
384381
recentItem.setText(0, self.tr('Recently used'))
385-
for algname in recent:
386-
alg = QgsApplication.processingRegistry().createAlgorithmById(algname)
382+
for algorithm_id in recent:
383+
alg = QgsApplication.processingRegistry().createAlgorithmById(algorithm_id)
387384
if alg is not None:
388385
algItem = TreeAlgorithmItem(alg)
389386
recentItem.addChild(algItem)

0 commit comments

Comments
 (0)