kopia lustrzana https://github.com/corrscope/corrscope
Add save-as to GUI
rodzic
5e609f0ac5
commit
a9d62868e3
|
@ -56,6 +56,7 @@ class MainWindow(qw.QMainWindow):
|
||||||
self.master_audio_browse.clicked.connect(self.on_master_audio_browse)
|
self.master_audio_browse.clicked.connect(self.on_master_audio_browse)
|
||||||
self.actionExit.triggered.connect(qw.QApplication.quit)
|
self.actionExit.triggered.connect(qw.QApplication.quit)
|
||||||
self.actionSave.triggered.connect(self.on_action_save)
|
self.actionSave.triggered.connect(self.on_action_save)
|
||||||
|
self.actionSaveAs.triggered.connect(self.on_action_save_as)
|
||||||
self.actionPlay.triggered.connect(self.on_action_play)
|
self.actionPlay.triggered.connect(self.on_action_play)
|
||||||
self.actionRender.triggered.connect(self.on_action_render)
|
self.actionRender.triggered.connect(self.on_action_render)
|
||||||
|
|
||||||
|
@ -78,6 +79,7 @@ class MainWindow(qw.QMainWindow):
|
||||||
menuBar: qw.QMenuBar
|
menuBar: qw.QMenuBar
|
||||||
actionExit: qw.QAction
|
actionExit: qw.QAction
|
||||||
actionSave: qw.QAction
|
actionSave: qw.QAction
|
||||||
|
actionSaveAs: qw.QAction
|
||||||
actionPlay: qw.QAction
|
actionPlay: qw.QAction
|
||||||
actionRender: qw.QAction
|
actionRender: qw.QAction
|
||||||
|
|
||||||
|
@ -94,9 +96,26 @@ class MainWindow(qw.QMainWindow):
|
||||||
|
|
||||||
def on_action_save(self):
|
def on_action_save(self):
|
||||||
if self._cfg_path is None:
|
if self._cfg_path is None:
|
||||||
raise NotImplementedError
|
return self.on_action_save_as()
|
||||||
yaml.dump(self.cfg, self._cfg_path)
|
yaml.dump(self.cfg, self._cfg_path)
|
||||||
|
|
||||||
|
def on_action_save_as(self):
|
||||||
|
cfg_path_default = os.path.join(self.cfg_dir, self.file_stem) + cli.YAML_NAME
|
||||||
|
|
||||||
|
filters = ["YAML files (*.yaml)", "All files (*)"]
|
||||||
|
name, file_type = qw.QFileDialog.getSaveFileName(
|
||||||
|
self, "Save As", cfg_path_default, ';;'.join(filters)
|
||||||
|
)
|
||||||
|
if name != '':
|
||||||
|
path = Path(name)
|
||||||
|
# FIXME automatic extension bad? Only if "YAML files (*.yaml)"
|
||||||
|
if file_type == filters[0] and path.suffix == '':
|
||||||
|
path = path.with_suffix(cli.YAML_NAME)
|
||||||
|
|
||||||
|
self._cfg_path = path
|
||||||
|
self.load_title()
|
||||||
|
self.on_action_save()
|
||||||
|
|
||||||
def on_action_play(self):
|
def on_action_play(self):
|
||||||
""" Launch ovgen and ffplay. """
|
""" Launch ovgen and ffplay. """
|
||||||
arg = self._get_args([FFplayOutputConfig()])
|
arg = self._get_args([FFplayOutputConfig()])
|
||||||
|
@ -111,6 +130,7 @@ class MainWindow(qw.QMainWindow):
|
||||||
self, "Render to Video", video_path, "MP4 files (*.mp4);;All files (*)"
|
self, "Render to Video", video_path, "MP4 files (*.mp4);;All files (*)"
|
||||||
)
|
)
|
||||||
if name != '':
|
if name != '':
|
||||||
|
# FIXME what if missing mp4?
|
||||||
dlg = OvgenProgressDialog(self)
|
dlg = OvgenProgressDialog(self)
|
||||||
arg = self._get_args([FFmpegOutputConfig(name)], dlg)
|
arg = self._get_args([FFmpegOutputConfig(name)], dlg)
|
||||||
error_msg = 'Cannot render to file, another play/render is active'
|
error_msg = 'Cannot render to file, another play/render is active'
|
||||||
|
|
|
@ -412,7 +412,7 @@ width: 0px;
|
||||||
</action>
|
</action>
|
||||||
<action name="actionSaveAs">
|
<action name="actionSaveAs">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Save &As?</string>
|
<string>Save &As</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="shortcut">
|
<property name="shortcut">
|
||||||
<string>Ctrl+Shift+S</string>
|
<string>Ctrl+Shift+S</string>
|
||||||
|
|
Ładowanie…
Reference in New Issue