Added e-card-merging-book-commit-duplicate-detected.glade here.
2001-06-11 Christopher James Lahey <clahey@ximian.com> * gui/merging/Makefile.am (glade_DATA): Added e-card-merging-book-commit-duplicate-detected.glade here. * gui/merging/e-card-merging-book-commit-duplicate-detected.glade: Added this file. The GUI for asking whether to commit a modified card. * gui/merging/e-card-merging.c, gui/merging/e-card-merging.h (e_card_merging_book_commit_card): Added this function. * gui/widgets/e-addressbook-table-adapter.c (addressbook_set_value_at), gui/widgets/e-addressbook-util.c (commit_card_cb), gui/widgets/e-minicard.c (e_minicard_event): Use e_card_merging_book_commit_card instead of e_book_commit_card here. svn path=/trunk/; revision=10184
This commit is contained in:
committed by
Chris Lahey
parent
4b58038f45
commit
8b080c2358
@ -1,3 +1,20 @@
|
||||
2001-06-11 Christopher James Lahey <clahey@ximian.com>
|
||||
|
||||
* gui/merging/Makefile.am (glade_DATA): Added
|
||||
e-card-merging-book-commit-duplicate-detected.glade here.
|
||||
|
||||
* gui/merging/e-card-merging-book-commit-duplicate-detected.glade:
|
||||
Added this file. The GUI for asking whether to commit a modified
|
||||
card.
|
||||
|
||||
* gui/merging/e-card-merging.c, gui/merging/e-card-merging.h
|
||||
(e_card_merging_book_commit_card): Added this function.
|
||||
|
||||
* gui/widgets/e-addressbook-table-adapter.c
|
||||
(addressbook_set_value_at), gui/widgets/e-addressbook-util.c
|
||||
(commit_card_cb), gui/widgets/e-minicard.c (e_minicard_event): Use
|
||||
e_card_merging_book_commit_card instead of e_book_commit_card here.
|
||||
|
||||
2001-06-11 Christopher James Lahey <clahey@ximian.com>
|
||||
|
||||
* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
|
||||
|
||||
@ -16,7 +16,8 @@ libecardmerging_a_SOURCES = \
|
||||
|
||||
|
||||
gladedir = $(datadir)/evolution/glade
|
||||
glade_DATA = e-card-duplicate-detected.glade
|
||||
glade_DATA = e-card-duplicate-detected.glade \
|
||||
e-card-merging-book-commit-duplicate-detected.glade
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(glade_DATA)
|
||||
|
||||
@ -0,0 +1,255 @@
|
||||
<?xml version="1.0"?>
|
||||
<GTK-Interface>
|
||||
|
||||
<project>
|
||||
<name>e-card-merging-book-commit-duplicate-detected</name>
|
||||
<program_name>e-card-merging-book-commit-duplicate-detected</program_name>
|
||||
<directory></directory>
|
||||
<source_directory>src</source_directory>
|
||||
<pixmaps_directory>pixmaps</pixmaps_directory>
|
||||
<language>C</language>
|
||||
<gnome_support>True</gnome_support>
|
||||
<gettext_support>True</gettext_support>
|
||||
<use_widget_names>True</use_widget_names>
|
||||
<output_main_file>False</output_main_file>
|
||||
<output_support_files>False</output_support_files>
|
||||
<output_build_files>False</output_build_files>
|
||||
<gnome_help_support>True</gnome_help_support>
|
||||
</project>
|
||||
|
||||
<widget>
|
||||
<class>GnomeDialog</class>
|
||||
<name>dialog-duplicate-contact</name>
|
||||
<title>Duplicate Contact Detected</title>
|
||||
<type>GTK_WINDOW_POPUP</type>
|
||||
<position>GTK_WIN_POS_NONE</position>
|
||||
<modal>False</modal>
|
||||
<allow_shrink>False</allow_shrink>
|
||||
<allow_grow>True</allow_grow>
|
||||
<auto_shrink>False</auto_shrink>
|
||||
<auto_close>False</auto_close>
|
||||
<hide_on_close>False</hide_on_close>
|
||||
|
||||
<widget>
|
||||
<class>GtkVBox</class>
|
||||
<child_name>GnomeDialog:vbox</child_name>
|
||||
<name>dialog-vbox1</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>8</spacing>
|
||||
<child>
|
||||
<padding>4</padding>
|
||||
<expand>True</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkHButtonBox</class>
|
||||
<child_name>GnomeDialog:action_area</child_name>
|
||||
<name>dialog-action_area1</name>
|
||||
<layout_style>GTK_BUTTONBOX_END</layout_style>
|
||||
<spacing>8</spacing>
|
||||
<child_min_width>85</child_min_width>
|
||||
<child_min_height>27</child_min_height>
|
||||
<child_ipad_x>7</child_ipad_x>
|
||||
<child_ipad_y>0</child_ipad_y>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
<pack>GTK_PACK_END</pack>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkButton</class>
|
||||
<name>button3</name>
|
||||
<can_default>True</can_default>
|
||||
<can_focus>True</can_focus>
|
||||
<label>Change Anyway</label>
|
||||
<stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkButton</class>
|
||||
<name>button4</name>
|
||||
<can_default>True</can_default>
|
||||
<can_focus>True</can_focus>
|
||||
<stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkTable</class>
|
||||
<name>table1</name>
|
||||
<rows>5</rows>
|
||||
<columns>2</columns>
|
||||
<homogeneous>False</homogeneous>
|
||||
<row_spacing>6</row_spacing>
|
||||
<column_spacing>6</column_spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>True</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>Custom</class>
|
||||
<name>custom-old-card</name>
|
||||
<creation_function>e_card_merging_create_old_card</creation_function>
|
||||
<int1>0</int1>
|
||||
<int2>0</int2>
|
||||
<last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>4</top_attach>
|
||||
<bottom_attach>5</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>True</xexpand>
|
||||
<yexpand>True</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>True</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label1</name>
|
||||
<label>The changed email or name of this contact already
|
||||
exists in this folder. Would you like to add it anyway?</label>
|
||||
<justify>GTK_JUSTIFY_LEFT</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>0</top_attach>
|
||||
<bottom_attach>1</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>True</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>True</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label3</name>
|
||||
<label>Conflicting Contact:</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>3</top_attach>
|
||||
<bottom_attach>4</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>True</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>True</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label4</name>
|
||||
<label>Changed Contact:</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>1</top_attach>
|
||||
<bottom_attach>2</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>False</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>Custom</class>
|
||||
<name>custom-new-card</name>
|
||||
<creation_function>e_card_merging_create_old_card</creation_function>
|
||||
<int1>0</int1>
|
||||
<int2>0</int2>
|
||||
<last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>2</top_attach>
|
||||
<bottom_attach>3</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>True</xexpand>
|
||||
<yexpand>True</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>True</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkAlignment</class>
|
||||
<name>alignment1</name>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0</yalign>
|
||||
<xscale>1</xscale>
|
||||
<yscale>0</yscale>
|
||||
<child>
|
||||
<left_attach>0</left_attach>
|
||||
<right_attach>1</right_attach>
|
||||
<top_attach>0</top_attach>
|
||||
<bottom_attach>5</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>True</yfill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>Custom</class>
|
||||
<name>custom2</name>
|
||||
<creation_function>e_create_image_widget</creation_function>
|
||||
<string1>malehead.png</string1>
|
||||
<int1>0</int1>
|
||||
<int2>0</int2>
|
||||
<last_modification_time>Fri, 08 Jun 2001 00:18:39 GMT</last_modification_time>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
</GTK-Interface>
|
||||
@ -17,23 +17,50 @@
|
||||
#include <gtk/gtksignal.h>
|
||||
#include "addressbook/gui/widgets/e-minicard-widget.h"
|
||||
|
||||
typedef enum {
|
||||
E_CARD_MERGING_ADD,
|
||||
E_CARD_MERGING_COMMIT
|
||||
} ECardMergingOpType;
|
||||
|
||||
typedef struct {
|
||||
ECardMergingOpType op;
|
||||
EBook *book;
|
||||
ECard *card;
|
||||
EBookIdCallback cb;
|
||||
EBookIdCallback id_cb;
|
||||
EBookCallback cb;
|
||||
gpointer closure;
|
||||
} ECardMergingLookup;
|
||||
|
||||
static void
|
||||
doit (ECardMergingLookup *lookup)
|
||||
{
|
||||
if (lookup->op == E_CARD_MERGING_ADD)
|
||||
e_book_add_card (lookup->book, lookup->card, lookup->id_cb, lookup->closure);
|
||||
else if (lookup->op == E_CARD_MERGING_COMMIT)
|
||||
e_book_commit_card (lookup->book, lookup->card, lookup->cb, lookup->closure);
|
||||
}
|
||||
|
||||
static void
|
||||
cancelit (ECardMergingLookup *lookup)
|
||||
{
|
||||
if (lookup->op == E_CARD_MERGING_ADD) {
|
||||
if (lookup->id_cb)
|
||||
lookup->id_cb (lookup->book, E_BOOK_STATUS_CANCELLED, NULL, lookup->closure);
|
||||
} else if (lookup->op == E_CARD_MERGING_COMMIT) {
|
||||
if (lookup->cb)
|
||||
lookup->cb (lookup->book, E_BOOK_STATUS_CANCELLED, lookup->closure);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clicked (GnomeDialog *dialog, int button, ECardMergingLookup *lookup)
|
||||
{
|
||||
switch (button) {
|
||||
case 0:
|
||||
e_book_add_card (lookup->book, lookup->card, lookup->cb, lookup->closure);
|
||||
doit (lookup);
|
||||
break;
|
||||
case 1:
|
||||
if (lookup->cb)
|
||||
lookup->cb (lookup->book, E_BOOK_STATUS_CANCELLED, NULL, lookup->closure);
|
||||
cancelit (lookup);
|
||||
break;
|
||||
}
|
||||
g_free (lookup);
|
||||
@ -45,12 +72,23 @@ match_query_callback (ECard *card, ECard *match, ECardMatchType type, gpointer c
|
||||
{
|
||||
ECardMergingLookup *lookup = closure;
|
||||
if (type == E_CARD_MATCH_NONE) {
|
||||
e_book_add_card (lookup->book, card, lookup->cb, lookup->closure);
|
||||
doit (lookup);
|
||||
g_free (lookup);
|
||||
} else {
|
||||
GladeXML *ui = glade_xml_new (EVOLUTION_GLADEDIR "/e-card-duplicate-detected.glade", NULL);
|
||||
GladeXML *ui;
|
||||
|
||||
GtkWidget *widget;
|
||||
|
||||
if (lookup->op == E_CARD_MERGING_ADD)
|
||||
ui = glade_xml_new (EVOLUTION_GLADEDIR "/e-card-duplicate-detected.glade", NULL);
|
||||
else if (lookup->op == E_CARD_MERGING_COMMIT)
|
||||
ui = glade_xml_new (EVOLUTION_GLADEDIR "/e-card-merging-book-commit-duplicate-detected.glade", NULL);
|
||||
else {
|
||||
doit (lookup);
|
||||
g_free (lookup);
|
||||
return;
|
||||
}
|
||||
|
||||
widget = glade_xml_get_widget (ui, "custom-old-card");
|
||||
gtk_object_set (GTK_OBJECT (widget),
|
||||
"card", match,
|
||||
@ -77,12 +115,38 @@ e_card_merging_book_add_card (EBook *book,
|
||||
ECardMergingLookup *lookup;
|
||||
lookup = g_new (ECardMergingLookup, 1);
|
||||
|
||||
lookup->op = E_CARD_MERGING_ADD;
|
||||
lookup->book = book;
|
||||
lookup->card = card;
|
||||
lookup->id_cb = cb;
|
||||
lookup->closure = closure;
|
||||
|
||||
e_card_locate_match_full (book, card, NULL, match_query_callback, lookup);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
e_card_merging_book_commit_card (EBook *book,
|
||||
ECard *card,
|
||||
EBookCallback cb,
|
||||
gpointer closure)
|
||||
{
|
||||
ECardMergingLookup *lookup;
|
||||
GList *avoid;
|
||||
lookup = g_new (ECardMergingLookup, 1);
|
||||
|
||||
lookup->op = E_CARD_MERGING_COMMIT;
|
||||
lookup->book = book;
|
||||
lookup->card = card;
|
||||
lookup->cb = cb;
|
||||
lookup->closure = closure;
|
||||
|
||||
e_card_locate_match_full (book, card, NULL, match_query_callback, lookup);
|
||||
avoid = g_list_append (NULL, card);
|
||||
|
||||
e_card_locate_match_full (book, card, avoid, match_query_callback, lookup);
|
||||
|
||||
g_list_free (avoid);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@ -17,10 +17,14 @@
|
||||
|
||||
BEGIN_GNOME_DECLS
|
||||
|
||||
gboolean e_card_merging_book_add_card (EBook *book,
|
||||
ECard *card,
|
||||
EBookIdCallback cb,
|
||||
gpointer closure);
|
||||
gboolean e_card_merging_book_add_card (EBook *book,
|
||||
ECard *card,
|
||||
EBookIdCallback cb,
|
||||
gpointer closure);
|
||||
gboolean e_card_merging_book_commit_card (EBook *book,
|
||||
ECard *card,
|
||||
EBookCallback cb,
|
||||
gpointer closure);
|
||||
|
||||
END_GNOME_DECLS
|
||||
|
||||
|
||||
@ -136,8 +136,8 @@ addressbook_set_value_at (ETableModel *etc, int col, int row, const void *val)
|
||||
"card", &card,
|
||||
NULL);
|
||||
|
||||
e_book_commit_card(e_addressbook_model_get_ebook(priv->model),
|
||||
card, card_modified_cb, NULL);
|
||||
e_card_merging_book_commit_card(e_addressbook_model_get_ebook(priv->model),
|
||||
card, card_modified_cb, NULL);
|
||||
|
||||
/* XXX do we need this? shouldn't the commit_card generate a changed signal? */
|
||||
e_table_model_cell_changed(etc, col, row);
|
||||
|
||||
@ -95,7 +95,7 @@ commit_card_cb (EContactEditor *ce, ECard *card, gpointer data)
|
||||
EBook *book;
|
||||
|
||||
book = E_BOOK (data);
|
||||
e_book_commit_card (book, card, card_modified_cb, NULL);
|
||||
e_card_merging_book_commit_card (book, card, card_modified_cb, NULL);
|
||||
}
|
||||
|
||||
/* Callback for the delete_card signal from the contact editor */
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
#include "e-minicard-label.h"
|
||||
#include "e-minicard-view.h"
|
||||
#include "e-contact-editor.h"
|
||||
#include "e-card-merging.h"
|
||||
|
||||
static void e_minicard_init (EMinicard *card);
|
||||
static void e_minicard_class_init (EMinicardClass *klass);
|
||||
@ -479,10 +480,10 @@ e_minicard_event (GnomeCanvasItem *item, GdkEvent *event)
|
||||
if (book) {
|
||||
|
||||
/* Add the card in the contact editor to our ebook */
|
||||
e_book_commit_card (book,
|
||||
e_minicard->card,
|
||||
card_modified_cb,
|
||||
NULL);
|
||||
e_card_merging_book_commit_card (book,
|
||||
e_minicard->card,
|
||||
card_modified_cb,
|
||||
NULL);
|
||||
} else {
|
||||
remodel(e_minicard);
|
||||
e_canvas_item_request_reflow(GNOME_CANVAS_ITEM(e_minicard));
|
||||
|
||||
Reference in New Issue
Block a user