* g_type_init_with_debug_flags
* - "track-signals": track the use of (g)signals in the program. this option influences
* g_type_init_with_debug_flags
- * - "disable-cache": disable caching of strings and pixbuf
* if you would want to track signals and log actions, you could do something like:
* MODEST_DEBUG="log-actions:track-signals" ./modest
* NOTE that the flags will stay the same during the run of the program, even
priv->cache_dir = NULL;
if (priv->device) {
- g_object_unref (priv->device);
+ g_object_unref (G_OBJECT(priv->device));
priv->device = NULL;
}
}
if (priv->account_mgr) {
- g_object_unref (priv->account_mgr);
+ g_object_unref (G_OBJECT(priv->account_mgr));
priv->account_mgr = NULL;
}
-
- if (priv->session) {
- camel_object_unref (CAMEL_OBJECT(priv->session));
- priv->session = NULL;
- }
-
+
/* this includes the local folder */
account_list_free (priv->store_accounts);
priv->store_accounts = NULL;
account_list_free (priv->transport_accounts);
priv->transport_accounts = NULL;
+
+ if (priv->session) {
+ camel_object_unref (CAMEL_OBJECT(priv->session));
+ priv->session = NULL;
+ }
+
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
typedef struct _ModestTnySendQueuePrivate ModestTnySendQueuePrivate;
struct _ModestTnySendQueuePrivate {
- TnyCamelTransportAccount *account;
+ /* empty */
};
#define MODEST_TNY_SEND_QUEUE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
MODEST_TYPE_TNY_SEND_QUEUE, \
static void
modest_tny_send_queue_cancel (TnySendQueue *self, gboolean remove, GError **err)
-{
- g_warning (__FUNCTION__);
-
+{
TNY_CAMEL_SEND_QUEUE_CLASS(parent_class)->cancel_func (self, remove, err); /* FIXME */
}
g_return_if_fail (TNY_IS_SEND_QUEUE(self));
g_return_if_fail (TNY_IS_CAMEL_MSG(msg));
-
- g_warning (__FUNCTION__);
priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
static TnyFolder*
modest_tny_send_queue_get_sentbox (TnySendQueue *self)
{
- ModestTnySendQueuePrivate *priv;
-
- g_warning (__FUNCTION__);
+ TnyFolder *folder;
+ TnyCamelTransportAccount *account;
g_return_val_if_fail (self, NULL);
- priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
-
- return modest_tny_account_get_special_folder (TNY_ACCOUNT(priv->account),
- TNY_FOLDER_TYPE_SENT);
+ account = tny_camel_send_queue_get_transport_account (TNY_CAMEL_SEND_QUEUE(self));
+ if (!account) {
+ g_printerr ("modest: no account for send queue\n");
+ return NULL;
+ }
+ folder = modest_tny_account_get_special_folder (TNY_ACCOUNT(account),
+ TNY_FOLDER_TYPE_SENT);
+ g_object_unref (G_OBJECT(account));
+
+ return folder;
}
static TnyFolder*
modest_tny_send_queue_get_outbox (TnySendQueue *self)
{
- ModestTnySendQueuePrivate *priv;
+ TnyFolder *folder;
+ TnyCamelTransportAccount *account;
g_return_val_if_fail (self, NULL);
- g_warning (__FUNCTION__);
-
- priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
+ account = tny_camel_send_queue_get_transport_account (TNY_CAMEL_SEND_QUEUE(self));
+ if (!account) {
+ g_printerr ("modest: no account for send queue\n");
+ return NULL;
+ }
+ folder = modest_tny_account_get_special_folder (TNY_ACCOUNT(account),
+ TNY_FOLDER_TYPE_OUTBOX);
+ g_object_unref (G_OBJECT(account));
- return modest_tny_account_get_special_folder (TNY_ACCOUNT(priv->account),
- TNY_FOLDER_TYPE_OUTBOX);
+ return folder;
}
static void
modest_tny_send_queue_instance_init (GTypeInstance *instance, gpointer g_class)
{
- ModestTnySendQueue *self;
- ModestTnySendQueuePrivate *priv;
-
- self = (ModestTnySendQueue*)instance;
- priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (self);
-
- priv->account = NULL;
+
}
static void
modest_tny_send_queue_finalize (GObject *obj)
{
- ModestTnySendQueuePrivate *priv;
- priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (obj);
-
- if (priv->account) {
- g_object_unref (priv->account);
- priv->account = NULL;
- }
-
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
self = MODEST_TNY_SEND_QUEUE(g_object_new(MODEST_TYPE_TNY_SEND_QUEUE, NULL));
priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE(self);
- priv->account = account;
- g_object_ref (G_OBJECT(priv->account));
-
-// tny_camel_send_queue_set_transport_account (TNY_CAMEL_SEND_QUEUE(self),
-// account); /* hmmm */
-
+ tny_camel_send_queue_set_transport_account (TNY_CAMEL_SEND_QUEUE(self),
+ account);
return self;
}
+
+
+void
+modest_tny_send_queue_flush (ModestTnySendQueue* self)
+{
+ tny_camel_send_queue_flush (TNY_CAMEL_SEND_QUEUE(self));
+}
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
-#ifndef __MODEST_TNY_SEND_QUEUE_H__
-#define __MODEST_TNY_SEND_QUEUE_H__
-
#include <glib.h>
#include <glib-object.h>
#include <tny-send-queue.h>
#include <tny-msg.h>
#include <tny-camel-transport-account.h>
+#ifndef __MODEST_TNY_SEND_QUEUE_H__
+#define __MODEST_TNY_SEND_QUEUE_H__
+
G_BEGIN_DECLS
/* convenience macros */
*/
ModestTnySendQueue* modest_tny_send_queue_new (TnyCamelTransportAccount *account);
+
+
+/**
+ * modest_tny_send_queue_flush:
+ * @self: a valid #ModestTnySendQueue instance
+ *
+ * (try to) send the messages in the outbox folder
+ *
+ */
+void modest_tny_send_queue_flush (ModestTnySendQueue* self);
+
+
G_END_DECLS
#endif /* __MODEST_TNY_SEND_QUEUE_H__ */
{
if (MODEST_IS_MAIN_WINDOW(win)) {
GtkWidget *header_view;
-
+
header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
MODEST_WIDGET_TYPE_HEADER_VIEW);
return modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
-
+
} else if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
/* for MsgViewWindows, we simply return a list with one element */
TnyMsg *msg;
- TnyList *list;
+ TnyHeader *header;
+ TnyList *list = NULL;
msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW(win));
- list = tny_simple_list_new ();
- tny_list_prepend (list, G_OBJECT(msg));
-
+ if (msg) {
+ header = tny_msg_get_header (msg);
+ list = tny_simple_list_new ();
+ tny_list_prepend (list, G_OBJECT(header));
+ g_object_unref (G_OBJECT(header));
+ }
return list;
+
} else
return NULL;
-
+
}
void
modest_ui_actions_on_delete (GtkWidget *widget, ModestWindow *win)
header = TNY_HEADER (tny_iterator_get_current (helper->iter));
folder = tny_header_get_folder (header);
-
- /* The callback will call it per each header */
- tny_folder_get_msg_async (folder, header, get_msg_cb, helper);
+ if (folder) {
+ /* The callback will call it per each header */
+ tny_folder_get_msg_async (folder, header, get_msg_cb, helper);
+ g_object_unref (G_OBJECT (folder));
+ } else
+ g_printerr ("modest: no folder for header\n");
/* Clean */
g_object_unref (G_OBJECT (header));
- g_object_unref (G_OBJECT (folder));
}
void
{
TnyDevice *device;
TnyAccountStore *account_store;
+ gchar *account_name;
+ TnyAccount *tny_account;
+ ModestTnySendQueue *send_queue;
/* Get device. Do not ask the platform factory for it, because
it returns always a new one */
account_store = TNY_ACCOUNT_STORE (modest_runtime_get_account_store ());
device = tny_account_store_get_device (account_store);
-
- tny_device_force_online (device);
-
- /* FIXME: refresh the folders */
+
+ account_name =
+ g_strdup(modest_window_get_active_account(MODEST_WINDOW(win)));
+ if (!account_name)
+ account_name = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr());
+ if (!account_name) {
+ g_printerr ("modest: cannot get account\n");
+ return;
+ }
+
+ tny_account =
+ modest_tny_account_store_get_tny_account_by_account (modest_runtime_get_account_store(),
+ account_name, TNY_ACCOUNT_TYPE_TRANSPORT);
+ if (!tny_account) {
+ g_printerr ("modest: cannot get tny transport account\n");
+ return;
+ }
+
+ send_queue = modest_tny_send_queue_new (TNY_CAMEL_TRANSPORT_ACCOUNT(tny_account));
+ modest_tny_send_queue_flush (send_queue);
+
+ g_object_unref (G_OBJECT(send_queue));
+ g_object_unref (G_OBJECT(tny_account));
}