From 178bb7676750d495e59175e593fc55b35f8d7224 Mon Sep 17 00:00:00 2001 From: Daniel Sheeler Date: Tue, 30 Jun 2020 19:14:32 -0500 Subject: [PATCH] Add confirmation dialog before clearing channels --- jack_mixer.py | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/jack_mixer.py b/jack_mixer.py index 77e14e0..f09954c 100755 --- a/jack_mixer.py +++ b/jack_mixer.py @@ -431,26 +431,33 @@ class JackMixer(SerializedObject): def on_channels_clear(self, widget): - for channel in self.output_channels: - channel.unrealize() - self.hbox_outputs.remove(channel.get_parent()) - for channel in self.channels: - channel.unrealize() - self.hbox_inputs.remove(channel.get_parent()) - self.channels = [] - self.output_channels = [] - self.channel_edit_input_menu = Gtk.Menu() - self.channel_edit_input_menu_item.set_submenu(self.channel_edit_input_menu) - self.channel_edit_input_menu_item.set_sensitive(False) - self.channel_remove_input_menu = Gtk.Menu() - self.channel_remove_input_menu_item.set_submenu(self.channel_remove_input_menu) - self.channel_remove_input_menu_item.set_sensitive(False) - self.channel_edit_output_menu = Gtk.Menu() - self.channel_edit_output_menu_item.set_submenu(self.channel_edit_output_menu) - self.channel_edit_output_menu_item.set_sensitive(False) - self.channel_remove_output_menu = Gtk.Menu() - self.channel_remove_output_menu_item.set_submenu(self.channel_remove_output_menu) - self.channel_remove_output_menu_item.set_sensitive(False) + dlg = Gtk.MessageDialog(parent = self.window, + modal = True, + message_type = Gtk.MessageType.WARNING, + text = "Are you sure you want to clear all channels?", + buttons = Gtk.ButtonsType.OK_CANCEL) + if not widget or dlg.run() == Gtk.ResponseType.OK: + for channel in self.output_channels: + channel.unrealize() + self.hbox_outputs.remove(channel.get_parent()) + for channel in self.channels: + channel.unrealize() + self.hbox_inputs.remove(channel.get_parent()) + self.channels = [] + self.output_channels = [] + self.channel_edit_input_menu = Gtk.Menu() + self.channel_edit_input_menu_item.set_submenu(self.channel_edit_input_menu) + self.channel_edit_input_menu_item.set_sensitive(False) + self.channel_remove_input_menu = Gtk.Menu() + self.channel_remove_input_menu_item.set_submenu(self.channel_remove_input_menu) + self.channel_remove_input_menu_item.set_sensitive(False) + self.channel_edit_output_menu = Gtk.Menu() + self.channel_edit_output_menu_item.set_submenu(self.channel_edit_output_menu) + self.channel_edit_output_menu_item.set_sensitive(False) + self.channel_remove_output_menu = Gtk.Menu() + self.channel_remove_output_menu_item.set_submenu(self.channel_remove_output_menu) + self.channel_remove_output_menu_item.set_sensitive(False) + dlg.destroy() def add_channel(self, name, stereo, volume_cc, balance_cc, mute_cc, solo_cc): try: -- 2.39.2