aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog26
-rw-r--r--calendar/gui/calendar-component.c8
-rw-r--r--calendar/gui/dialogs/Makefile.am9
-rw-r--r--calendar/gui/dialogs/calendar-setup.c (renamed from calendar/gui/dialogs/calendar-config.c)213
-rw-r--r--calendar/gui/dialogs/calendar-setup.glade (renamed from calendar/gui/dialogs/calendar-config.glade)512
-rw-r--r--calendar/gui/dialogs/calendar-setup.h (renamed from calendar/gui/dialogs/calendar-config.h)7
-rw-r--r--calendar/gui/dialogs/new-task-list.c145
-rw-r--r--calendar/gui/dialogs/new-task-list.h28
-rw-r--r--calendar/gui/tasks-component.c30
9 files changed, 732 insertions, 246 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 8984056033..31d9bda68b 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,27 @@
+2004-01-09 Hans Petter Jansson <hpj@ximian.com>
+
+ * gui/calendar-component.c (new_calendar_cb): calendar_config ->
+ calendar_setup.
+ (edit_calendar_cb): Ditto.
+ (impl_requestCreateItem): Ditto.
+
+ * gui/tasks-component.c (new_task_list_cb): Use calendar_setup.
+ (edit_task_list_cb): Implement properties callback.
+ (rename_task_list_cb): Remove.
+ (fill_popup_menu_cb): Remove "rename" and add "properties".
+ (impl_requestCreateItem): Use calendar_setup.
+
+ * gui/dialogs/Makefile.am (libcal_dialogs_la_SOURCES): calendar_config
+ -> calendar_setup. Remove new-task-list.[ch].
+ (glade_DATA): calendar_config -> calendar_setup. Remove
+ new-task-list.glade.
+
+ * gui/dialogs/new-task-list.[ch]: Remove.
+
+ * gui/dialogs/calendar-config.[ch]: Rename to calendar-setup.[ch].
+
+ * gui/dialogs/calendar-config.glade: Rename to calendar-setup.glade.
+
2004-01-09 JP Rosevear <jpr@ximian.com>
* gui/calendar-component.c (impl_upgradeFromVersion): make sure we
@@ -10,7 +34,7 @@
* gui/calendar-component.c (impl_upgradeFromVersion): Create
ESource for anniversaries
-2003-01-09 Hans Petter Jansson <hpj@ximian.com>
+2004-01-09 Hans Petter Jansson <hpj@ximian.com>
* gui/calendar-component.c (new_calendar_cb): Call
calendar_config_new_calendar().
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index 399a3558bf..c7eaec9570 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -39,7 +39,7 @@
#include "e-comp-editor-registry.h"
#include "comp-util.h"
#include "common/authentication.h"
-#include "dialogs/calendar-config.h"
+#include "dialogs/calendar-setup.h"
#include "dialogs/comp-editor.h"
#include "dialogs/copy-source-dialog.h"
#include "dialogs/event-editor.h"
@@ -375,7 +375,7 @@ delete_calendar_cb (GtkWidget *widget, CalendarComponent *comp)
static void
new_calendar_cb (GtkWidget *widget, CalendarComponent *comp)
{
- calendar_config_new_calendar (GTK_WINDOW (gtk_widget_get_toplevel (widget)));
+ calendar_setup_new_calendar (GTK_WINDOW (gtk_widget_get_toplevel (widget)));
}
static void
@@ -390,7 +390,7 @@ edit_calendar_cb (GtkWidget *widget, CalendarComponent *comp)
if (!selected_source)
return;
- calendar_config_edit_calendar (GTK_WINDOW (gtk_widget_get_toplevel (widget)), selected_source);
+ calendar_setup_edit_calendar (GTK_WINDOW (gtk_widget_get_toplevel (widget)), selected_source);
}
static void
@@ -837,7 +837,7 @@ impl_requestCreateItem (PortableServer_Servant servant,
comp = get_default_event (priv->create_ecal, FALSE);
is_meeting = TRUE;
} else if (strcmp (item_type_name, CREATE_CALENDAR_ID) == 0) {
- calendar_config_new_calendar (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (priv->calendar))));
+ calendar_setup_new_calendar (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (priv->calendar))));
return;
} else {
bonobo_exception_set (ev, ex_GNOME_Evolution_Component_UnknownType);
diff --git a/calendar/gui/dialogs/Makefile.am b/calendar/gui/dialogs/Makefile.am
index 1749aa5482..18a83fb4de 100644
--- a/calendar/gui/dialogs/Makefile.am
+++ b/calendar/gui/dialogs/Makefile.am
@@ -37,8 +37,8 @@ libcal_dialogs_la_SOURCES = \
alarm-page.h \
cal-prefs-dialog.c \
cal-prefs-dialog.h \
- calendar-config.c \
- calendar-config.h \
+ calendar-setup.c \
+ calendar-setup.h \
cancel-comp.c \
cancel-comp.h \
changed-comp.c \
@@ -63,8 +63,6 @@ libcal_dialogs_la_SOURCES = \
event-page.h \
meeting-page.c \
meeting-page.h \
- new-task-list.c \
- new-task-list.h \
recurrence-page.c \
recurrence-page.h \
recur-comp.c \
@@ -86,11 +84,10 @@ glade_DATA = \
alarm-options.glade \
alarm-page.glade \
cal-prefs-dialog.glade \
- calendar-config.glade \
+ calendar-setup.glade \
e-delegate-dialog.glade \
event-page.glade \
meeting-page.glade \
- new-task-list.glade \
recurrence-page.glade \
schedule-page.glade \
task-details-page.glade \
diff --git a/calendar/gui/dialogs/calendar-config.c b/calendar/gui/dialogs/calendar-setup.c
index a5066c41d3..b310bada53 100644
--- a/calendar/gui/dialogs/calendar-config.c
+++ b/calendar/gui/dialogs/calendar-setup.c
@@ -36,9 +36,36 @@
#include <libedataserver/e-source-list.h>
#include <e-util/e-dialog-utils.h>
#include <e-util/e-url.h>
-#include "calendar-config.h"
+#include "calendar-setup.h"
-#define GLADE_FILE_NAME "calendar-config.glade"
+#define GLADE_FILE_NAME "calendar-setup.glade"
+
+typedef struct
+{
+ GladeXML *gui_xml;
+
+ /* Main widgets */
+ GtkWidget *window;
+ GtkWidget *druid;
+
+ /* Source selection */
+ ESourceList *source_list;
+ GtkWidget *group_optionmenu;
+
+ /* ESource we're currently editing (if any) */
+ ESource *source;
+
+ /* Source group we're creating/editing source in */
+ ESourceGroup *source_group;
+
+ /* General page fields */
+ GtkWidget *name_entry;
+
+ /* Location page fields */
+ GtkWidget *uri_entry;
+ GtkWidget *refresh_spin;
+}
+SourceDialog;
static gchar *
print_uri_noproto (EUri *uri)
@@ -236,32 +263,16 @@ create_new_source_with_group (GtkWindow *parent,
return source;
}
-typedef struct
+static void
+source_dialog_destroy (SourceDialog *source_dialog)
{
- GladeXML *gui_xml;
-
- /* Main widgets */
- GtkWidget *window;
- GtkWidget *druid;
-
- /* Source selection */
- ESourceList *source_list;
- GtkWidget *group_optionmenu;
-
- /* ESource we're currently editing (if any) */
- ESource *source;
-
- /* Source group we're creating/editing source in */
- ESourceGroup *source_group;
+ g_object_unref (source_dialog->gui_xml);
- /* General page fields */
- GtkWidget *name_entry;
+ if (source_dialog->source)
+ g_object_unref (source_dialog->source);
- /* Location page fields */
- GtkWidget *uri_entry;
- GtkWidget *refresh_spin;
+ g_free (source_dialog);
}
-SourceDialog;
static void
source_to_dialog (SourceDialog *source_dialog)
@@ -475,19 +486,8 @@ new_calendar_cancel (SourceDialog *source_dialog)
gtk_widget_destroy (source_dialog->window);
}
-static void
-source_dialog_destroy (SourceDialog *source_dialog)
-{
- g_object_unref (source_dialog->gui_xml);
-
- if (source_dialog->source)
- g_object_unref (source_dialog->source);
-
- g_free (source_dialog);
-}
-
gboolean
-calendar_config_new_calendar (GtkWindow *parent)
+calendar_setup_new_calendar (GtkWindow *parent)
{
SourceDialog *source_dialog = g_new0 (SourceDialog, 1);
GConfClient *gconf_client;
@@ -580,7 +580,7 @@ edit_calendar_cancel (SourceDialog *source_dialog)
}
gboolean
-calendar_config_edit_calendar (GtkWindow *parent, ESource *source)
+calendar_setup_edit_calendar (GtkWindow *parent, ESource *source)
{
SourceDialog *source_dialog = g_new0 (SourceDialog, 1);
@@ -632,3 +632,142 @@ calendar_config_edit_calendar (GtkWindow *parent, ESource *source)
return TRUE;
}
+
+static void
+new_task_list_finish (SourceDialog *source_dialog)
+{
+ source_dialog->source =
+ create_new_source_with_group (GTK_WINDOW (source_dialog->window), source_dialog->source_group,
+ gtk_entry_get_text (GTK_ENTRY (source_dialog->name_entry)),
+ gtk_entry_get_text (GTK_ENTRY (source_dialog->uri_entry)));
+ dialog_to_source (source_dialog);
+
+ gtk_widget_destroy (source_dialog->window);
+}
+
+static void
+new_task_list_cancel (SourceDialog *source_dialog)
+{
+ gtk_widget_destroy (source_dialog->window);
+}
+
+gboolean
+calendar_setup_new_task_list (GtkWindow *parent)
+{
+ SourceDialog *source_dialog = g_new0 (SourceDialog, 1);
+ GConfClient *gconf_client;
+ GtkWidget *page;
+
+ source_dialog->gui_xml = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, "task-list-druid-window", NULL);
+ if (!source_dialog->gui_xml) {
+ g_warning (G_STRLOC ": Cannot load Glade file.");
+ g_free (source_dialog);
+ return FALSE;
+ }
+
+ source_dialog->window = glade_xml_get_widget (source_dialog->gui_xml, "task-list-druid-window");
+ source_dialog->druid = glade_xml_get_widget (source_dialog->gui_xml, "druid");
+
+ /* General page */
+ page = glade_xml_get_widget (source_dialog->gui_xml, "general-page");
+ source_dialog->name_entry = glade_xml_get_widget (source_dialog->gui_xml, "name-entry");
+ g_signal_connect_swapped (source_dialog->name_entry, "changed",
+ G_CALLBACK (general_page_modified), source_dialog);
+ g_signal_connect_after (page, "prepare",
+ G_CALLBACK (general_page_prepare), source_dialog);
+
+ gconf_client = gconf_client_get_default ();
+ source_dialog->source_list =
+ e_source_list_new_for_gconf (gconf_client, "/apps/evolution/tasks/sources");
+ source_dialog->group_optionmenu =
+ glade_xml_get_widget (source_dialog->gui_xml, "group-optionmenu");
+ if (!GTK_IS_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (source_dialog->group_optionmenu)))) {
+ GtkWidget *menu = gtk_menu_new ();
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (source_dialog->group_optionmenu), menu);
+ gtk_widget_show (menu);
+ }
+
+ /* NOTE: This assumes that we have sources. If they don't exist, they're set up
+ * on startup of the calendar component. */
+ source_group_menu_add_groups (GTK_MENU_SHELL (gtk_option_menu_get_menu (
+ GTK_OPTION_MENU (source_dialog->group_optionmenu))), source_dialog->source_list);
+ gtk_option_menu_set_history (GTK_OPTION_MENU (source_dialog->group_optionmenu), 0);
+ source_dialog->source_group = e_source_list_peek_groups (source_dialog->source_list)->data;
+ g_signal_connect_swapped (source_dialog->group_optionmenu, "changed",
+ G_CALLBACK (source_group_changed), source_dialog);
+
+ /* Finish page */
+ page = glade_xml_get_widget (source_dialog->gui_xml, "finish-page");
+ g_signal_connect_swapped (page, "finish",
+ G_CALLBACK (new_task_list_finish), source_dialog);
+ g_signal_connect_swapped (source_dialog->druid, "cancel",
+ G_CALLBACK (new_task_list_cancel), source_dialog);
+ g_object_weak_ref (G_OBJECT (source_dialog->window),
+ (GWeakNotify) source_dialog_destroy, source_dialog);
+
+ /* Prepare and show dialog */
+ source_to_dialog (source_dialog);
+
+ gtk_window_set_type_hint (GTK_WINDOW (source_dialog->window), GDK_WINDOW_TYPE_HINT_DIALOG);
+ gtk_window_set_modal (GTK_WINDOW (source_dialog->window), TRUE);
+
+ gtk_widget_show_all (source_dialog->window);
+
+ return TRUE;
+}
+
+static void
+edit_task_list_finish (SourceDialog *source_dialog)
+{
+ dialog_to_source (source_dialog);
+ gtk_widget_destroy (source_dialog->window);
+}
+
+static void
+edit_task_list_cancel (SourceDialog *source_dialog)
+{
+ gtk_widget_destroy (source_dialog->window);
+}
+
+gboolean
+calendar_setup_edit_task_list (GtkWindow *parent, ESource *source)
+{
+ SourceDialog *source_dialog = g_new0 (SourceDialog, 1);
+
+ g_return_val_if_fail (source != NULL, FALSE);
+
+ source_dialog->gui_xml = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, "task-list-editor-window", NULL);
+ if (!source_dialog->gui_xml) {
+ g_warning (G_STRLOC ": Cannot load Glade file.");
+ g_free (source_dialog);
+ return FALSE;
+ }
+
+ source_dialog->source = source;
+ g_object_ref (source);
+
+ source_dialog->window = glade_xml_get_widget (source_dialog->gui_xml, "task-list-editor-window");
+
+ /* General page */
+ source_dialog->name_entry = glade_xml_get_widget (source_dialog->gui_xml, "name-entry");
+ g_signal_connect_swapped (source_dialog->name_entry, "changed",
+ G_CALLBACK (general_page_modified), source_dialog);
+
+ /* Finishing */
+ g_signal_connect_swapped (glade_xml_get_widget (source_dialog->gui_xml, "ok-button"), "clicked",
+ G_CALLBACK (edit_task_list_finish), source_dialog);
+ g_signal_connect_swapped (glade_xml_get_widget (source_dialog->gui_xml, "cancel-button"), "clicked",
+ G_CALLBACK (edit_task_list_cancel), source_dialog);
+ g_object_weak_ref (G_OBJECT (source_dialog->window),
+ (GWeakNotify) source_dialog_destroy, source_dialog);
+
+ /* Prepare and show dialog */
+ source_to_dialog (source_dialog);
+
+ gtk_window_set_type_hint (GTK_WINDOW (source_dialog->window), GDK_WINDOW_TYPE_HINT_DIALOG);
+ gtk_window_set_modal (GTK_WINDOW (source_dialog->window), TRUE);
+
+ gtk_widget_show_all (source_dialog->window);
+
+ return TRUE;
+}
diff --git a/calendar/gui/dialogs/calendar-config.glade b/calendar/gui/dialogs/calendar-setup.glade
index 6428d63429..f38fd54aca 100644
--- a/calendar/gui/dialogs/calendar-config.glade
+++ b/calendar/gui/dialogs/calendar-setup.glade
@@ -898,4 +898,516 @@ Please click the &quot;Finish&quot; button to save the settings you have entered
</child>
</widget>
+<widget class="GtkWindow" id="task-list-druid-window">
+ <property name="title" translatable="yes">New Task List</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+
+ <child>
+ <widget class="GnomeDruid" id="druid">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="show_help">False</property>
+
+ <child>
+ <widget class="GnomeDruidPageEdge" id="druidpageedge2">
+ <property name="visible">True</property>
+ <property name="position">GNOME_EDGE_START</property>
+ <property name="title" translatable="yes">Task List Creation Assistant</property>
+ <property name="text" translatable="yes">This assistant will help you create a new task list.
+
+Depending on the type of task list you create, additional
+parameters may be required. Please contact your system
+administrator if you need help finding this information.</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GnomeDruidPageStandard" id="general-page">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Step 1: Folder Characteristics</property>
+
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="vbox80">
+ <property name="border_width">16</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox81">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label577">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Specifying a display name and group is the first step in setting up a task list.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">7.45058e-09</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">3</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHSeparator" id="hseparator14">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkTable" id="table39">
+ <property name="border_width">3</property>
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">3</property>
+
+ <child>
+ <widget class="GtkEntry" id="name-entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label578">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Display name:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">name-entry</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label579">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Group:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkOptionMenu" id="group-optionmenu">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="history">-1</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkNotebook" id="notebook16">
+ <property name="visible">True</property>
+ <property name="show_tabs">False</property>
+ <property name="show_border">False</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
+
+ <child>
+ <widget class="GtkLabel" id="label580">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">This is the name that will appear in your Evolution folder list. It is for display purposes only. </property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label581">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">label163</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label582">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Selecting this option will let you change Evolution's default settings for LDAP
+searches, and for creating and editing contacts. </property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label583">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">label164</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GnomeDruidPageEdge" id="finish-page">
+ <property name="visible">True</property>
+ <property name="position">GNOME_EDGE_FINISH</property>
+ <property name="title" translatable="yes">Finished</property>
+ <property name="text" translatable="yes">Congratulations, you are finished setting up this task list.
+
+Please click the &quot;Finish&quot; button to save the settings you have entered here.</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+<widget class="GtkWindow" id="task-list-editor-window">
+ <property name="title" translatable="yes">Task List Properties</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox84">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkNotebook" id="notebook17">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox85">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox123">
+ <property name="border_width">3</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">4</property>
+
+ <child>
+ <widget class="GtkLabel" id="label585">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Display name:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment46">
+ <property name="visible">True</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0.9</property>
+ <property name="yscale">1</property>
+
+ <child>
+ <widget class="GtkEntry" id="name-entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox86">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label586">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">General</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHSeparator" id="hseparator15">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox125">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox21">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkButton" id="cancel-button">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="ok-button">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
</glade-interface>
diff --git a/calendar/gui/dialogs/calendar-config.h b/calendar/gui/dialogs/calendar-setup.h
index 977c502474..c60afdf0e5 100644
--- a/calendar/gui/dialogs/calendar-config.h
+++ b/calendar/gui/dialogs/calendar-setup.h
@@ -23,7 +23,10 @@
#include <gtk/gtkwindow.h>
-gboolean calendar_config_new_calendar (GtkWindow *parent);
-gboolean calendar_config_edit_calendar (GtkWindow *parent, ESource *source);
+gboolean calendar_setup_new_calendar (GtkWindow *parent);
+gboolean calendar_setup_edit_calendar (GtkWindow *parent, ESource *source);
+
+gboolean calendar_setup_new_task_list (GtkWindow *parent);
+gboolean calendar_setup_edit_task_list (GtkWindow *parent, ESource *source);
#endif
diff --git a/calendar/gui/dialogs/new-task-list.c b/calendar/gui/dialogs/new-task-list.c
deleted file mode 100644
index e77d35d4ad..0000000000
--- a/calendar/gui/dialogs/new-task-list.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Evolution calendar - New task list dialog
- *
- * Copyright (C) 2003 Novell, Inc.
- *
- * Author: Rodrigo Moya <rodrigo@ximian.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <bonobo/bonobo-i18n.h>
-#include <gtk/gtkentry.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkmessagedialog.h>
-#include <gtk/gtkoptionmenu.h>
-#include <glade/glade.h>
-#include <e-util/e-dialog-utils.h>
-#include <libedataserver/e-source-list.h>
-#include "new-task-list.h"
-
-static gboolean
-create_new_source_with_group (GtkWindow *parent,
- ESourceGroup *group,
- const char *source_name)
-{
- ESource *source;
- char *new_dir;
-
- if (e_source_group_peek_source_by_name (group, source_name)) {
- e_notice (parent, GTK_MESSAGE_ERROR,
- _("Source with name '%s' already exists in the selected group"),
- source_name);
- return FALSE;
- }
-
- new_dir = g_build_filename (e_source_group_peek_base_uri (group),
- source_name, NULL);
- if (e_mkdir_hier (new_dir, 0700)) {
- g_free (new_dir);
- e_notice (parent, GTK_MESSAGE_ERROR,
- _("Could not create directory for new task list"));
- return FALSE;
- }
-
- source = e_source_new (source_name, source_name);
- g_free (new_dir);
-
- e_source_group_add_source (group, source, -1);
- return TRUE;
-}
-
-/**
- * new_task_list_dialog
- *
- * Displays a dialog that allows the user to create a new task list.
- */
-gboolean
-new_task_list_dialog (GtkWindow *parent)
-{
- GtkWidget *dialog, *task_group, *task_name;
- GladeXML *xml;
- ESourceList *source_list;
- GConfClient *gconf_client;
- GSList *groups, *sl;
- gboolean result = FALSE, retry = TRUE;
-
- /* load the Glade file */
- xml = glade_xml_new (EVOLUTION_GLADEDIR "/new-task-list.glade", "new-task-list-dialog", NULL);
- if (!xml) {
- g_warning (G_STRLOC ": cannot load Glade file");
- return FALSE;
- }
-
- dialog = glade_xml_get_widget (xml, "new-task-list-dialog");
- task_group = glade_xml_get_widget (xml, "task-list-group");
- task_name = glade_xml_get_widget (xml, "task-list-name");
-
- /* set up widgets */
- gconf_client = gconf_client_get_default ();
- source_list = e_source_list_new_for_gconf (gconf_client, "/apps/evolution/tasks/sources");
-
- groups = e_source_list_peek_groups (source_list);
- for (sl = groups; sl != NULL; sl = sl->next) {
- GtkWidget *menu_item, *menu;
- ESourceGroup *group = sl->data;
-
- menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (task_group));
- if (!GTK_IS_MENU (menu)) {
- menu = gtk_menu_new ();
- gtk_option_menu_set_menu (GTK_OPTION_MENU (task_group), menu);
- gtk_widget_show (menu);
- }
-
- menu_item = gtk_menu_item_new_with_label (e_source_group_peek_name (group));
- gtk_widget_show (menu_item);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
- }
-
- if (groups)
- gtk_option_menu_set_history (GTK_OPTION_MENU (task_group), 0);
-
- /* run the dialog */
- do {
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- const char *name;
-
- name = gtk_entry_get_text (GTK_ENTRY (task_name));
- sl = g_slist_nth (groups, gtk_option_menu_get_history (GTK_OPTION_MENU (task_group)));
- if (sl) {
- if (create_new_source_with_group (GTK_WINDOW (dialog),
- sl->data,
- name))
- retry = FALSE;
- } else {
- e_notice (dialog, GTK_MESSAGE_ERROR,
- _("A group must be selected"));
- continue;
- }
- } else
- retry = FALSE; /* user pressed Cancel */
- } while (retry);
-
- /* free memory */
- g_object_unref (gconf_client);
- g_object_unref (source_list);
- gtk_widget_destroy (dialog);
- g_object_unref (xml);
-
- return result;
-}
diff --git a/calendar/gui/dialogs/new-task-list.h b/calendar/gui/dialogs/new-task-list.h
deleted file mode 100644
index 3f529f39ad..0000000000
--- a/calendar/gui/dialogs/new-task-list.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Evolution calendar - New task list dialog
- *
- * Copyright (C) 2003 Novell, Inc.
- *
- * Author: Rodrigo Moya <rodrigo@ximian.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef NEW_TASK_LIST_H
-#define NEW_TASK_LIST_H
-
-#include <gtk/gtkwindow.h>
-
-gboolean new_task_list_dialog (GtkWindow *parent);
-
-#endif
diff --git a/calendar/gui/tasks-component.c b/calendar/gui/tasks-component.c
index dfb668ac7f..e8f6d94776 100644
--- a/calendar/gui/tasks-component.c
+++ b/calendar/gui/tasks-component.c
@@ -40,9 +40,9 @@
#include "comp-util.h"
#include "calendar-config.h"
#include "common/authentication.h"
+#include "dialogs/calendar-setup.h"
#include "dialogs/comp-editor.h"
#include "dialogs/copy-source-dialog.h"
-#include "dialogs/new-task-list.h"
#include "dialogs/task-editor.h"
#include "widgets/misc/e-source-selector.h"
@@ -367,15 +367,14 @@ delete_task_list_cb (GtkWidget *widget, TasksComponent *comp)
static void
new_task_list_cb (GtkWidget *widget, TasksComponent *component)
{
- new_task_list_dialog (GTK_WINDOW (gtk_widget_get_toplevel (widget)));
+ calendar_setup_new_task_list (GTK_WINDOW (gtk_widget_get_toplevel (widget)));
}
static void
-rename_task_list_cb (GtkWidget *widget, TasksComponent *comp)
+edit_task_list_cb (GtkWidget *widget, TasksComponent *comp)
{
TasksComponentPrivate *priv;
ESource *selected_source;
- GtkWidget *dialog, *entry;
priv = comp->priv;
@@ -383,22 +382,7 @@ rename_task_list_cb (GtkWidget *widget, TasksComponent *comp)
if (!selected_source)
return;
- /* create the dialog to prompt the user for the new name */
- dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (widget)),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_OK_CANCEL,
- _("Rename this task list to"));
- gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
- entry = gtk_entry_new ();
- gtk_entry_set_text (GTK_ENTRY (entry), e_source_peek_name (selected_source));
- gtk_widget_show (entry);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), entry, TRUE, FALSE, 6);
-
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
- e_source_set_name (selected_source, gtk_entry_get_text (GTK_ENTRY (entry)));
-
- gtk_widget_destroy (dialog);
+ calendar_setup_edit_task_list (GTK_WINDOW (gtk_widget_get_toplevel (widget)), selected_source);
}
static void
@@ -413,10 +397,10 @@ fill_popup_menu_cb (ESourceSelector *selector, GtkMenu *menu, TasksComponent *co
G_CALLBACK (new_task_list_cb), component, TRUE);
add_popup_menu_item (menu, _("Copy"), EVOLUTION_IMAGESDIR "/folder-copy-16.png",
G_CALLBACK (copy_task_list_cb), component, sensitive);
- add_popup_menu_item (menu, _("Rename"), NULL, G_CALLBACK (rename_task_list_cb),
- component, sensitive);
add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_task_list_cb),
component, sensitive);
+ add_popup_menu_item (menu, _("Properties..."), NULL, G_CALLBACK (edit_task_list_cb),
+ component, sensitive);
}
static void
@@ -769,7 +753,7 @@ impl_requestCreateItem (PortableServer_Servant servant,
e_comp_editor_registry_add (comp_editor_registry, COMP_EDITOR (editor), TRUE);
} else if (strcmp (item_type_name, CREATE_TASK_LIST_ID) == 0) {
- new_task_list_dialog (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (priv->tasks))));
+ calendar_setup_new_task_list (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (priv->tasks))));
} else {
bonobo_exception_set (ev, ex_GNOME_Evolution_Component_UnknownType);
return;