Jump to content

Advice to update a "Tool" Qml plugin file


Cuq
Go to solution Solved by Cuq,

Recommended Posts

Posted · Advice to update a "Tool" Qml plugin file

Hello,

I'm looking for a code solution to update the "Tool" plugins for the release 5.0 of Cura.  How to specify the right QML file according to the QT release ?  In these plugins.

 

The tool_panel property is specified in the   "__init__.py" file IE : "tool_panel": "TranslateTool.qml",

 

Is it possible to change this property after the init ?

 

Best regards,

 

Cuq

  • Link to post
    Share on other sites

    Posted (edited) · Advice to update a "Tool" Qml plugin file

    As usual with me : it's not clean but it's working ... Any advice for a better  or more elegant solution ?

     

    # Copyright (c) 2022 5axes
    # Initialy Based on the SupportBlocker plugin by Ultimaker B.V., and licensed under LGPLv3 or higher.
    
    VERSION_QT5 = False
    try:
        from PyQt6.QtCore import Qt
    except ImportError:
        # from PyQt5.QtCore import Qt
        VERSION_QT5 = True
        
        
    from . import CustomSupportsCylinder
    
    from UM.i18n import i18nCatalog
    i18n_catalog = i18nCatalog("cura")
    
    def getMetaData():
        if not VERSION_QT5:
            QmlFile="qml_qt6/CustomSupport.qml"
        else:
            QmlFile="qml_qt5/CustomSupport.qml"
        
    
        return {
            "tool": {
                "name": i18n_catalog.i18nc("@label", "Custom Supports Cylinder"),
                "description": i18n_catalog.i18nc("@info:tooltip", "Add 6 types of custom support"),
                "icon": "tool_icon.svg",
                "tool_panel": QmlFile,
                "weight": 8
            }
        }
    
    def register(app):
        return { "tool": CustomSupportsCylinder.CustomSupportsCylinder() }

     

    Edited by Cuq
    • Like 1
    Link to post
    Share on other sites

    Posted · Advice to update a "Tool" Qml plugin file

    If you dislike the unused import, you could use the Cura version instead:

        cura_version = Version(Application.getInstance().getVersion())
    
        tool_panel_path = "resources/qml/MeasureTool.qml"
        if cura_version < Version("5.0.0") and cura_version.getMajor() > 0:
            tool_panel_path = "resources/qml_qt5/MeasureTool.qml"

    But then you need to import UM.Version and UM.Application. Choose your poison.

    (good to see that you have decided to update your plugins afterall)

    • Like 2
    Link to post
    Share on other sites

    Posted · Advice to update a "Tool" Qml plugin file

    As usual @fieldOfView your analyse is very acurate. Yes I feal this PyQt6 import not very elegant. But if there is no other simple solution...  I will use the french expression : Choose between the plague and the cholera ... I will take the plague 

    Thanks for your feedback ... 

     

    And it's not because I update my plugins that I will make them available on the marketplace. I think I'm still waiting for a stable version of Cura 😄

     

  • Link to post
    Share on other sites

    • Solution
    Posted (edited) · Advice to update a "Tool" Qml plugin file

    So the Plague for Cura 5.0:

     

    VERSION_QT5 = False
    try:
        from PyQt6.QtCore import QT_VERSION_STR
    except ImportError:
        VERSION_QT5 = True

     

    Edited by Cuq
    • Like 1
    Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Thanks
          • Like
        • 3 replies
      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 26 replies
    ×
    ×
    • Create New...