--- /dev/null
+"""
+Import dialogs
+"""
+
+import gtk
+import hildon
+import gobject
+from gettext import gettext as _
+from meabook.ui.fremantle_ui.common import create_button
+
+
+class ImportDialog:
+ """Import dialog."""
+
+ def __init__(self):
+ dialog = hildon.Dialog()
+ dialog.set_title(_('Import'))
+ selector = hildon.TouchSelector(text=True)
+ self.items_dict = {\
+ _('Import from LDIF'): 'ldif', \
+ _('Import from database'): 'db'}
+ for item in self.items_dict:
+ selector.append_text(item)
+ selector.set_active(0, 0)
+ # create file format button
+ format_button = hildon.PickerButton(gtk.HILDON_SIZE_AUTO | \
+ gtk.HILDON_SIZE_FINGER_HEIGHT, hildon.BUTTON_ARRANGEMENT_VERTICAL)
+ format_button.set_alignment(0, 0, 0, 0)
+ format_button.set_title(_("Import type"))
+ format_button.set_selector(selector)
+ # create file chooser button
+ fname_button = create_button(_('File name'), _('Choose file name'))
+ fname_button.connect('clicked', self.choose_file_name_cb)
+
+ import_button = dialog.add_button(_('Import'), gtk.RESPONSE_OK)
+ import_button.set_sensitive(False)
+
+ dialog.vbox.pack_start(format_button)
+ dialog.vbox.pack_start(fname_button)
+ dialog.vbox.show_all()
+
+ # create class attributes
+ self.dialog = dialog
+ self.import_button = import_button
+ self.format_button = format_button
+ self.fname_button = fname_button
+
+ def run(self):
+ response = self.dialog.run()
+ result = None
+ if response == gtk.RESPONSE_OK:
+ result = (self.items_dict[self.format_button.get_value().\
+ decode('utf-8')], self.fname_button.get_value())
+ self.dialog.destroy()
+ return result
+
+ def choose_file_name_cb(self, widget):
+ """Shows file chooser dialog."""
+
+ chooser = gobject.new(hildon.FileChooserDialog, \
+ action=gtk.FILE_CHOOSER_ACTION_OPEN)
+ chooser.set_property('show-files', True)
+ chooser.run()
+ path = chooser.get_filename()
+ if path:
+ widget.set_value(path)
+ self.import_button.set_sensitive(True)
+ chooser.destroy()
+