X-Git-Url: http://git.chise.org/gitweb/?p=m17n%2Fm17n-im-config.git;a=blobdiff_plain;f=src%2Fmim-config.c;h=ae197496dc5f23f1508d210a8e9dfdf7e84e39be;hp=d1729243c5c6945aeea520faf5a73ad8f7e3f9c7;hb=1a6878745927661e56d45532405002b0a0d24872;hpb=aec9bb02f0534e6666eadd54c8f07c892a57ee73 diff --git a/src/mim-config.c b/src/mim-config.c index d172924..ae19749 100644 --- a/src/mim-config.c +++ b/src/mim-config.c @@ -433,7 +433,7 @@ make_store_for_input_methods () static gboolean revert_to_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, - gpointer data) + gpointer data) { enum MimStatus status; MSymbol lang, name; @@ -454,7 +454,7 @@ revert_to_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, static gboolean set_as_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, - gpointer data) + gpointer data) { enum MimStatus status; MSymbol lang, name; @@ -471,6 +471,28 @@ set_as_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, return FALSE; } +static gboolean +reset_to_default (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, + gpointer data) +{ + enum MimStatus status; + MSymbol lang, name; + MimConfigStatus *config_status = data; + MPlist *empty = mplist (); + + gtk_tree_model_get (model, iter, COL_LANG, &lang, COL_NAME, &name, -1); + if (lang == Mnil) + return FALSE; + gtk_tree_model_get (model, iter, COL_STATUS, &status, -1); + if (status == MIM_STATUS_DEFAULT) + return FALSE; + minput_config_variable (lang, name, Mnil, empty); + minput_config_command (lang, name, Mnil, empty); + status = get_mim_status (lang, name); + update_child_row (model, iter, status, config_status, NULL); + return FALSE; +} + static int initialized = 0; static void @@ -1707,6 +1729,20 @@ mim_config_modified (GtkWidget *config) } gboolean +mim_config_default (GtkWidget *config) +{ + GtkTreeView *tree; + GtkTreeModel *model; + MimConfigStatus *config_status; + + tree = g_object_get_data (G_OBJECT (config), CONFIG_TREE_VIEW); + model = gtk_tree_view_get_model (tree); + config_status = g_object_get_data (G_OBJECT (model), CONFIG_STATUS_DATA); + gtk_tree_model_foreach (model, reset_to_default, config_status); + return TRUE; +} + +gboolean mim_config_revert (GtkWidget *config) { GtkTreeView *tree;