added new files
[meabook] / ui / fremantle_ui / imports.py
diff --git a/ui/fremantle_ui/imports.py b/ui/fremantle_ui/imports.py
new file mode 100644 (file)
index 0000000..1da292e
--- /dev/null
@@ -0,0 +1,69 @@
+"""
+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()
+