messagingapp/msgservices/msgserviceapp/inc/msgserviceviewmanager.h
author hgs
Fri, 06 Aug 2010 23:19:50 +0530
changeset 51 3507212d340e
parent 38 4e4b6adb1024
child 56 f42d9a78f435
permissions -rw-r--r--
201031_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: Manages differnt messaging views.
hgs
parents:
diff changeset
    15
 * 
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef MSGSERVICEVIEWMANAGER_H_
hgs
parents:
diff changeset
    20
#define MSGSERVICEVIEWMANAGER_H_
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <QObject>
hgs
parents:
diff changeset
    23
#include <QVariant>
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
    24
#include <HbEffect>
37
hgs
parents:
diff changeset
    25
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
    26
class QGraphicsItem;
3507212d340e 201031_02
hgs
parents: 38
diff changeset
    27
class QGraphicsPixmapItem;
37
hgs
parents:
diff changeset
    28
class HbMainWindow;
hgs
parents:
diff changeset
    29
class MsgUnifiedEditorView;
hgs
parents:
diff changeset
    30
class UnifiedViewer;
hgs
parents:
diff changeset
    31
class MsgBaseView;
hgs
parents:
diff changeset
    32
class MsgSettingsView;
hgs
parents:
diff changeset
    33
class HbAction;
hgs
parents:
diff changeset
    34
