コード例 #1
0
ファイル: menus.py プロジェクト: dmarteau/QGIS
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)
コード例 #2
0
ファイル: menus.py プロジェクト: dollarklavs/QGIS
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)
コード例 #3
0
ファイル: menus.py プロジェクト: zyhgit/QGIS
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'))