def _on_load_queue(self): _dir = commands.get_workfolder() fdialog = QtWidgets.QFileDialog() filepath, ext = fdialog.getOpenFileName(self, "Open File", _dir, "*.json") with open(filepath, "r") as fp: queue_data = json.load(fp) if "queue" not in queue_data: raise RuntimeError("Invalid queue data") valid_items = [] items = commands.create_queue_in_data(queue_data["queue"]) for item in items: if self._validate_queue_entry(item): valid_items.append(item) self.log.info("Found %d new item(s)" % len(valid_items)) if self.queue_widgets.currentIndex() != 1: self.queue_widgets.setCurrentIndex(1) self.queue_model.add_items(valid_items)
def _on_save_queue(self): """Store the created queue in a json file""" _dir = commands.get_workfolder() fdialog = QtWidgets.QFileDialog() filepath, ext = fdialog.getSaveFileName(self, "Save File", _dir, "*.json") if not filepath: return assert ext == "*.json", "Wrong file type" queued_items = self._get_queued_items() if not queued_items: self.log.error("No queued items to store") return queue_data = commands.create_queue_out_data(queued_items) commands.save_to_json(filepath, {"queue": queue_data})