class MsgStoreHandler;
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
class MsgServiceViewManager: public QObject
hgs
parents:
diff changeset
    37
{
hgs
parents:
diff changeset
    38
Q_OBJECT
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
public:
hgs
parents:
diff changeset
    41
    /**
hgs
parents:
diff changeset
    42
     * Constructor
hgs
parents:
diff changeset
    43
     */
hgs
parents:
diff changeset
    44
    MsgServiceViewManager(MsgStoreHandler* storeHandler,
hgs
parents:
diff changeset
    45
            HbMainWindow* mainWindow, QObject* parent = 0);
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    /**
hgs
parents:
diff changeset
    48
     * Destructor.
hgs
parents:
diff changeset
    49
     */
hgs
parents:
diff changeset
    50
    ~MsgServiceViewManager();
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
    /**
hgs
parents:
diff changeset
    53
     * Send message.
hgs
parents:
diff changeset
    54
     * @param phoneNumber phone number.
hgs
parents:
diff changeset
    55
     * @param contactId contactId.
hgs
parents:
diff changeset
    56
     * @param displayName displayname.
hgs
parents:
diff changeset
    57
     */
hgs
parents:
diff changeset
    58
    void send(const QString phoneNumber, 
hgs
parents:
diff changeset
    59
              const qint32 contactId, 
hgs
parents:
diff changeset
    60
              const QString displayName);
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
    /**
hgs
parents:
diff changeset
    63
     * Send message.
hgs
parents:
diff changeset
    64
     * @param phoneNumber phone number.
hgs
parents:
diff changeset
    65
     * @param alias alias.
hgs
parents:
diff changeset
    66
     * @param bodyText body text.
hgs
parents:
diff changeset
    67
     */
hgs
parents:
diff changeset
    68
    void send(const QString phoneNumber, 
hgs
parents:
diff changeset
    69
              const QString alias, 
hgs
parents:
diff changeset
    70
              const QString bodyText);
hgs
parents:
diff changeset
    71
              
hgs
parents:
diff changeset
    72
    /**
hgs
parents:
diff changeset
    73
     * Send message.
hgs
parents:
diff changeset
    74
     * @param addressList list of phone numbers and displaynames. 
hgs
parents:
diff changeset
    75
     * key is the phone number and value is the display name.
hgs
parents:
diff changeset
    76
     * @param bodyText body text.
hgs
parents:
diff changeset
    77
     */
hgs
parents:
diff changeset
    78
    void send(const QVariantMap addressList, 
hgs
parents:
diff changeset
    79
              const QString bodyText = QString());
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    /**
hgs
parents:
diff changeset
    82
     * Send message.
hgs
parents:
diff changeset
    83
     * @param data data to be sent.
hgs
parents:
diff changeset
    84
     */
hgs
parents:
diff changeset
    85
    void send(QVariant data);
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
    /**
hgs
parents:
diff changeset
    88
     * Opens the viewer to view the message.
hgs
parents:
diff changeset
    89
     * @param msgId message id of the message.
hgs
parents:
diff changeset
    90
     */
hgs
parents:
diff changeset
    91
    void view(int msgId);
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
private:
hgs
parents:
diff changeset
    94
    /*
hgs
parents:
diff changeset
    95
     * Switch to unieditor.
hgs
parents:
diff changeset
    96
     * @param editorData editor data.
hgs
parents:
diff changeset
    97
     */
hgs
parents:
diff changeset
    98
    void switchToUniEditor(const QVariantList& editorData);
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
    /*
hgs
parents:
diff changeset
   101
     * Switch to settings view.
hgs
parents:
diff changeset
   102
     */
hgs
parents:
diff changeset
   103
    void switchToMsgSettings(const QVariantList& data);
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
    /**
hgs
parents:
diff changeset
   106
     * Handle sms and mms messge
hgs
parents:
diff changeset
   107
     * @param msgId message id
hgs
parents:
diff changeset
   108
     */
38
4e4b6adb1024 201025_01
hgs
parents: 37
diff changeset
   109
    void handleSmsMmsMsg(int msgId,int msgType);
37
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    /**
hgs
parents:
diff changeset
   112
     * Handle ringtone message
hgs
parents:
diff changeset
   113
     * @param msgId message id
hgs
parents:
diff changeset
   114
     */
hgs
parents:
diff changeset
   115
    void handleRingtoneMsg(int msgId);
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    /**
hgs
parents:
diff changeset
   118
     * Handle provisioning message
hgs
parents:
diff changeset
   119
     * @param msgId message id
hgs
parents:
diff changeset
   120
     */
hgs
parents:
diff changeset
   121
    void handleProvisoningMsg(int msgId);
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
    /**
hgs
parents:
diff changeset
   124
     * Handle bluetooth message
hgs
parents:
diff changeset
   125
     * @param msgId message id
hgs
parents:
diff changeset
   126
     */
hgs
parents:
diff changeset
   127
    void handleBTMessage(int msgId);
hgs
parents:
diff changeset
   128
    
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   129
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   130
     * Start a custom effect animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   131
     * e.g. editor's send effect
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   132
     * @param effectEvent, effect type for animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   133
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   134
    void startAnimation(QString effectEvent);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   135
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   136
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   137
     * Reset a custom effect animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   138
     * e.g. editor's send effect
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   139
     * @param effectEvent, animation effect type which needs to be reset
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   140
     * @param item, QGraphicsItem on which the effect was run
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   141
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   142
    void resetAnimation(QString effectEvent, QGraphicsItem* item);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   143
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   144
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   145
     * Grab screenshot for animation purpose
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   146
     * e.g. editor's send effect animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   147
     * @return QGraphicsPixmapItem, item on which animation will run
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   148
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   149
    QGraphicsPixmapItem *screenShot();
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   150
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   151
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   152
     * find and return animation file for an effect
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   153
     * @param effectEvent, effect for which file definition needs to be found
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   154
     * @return QString, animation definition file path
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   155
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   156
    QString getAnimationFile(QString effectEvent);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   157
    
37
hgs
parents:
diff changeset
   158
private slots:
hgs
parents:
diff changeset
   159
    /**
hgs
parents:
diff changeset
   160
     * This slot is called on mainwindows back action.
hgs
parents:
diff changeset
   161
     */
hgs
parents:
diff changeset
   162
    void onBackAction();
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
    /**
hgs
parents:
diff changeset
   165
     * This slot is called when switchView signal is emitted from a view.
hgs
parents:
diff changeset
   166
     * @param data data required to switch the views.
hgs
parents:
diff changeset
   167
     */
hgs
parents:
diff changeset
   168
    void switchView(const QVariantList& data);
hgs
parents:
diff changeset
   169
    
hgs
parents:
diff changeset
   170
	/**
hgs
parents:
diff changeset
   171
     * This slot is called delete message dialog launched.
hgs
parents:
diff changeset
   172
     * @param action selected action (yes or no).
hgs
parents:
diff changeset
   173
     */
hgs
parents:
diff changeset
   174
    void onDialogDeleteMsg(HbAction* action);
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    /**
hgs
parents:
diff changeset
   177
     * This slot is called save tone dialog launched.
hgs
parents:
diff changeset
   178
     * @param action selected action (yes or no)
hgs
parents:
diff changeset
   179
     */
hgs
parents:
diff changeset
   180
    void onDialogSaveTone(HbAction* action);
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   181
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   182
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   183
     * Handle a custom effect animation complete signal
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   184
     * e.g. editor's send effect complete
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   185
     * @param status, status information of the effect that has finished
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   186
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   187
    void onAnimationComplete(const HbEffect::EffectStatus &status);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   188
    
37
hgs
parents:
diff changeset
   189
private:
hgs
parents:
diff changeset
   190
    /**
hgs
parents:
diff changeset
   191
     * Main window pointer. 
hgs
parents:
diff changeset
   192
     * Not owned.
hgs
parents:
diff changeset
   193
     */
hgs
parents:
diff changeset
   194
    HbMainWindow* mMainWindow;
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
    /**
hgs
parents:
diff changeset
   197
     * Unified editor. 
hgs
parents:
diff changeset
   198
     * Owned.
hgs
parents:
diff changeset
   199
     */
hgs
parents:
diff changeset
   200
    MsgUnifiedEditorView* mUniEditor;
hgs
parents:
diff changeset
   201
    
hgs
parents:
diff changeset
   202
    /**
hgs
parents:
diff changeset
   203
     * Unified viewer. 
hgs
parents:
diff changeset
   204
     * Owned.
hgs
parents:
diff changeset
   205
     */
hgs
parents:
diff changeset
   206
    UnifiedViewer* mUniViewer;
hgs
parents:
diff changeset
   207
    
hgs
parents:
diff changeset
   208
    /**
hgs
parents:
diff changeset
   209
     * Settings view. 
hgs
parents:
diff changeset
   210
     * Owned.
hgs
parents:
diff changeset
   211
     */
hgs
parents:
diff changeset
   212
    MsgSettingsView* mSettingsView;
hgs
parents:
diff changeset
   213
    
hgs
parents:
diff changeset
   214
    /**
hgs
parents:
diff changeset
   215
     * Back action 
hgs
parents:
diff changeset
   216
     * Owned.
hgs
parents:
diff changeset
   217
     */
hgs
parents:
diff changeset
   218
    HbAction* mBackAction;
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
    /**
hgs
parents:
diff changeset
   221
     * Store handler.
hgs
parents:
diff changeset
   222
     * Not Owned.
hgs
parents:
diff changeset
   223
     */
hgs
parents:
diff changeset
   224
    MsgStoreHandler* mStoreHandler;
hgs
parents:
diff changeset
   225
    
hgs
parents:
diff changeset
   226
    /**
hgs
parents:
diff changeset
   227
     * Current view value.
hgs
parents:
diff changeset
   228
     */
hgs
parents:
diff changeset
   229
    int mCurrentView;
hgs
parents:
diff changeset
   230
    
hgs
parents:
diff changeset
   231
	/**
hgs
parents:
diff changeset
   232
	 * message Id
hgs
parents:
diff changeset
   233
	 */
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   234
    int mMessageId;    
37
hgs
parents:
diff changeset
   235
};
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
#endif /* MSGSERVICEVIEWMANAGER_H_ */