source-dialog: implement 'source.local' action
Local calendars can now be added.
This commit is contained in:
committed by
Erick Pérez Castellanos
parent
b659d6a7cb
commit
855c4ddd1f
@@ -164,6 +164,10 @@ static void on_file_activated (GSimpleAction *ac
|
|||||||
GVariant *param,
|
GVariant *param,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
static void on_local_activated (GSimpleAction *action,
|
||||||
|
GVariant *param,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
static void remove_source (GcalManager *manager,
|
static void remove_source (GcalManager *manager,
|
||||||
ESource *source,
|
ESource *source,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
@@ -198,9 +202,9 @@ static void discover_sources_cb (GObject *so
|
|||||||
G_DEFINE_TYPE_WITH_PRIVATE (GcalSourceDialog, gcal_source_dialog, GTK_TYPE_DIALOG)
|
G_DEFINE_TYPE_WITH_PRIVATE (GcalSourceDialog, gcal_source_dialog, GTK_TYPE_DIALOG)
|
||||||
|
|
||||||
GActionEntry actions[] = {
|
GActionEntry actions[] = {
|
||||||
{"file", on_file_activated, NULL, NULL, NULL},
|
{"file", on_file_activated, NULL, NULL, NULL},
|
||||||
{"local", NULL, NULL, NULL, NULL},
|
{"local", on_local_activated, NULL, NULL, NULL},
|
||||||
{"web", NULL, NULL, NULL, NULL}
|
{"web", NULL, NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1041,6 +1045,41 @@ on_file_activated (GSimpleAction *action,
|
|||||||
gtk_widget_destroy (dialog);
|
gtk_widget_destroy (dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* on_local_activated:
|
||||||
|
*
|
||||||
|
* Creates a new local calendar, and let
|
||||||
|
* the user adjust the settings after.
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
on_local_activated (GSimpleAction *action,
|
||||||
|
GVariant *param,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GcalSourceDialogPrivate *priv = GCAL_SOURCE_DIALOG (user_data)->priv;
|
||||||
|
ESourceExtension *ext;
|
||||||
|
ESource *source;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the new source and add the needed
|
||||||
|
* extensions.
|
||||||
|
*/
|
||||||
|
source = e_source_new (NULL, NULL, NULL);
|
||||||
|
e_source_set_parent (source, "local-stub");
|
||||||
|
|
||||||
|
ext = e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR);
|
||||||
|
e_source_backend_set_backend_name (E_SOURCE_BACKEND (ext), "local");
|
||||||
|
|
||||||
|
/* update the source properties */
|
||||||
|
e_source_set_display_name (source, _("Unnamed Calendar"));
|
||||||
|
|
||||||
|
// Jump to the edit page
|
||||||
|
gcal_source_dialog_set_source (GCAL_SOURCE_DIALOG (user_data), source);
|
||||||
|
gcal_source_dialog_set_mode (GCAL_SOURCE_DIALOG (user_data), GCAL_SOURCE_DIALOG_MODE_CREATE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* validate_url_cb:
|
* validate_url_cb:
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user