typedef struct _ModestUIPrivate ModestUIPrivate;
struct _ModestUIPrivate {
-
+
ModestConf *modest_conf;
ModestAccountMgr *modest_acc_mgr;
ModestWindowMgr *modest_window_mgr;
TnyAccountStoreIface *account_store;
-
+
GtkWindow *main_window;
GladeXML *glade_xml;
priv->modest_conf = NULL;
priv->modest_window_mgr = NULL;
priv->glade_xml = NULL;
-
+
}
static void
modest_ui_finalize (GObject *obj)
{
- ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
-
+ ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
+
if (priv->modest_acc_mgr)
g_object_unref (priv->modest_acc_mgr);
priv->modest_acc_mgr = NULL;
-
+
if (priv->modest_conf)
g_object_unref (priv->modest_conf);
priv->modest_conf = NULL;
-
+
if (priv->modest_window_mgr)
g_object_unref (priv->modest_window_mgr);
priv->modest_window_mgr = NULL;
}
-
+
GObject*
modest_ui_new (ModestConf *modest_conf)
{
ModestUIPrivate *priv;
ModestAccountMgr *modest_acc_mgr;
TnyAccountStoreIface *account_store_iface;
-
+
g_return_val_if_fail (modest_conf, NULL);
- obj = g_object_new(MODEST_TYPE_UI, NULL);
+ obj = g_object_new(MODEST_TYPE_UI, NULL);
priv = MODEST_UI_GET_PRIVATE(obj);
modest_acc_mgr =
g_object_unref (obj);
return NULL;
}
-
+
account_store_iface =
TNY_ACCOUNT_STORE_IFACE(modest_tny_account_store_new (modest_acc_mgr));
if (!account_store_iface) {
g_warning ("could not initialze ModestTnyAccountStore");
return NULL;
}
- g_signal_connect (account_store_iface, "password_requested",
+ g_signal_connect (account_store_iface, "password_requested",
G_CALLBACK(on_password_requested),
- NULL);
+ NULL);
glade_init ();
priv->glade_xml = glade_xml_new (MODEST_GLADE,
NULL,NULL);
g_object_unref (obj);
return NULL;
}
-
+
priv->modest_acc_mgr = modest_acc_mgr;
g_object_ref (priv->modest_conf = modest_conf);
priv->account_store = account_store_iface;
-
+
priv->modest_window_mgr = MODEST_WINDOW_MGR(modest_window_mgr_new());
g_signal_connect (priv->modest_window_mgr, "last_window_closed",
G_CALLBACK(modest_ui_last_window_closed),
ModestUIPrivate *priv;
GtkWidget *folder_view, *header_view;
GtkWidget *message_view;
-
+
GtkWidget *folder_view_holder,
*header_view_holder,
*message_view_holder;
priv = MODEST_UI_GET_PRIVATE(modest_ui);
-
+
height = modest_conf_get_int (priv->modest_conf,
MODEST_CONF_MAIN_WINDOW_HEIGHT,NULL);
width = modest_conf_get_int (priv->modest_conf,
MODEST_CONF_MAIN_WINDOW_WIDTH,NULL);
-
+
win = glade_xml_get_widget (priv->glade_xml, "main");
if (!win) {
g_warning ("could not create main window");
return FALSE;
}
gtk_container_add (GTK_CONTAINER(folder_view_holder), folder_view);
-
+
header_view = GTK_WIDGET(modest_main_window_header_tree (NULL));
header_view_holder = glade_xml_get_widget (priv->glade_xml, "mail_list");
if (!header_view) {
}
gtk_container_add (GTK_CONTAINER(header_view_holder), header_view);
- g_signal_connect (G_OBJECT(folder_view), "folder_selected",
+ g_signal_connect (G_OBJECT(folder_view), "folder_selected",
G_CALLBACK(on_folder_clicked), modest_ui);
-
+
message_view = GTK_WIDGET(modest_tny_msg_view_new (NULL));
message_view_holder = glade_xml_get_widget (priv->glade_xml, "mail_view");
if (!message_view) {
}
gtk_container_add (GTK_CONTAINER(message_view_holder), message_view);
- g_signal_connect (header_view, "message_selected",
+ g_signal_connect (header_view, "message_selected",
G_CALLBACK(on_message_clicked),
modest_ui);
register_toolbar_callbacks (modest_ui);
-
+
modest_window_mgr_register (priv->modest_window_mgr,
G_OBJECT(win), MODEST_MAIN_WINDOW, 0);
g_signal_connect (win, "destroy", G_CALLBACK(modest_ui_window_destroy),
modest_ui);
gtk_widget_set_usize (GTK_WIDGET(win), height, width);
gtk_window_set_title (GTK_WINDOW(win), PACKAGE_STRING);
-
+
gtk_widget_show_all (win);
return TRUE;
}
{
ModestUIPrivate *priv;
GtkWidget *button;
-
+
g_return_if_fail (modest_ui);
priv = MODEST_UI_GET_PRIVATE (modest_ui);
-
+
button = glade_xml_get_widget (priv->glade_xml, "toolb_new_mail");
if (button)
g_signal_connect (button, "clicked",
GtkWidget *win;
ModestUIPrivate *priv;
GtkWidget *btn;
-
+
priv = MODEST_UI_GET_PRIVATE(modest_ui);
int height = modest_conf_get_int (priv->modest_conf,
MODEST_CONF_EDIT_WINDOW_HEIGHT,NULL);
g_warning ("could not create new mail window");
return FALSE;
}
-
+
modest_window_mgr_register (priv->modest_window_mgr,
G_OBJECT(win), MODEST_EDIT_WINDOW, 0);
gtk_window_set_title (GTK_WINDOW(win),
subject ? subject : "Untitled");
-
+
btn = glade_xml_get_widget (priv->glade_xml, "toolb_send");
g_signal_connect (btn, "clicked", G_CALLBACK(on_send_button_clicked),
modest_ui);
ModestTnyHeaderTreeView *tree_view;
ModestUIPrivate *priv;
GtkWidget *scrollview;
-
+
g_return_if_fail (folder);
g_return_if_fail (data);
priv = MODEST_UI_GET_PRIVATE(data);
scrollview = glade_xml_get_widget (priv->glade_xml,"mail_list");
-
+
tree_view = MODEST_TNY_HEADER_TREE_VIEW(
gtk_bin_get_child(GTK_BIN(scrollview)));
win = glade_xml_get_widget (priv->glade_xml, "main");
gtk_window_set_title (GTK_WINDOW(win),
tny_msg_folder_iface_get_name(folder));
-
+
modest_tny_header_tree_view_set_folder (tree_view,
- folder);
+ folder);
}
GtkWidget *scrollview;
ModestTnyMsgView *msg_view;
ModestUIPrivate *priv;
-
+
g_return_if_fail (message);
g_return_if_fail (data);
message);
}
-
static void
on_password_requested (ModestTnyAccountStore *account_store,
const gchar *account_name, gpointer user_data)
{
- GtkWidget *dialog;
+ GtkWidget *passdialog;
+ GtkWidget *vbox;
+ GtkWidget *infolabel;
+ GtkWidget *passentry;
+ gint retval;
+ const gchar *infostring=g_strconcat("Please enter the password for ", account_name, ".", NULL);
+ /*
dialog = gtk_message_dialog_new_with_markup (NULL,
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO,
"This dialog asks you for the password for account <b>%s</b>\n"
"However, it's not working yet. So for now, use\n"
"<i>gconf-editor</i>, and stay tuned!",
- account_name);
- gtk_dialog_run (GTK_DIALOG(dialog));
- gtk_widget_destroy (dialog);
+ account_name);
+ */
+
+
+ passdialog = gtk_dialog_new_with_buttons("MyDialog",
+ NULL,
+ GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_OK,
+ GTK_RESPONSE_ACCEPT,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_REJECT,
+ NULL);
+
+ vbox=gtk_vbox_new(FALSE, 0);
+
+ infolabel=gtk_label_new(infostring);
+ passentry=gtk_entry_new();
+
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), infolabel, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(passdialog)->vbox), passentry, FALSE, FALSE, 0);
+ gtk_widget_show_all(passdialog);
+
+ retval = gtk_dialog_run (GTK_DIALOG(passdialog));
+
+ switch (retval)
+ {
+ case GTK_RESPONSE_ACCEPT:
+ modest_account_mgr_set_server_account_string(modest_tny_account_store_get_accout_mgr(account_store),
+ account_name,
+ "password",
+ gtk_entry_get_text(GTK_ENTRY(passentry)),
+ NULL);
+ break;
+ case GTK_RESPONSE_CANCEL:
+ g_message("Dann halt nich!\n");
+ break;
+ }
+
+ gtk_widget_destroy (passdialog);
}
-
-
-
+
+
+
modest_main_window_header_tree (TnyMsgFolderIface *folder)
{
GtkTreeViewColumn *column;
- GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
GtkWidget *header_tree;
-
+
header_tree = GTK_WIDGET(modest_tny_header_tree_view_new(folder));
if (!header_tree) {
g_warning ("could not create header tree");
return NULL;
}
-
+
column = gtk_tree_view_column_new_with_attributes(_("Date"), renderer,
"text",
TNY_MSG_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN,
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(header_tree), TRUE);
gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW(header_tree), TRUE);
-
+
return GTK_WIDGET(header_tree);
}
TnyAccountStoreIface *account_store)
{
GtkTreeViewColumn *column;
- GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
GtkWidget *folder_tree;
folder_tree = modest_tny_folder_tree_view_new (account_store);
column = gtk_tree_view_column_new_with_attributes(_("All Mail Folders"),
renderer,"text",
TNY_ACCOUNT_TREE_MODEL_NAME_COLUMN,
- NULL);
+ NULL);
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW(folder_tree), column);
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW(folder_tree), column);
-
+
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(folder_tree), TRUE);
gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW(folder_tree), TRUE);
TnyAccountStoreIface *account_store;
const GList *transport_accounts;
TnyTransportAccountIface *transport_account;
-
+
g_return_if_fail (modest_ui);
actions = MODEST_TNY_TRANSPORT_ACTIONS
(modest_tny_transport_actions_new ());
priv = MODEST_UI_GET_PRIVATE(modest_ui);
-
+
account_store = priv->account_store;
- transport_accounts =
+ transport_accounts =
tny_account_store_iface_get_transport_accounts (account_store);
if (!transport_accounts) {
g_message ("cannot send message: no transport account defined");
} else /* take the first one! */
transport_account =
TNY_TRANSPORT_ACCOUNT_IFACE(transport_accounts->data);
-
+
to_entry = glade_xml_get_widget (priv->glade_xml, "to_entry");
subject_entry = glade_xml_get_widget (priv->glade_xml, "subject_entry");
body_view = glade_xml_get_widget (priv->glade_xml, "body_view");
-
+
to = gtk_entry_get_text (GTK_ENTRY(to_entry));
subject = gtk_entry_get_text (GTK_ENTRY(subject_entry));
g_message ("sending %s ==> %s", subject, to);
modest_tny_transport_actions_send_message (actions,
transport_account,
- "dirk-jan.binnema@nokia.com",
+ "dirk-jan.binnema@nokia.com",
to, "", "", subject,
- body);
+ body);
g_free (body);
g_object_unref (G_OBJECT(actions));
gchar *cache_dir;
TnySessionCamel *tny_session_camel;
-
- ModestAccountMgr *modest_acc_mgr;
+
+ ModestAccountMgr *modest_acc_mgr;
};
#define MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
MODEST_TYPE_TNY_ACCOUNT_STORE, \
/* globals */
static GObjectClass *parent_class = NULL;
-static guint signals[LAST_SIGNAL] = {0};
+static guint signals[LAST_SIGNAL] = {0};
GType
modest_tny_account_store_get_type (void)
NULL, /* interface_finalize */
NULL /* interface_data */
};
-
/* hack hack */
- my_type = g_type_register_static (TNY_TYPE_ACCOUNT_STORE,
+ my_type = g_type_register_static (TNY_TYPE_ACCOUNT_STORE,
"ModestTnyAccountStore", &my_info, 0);
-
+
g_type_add_interface_static (my_type, TNY_TYPE_ACCOUNT_STORE_IFACE,
&iface_info);
}
g_type_class_add_private (gobject_class,
sizeof(ModestTnyAccountStorePrivate));
- signals[PASSWORD_REQUESTED_SIGNAL] =
+ signals[PASSWORD_REQUESTED_SIGNAL] =
g_signal_new ("password_requested",
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_FIRST,
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1, G_TYPE_POINTER);
}
-
+
static void
modest_tny_account_store_init (ModestTnyAccountStore *obj)
{
g_object_unref (G_OBJECT(priv->tny_session_camel));
priv->tny_session_camel = NULL;
}
-
+
priv->store_accounts = free_gobject_list (priv->store_accounts);
priv->transport_accounts = free_gobject_list (priv->store_accounts);
-
+
g_free (priv->cache_dir);
priv->cache_dir = NULL;
-
+
}
g_object_unref (obj);
return NULL;
}
-
+
return obj;
}
static gchar*
get_password (TnyAccountIface *account, const gchar *prompt)
{
- const gchar *key;
- const TnyAccountStoreIface *account_store;
+ const gchar *key;
+ const TnyAccountStoreIface *account_store;
ModestTnyAccountStore *self;
ModestTnyAccountStorePrivate *priv;
gchar *val;
g_message (__FUNCTION__);
-
+
g_return_val_if_fail (account, NULL);
-
+
key = tny_account_iface_get_id (account);
account_store = tny_account_iface_get_account_store(account);
val = modest_account_mgr_get_server_account_string (priv->modest_acc_mgr, key,
MODEST_ACCOUNT_PASSWORD,
NULL);
- if (!val)
- g_signal_emit (G_OBJECT(self), signals[PASSWORD_REQUESTED_SIGNAL], 0,
- key);
+ if (!val || strlen(val)==0)
+ {
+ g_message("Key vor Aufruf: %s", key);
+ /* g_signal_emit (G_OBJECT(self), signals[PASSWORD_REQUESTED_SIGNAL], 0, key); */
+ g_signal_emit (G_OBJECT(self), signals[PASSWORD_REQUESTED_SIGNAL], 0, key);
+<<<<<<< .mine
+ }
+
+ return val;
+=======
return val;
+>>>>>>> .r67
}
g_return_val_if_fail (self, NULL);
g_return_val_if_fail (key, NULL);
-
+
priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
-
+
/* is it a store or a transport? */
if (is_store)
tny_account = TNY_ACCOUNT_IFACE(tny_store_account_new ());
else
tny_account = TNY_ACCOUNT_IFACE(tny_transport_account_new ());
-
+
if (!tny_account) {
g_warning ("failed to create new tny %s account",
is_store ? "store" : "transport");
return NULL;
}
-
+
tny_account_iface_set_account_store (TNY_ACCOUNT_IFACE(tny_account),
TNY_ACCOUNT_STORE_IFACE(self));
/* id */
} else {
g_warning ("protocol not defined for %s", key);
g_object_unref (G_OBJECT(tny_account));
- return NULL;
+ return NULL;
}
-
+
/* hostname */
val = modest_account_mgr_get_server_account_string (priv->modest_acc_mgr, key,
MODEST_ACCOUNT_HOSTNAME,
tny_account_iface_set_hostname (tny_account, val);
g_free (val);
}
-
+
/* username */
val = modest_account_mgr_get_server_account_string (priv->modest_acc_mgr, key,
tny_account_iface_set_pass_func (tny_account, get_password);
tny_account_iface_set_forget_pass_func (tny_account, forget_password);
-
+
return tny_account;
}
{
GSList *cursor = accounts;
GList *tny_accounts = NULL;
-
+
g_return_val_if_fail (self, NULL);
-
+
while (cursor) {
TnyAccountIface *tny_account;
- gchar *key = cursor->data;
+ gchar *key = cursor->data;
tny_account = tny_account_from_key (self, (gchar*)cursor->data,
is_store);
if (!tny_account) {
}
cursor = cursor->next;
}
-
+
return tny_accounts;
}
ModestTnyAccountStorePrivate *priv;
GSList *accounts, *cursor;
GList *tny_accounts;
-
+
g_return_val_if_fail (iface, NULL);
-
+
self = MODEST_TNY_ACCOUNT_STORE(iface);
priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
-
+
accounts =
modest_account_mgr_server_account_names (priv->modest_acc_mgr,
NULL,
g_message ("accounts: %d", g_slist_length (accounts));
tny_accounts = tny_accounts_from_server_accounts (self, accounts, TRUE);
g_slist_free (accounts);
- g_message ("store accounts: %d", g_list_length (tny_accounts));
+ g_message ("store accounts: %d", g_list_length (tny_accounts));
/*
*/
priv->store_accounts = free_gobject_list (priv->store_accounts);
priv->store_accounts = tny_accounts;
-
- return tny_accounts;
+
+ return tny_accounts;
}
g_warning ("transport accounts: %d", g_list_length (tny_accounts));
g_slist_free (accounts);
-
+
/*
* FIXME: after gconf notification support is added,
* we can simply return priv->store_account
*/
priv->transport_accounts = free_gobject_list (priv->transport_accounts);
priv->transport_accounts = tny_accounts;
-
+
return tny_accounts; /* FIXME: who will free this? */
}
+ModestAccountMgr *modest_tny_account_store_get_accout_mgr(ModestTnyAccountStore *self)
+{
+ ModestTnyAccountStorePrivate *priv;
+ g_return_val_if_fail (self, NULL);
+
+ priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
+
+ return priv->modest_acc_mgr;
+}
+
TnySessionCamel*
g_message ("returning tny session camel %p",
priv->tny_session_camel);
-
+
return priv->tny_session_camel;
}
priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
gchar *cache_dir;
-
+
if (!priv->cache_dir) {
if (g_getenv("HOME") != NULL)
priv->cache_dir = g_strconcat(g_getenv("HOME"),
klass->get_cache_dir_func =
modest_tny_account_store_get_cache_dir;
klass->get_device_func =
- modest_tny_account_store_get_device;
+ modest_tny_account_store_get_device;
}