messagingapp/shareui/inc/shareuiprivate.h
changeset 23 238255e8b033
child 25 84d9eb65b26f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/shareui/inc/shareuiprivate.h	Fri Apr 16 14:56:15 2010 +0300
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2009 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:  Offers message creation and sending services.
+ *
+*/
+
+
+
+#ifndef SHAREUIPRIVATE_H_
+#define SHAREUIPRIVATE_H_
+
+#include <qobject.h>
+#include <qfile.h>
+#include <qstandarditemmodel.h>
+#include <QModelIndex>
+#include <QStringList>
+
+#include <hbaction.h>
+#include <hbmenu.h>
+#include <hbdialog.h>
+#include <hblabel.h>
+#include <hblistview.h>
+#include <hblistviewitem.h>
+
+#include <xqaiwrequest.h>
+#include <xqappmgr.h>
+#include <xqaiwinterfacedescriptor.h>
+
+
+#define SERVICE_INTERFACE "imessage.send"
+#define SHARE_OP "send(QVariant)"
+
+/**
+ * Private implementaion of shareui.
+ * implements showing sending services dialog and sending files
+ */
+class ShareUiPrivate : public QObject
+    {
+    Q_OBJECT
+    
+public:
+    
+    /**
+     * Constructor
+     */
+    ShareUiPrivate();
+    
+    /**
+     * Destructor
+     */
+    virtual ~ShareUiPrivate();
+    
+    /**
+     * method for passing file list to the sending services
+     * @param fileList list of paths to files.eg: c:\images\sunset.jpg
+     * @param embedded true if sendui dialog is embedded in the launched application
+     * 
+     * @return bool true if dialog initialization successfull otherwise false
+     */
+    bool init(QStringList& fileList, bool embedded);
+    
+
+    
+public slots:
+
+    /**
+     * Handles setting th orguments for triggered service
+     */
+    void onTriggered(void); 
+    
+    /**
+     * Slot for handling valid returns from the framework.
+     * 
+     * @param result const QVariant&
+     */
+    void handleOk(const QVariant& result);
+    
+    /**
+     * Slot for handling errors. Error ids are provided as 
+     * 32-bit integers.
+     * @param errorCode qint32
+     */
+    void handleError(int errorCode, const QString& errorMessage);
+
+private slots:
+
+    /** 
+     * When a list box item is pressed, this slot should be invoked. The action
+     * corresponding to the clicked list item should be invoked with the stored lis
+     * of files.
+     * 
+     * @param index QModelIndex
+     * 
+     */
+    void itemActivated(QModelIndex index);
+    
+private:
+
+    /**
+     * fetchServiceDescriptors
+     * 
+     * Fetches the service descriptors using the Application Manager api. 
+     * 
+     * @return error boolean true if successfully fetched.
+     */
+    bool fetchServiceDescriptors(QList<XQAiwInterfaceDescriptor>& descriptorList);
+    
+    /**
+     * fetchServiceAction fetches the action associated with a specified interface descriptor.
+     * This is used after the fetchServiceDescriptors is called, and 
+     * 
+     * @param serviceDescriptor ServiceDescriptor fetched using fetchServiceDescriptors
+     * @return error boolean true if successfully fetched.
+     */
+    HbAction* fetchServiceAction(XQAiwInterfaceDescriptor interfaceDescriptor);    
+    
+    /**
+      * Creates the view for the sendui dialog.
+      *  
+      * @return bool true if initialization was successful, false otherwise.
+      */
+    void initializeUi(void);
+    
+    /**
+     * Update the SendUi Dialog (and associated list items) once the required
+     * information has been fetched.
+     * 
+     * @params action HbAction* The action that must be associated with the entry at that point in the list.
+     */
+    bool updateShareUiDialogList(HbAction* action);
+    
+    /**
+     * Enable the UI and show it on the screen.
+     */
+    void enableUi(void);
+    
+    /**
+     * Convert a qaction to hbaction.
+     * 
+     * @param action QAction*
+     * @return HbAction* 
+     */
+    HbAction* convertAction(QAction *action);
+    
+private:
+    /**
+     * 
+     * List of files to be sent.
+     * 
+     */
+    QList<QVariant> mFileList;
+    
+    /**
+     * Service List
+     */
+    QList<XQAiwRequest*> mAiwRequestList;
+    /**
+     * ShareUi dialog
+     */
+    HbDialog* mSharePopup;
+    
+    /**
+     * 
+     * item model for content list view.
+     */
+    
+    QStandardItemModel* mContentItemModel;
+    /**
+     * content view
+     */
+    
+    HbListView* mContentListView;
+    
+    /**
+     * mapping qmodelindex to the action
+     * 
+     */
+    
+    QMap<QModelIndex, HbAction*> mIndexActionMap;
+    
+    /**
+     * Application Manager
+     */
+    XQApplicationManager mAppManager;
+    
+    /**
+     * Whether to launch the sending application as embedded or not.
+     */
+    bool mIsEmbedded;
+    
+    };
+
+#endif /* SENDUIDIALOG_P_H_ */