-/* Copyright (c) 2007, Nokia Corporation
+/*
+ * Copyright (C) 2007 Nokia Corporation, all rights reserved.
* All rights reserved.
*
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "modest-retrieve-combo-box.h"
#include "modest-defs.h" /* For the conf names. */
-#include <gtk/gtkliststore.h>
-#include <gtk/gtkcelllayout.h>
-#include <gtk/gtkcellrenderertext.h>
+#include "modest-account-settings.h"
+#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <stdlib.h>
enum MODEL_COLS {
MODEL_COL_NAME = 0, /* a string */
- MODEL_COL_CONF_NAME = 1 /* a string */
+ MODEL_COL_RETRIEVE_TYPE = 1 /* a gint (a ModestAccountRetrieveType) */
};
-void modest_retrieve_combo_box_fill (ModestRetrieveComboBox *combobox, ModestTransportStoreProtocol protocol);
+void modest_retrieve_combo_box_fill (ModestRetrieveComboBox *combobox, ModestProtocolType protocol);
static void
modest_retrieve_combo_box_init (ModestRetrieveComboBox *self)
* with a string for the name, and an ID for the retrieve.
* This must match our MODEL_COLS enum constants.
*/
- priv->model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING));
+ priv->model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT));
/* Setup the combo box: */
GtkComboBox *combobox = GTK_COMBO_BOX (self);
* #combobox: The combo box.
* @protocol: IMAP or POP.
*/
-void modest_retrieve_combo_box_fill (ModestRetrieveComboBox *combobox, ModestTransportStoreProtocol protocol)
+void modest_retrieve_combo_box_fill (ModestRetrieveComboBox *combobox, ModestProtocolType protocol)
{
ModestRetrieveComboBoxPrivate *priv = RETRIEVE_COMBO_BOX_GET_PRIVATE (combobox);
GtkTreeIter iter;
gtk_list_store_append (liststore, &iter);
gtk_list_store_set (liststore, &iter,
- MODEL_COL_CONF_NAME, MODEST_ACCOUNT_RETRIEVE_VALUE_HEADERS_ONLY,
+ MODEL_COL_RETRIEVE_TYPE, MODEST_ACCOUNT_RETRIEVE_HEADERS_ONLY,
MODEL_COL_NAME, _("mcen_fi_advsetup_retrievetype_headers"), -1);
+
+ /* We disable messages retrieval finally */
+/* /\* Only IMAP should have this option, according to the UI spec: *\/ */
+/* if (protocol == MODEST_PROTOCOL_STORE_IMAP) { */
+/* gtk_list_store_append (liststore, &iter); */
+/* gtk_list_store_set (liststore, &iter, */
+/* MODEL_COL_RETRIEVE_TYPE, MODEST_ACCOUNT_RETRIEVE_MESSAGES, */
+/* MODEL_COL_NAME, _("mcen_fi_advsetup_retrievetype_messages"), -1); */
+/* } */
+
gtk_list_store_append (liststore, &iter);
gtk_list_store_set (liststore, &iter,
- MODEL_COL_CONF_NAME, MODEST_ACCOUNT_RETRIEVE_VALUE_MESSAGES,
- MODEL_COL_NAME, _("mcen_fi_advsetup_retrievetype_messages"), -1);
-
- /* Only IMAP should have this option, according to the UI spec: */
- if (protocol == MODEST_PROTOCOL_STORE_IMAP) {
- gtk_list_store_append (liststore, &iter);
- gtk_list_store_set (liststore, &iter,
- MODEL_COL_CONF_NAME, MODEST_ACCOUNT_RETRIEVE_VALUE_MESSAGES_AND_ATTACHMENTS,
- MODEL_COL_NAME, _("mcen_fi_advsetup_retrievetype_messages_attachments"), -1);
- }
+ MODEL_COL_RETRIEVE_TYPE, MODEST_ACCOUNT_RETRIEVE_MESSAGES_AND_ATTACHMENTS,
+ MODEL_COL_NAME, _("mcen_fi_advsetup_retrievetype_messages_attachments"), -1);
}
/**
* Returns the selected retrieve.
* or NULL if no retrieve was selected. The result must be freed with g_free().
*/
-gchar*
+ModestAccountRetrieveType
modest_retrieve_combo_box_get_active_retrieve_conf (ModestRetrieveComboBox *combobox)
{
GtkTreeIter active;
if (found) {
ModestRetrieveComboBoxPrivate *priv = RETRIEVE_COMBO_BOX_GET_PRIVATE (combobox);
- gchar *retrieve = NULL;
- gtk_tree_model_get (priv->model, &active, MODEL_COL_CONF_NAME, &retrieve, -1);
- return retrieve;
+ ModestAccountRetrieveType retrieve_type = MODEST_ACCOUNT_RETRIEVE_HEADERS_ONLY;
+ gtk_tree_model_get (priv->model, &active, MODEL_COL_RETRIEVE_TYPE, &retrieve_type, -1);
+ return retrieve_type;
}
- return NULL; /* Failed. */
+ return MODEST_ACCOUNT_RETRIEVE_HEADERS_ONLY; /* Failed. */
}
/* This allows us to pass more than one piece of data to the signal handler,
typedef struct
{
ModestRetrieveComboBox* self;
- const gchar* conf_name;
+ ModestAccountRetrieveType retrieve_type;
gboolean found;
} ForEachData;
gboolean result = FALSE;
/* Select the item if it has the matching name: */
- gchar * conf_name = 0;
- gtk_tree_model_get (model, iter, MODEL_COL_CONF_NAME, &conf_name, -1);
- if(conf_name && state->conf_name && (strcmp(conf_name, state->conf_name) == 0)) {
+ ModestAccountRetrieveType retrieve_type;
+ gtk_tree_model_get (model, iter, MODEL_COL_RETRIEVE_TYPE, &retrieve_type, -1);
+ if (retrieve_type == state->retrieve_type) {
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (state->self), iter);
state->found = TRUE;
result = TRUE; /* Stop walking the tree. */
}
- g_free (conf_name);
return result; /* Whether we keep walking the tree. */
}
* or FALSE if no retrieve was selected.
*/
gboolean
-modest_retrieve_combo_box_set_active_retrieve_conf (ModestRetrieveComboBox *combobox, const gchar* retrieve)
+modest_retrieve_combo_box_set_active_retrieve_conf (ModestRetrieveComboBox *combobox,
+ ModestAccountRetrieveType retrieve_type)
{
ModestRetrieveComboBoxPrivate *priv = RETRIEVE_COMBO_BOX_GET_PRIVATE (combobox);
/* Create a state instance so we can send two items of data to the signal handler: */
ForEachData *state = g_new0 (ForEachData, 1);
state->self = combobox;
- state->conf_name = retrieve;
+ state->retrieve_type = retrieve_type;
state->found = FALSE;
/* Look at each item, and select the one with the correct ID: */