From ebe96f3c9c114bb81bec53425e85ed53d9b7baaf Mon Sep 17 00:00:00 2001 From: MrS0m30n3 Date: Mon, 14 Nov 2016 16:16:18 +0200 Subject: [PATCH] Implement confirm on exit option functionality --- youtube_dl_gui/mainframe.py | 12 ++++++++++++ youtube_dl_gui/optionsframe.py | 5 ++--- youtube_dl_gui/optionsmanager.py | 5 ++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/youtube_dl_gui/mainframe.py b/youtube_dl_gui/mainframe.py index f610c02..f0456d9 100644 --- a/youtube_dl_gui/mainframe.py +++ b/youtube_dl_gui/mainframe.py @@ -999,6 +999,18 @@ class MainFrame(wx.Frame): processes are not running. """ + if self.opt_manager.options["confirm_exit"]: + dlg = wx.MessageDialog(self, "Are you sure you want to exit?", "Exit", wx.YES_NO | wx.ICON_QUESTION) + + result = dlg.ShowModal() == wx.ID_YES + dlg.Destroy() + else: + result = True + + if result: + self.close() + + def close(self): if self.download_manager is not None: self.download_manager.stop_downloads() self.download_manager.join() diff --git a/youtube_dl_gui/optionsframe.py b/youtube_dl_gui/optionsframe.py index a95e1c9..6d91e1e 100644 --- a/youtube_dl_gui/optionsframe.py +++ b/youtube_dl_gui/optionsframe.py @@ -306,7 +306,6 @@ class GeneralTab(TabPanel): self._set_layout() - self.confirm_exit_checkbox.Disable() if os.name == "nt": self.sudo_textctrl.Hide() @@ -401,8 +400,6 @@ class GeneralTab(TabPanel): """Event handler for the wx.EVT_CHECKBOX of the shutdown_checkbox.""" self.sudo_textctrl.Enable(self.shutdown_checkbox.GetValue()) - #TODO Implement load-save for confirm_exit_checkbox widget - def load_options(self): self.language_combobox.SetValue(self.LOCALE_NAMES[self.opt_manager.options["locale_name"]]) self.filename_format_combobox.SetValue(OUTPUT_FORMATS[self.opt_manager.options["output_format"]]) @@ -410,6 +407,7 @@ class GeneralTab(TabPanel): self.filename_ascii_checkbox.SetValue(self.opt_manager.options["restrict_filenames"]) self.shutdown_checkbox.SetValue(self.opt_manager.options["shutdown"]) self.sudo_textctrl.SetValue(self.opt_manager.options["sudo_password"]) + self.confirm_exit_checkbox.SetValue(self.opt_manager.options["confirm_exit"]) #REFACTOR Automatically call on the new methods #save_options @@ -425,6 +423,7 @@ class GeneralTab(TabPanel): self.opt_manager.options["restrict_filenames"] = self.filename_ascii_checkbox.GetValue() self.opt_manager.options["shutdown"] = self.shutdown_checkbox.GetValue() self.opt_manager.options["sudo_password"] = self.sudo_textctrl.GetValue() + self.opt_manager.options["confirm_exit"] = self.confirm_exit_checkbox.GetValue() class FormatsTab(TabPanel): diff --git a/youtube_dl_gui/optionsmanager.py b/youtube_dl_gui/optionsmanager.py index 0030733..8063df6 100644 --- a/youtube_dl_gui/optionsmanager.py +++ b/youtube_dl_gui/optionsmanager.py @@ -213,6 +213,8 @@ class OptionsManager(object): ignore_config (boolean): When True will ignore youtube-dl config file options. + confirm_exit (boolean): When True create popup to confirm exiting youtube-dl-gui. + """ #TODO Remove old options & check options validation self.options = { @@ -271,7 +273,8 @@ class OptionsManager(object): 'selected_audio_formats': ['mp3', 'm4a', 'vorbis'], 'selected_format': '0', 'youtube_dl_debug': False, - 'ignore_config': True + 'ignore_config': True, + 'confirm_exit': True } def load_from_file(self):