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

      • 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
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...