summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul W. Frields <stickster@gmail.com>2010-12-21 16:21:16 -0500
committerPaul W. Frields <stickster@gmail.com>2010-12-21 16:21:16 -0500
commit14a085855a1b9e45317ea2ce467a237b53283069 (patch)
tree3c12bf2385cdb9f719ae6fee8eb424a78c3fe232
parent7e7cbb25464152928a14fd1ed9aea36a4d0e5ff8 (diff)
downloadpulsecaster-14a085855a1b9e45317ea2ce467a237b53283069.tar.gz
pulsecaster-14a085855a1b9e45317ea2ce467a237b53283069.tar.xz
pulsecaster-14a085855a1b9e45317ea2ce467a237b53283069.zip
Dynamically generate file chooser, remove from builder
-rw-r--r--pulsecaster/data/pulsecaster.glade62
-rw-r--r--pulsecaster/ui.py23
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()