def __init__(self):
     super().__init__()
     self._settings = None
     self._settings_model = None
     try:
         setting_data = self.getSettingData()
         if "key" in setting_data:
             self._settings = SettingsCategory(setting_data["key"],
                                               i18n_catalog, self)
             self._settings.fillByDict(self.getSettingData())
             self._settings_model = SettingsFromCategoryModel(
                 self._settings)
             self._settings_model.sort(lambda t: t["key"])
         else:
             Logger.log("e",
                        "Script has no key in meta data. Unable to use.")
     except NotImplementedError:
         pass
 def __init__(self):
     super().__init__()
     self._settings = None
     self._settings_model = None
     try:
         setting_data = self.getSettingData()
         if "key" in setting_data:
             self._settings = SettingsCategory(setting_data["key"], i18n_catalog, self)
             self._settings.fillByDict(self.getSettingData())
             self._settings_model = SettingsFromCategoryModel(self._settings)
             self._settings_model.sort(lambda t: t["key"])
         else: 
             Logger.log("e", "Script has no key in meta data. Unable to use.")
     except NotImplementedError:
         pass 
示例#3
0
    def __init__(self):
        super().__init__()
        self._settings = None
        self._settings_model = None
        self._profile = ScriptProfile.ScriptProfile(self)

        try:
            setting_data = self.getSettingData()
            if "key" in setting_data:
                self._settings = SettingsCategory(self, setting_data["key"], i18n_catalog, self)
                self._settings.fillByDict(self.getSettingData())
                self.activeProfileChanged.emit() #Emit the event before the settings model is sorted, but after settings is created.
                self._settings_model = SettingsFromCategoryModel(self._settings, machine_manager = self)
                self._settings_model.sort(lambda t: t["key"])
                self.settingsLoaded.emit()
            else: 
                Logger.log("e", "Script has no key in meta data. Unable to use.")
        except NotImplementedError:
            pass 
示例#4
0
class Script(SignalEmitter):
    def __init__(self):
        super().__init__()
        self._settings = None
        self._settings_model = None
        self._profile = ScriptProfile.ScriptProfile(self)
        try:
            setting_data = self.getSettingData()
            if "key" in setting_data:
                self._settings = SettingsCategory(self, setting_data["key"], i18n_catalog, self)
                self._settings.fillByDict(self.getSettingData())
                self._settings_model = SettingsFromCategoryModel(self._settings, machine_manager = self)
                self._settings_model.sort(lambda t: t["key"])
                self.settingsLoaded.emit()
            else: 
                Logger.log("e", "Script has no key in meta data. Unable to use.")
        except NotImplementedError:
            pass 



    settingsLoaded = Signal()
    activeProfileChanged = Signal()

    def getActiveProfile(self):
        return self._profile

    ##  Needs to return a dict that can be used to construct a settingcategory file. 
    #   See the example script for an example.
    #   It follows the same style / guides as the Uranium settings.
    def getSettingData(self):
        raise NotImplementedError()
    
    ##  Get the initialised settings 
    def getSettings(self):
        return self._settings
    
    def getSettingsModel(self):
        return self._settings_model
    
    def getValue(self, line, key, default = None):
        if not key in line or (';' in line and line.find(key) > line.find(';')):
            return default
        sub_part = line[line.find(key) + 1:]
        m = re.search('^[0-9]+\.?[0-9]*', sub_part)
        if m is None:
            return default
        try:
            return float(m.group(0))
        except:
            return default
    
    ##  Get setting by key. (convenience function)
    #   \param key Key to select setting by (string)
    #   \return Setting or none if no setting was found.
    def getSettingByKey(self, key):
        return self._settings.getSetting(key)
    
    ##  Set the value of a setting by key.
    #   \param key Key of setting to change.
    #   \param value value to set.
    def setSettingValueByKey(self, key, value):
        self._profile.setSettingValue(key,value)

    ##  Get the value of setting by key.
    #   \param key Key of the setting to get value from
    #   \return value (or none)
    def getSettingValueByKey(self, key):
        return self._profile.getSettingValue(key)
    
    ##  This is called when the script is executed. 
    #   It gets a list of g-code strings and needs to return a (modified) list.
    def execute(self, data):
        raise NotImplementedError()
class Script():
    def __init__(self):
        super().__init__()
        self._settings = None
        self._settings_model = None
        try:
            setting_data = self.getSettingData()
            if "key" in setting_data:
                self._settings = SettingsCategory(setting_data["key"],
                                                  i18n_catalog, self)
                self._settings.fillByDict(self.getSettingData())
                self._settings_model = SettingsFromCategoryModel(
                    self._settings)
                self._settings_model.sort(lambda t: t["key"])
            else:
                Logger.log("e",
                           "Script has no key in meta data. Unable to use.")
        except NotImplementedError:
            pass

    ##  Needs to return a dict that can be used to construct a settingcategory file.
    #   See the example script for an example.
    #   It follows the same style / guides as the Uranium settings.
    def getSettingData(self):
        raise NotImplementedError()

    ##  Get the initialised settings
    def getSettings(self):
        return self._settings

    def getSettingsModel(self):
        return self._settings_model

    def getValue(self, line, key, default=None):
        if not key in line or (';' in line
                               and line.find(key) > line.find(';')):
            return default
        sub_part = line[line.find(key) + 1:]
        m = re.search('^[0-9]+\.?[0-9]*', sub_part)
        if m is None:
            return default
        try:
            return float(m.group(0))
        except:
            return default

    ##  Get setting by key. (convenience function)
    #   \param key Key to select setting by (string)
    #   \return Setting or none if no setting was found.
    def getSettingByKey(self, key):
        return self._settings.getSettingByKey(key)

    ##  Set the value of a setting by key.
    #   \param key Key of setting to change.
    #   \param value value to set.
    def setSettingValueByKey(self, key, value):
        setting = self.getSettingByKey(key)
        if setting is not None:
            setting.setValue(value)

    ##  Get the value of setting by key.
    #   \param key Key of the setting to get value from
    #   \return value (or none)
    def getSettingValueByKey(self, key):
        setting = self.getSettingByKey(key)
        if setting is not None:
            return setting.getValue()
        return None

    ##  This is called when the script is executed.
    #   It gets a list of g-code strings and needs to return a (modified) list.
    def execute(self, data):
        raise NotImplementedError()