emailservices/nmclientapi/src/nmapimailboxsettings_p.cpp
changeset 47 f83bd4ae1fe3
child 48 10eaf342f539
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmclientapi/src/nmapimailboxsettings_p.cpp	Thu Jun 24 14:32:18 2010 +0300
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include "nmapimailboxsettings_p.h"
+
+#include "nmdataplugininterface.h"
+#include "nmapidatapluginfactory.h"
+//#include "nmapipopimapsettingsmanager.h"
+#include "emailtrace.h"
+
+#include <nmapimailboxsettings.h>
+#include <nmapimailboxsettingsdata.h>
+
+#include <QVariant>
+#include <QString>
+#include <QHash>
+#include <QList>
+
+namespace EmailClientApi
+{
+NmApiMailboxSettingsPrivate::NmApiMailboxSettingsPrivate(QObject *parent) : 
+    QObject(parent), 
+    mFactory(NULL),
+    mDeleteMailboxOperation(NULL)
+{
+    NM_FUNCTION;
+    mFactory = NmApiDataPluginFactory::instance();
+    Q_CHECK_PTR(mFactory);
+}
+
+NmApiMailboxSettingsPrivate::~NmApiMailboxSettingsPrivate()
+{
+    NM_FUNCTION;
+    NmApiDataPluginFactory::releaseInstance(mFactory);
+    if(mDeleteMailboxOperation && mDeleteMailboxOperation->isRunning()) {
+        mDeleteMailboxOperation->cancelOperation();        
+    }
+}
+
+bool NmApiMailboxSettingsPrivate::listMailboxIds(QList<quint64> &idList)
+{
+    NM_FUNCTION; 
+    QList<NmId> mailboxIds;
+    bool ret = false;
+    idList.clear();
+    
+    NmDataPluginInterface *instance = mFactory->interfaceInstance();
+    if (instance) {
+        if (instance->listMailboxIds(mailboxIds) == KErrNone) {
+            
+            foreach (NmId boxId, mailboxIds) {
+                        idList.append(boxId.id());
+                    }
+            
+            ret = true;   
+            }
+        } 
+     
+    return ret;
+}
+
+bool NmApiMailboxSettingsPrivate::loadSettings(quint64 mailboxId, NmApiMailboxSettingsData &data)
+{
+    NM_FUNCTION;
+    Q_UNUSED(mailboxId);
+    Q_UNUSED(data);
+    return false;
+}
+
+bool NmApiMailboxSettingsPrivate::saveSettings(const NmApiMailboxSettingsData &data)
+{
+    NM_FUNCTION;
+    Q_UNUSED(data);
+    return false;
+}
+
+bool NmApiMailboxSettingsPrivate::createMailbox(
+    const QString &mailboxType,
+    NmApiMailboxSettingsData &data)
+{
+    NM_FUNCTION;
+    
+    bool ret = false;
+    
+    /*QT_TRY {
+        if (mailboxType==NmApiMailboxTypePop || mailboxType==NmApiMailboxTypeImap) {
+            QScopedPointer<NmApiPopImapSettingsManager> popImapManager(new NmApiPopImapSettingsManager());  
+            popImapManager->createMailbox(mailboxType, data);
+            ret = true;
+        }
+        else {
+            ret = false;
+        }
+        //TODO store cenrep stuff here
+    }
+    QT_CATCH(...){
+        ret = false;
+    }*/
+    
+    return ret;
+}
+
+bool NmApiMailboxSettingsPrivate::deleteMailbox(quint64 mailboxId)
+{
+    NM_FUNCTION;
+    bool ret = false;
+    NmDataPluginInterface *instance = mFactory->interfaceInstance();
+    if (instance) {
+        if (mDeleteMailboxOperation && mDeleteMailboxOperation->isRunning()) {
+            mDeleteMailboxOperation->cancelOperation();
+        }
+        mDeleteMailboxOperation = instance->deleteMailboxById(NmId(mailboxId));
+        
+        if (mDeleteMailboxOperation) {
+            ret = true;
+            connect(mDeleteMailboxOperation, 
+                    SIGNAL(operationCompleted(int)), 
+                    this, 
+                    SIGNAL(mailboxDeleted(int)));
+        }
+    }
+    return ret;
+}
+
+bool NmApiMailboxSettingsPrivate::populateDefaultSettings(
+    const QString &mailboxType, NmApiMailboxSettingsData &data) 
+{
+    NM_FUNCTION;
+    /*QScopedPointer<NmApiPopImapSettingsManager> popImapManager(new NmApiPopImapSettingsManager());  
+    return popImapManager->populateDefaults(mailboxType, data);*/
+    return true;
+}
+
+}// namespace