Jump to content
Ultimaker Community of 3D Printing Experts

Advice to update a "Tool" Qml plugin file


Cuq
 Share

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

    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
     Share

    • Our picks

      • Ultimaker showcase | April 2022 | 4pm CEST | 10am EDT
        I'm excited because I've personally produced this showcase event, so if you are curious what else I'm up to nowadays, come check it out and say hi in the chat! It would mean a lot! 
          • Thanks
          • Like
        • 4 replies
      • New here? Get ahead with a free onboarding course
        Hi,
         
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 12 replies
    ×
    ×
    • Create New...