-class SettingsDialog(object):
-
- def __init__(self, widgetTree, gcDialer):
- self._gcDialer = gcDialer
- self._widgetTree = widgetTree
- self._dialog = self._widgetTree.get_widget("settings_dialog")
-
- self._applyButton = self._widgetTree.get_widget("apply_settings")
- self._applyButton.connect("clicked", self.custom_button_response(gtk.RESPONSE_OK))
-
- self._cancelButton = self._widgetTree.get_widget("cancel_settings")
- self._cancelButton.connect("clicked", self.custom_button_response(gtk.RESPONSE_CANCEL))
-
- self._booksList = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
- for (factoryId, bookId), (factoryName, bookName) in self._gcDialer.get_addressbooks():
- row = (str(factoryId), bookId, factoryName, bookName)
- self._booksList.append(row)
-
- self._booksView = self._widgetTree.get_widget("books_view")
- self._booksView.set_model(self._booksList)
-
- # Add the column to the treeview
- column = gtk.TreeViewColumn("Addressbook")
-
- textrenderer = gtk.CellRendererText()
- column.pack_start(textrenderer, expand=False)
- column.add_attribute(textrenderer, 'text', 2)
-
- textrenderer = gtk.CellRendererText()
- column.pack_start(textrenderer, expand=True)
- column.add_attribute(textrenderer, 'text', 3)
-
- column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
- column.set_sort_column_id(2)
- column.set_visible(True)
- self._booksView.append_column(column)
-
- self._booksViewSelection = self._booksView.get_selection()
- self._booksViewSelection.set_mode(gtk.SELECTION_SINGLE)
- self.reset()
-
- def reset(self):
- pass
-
- def custom_button_response(self, response):
-
- def button_handler(*args, **kwds):
- self._dialog.response(response)
-
- return button_handler
-
- def run(self):
- userResponse = self._dialog.run()
-
- if userResponse == gtk.RESPONSE_OK:
- model, itr = self._booksViewSelection.get_selected()
- if itr:
- factoryId = int(self._booksList.get_value(itr, 0))
- bookId = self._booksList.get_value(itr, 1)
- self._gcDialer.open_addressbook(factoryId, bookId)
- self._booksViewSelection.unselect_all()
- else:
- self.reset()
-
- self._dialog.hide()
-
-