Beispiel #1
0
 def open_main_program_file(self):
     """Open this specification's main program file in the default editor."""
     file_path = os.path.join(self.path, self.includes[0])
     # Check if file exists first. openUrl may return True even if file doesn't exist
     # TODO: this could still fail if the file is deleted or renamed right after the check
     if not os.path.isfile(file_path):
         self._logger.msg_error.emit(
             "Tool main program file <b>{0}</b> not found.".format(
                 file_path))
         return
     ext = os.path.splitext(os.path.split(file_path)[1])[1]
     if ext in [".bat", ".exe"]:
         self._logger.msg_warning.emit(
             "Sorry, opening files with extension <b>{0}</b> not supported. "
             "Please open the file manually.".format(ext))
         return
     main_program_url = "file:///" + file_path
     # Open Tool specification main program file in editor
     # noinspection PyTypeChecker, PyCallByClass, PyArgumentList
     res = open_url(main_program_url)
     if not res:
         filename, file_extension = os.path.splitext(file_path)
         self._logger.msg_error.emit(
             "Unable to open Tool specification main program file {0}. "
             "Make sure that <b>{1}</b> "
             "files are associated with an editor. E.g. on Windows "
             "10, go to Control Panel -> Default Programs to do this.".
             format(filename, file_extension))
Beispiel #2
0
 def open_directory(self):
     """Open this item's data directory in file explorer."""
     url = "file:///" + self.data_dir
     # noinspection PyTypeChecker, PyCallByClass, PyArgumentList
     res = open_url(url)
     if not res:
         self._logger.msg_error.emit(
             f"Failed to open directory: {self.data_dir}")
Beispiel #3
0
 def open_results(self, checked=False):
     """Open output directory in file browser."""
     if not os.path.exists(self.output_dir):
         self._logger.msg_warning.emit(f"Tool <b>{self.name}</b> has no results. Click Execute to generate them.")
         return
     url = "file:///" + self.output_dir
     # noinspection PyTypeChecker, PyCallByClass, PyArgumentList
     res = open_url(url)
     if not res:
         self._logger.msg_error.emit(f"Failed to open directory: {self.output_dir}")
Beispiel #4
0
 def open_data_file(self, index):
     """Open data file in default program."""
     if not index:
         return
     if not index.isValid():
         logging.error("Index not valid")
         return
     data_file = self.data_files()[index.row()]
     url = "file:///" + os.path.join(self.data_dir, data_file)
     # noinspection PyTypeChecker, PyCallByClass, PyArgumentList
     res = open_url(url)
     if not res:
         self._logger.msg_error.emit(
             f"Opening file <b>{data_file}</b> failed")
Beispiel #5
0
 def open_reference(self, index):
     """Open reference in default program."""
     if not index:
         return
     if not index.isValid():
         logging.error("Index not valid")
         return
     reference = self.file_references()[index.row()]
     url = "file:///" + reference
     # noinspection PyTypeChecker, PyCallByClass, PyArgumentList
     res = open_url(url)
     if not res:
         self._logger.msg_error.emit(
             f"Failed to open reference:<b>{reference}</b>")
 def open_includes_file(self, index):
     """Open source file in default program."""
     if not index:
         return
     if not index.isValid():
         self._toolbox.msg_error.emit("Selected index not valid")
         return
     includes_file = self.sourcefiles_model.itemFromIndex(index).text()
     _, ext = os.path.splitext(includes_file)
     if ext in [".bat", ".exe"]:
         self._toolbox.msg_warning.emit(
             "Sorry, opening files with extension <b>{0}</b> not implemented. "
             "Please open the file manually.".format(ext))
         return
     url = "file:///" + os.path.join(self.program_path, includes_file)
     # noinspection PyCallByClass, PyTypeChecker, PyArgumentList
     res = open_url(url)
     if not res:
         self._toolbox.msg_error.emit(
             "Failed to open file: <b>{0}</b>".format(includes_file))
Beispiel #7
0
 def open_main_directory(self):
     """Open directory where the Tool specification main program is located in file explorer."""
     if not self.specification():
         return
     dir_url = "file:///" + self.specification().path
     open_url(dir_url)