Esempio n. 1
0
 def testDefaultScriptsFolder(self):
     """
     Tests default user scripts folder
     """
     self.assertTrue(JsUtils.default_scripts_folder())
     self.assertIn('rscripts', JsUtils.default_scripts_folder())
     self.assertTrue(os.path.exists(JsUtils.default_scripts_folder()))
    def saveScript(self, saveAs):
        newPath = None
        if self.filePath is None or saveAs:
            scriptDir = JsUtils.default_scripts_folder()
            newPath, _ = QFileDialog.getSaveFileName(
                self, self.tr("Save script"), scriptDir,
                self.tr("Javascript files (*.js *.JS)"))

            if newPath:
                if not newPath.lower().endswith(".js"):
                    newPath += ".js"

                self.filePath = newPath

        if self.filePath:
            text = self.editor.text()
            try:
                with codecs.open(self.filePath, "w", encoding="utf-8") as f:
                    f.write(text)
            except IOError as e:
                QMessageBox.warning(
                    self, self.tr("I/O error"),
                    self.tr("Unable to save edits:\n{}").format(str(e)))
                return

            self.setHasChanged(False)

        QgsApplication.processingRegistry().providerById(
            "r").refreshAlgorithms()
Esempio n. 3
0
 def testScriptsFolders(self):
     """
     Test script folders
     """
     self.assertTrue(JsUtils.script_folders())
     self.assertIn(JsUtils.default_scripts_folder(),
                   JsUtils.script_folders())
     self.assertIn(JsUtils.builtin_scripts_folder(),
                   JsUtils.script_folders())
Esempio n. 4
0
    def load(self):
        """
        Called when first loading provider
        """
        ProcessingConfig.settingIcons[self.name()] = self.icon()
        ProcessingConfig.addSetting(
            Setting(self.name(),
                    JsUtils.SCRIPTS_FOLDER,
                    self.tr('Javascript scripts folder'),
                    JsUtils.default_scripts_folder(),
                    valuetype=Setting.MULTIPLE_FOLDERS))

        ProviderActions.registerProviderActions(self, self.actions)
        ProviderContextMenuActions.registerProviderContextMenuActions(
            self.contextMenuActions)
        ProcessingConfig.readSettings()
        self.refreshAlgorithms()
        return True
    def openScript(self):
        if self.hasChanged:
            ret = QMessageBox.warning(
                self, self.tr("Unsaved changes"),
                self.tr("There are unsaved changes in the script. Continue?"),
                QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
            if ret == QMessageBox.No:
                return

        scriptDir = JsUtils.default_scripts_folder()
        fileName, _ = QFileDialog.getOpenFileName(
            self, self.tr("Open script"), scriptDir,
            self.tr("Javascript files (*.js *.JS)"))

        if fileName == "":
            return

        with OverrideCursor(Qt.WaitCursor):
            self._loadFile(fileName)