def __run_edit_dialog(menu_item, parent, edit_type): adapter = None if edit_type == MenuBar.MANUFACTURERS: adapter = util.ManufacturersEditAdapter() elif edit_type == MenuBar.DEVICES: adapter = util.DevicesEditAdapter() elif edit_type == MenuBar.FOLDERS: adapter = util.FoldersEditAdapter() dialog = EditDialog(menu_item.get_label().replace("_", ""), parent, adapter) dialog.run() dialog.destroy()
def edit_contact(self, button=None): sel = self.treeview.get_selection().get_selected_rows() if sel[1]: (href,etag,vcard,local_status) = self.card_list_sql[sel[0].get_value( sel[0].get_iter(sel[1][0]), 0 )] vcard_copy = copy.deepcopy(vcard) edit_dialog = EditDialog(vcard_copy, self) if edit_dialog.run() == gtk.RESPONSE_ACCEPT: treeiter = sel[0].get_iter(sel[1][0]) idx = self.model.get_value( treeiter, 0 ) conn = sqlite3.connect(self.sqlFilepath) local_status = 3 if local_status != 1 else 1 conn.execute('update vcards set vcard=?,local_status=? where href=?', (unicode(edit_dialog.get_vcard().serialize()), local_status, href)) conn.commit() conn.close() self.card_list_sql[idx] = (href,etag,edit_dialog.get_vcard(),local_status) self.syncerThreadQueue.put('sync_local_changes') self.update_treeview_values( edit_dialog.get_vcard(), treeiter ) self.on_selection_changed(self.treeview.get_selection()) edit_dialog.destroy()
def add_contact(self, button=None): self.max_key += 1 vcard = vobject.vCard() vcard.add( 'fn' ) vcard.add( 'n' ) vcard.add( 'version' ) vcard.version.value = '3.0' d = EditDialog(vcard, self) if d.run() == gtk.RESPONSE_ACCEPT: conn = sqlite3.connect(self.sqlFilepath) href = str(uuid.uuid4()) conn.execute('INSERT INTO vcards VALUES (?,?,?,1)', (href,href,unicode(d.get_vcard().serialize()))) conn.commit() conn.close() self.card_list_sql[self.max_key] = (href,href,d.get_vcard(),1) treeiter = self.model.append( (self.max_key, '', '', '', 400, '') ) self.key_from_href[href] = (self.max_key, treeiter) self.syncerThreadQueue.put('sync_local_changes') self.update_treeview_values(vcard, treeiter) self.treeview.get_selection().select_iter(treeiter) d.destroy()