diff options
author | Paul W. Frields <stickster@gmail.com> | 2010-12-21 16:21:16 -0500 |
---|---|---|
committer | Paul W. Frields <stickster@gmail.com> | 2010-12-21 16:21:16 -0500 |
commit | 14a085855a1b9e45317ea2ce467a237b53283069 (patch) | |
tree | 3c12bf2385cdb9f719ae6fee8eb424a78c3fe232 | |
parent | 7e7cbb25464152928a14fd1ed9aea36a4d0e5ff8 (diff) | |
download | pulsecaster-14a085855a1b9e45317ea2ce467a237b53283069.tar.gz pulsecaster-14a085855a1b9e45317ea2ce467a237b53283069.tar.xz pulsecaster-14a085855a1b9e45317ea2ce467a237b53283069.zip |
Dynamically generate file chooser, remove from builder
-rw-r--r-- | pulsecaster/data/pulsecaster.glade | 62 | ||||
-rw-r--r-- | pulsecaster/ui.py | 23 |
2 files changed, 13 insertions, 72 deletions
diff --git a/pulsecaster/data/pulsecaster.glade b/pulsecaster/data/pulsecaster.glade index 1a28ba0..255c92a 100644 --- a/pulsecaster/data/pulsecaster.glade +++ b/pulsecaster/data/pulsecaster.glade @@ -119,68 +119,6 @@ </object> </child> </object> - <object class="GtkFileChooserDialog" id="file_chooser"> - <property name="border_width">5</property> - <property name="modal">True</property> - <property name="destroy_with_parent">True</property> - <property name="type_hint">normal</property> - <property name="action">save</property> - <property name="do_overwrite_confirmation">True</property> - <property name="local_only">False</property> - <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox4"> - <property name="visible">True</property> - <property name="spacing">2</property> - <child> - <placeholder/> - </child> - <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area4"> - <property name="visible">True</property> - <property name="layout_style">end</property> - <child> - <object class="GtkButton" id="file_chooser_cancel_button"> - <property name="label">gtk-cancel</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="file_chooser_save_button"> - <property name="label">gtk-save</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_stock">True</property> - <property name="xalign">0.43999999761581421</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> - </object> - </child> - <action-widgets> - <action-widget response="0">file_chooser_cancel_button</action-widget> - <action-widget response="0">file_chooser_save_button</action-widget> - </action-widgets> - </object> <object class="GtkDialog" id="main_dialog"> <property name="border_width">5</property> <property name="default_width">300</property> diff --git a/pulsecaster/ui.py b/pulsecaster/ui.py index 4da0286..7016851 100644 --- a/pulsecaster/ui.py +++ b/pulsecaster/ui.py @@ -117,14 +117,6 @@ class PulseCasterUI: self.about.set_program_name(NAME) self.about.set_logo(self.icontheme.load_icon('pulsecaster', 96, gtk.ICON_LOOKUP_FORCE_SVG)) - self.file_chooser = self.builder.get_object('file_chooser') - self.file_chooser_cancel_button = self.builder.get_object('file_chooser_cancel_button') - self.file_chooser_cancel_button.connect('clicked', self.hideFileChooser) - self.file_chooser_save_button = self.builder.get_object('file_chooser_save_button') - self.file_chooser_save_button.connect('clicked', self.updateFileSinkPath) - self.file_chooser.set_do_overwrite_confirmation(True) - self.file_chooser.connect('confirm-overwrite', self._confirm_overwrite) - # Create PulseAudio backing self.pa = PulseObj(clientName=NAME) @@ -258,7 +250,18 @@ class PulseCasterUI: self.about.hide() def showFileChooser(self, *args): - self.file_chooser.show() + self.file_chooser = gtk.FileChooserDialog(title=_('Save your recording'), + action=gtk.FILE_CHOOSER_ACTION_SAVE, + buttons=('Cancel', gtk.RESPONSE_CANCEL, + 'OK', gtk.RESPONSE_OK)) + self.file_chooser.set_local_only(True) + response = self.file_chooser.run() + if response == gtk.RESPONSE_OK: + self.updateFileSinkPath() + elif response == gtk.RESPONSE_CANCEL: + self.hideFileChooser() + elif response == gtk.RESPONSE_DELETE_EVENT: + self.hideFileChooser() def hideFileChooser(self, *args): if not self.filesinkpath: @@ -274,7 +277,7 @@ class PulseCasterUI: self._remove_tempfile(self.tempfile, self.temppath) else: return - self.file_chooser.hide() + self.file_chooser.destroy() def updateFileSinkPath(self, *args): self.filesinkpath = self.file_chooser.get_filename() |