#include "prefs_common.h"
#include "menu.h"
#include "combobox.h"
+#include "file-utils.h"
/* transient data */
static struct _PersonEdit_dlg personeditdlg;
GtkTreeModel *model;
GtkTreeIter iter, otheriter;
GtkTreeSelection *sel;
- gboolean errFlg = FALSE;
+ gboolean errFlg = FALSE, prev_exists = FALSE;
ItemEMail *email = NULL;
email = gtkut_tree_view_get_selected_pointer(
GTK_TREE_VIEW(personeditdlg.view_email), EMAIL_COL_PTR,
&model, &sel, &otheriter);
+ if (email != NULL)
+ prev_exists = TRUE;
email = edit_person_email_edit( &errFlg, NULL );
if( ! errFlg ) {
- gtk_list_store_insert_after(GTK_LIST_STORE(model), &iter, &otheriter);
+ if (prev_exists)
+ gtk_list_store_insert_after(GTK_LIST_STORE(model), &iter, &otheriter);
+ else /* list is empty */
+ gtk_list_store_append(GTK_LIST_STORE(model), &iter);
+
gtk_list_store_set(GTK_LIST_STORE(model), &iter,
EMAIL_COL_EMAIL, email->address,
#ifndef GENERIC_UMPC
GtkTreeModel *model;
GtkTreeSelection *sel;
GtkTreeIter iter, iter2;
- UserAttribute *attrib;
+ UserAttribute *prev_attrib, *attrib;
- attrib = gtkut_tree_view_get_selected_pointer(
+ attrib = edit_person_attrib_edit(&errFlg, NULL);
+ if (attrib == NULL) /* input for new attribute is not valid */
+ return;
+
+ prev_attrib = gtkut_tree_view_get_selected_pointer(
GTK_TREE_VIEW(personeditdlg.view_attrib), ATTRIB_COL_PTR,
&model, &sel, &iter);
- if (attrib == NULL) {
- /* No row selected, or list empty, add it as first row. */
+ if (prev_attrib == NULL) {
+ /* No row selected, or list empty, add new attribute as first row. */
gtk_list_store_insert(GTK_LIST_STORE(model), &iter, 0);
} else {
/* Add it after the currently selected row. */
iter = iter2;
}
- /* Grab the values from text entries, and fill out the new row. */
- attrib = edit_person_attrib_edit(&errFlg, NULL);
- if (!errFlg) {
- gtk_list_store_set(GTK_LIST_STORE(model), &iter,
- ATTRIB_COL_NAME, attrib->name,
- ATTRIB_COL_VALUE, attrib->value,
- ATTRIB_COL_PTR, attrib,
- -1);
- gtk_tree_selection_select_iter(sel, &iter);
- edit_person_attrib_clear(NULL);
- }
+ /* Fill out the new row. */
+ gtk_list_store_set(GTK_LIST_STORE(model), &iter,
+ ATTRIB_COL_NAME, attrib->name,
+ ATTRIB_COL_VALUE, attrib->value,
+ ATTRIB_COL_PTR, attrib,
+ -1);
+ gtk_tree_selection_select_iter(sel, &iter);
+ edit_person_attrib_clear(NULL);
}
/*!
/* gtk_container_set_border_width(GTK_CONTAINER(window), 0); */
gtk_window_set_title(GTK_WINDOW(window), _("Edit Person Data"));
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
- gtk_window_set_modal(GTK_WINDOW(window), TRUE);
+ gtk_window_set_modal(GTK_WINDOW(window), FALSE);
+ gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(edit_person_delete_event),
cancelled);
static GtkWidget *editaddr_popup_menu = NULL;
static GtkActionEntry editaddr_popup_entries[] =
{
- {"EditAddressPopup", NULL, "EditAddressPopup" },
+ {"EditAddressPopup", NULL, "EditAddressPopup", NULL, NULL, NULL },
{"EditAddressPopup/SetPicture", NULL, N_("_Set picture"), NULL, NULL, G_CALLBACK(addressbook_edit_person_set_picture_menu_cb) },
{"EditAddressPopup/UnsetPicture", NULL, N_("_Unset picture"), NULL, NULL, G_CALLBACK(addressbook_edit_person_unset_picture_menu_cb) },
};
model = gtk_tree_view_get_model(GTK_TREE_VIEW(personeditdlg.view_attrib));
if (gtk_tree_model_get_iter_first(model, &iter))
gtk_tree_selection_select_iter(sel, &iter);
- edit_person_attrib_cursor_changed(
- GTK_TREE_VIEW(personeditdlg.view_attrib), NULL);
+ edit_person_attrib_cursor_changed(
+ GTK_TREE_VIEW(personeditdlg.view_attrib), NULL);
edit_person_email_clear( NULL );
edit_person_attrib_clear( NULL );