def addAlgorithmEntry(alg, menuName, submenuName, actionText=None, icon=None, addButton=False): if actionText is None: if (QgsGui.higFlags() & QgsGui.HigMenuTextIsTitleCase) and not (alg.flags() & QgsProcessingAlgorithm.FlagDisplayNameIsLiteral): alg_title = QgsStringUtils.capitalize(alg.displayName(), QgsStringUtils.TitleCase) else: alg_title = alg.displayName() actionText = alg_title + QCoreApplication.translate('Processing', '…') action = QAction(icon or alg.icon(), actionText, iface.mainWindow()) alg_id = alg.id() action.setData(alg_id) action.triggered.connect(lambda: _executeAlgorithm(alg_id)) action.setObjectName("mProcessingUserMenu_%s" % alg_id) if menuName: menu = getMenu(menuName, iface.mainWindow().menuBar()) submenu = getMenu(submenuName, menu) submenu.addAction(action) if addButton: global algorithmsToolbar if algorithmsToolbar is None: algorithmsToolbar = iface.addToolBar(QCoreApplication.translate('MainWindow', 'Processing Algorithms')) algorithmsToolbar.setObjectName("ProcessingAlgorithms") algorithmsToolbar.setToolTip(QCoreApplication.translate('MainWindow', 'Processing Algorithms Toolbar')) algorithmsToolbar.addAction(action)
def addToolBarButton(algId, toolbar, icon=None, tooltip=None): alg = QgsApplication.processingRegistry().algorithmById(algId) if alg is None or alg.id() != algId: assert False, algId if tooltip is None: if (QgsGui.higFlags() & QgsGui.HigMenuTextIsTitleCase) and not ( alg.flags() & QgsProcessingAlgorithm.FlagDisplayNameIsLiteral): tooltip = QgsStringUtils.capitalize(alg.displayName(), QgsStringUtils.TitleCase) else: tooltip = alg.displayName() action = QAction(icon or alg.icon(), tooltip, iface.mainWindow()) algId = alg.id() action.setData(algId) action.triggered.connect(lambda: _executeAlgorithm(algId)) action.setObjectName("mProcessingAlg_%s" % algId) if toolbar: toolbar.addAction(action) else: QgsMessageLog.logMessage( Processing.tr('Toolbar "{}" not found').format( toolbar.windowTitle), Processing.tr('Processing'))