static void
account_edit_action(GtkWidget *button,
- gpointer userdata)
-{
- /* does nothing yet */
+ gpointer userdata) {
+
+ CallbackData *cb_data;
+ GtkTreeModel *acc_liststore;
+ GtkTreeSelection *selection;
+ GtkTreeIter selected_iter;
+ gchar *account_name;
+
+ cb_data = (CallbackData *) userdata;
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(cb_data->acc_tree_view));
+
+ gtk_tree_selection_get_selected(selection,
+ &acc_liststore,
+ &selected_iter);
+ gtk_tree_model_get(GTK_TREE_MODEL(acc_liststore),
+ &selected_iter,
+ ACCOUNT_NAME, &account_name,
+ -1);
+
+ account_setup_dialog (cb_data->modest_ui, account_name);
+ g_free(account_name);
}
static void
account_create_action(GtkWidget *button,
- gpointer userdata)
-{
+ gpointer userdata) {
CallbackData *cb_data;
cb_data = (CallbackData *) userdata;
static void
account_delete_action(GtkWidget *button,
- gpointer userdata)
-{
+ gpointer userdata) {
CallbackData *cb_data;
GtkTreeSelection *selection;
GtkTreeIter selected_iter;
/* METHODS */
+static gboolean
+search_model_column_for_string_advanced(GtkTreeModel *model, GtkTreeIter *iter, gint ColNum, gchar *search, gboolean mcase) {
+
+ gchar *tmptext;
+ gboolean iter_true;
+
+ iter_true = gtk_tree_model_get_iter_first(model, iter);
+ while (iter_true) {
+ gtk_tree_model_get(model,
+ iter,
+ ColNum, &tmptext,
+ -1);
+ g_message("Comparison: '%s' -- '%s' : %d", tmptext, search, strcmp(tmptext, search));
+ if ((mcase && strcasecmp(tmptext, search)==0)
+ || strcmp(tmptext, search)==0) {
+ g_free(tmptext);
+ break;
+ }
+ g_free(tmptext);
+ iter_true = gtk_tree_model_iter_next(model, iter);
+ if (!iter_true) {
+ break;
+ }
+ }
+ return iter_true;
+}
+
+static gboolean
+search_model_column_for_string(GtkTreeModel *model, GtkTreeIter *iter, gint ColNum, gchar *search) {
+ return search_model_column_for_string_advanced(model, iter, ColNum, search, FALSE);
+}
+
+static gboolean
+case_search_model_column_for_string(GtkTreeModel *model, GtkTreeIter *iter, gint ColNum, gchar *search) {
+ return search_model_column_for_string_advanced(model, iter, ColNum, search, TRUE);
+}
+
static void
refresh_identities(ModestIdentityMgr *modest_id_mgr,
gpointer userdata) {
static void
missing_notification(GtkWindow *parent, gchar *info_message) {
+
GtkWidget *DenyDialog;
DenyDialog=gtk_message_dialog_new(parent,
ModestUIPrivate *priv;
const gchar *account;
+ gchar *protocol;
+ gchar *tmptext;
+ gint retval;
priv = MODEST_UI_GET_PRIVATE(MODEST_UI(modest_ui));
account = gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASDisplaynameEntry")));
if (newaccount) {
+ tmptext = gtk_combo_box_get_active_text(GTK_COMBO_BOX(glade_xml_get_widget(glade_xml, "ASProtocolComboBox")));
+ protocol = g_utf8_strdown(tmptext, -1);
+ g_free(tmptext);
- if (modest_account_mgr_add_server_account (priv->modest_acc_mgr,
- account,
- gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASHostnameEntry"))),
- gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASUsernameEntry"))),
- gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASPasswordEntry"))),
- gtk_combo_box_get_active_text(GTK_COMBO_BOX(glade_xml_get_widget(glade_xml, "ASProtocolComboBox")))));
- else
- return FALSE;
+ retval = modest_account_mgr_add_server_account (priv->modest_acc_mgr,
+ account,
+ gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASHostnameEntry"))),
+ gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASUsernameEntry"))),
+ gtk_entry_get_text(GTK_ENTRY(glade_xml_get_widget(glade_xml, "ASPasswordEntry"))),
+ protocol);
+ g_free(protocol);
+ return retval;
}
if (!modest_account_mgr_set_server_account_string(priv->modest_acc_mgr,
account,
GtkCellRenderer *renderer;
ModestIdentityMgr *id_mgr;
GtkTextBuffer *sigbuff;
+ GtkTreeIter out_iter;
+ gchar *outacc_name;
gchar *tmptext;
gint identity_added_successfully;
gint result;
if (!newidentity) {
id_mgr = MODEST_UI_GET_PRIVATE(modest_ui)->modest_id_mgr;
+ outacc_name = modest_identity_mgr_get_identity_string(id_mgr,
+ identity,
+ MODEST_IDENTITY_ID_VIA,
+ NULL);
+
+ if (search_model_column_for_string(GTK_TREE_MODEL(accounts_model),
+ &out_iter,
+ ACCOUNT_NAME,
+ outacc_name))
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(outgoing_server), &out_iter);
+
awidget=glade_xml_get_widget(glade_xml, "ISIdentityEntry");
gtk_widget_set_sensitive(awidget, FALSE);
gtk_entry_set_text(GTK_ENTRY(awidget), identity);
tmptext = modest_identity_mgr_get_identity_string(id_mgr,
identity,
- MODEST_IDENTITY_REALNAME,
- NULL);
- awidget=glade_xml_get_widget(glade_xml, "ISNameEntry");
- gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
-
- g_free(tmptext);
-
- tmptext = modest_identity_mgr_get_identity_string(id_mgr,
- identity,
MODEST_IDENTITY_REPLYTO,
NULL);
awidget=glade_xml_get_widget(glade_xml, "ISReplyToEntry");
gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
g_free(tmptext);
+ g_free(outacc_name);
}
gtk_widget_show_all(id_dialog);
GtkWidget *acc_dialog;
GtkWidget *awidget;
ModestAccountMgr *acc_mgr;
+ GtkTreeModel *typemodel;
+ GtkTreeIter proto_iter;
gchar *tmptext;
gint account_added_successfully;
gint result;
gtk_widget_set_sensitive(awidget, FALSE);
gtk_entry_set_text(GTK_ENTRY(awidget), account);
- tmptext = modest_account_mgr_get_account_string(acc_mgr,
+ tmptext = modest_account_mgr_get_server_account_string(acc_mgr,
account,
MODEST_ACCOUNT_PROTO,
NULL);
- awidget=glade_xml_get_widget(glade_xml, "ASTypeEntry");
- gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
+ awidget=glade_xml_get_widget(glade_xml, "ASProtocolComboBox");
+ gtk_widget_set_sensitive(awidget, FALSE);
+ typemodel = gtk_combo_box_get_model(GTK_COMBO_BOX(awidget));
+ if (case_search_model_column_for_string(typemodel, &proto_iter, 0, tmptext))
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(awidget), &proto_iter);
+
g_free(tmptext);
- tmptext = modest_account_mgr_get_account_string(acc_mgr,
- account,
- MODEST_ACCOUNT_HOSTNAME,
- NULL);
+ tmptext = modest_account_mgr_get_server_account_string(acc_mgr,
+ account,
+ MODEST_ACCOUNT_HOSTNAME,
+ NULL);
awidget=glade_xml_get_widget(glade_xml, "ASHostnameEntry");
gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
g_free(tmptext);
- tmptext = modest_account_mgr_get_account_string(acc_mgr,
- account,
- MODEST_ACCOUNT_USERNAME,
- NULL);
+ tmptext = modest_account_mgr_get_server_account_string(acc_mgr,
+ account,
+ MODEST_ACCOUNT_USERNAME,
+ NULL);
awidget=glade_xml_get_widget(glade_xml, "ASUsernameEntry");
gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
g_free(tmptext);
- tmptext = modest_account_mgr_get_account_string(acc_mgr,
- account,
- MODEST_ACCOUNT_PASSWORD,
- NULL);
+ tmptext = modest_account_mgr_get_server_account_string(acc_mgr,
+ account,
+ MODEST_ACCOUNT_PASSWORD,
+ NULL);
awidget=glade_xml_get_widget(glade_xml, "ASPasswordEntry");
gtk_entry_set_text(GTK_ENTRY(awidget), tmptext);
-
g_free(tmptext);
-
}
gtk_widget_show_all(acc_dialog);
switch (result) {
case GTK_RESPONSE_OK:
account_added_successfully = write_account(glade_xml, modest_ui, newaccount);
+
break;
default:
account_added_successfully = FALSE;
glade_xml);
g_signal_connect(priv->modest_id_mgr,
- "account-change",
+ "identity-change",
G_CALLBACK(refresh_identities_on_change),
glade_xml);
g_signal_connect(priv->modest_id_mgr,
- "account-add",
+ "identity-add",
G_CALLBACK(refresh_identities_on_add),
glade_xml);
g_signal_connect(priv->modest_id_mgr,
- "account-remove",
+ "identity-remove",
G_CALLBACK(refresh_identities_on_remove),
glade_xml);
<child>
<widget class="GtkTable" id="table11">
<property name="visible">True</property>
- <property name="n_rows">6</property>
+ <property name="n_rows">5</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">10</property>
</child>
<child>
- <widget class="GtkLabel" id="ASPortLabel">
- <property name="label" translatable="yes">Port-No.:</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>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
<widget class="GtkCheckButton" id="ASUseSSLCheckButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="ASPortnoEntry">
- <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">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
<widget class="GtkEntry" id="ASUsernameEntry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">3</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="y_options"></property>
</packing>
</child>