]> git.0d.be Git - jack_mixer.git/commitdiff
Add confirmation dialog before clearing channels
authorDaniel Sheeler <dsheeler@pobox.com>
Wed, 1 Jul 2020 00:14:32 +0000 (19:14 -0500)
committerDaniel Sheeler <dsheeler@pobox.com>
Wed, 1 Jul 2020 00:14:32 +0000 (19:14 -0500)
jack_mixer.py

index 77e14e0fe63f41b74cf42abfb8036c8c3efe69b8..f09954c01a39e514f806be0f7673b41ca45c63c3 100755 (executable)
@@ -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: