{
GtkTreeView *treeview;
GtkTreeModel *model;
- GtkWidget *button_edit;
ModestAccountMgr *account_manager;
};
server_account_name = modest_account_mgr_get_connection_specific_smtp (
priv->account_manager, connection_id);
- if (server_account_name) {
- /* Add the row to the model: */
- GtkTreeIter iter;
- gtk_list_store_append (liststore, &iter);
- gtk_list_store_set(liststore, &iter,
- MODEL_COL_ID, connection_id,
- MODEL_COL_NAME, connection_name,
- MODEL_COL_SERVER_ACCOUNT_NAME, server_account_name,
- -1);
+ /* Add the row to the model: */
+ GtkTreeIter iter;
+ gtk_list_store_append (liststore, &iter);
+ gtk_list_store_set(liststore, &iter,
+ MODEL_COL_ID, connection_id,
+ MODEL_COL_NAME, connection_name,
+ MODEL_COL_SERVER_ACCOUNT_NAME, server_account_name,
+ -1);
+
+ if (server_account_name)
g_free (server_account_name);
- }
}
iter = g_slist_next (iter);
}
static void
-on_button_edit (ModestConnectionSpecificSmtpWindow *self)
+edit_account (ModestConnectionSpecificSmtpWindow *self, GtkTreePath *path)
{
ModestConnectionSpecificSmtpWindowPrivate *priv = CONNECTION_SPECIFIC_SMTP_WINDOW_GET_PRIVATE (self);
ModestAccountMgr *mgr = modest_runtime_get_account_mgr ();
gchar *connection_name = NULL;
gchar *server_account_name = NULL;
ModestServerAccountSettings *server_settings = NULL;
- GtkTreeSelection *sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview));
GtkTreeIter iter;
- GtkTreeModel *model = 0;
- if (gtk_tree_selection_get_selected (sel, &model, &iter)) {
+ if (gtk_tree_model_get_iter (priv->model, &iter, path)) {
gtk_tree_model_get (priv->model, &iter,
MODEL_COL_ID, &id,
MODEL_COL_NAME, &connection_name,
}
static void
-on_selection_changed (GtkTreeSelection *sel, ModestConnectionSpecificSmtpWindow *self)
+on_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column,
+ ModestConnectionSpecificSmtpWindow *self)
{
- ModestConnectionSpecificSmtpWindowPrivate *priv =
- CONNECTION_SPECIFIC_SMTP_WINDOW_GET_PRIVATE (self);
-
- GtkTreeModel *model = NULL;
- GtkTreeIter iter;
- const gboolean has_selection =
- gtk_tree_selection_get_selected (sel, &model, &iter);
-
- gtk_widget_set_sensitive (priv->button_edit, has_selection);
+ edit_account (self, path);
}
static void
{
ModestWindowMgr *mgr;
- /* Specify a default size, because the GtkTreeView's default requested size
- * is not big enough: */
- gtk_window_set_default_size (GTK_WINDOW (self), 500, 300);
+ /* Specify a default size */
+ gtk_window_set_default_size (GTK_WINDOW (self), -1, 320);
/* This seems to be necessary to make the window show at the front with decoration.
* If we use property type=GTK_WINDOW_TOPLEVEL instead of the default GTK_WINDOW_POPUP+decoration,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER));
/* Setup the tree view: */
- priv->treeview = GTK_TREE_VIEW (hildon_gtk_tree_view_new_with_model (HILDON_UI_MODE_EDIT, priv->model));
+ priv->treeview = GTK_TREE_VIEW (hildon_gtk_tree_view_new_with_model (HILDON_UI_MODE_NORMAL, priv->model));
- /* Show the column headers,
- * which does not seem to be the default on Maemo.
- */
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(priv->treeview), TRUE);
-
/* name column:
* The ID model column in not shown in the view. */
GtkTreeViewColumn *view_column = gtk_tree_view_column_new ();
gtk_tree_view_column_pack_start(view_column, renderer, TRUE);
gtk_tree_view_column_set_attributes (view_column, renderer,
"text", MODEL_COL_NAME, NULL);
- gtk_tree_view_column_set_title (view_column, _("mcen_ia_optionalsmtp_connection_name"));
gtk_tree_view_append_column (priv->treeview, view_column);
gtk_tree_view_column_pack_start(view_column, renderer, TRUE);
gtk_tree_view_column_set_attributes (view_column, renderer,
"text", MODEL_COL_SERVER_NAME, NULL);
- gtk_tree_view_column_set_title (view_column, _("mcen_ia_optionalsmtp_servername"));
gtk_tree_view_append_column (priv->treeview, view_column);
/* The application must call modest_connection_specific_smtp_window_fill_with_connections(). */
/* TODO: For some reason this label does not wrap. It is truncated. */
GtkWidget *label = gtk_label_new(_("mcen_ia_optionalsmtp_note"));
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
/* So that it is shown without being truncated: */
/* gtk_label_set_max_width_chars (GTK_LABEL (label), 20); */
/* The documentation for gtk_label_set_line_wrap() says that we must
gtk_widget_show (GTK_WIDGET (priv->treeview));
gtk_widget_show (vbox);
- /* Hack: we use the response apply to identify the click on the edit button */
- priv->button_edit = gtk_dialog_add_button (GTK_DIALOG(self), _("mcen_bd_edit"), GTK_RESPONSE_APPLY);
-
- /* Disable the Edit button when nothing is selected: */
- GtkTreeSelection *sel = gtk_tree_view_get_selection (priv->treeview);
- g_signal_connect (sel, "changed",
- G_CALLBACK(on_selection_changed), self);
- on_selection_changed (sel, self);
+ g_signal_connect (G_OBJECT (priv->treeview), "row-activated", G_CALLBACK (on_row_activated), self);
/* When this window is shown, hibernation should not be possible,
* because there is no sensible way to save the state: */
gint response,
gpointer user_data)
{
- switch (response) {
- case GTK_RESPONSE_APPLY:
- /* We use it for the edit button */
- on_button_edit (MODEST_CONNECTION_SPECIFIC_SMTP_WINDOW (dialog));
- g_signal_stop_emission_by_name (dialog, "response");
- break;
- case GTK_RESPONSE_CLOSE:
- case GTK_RESPONSE_NONE:
- case GTK_RESPONSE_DELETE_EVENT:
- /* Generated as a response to delete-event, i.e,
- pressin Esc, or by pressing the Close button */
- modest_connection_specific_smtp_window_save_server_accounts (MODEST_CONNECTION_SPECIFIC_SMTP_WINDOW (dialog));
- gtk_widget_destroy (GTK_WIDGET (dialog));
- }
+ modest_connection_specific_smtp_window_save_server_accounts (MODEST_CONNECTION_SPECIFIC_SMTP_WINDOW (dialog));
+ gtk_widget_destroy (GTK_WIDGET (dialog));
}