page, TRUE);
gtk_widget_show_all (page);
}
-
-
static void
switch (response) {
case GTK_RESPONSE_ACCEPT:
/* close the assistant */
- gtk_widget_destroy (GTK_WIDGET(self));
+ gtk_widget_hide (GTK_WIDGET(self));
break;
case GTK_RESPONSE_CANCEL:
/* don't do anything */
}
+static void
+on_close (ModestAccountAssistant *self, gpointer user_data)
+{
+ gtk_widget_hide (GTK_WIDGET (self));
+}
static void
on_apply (ModestAccountAssistant *self, gpointer user_data)
get_email(self), FALSE, NULL);
g_free (store_name);
-
- /* Close the assistant */
- gtk_widget_destroy (GTK_WIDGET(self));
}
G_CALLBACK(on_apply), NULL);
g_signal_connect (G_OBJECT(self), "cancel",
G_CALLBACK(on_cancel), NULL);
+ g_signal_connect (G_OBJECT(self), "close",
+ G_CALLBACK(on_close), NULL);
return GTK_WIDGET(self);
}
typedef struct _ModestAccountViewWindowPrivate ModestAccountViewWindowPrivate;
struct _ModestAccountViewWindowPrivate {
ModestWidgetFactory *widget_factory;
- GtkWidget *edit_button, *remove_button;
+ GtkWidget *edit_button;
+ GtkWidget *remove_button;
+ ModestAccountView *account_view;
};
#define MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
MODEST_TYPE_ACCOUNT_VIEW_WINDOW, \
gtk_widget_set_sensitive (priv->remove_button, has_selection);
}
-
-
static void
on_remove_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
{
TnyPlatformFactory *fact;
ModestAccountViewWindowPrivate *priv;
ModestAccountMgr *account_mgr;
- ModestAccountView *account_view;
- gchar *account_name;
+ const gchar *account_name;
priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
fact = modest_tny_platform_factory_get_instance ();
account_mgr = modest_tny_platform_factory_get_modest_account_mgr_instance (fact);
- account_view = modest_widget_factory_get_account_view (priv->widget_factory);
- account_name = modest_account_view_get_selected_account (account_view);
+ account_name = modest_account_view_get_selected_account (priv->account_view);
if (account_name) {
gboolean removed;
GError *err = NULL;
-
- removed = modest_account_mgr_remove_account (account_mgr,
- account_name,
- FALSE,
- &err);
- if (removed) {
- /* Show confirmation dialog */
- /* Remove from model & reload it */
- } else {
- if (err)
- g_error_free (err);
+ GtkWidget *dialog;
+ gchar *txt;
+
+ dialog = gtk_dialog_new_with_buttons (_("Confirmation dialog"),
+ GTK_WINDOW (self),
+ GTK_DIALOG_MODAL,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_REJECT,
+ GTK_STOCK_OK,
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+ txt = g_strdup_printf (_("Do you really want to delete the account %s?"), account_name);
+ gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox),
+ gtk_label_new (txt), FALSE, FALSE, 0);
+ gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
+ g_free (txt);
+
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+ /* Remove account. If succeeded it removes also
+ the account from the ModestAccountView */
+ removed = modest_account_mgr_remove_account (account_mgr,
+ account_name,
+ FALSE,
+ &err);
+ if (removed) {
+ /* Show confirmation dialog ??? */
+ } else {
+ /* Show error dialog ??? */
+ if (err)
+ g_error_free (err);
+ }
}
+ gtk_widget_destroy (dialog);
}
}
main_hbox = gtk_hbox_new (FALSE, 6);
account_view = modest_widget_factory_get_account_view (priv->widget_factory);
+ priv->account_view = account_view;
gtk_widget_set_size_request (GTK_WIDGET(account_view), 300, 400);
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(account_view));
modest_conf_remove_key (ModestConf* self, const gchar* key, GError **err)
{
ModestConfPrivate *priv;
+ gboolean retval;
g_return_val_if_fail (self,FALSE);
g_return_val_if_fail (key, FALSE);
priv = MODEST_CONF_GET_PRIVATE(self);
- return gconf_client_recursive_unset (priv->gconf_client,key,0,err);
+ retval = gconf_client_recursive_unset (priv->gconf_client,key,0,err);
+ gconf_client_suggest_sync (priv->gconf_client, NULL);
+
+ return retval;
}
ModestWidgetFactory *self)
{
/* FIXME ==> ask from UI... */
- GtkWidget *dialog;
+ GtkWidget *dialog, *window;
gchar *txt;
gboolean online;
gchar *item = type == MODEST_ITEM_TYPE_FOLDER ? "folder" : "message";
gdk_threads_enter ();
online = tny_device_is_online (device);
+ /* FIXME: get main window */
+ window = NULL;
if (online) {
/* already online -- the item is simply not there... */
- dialog = gtk_message_dialog_new (NULL,
+ dialog = gtk_message_dialog_new (window,
GTK_DIALOG_MODAL,
GTK_MESSAGE_WARNING,
GTK_BUTTONS_OK,
} else {
dialog = gtk_dialog_new_with_buttons (_("Connection requested"),
- NULL,
+ window,
GTK_DIALOG_MODAL,
GTK_STOCK_CANCEL,
GTK_RESPONSE_REJECT,
gchar **password, gboolean *cancel, gboolean *remember, ModestWidgetFactory *self)
{
gchar *txt;
- GtkWidget *dialog, *entry, *remember_pass_check;
+ GtkWidget *dialog, *entry, *remember_pass_check, *window;
+ /* FIXME: get main window */
+ window = NULL;
dialog = gtk_dialog_new_with_buttons (_("Password requested"),
- NULL,
+ window,
GTK_DIALOG_MODAL,
GTK_STOCK_CANCEL,
GTK_RESPONSE_REJECT,
g_free (account_name);
}
-
static void
init_view (ModestAccountView *self)
{
ModestAccountViewPrivate *priv;
- GtkTreeSelection *sel;
GtkCellRenderer *renderer;
GtkListStore *model;
gtk_cell_renderer_text_new (),
"text", PROTO_COLUMN, NULL));
- sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
-
priv->sig1 = g_signal_connect (G_OBJECT(priv->account_mgr),
"account_removed",
G_CALLBACK(on_account_removed), self);