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