X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-store-actions.c;h=a1e93ca6f454cfc5884a5949822e655f0d2323dc;hb=3084439a659fa9aec750337f94cad4bca0c92898;hp=870bbfce1384c614168e4feca48977bef5e8658e;hpb=66b14f0b9a56c77010fdf0225f4c0c0d7b954c9d;p=modest diff --git a/src/modest-tny-store-actions.c b/src/modest-tny-store-actions.c index 870bbfc..a1e93ca 100644 --- a/src/modest-tny-store-actions.c +++ b/src/modest-tny-store-actions.c @@ -1,139 +1,98 @@ -/* modest-tny-store-actions.c */ - -/* insert (c)/licensing information) */ +/* Copyright (c) 2006, Nokia Corporation + * 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 +#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include -#include - - -#include #include "modest-tny-store-actions.h" - -/* 'private'/'protected' functions */ -static void modest_tny_store_actions_class_init (ModestTnyStoreActionsClass *klass); -static void modest_tny_store_actions_init (ModestTnyStoreActions *obj); -static void modest_tny_store_actions_finalize (GObject *obj); - -/* list my signals */ -enum { - /* MY_SIGNAL_1, */ - /* MY_SIGNAL_2, */ - LAST_SIGNAL -}; - -typedef struct _ModestTnyStoreActionsPrivate ModestTnyStoreActionsPrivate; - -struct _ModestTnyStoreActionsPrivate { - gboolean active; -}; - -#define MODEST_TNY_STORE_ACTIONS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ - MODEST_TYPE_TNY_STORE_ACTIONS, \ - ModestTnyStoreActionsPrivate)) -/* globals */ -static GObjectClass *parent_class = NULL; - -/* uncomment the following if you have defined any signals */ -/* static guint signals[LAST_SIGNAL] = {0}; */ - -void -modest_tny_store_actions_update_folders (ModestTnyStoreActions *self, - TnyStoreAccountIface *storage_account) +TnyFolder * +modest_tny_store_actions_create_folder (TnyFolderStore *parent, + const gchar *name) { -#if 0 - const TnyListIface* folders; - TnyIteratorIface* ifolders; - gpointer *cur_folder; + g_return_val_if_fail (TNY_IS_FOLDER_STORE (parent), NULL); + g_return_val_if_fail (name, NULL); - folders = tny_store_account_iface_get_folders (storage_account, - TNY_STORE_ACCOUNT_FOLDER_TYPE_SUBSCRIBED); - - ifolders = tny_list_iface_create_iterator (folders); - - for (cur_folder = tny_iterator_iface_first (ifolders); - tny_iterator_iface_has_next (ifolders); - tny_iterator_iface_next (ifolders)) - { - cur_folder = tny_iterator_iface_current (ifolders); -// tny_msg_folder_iface_refresh (cur_folder); - } -#endif -} + TnyFolder *new_folder = NULL; + TnyStoreAccount *store_account; + /* Create the folder */ + new_folder = tny_folder_store_create_folder (parent, name); + if (!new_folder) + return NULL; -GType -modest_tny_store_actions_get_type (void) -{ - static GType my_type = 0; - if (!my_type) { - static const GTypeInfo my_info = { - sizeof(ModestTnyStoreActionsClass), - NULL, /* base init */ - NULL, /* base finalize */ - (GClassInitFunc) modest_tny_store_actions_class_init, - NULL, /* class finalize */ - NULL, /* class data */ - sizeof(ModestTnyStoreActions), - 1, /* n_preallocs */ - (GInstanceInitFunc) modest_tny_store_actions_init, - }; - my_type = g_type_register_static (G_TYPE_OBJECT, - "ModestTnyStoreActions", - &my_info, 0); + /* Subscribe to folder */ + if (!tny_folder_is_subscribed (new_folder)) { + store_account = tny_folder_get_account (TNY_FOLDER (parent)); + tny_store_account_subscribe (store_account, new_folder); } - return my_type; + + return new_folder; } -static void -modest_tny_store_actions_class_init (ModestTnyStoreActionsClass *klass) +void +modest_tny_store_actions_remove_folder (TnyFolder *folder) { - GObjectClass *gobject_class; - gobject_class = (GObjectClass*) klass; + TnyFolderStore *folder_store; - parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = modest_tny_store_actions_finalize; + g_return_if_fail (TNY_IS_FOLDER (folder)); - g_type_class_add_private (gobject_class, sizeof(ModestTnyStoreActionsPrivate)); - - klass->update_folders = modest_tny_store_actions_update_folders; - /* signal definitions go here, e.g.: */ -/* signals[MY_SIGNAL_1] = */ -/* g_signal_new ("my_signal_1",....); */ -/* signals[MY_SIGNAL_2] = */ -/* g_signal_new ("my_signal_2",....); */ -/* etc. */ -} + /* Get folder store */ + folder_store = TNY_FOLDER_STORE (tny_folder_get_account (folder)); -static void -modest_tny_store_actions_init (ModestTnyStoreActions *obj) -{ -/* uncomment the following if you init any of the private data */ -/* ModestTnyStoreActionsPrivate *priv = MODEST_TNY_STORE_ACTIONS_GET_PRIVATE(obj); */ + /* Remove folder */ + tny_folder_store_remove_folder (folder_store, folder); -/* initialize this object, eg.: */ -/* priv->frobnicate_mode = FALSE; */ + /* Free instance */ + g_object_unref (G_OBJECT (folder)); } -static void -modest_tny_store_actions_finalize (GObject *obj) +void modest_tny_store_actions_rename_folder (TnyFolder *folder, + const gchar *name) { -/* free/unref instance resources here */ + g_return_if_fail (TNY_IS_FOLDER (folder)); + g_return_if_fail (name); + + tny_folder_set_name (folder, name); } -GObject* -modest_tny_store_actions_new (void) +void modest_tny_store_actions_move_folder (TnyFolder *folder, + TnyFolderStore *parent) { - return G_OBJECT(g_object_new(MODEST_TYPE_TNY_STORE_ACTIONS, NULL)); + /* TODO: set parent as parent */ }