messagingapp/msgservices/msgserviceapp/inc/msgserviceviewmanager.h
author hgs
Tue, 05 Oct 2010 13:58:47 +0530
changeset 73 ecf6a73a9186
parent 67 fc91263aee62
permissions -rw-r--r--
201039_03
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
	
37
hgs
parents:
diff changeset
    93
    /**
hgs
parents:
diff changeset
    94
     * Opens the viewer to view the message.
hgs
parents:
diff changeset
    95
     * @param msgId message id of the message.
hgs
parents:
diff changeset
    96
     */
hgs
parents:
diff changeset
    97
    void view(int msgId);
hgs
parents:
diff changeset
    98
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
    99
    /**
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   100
     * Handles the HW key events.
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   101
     * @param key key type.
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   102
     * @return true if key event handled else false.
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   103
     */
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   104
    bool handleKeyEvent(int key);
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   105
    
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   106
    /**
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   107
     * Save editor contents to drafts
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   108
     */
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   109
    void saveContentToDraft();
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   110
37
hgs
parents:
diff changeset
   111
private:
hgs
parents:
diff changeset
   112
    /*
hgs
parents:
diff changeset
   113
     * Switch to unieditor.
hgs
parents:
diff changeset
   114
     * @param editorData editor data.
hgs
parents:
diff changeset
   115
     */
hgs
parents:
diff changeset
   116
    void switchToUniEditor(const QVariantList& editorData);
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
    /*
hgs
parents:
diff changeset
   119
     * Switch to settings view.
hgs
parents:
diff changeset
   120
     */
hgs
parents:
diff changeset
   121
    void switchToMsgSettings(const QVariantList& data);
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
    /**
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   124
     * Show information popup dialog
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   125
     * @param dispText, text to be displayed
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   126
     */
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   127
    void showPopup(const QString& dispText);
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   128
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   129
    /**
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   130
     * Handle Draft messages
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   131
     * @param msgId, message id
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   132
     * @param msgType, type of message e.g. sms or mms etc
37
hgs
parents:
diff changeset
   133
     */
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   134
    void handleDraftMsg(int msgId, int msgType);
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   135
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   136
    /**
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   137
     * Handle Business Card messages (for view)
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   138
     * @param msgId, message id
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   139
     */
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   140
    void handleVCardMsg(int msgId);
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   141
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   142
    /**
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   143
     * Handle sms and mms message
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   144
     * @param msgId, message id
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   145
     */
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   146
    void handleSmsMmsMsg(int msgId);
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   147
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   148
    /**
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   149
     * Handle MMS notification message
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   150
     * @param msgId, message id
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   151
     */
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   152
    void handleMmsNotification(int msgId);
37
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
    /**
hgs
parents:
diff changeset
   155
     * Handle ringtone message
hgs
parents:
diff changeset
   156
     * @param msgId message id
hgs
parents:
diff changeset
   157
     */
hgs
parents:
diff changeset
   158
    void handleRingtoneMsg(int msgId);
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
    /**
hgs
parents:
diff changeset
   161
     * Handle provisioning message
hgs
parents:
diff changeset
   162
     * @param msgId message id
hgs
parents:
diff changeset
   163
     */
hgs
parents:
diff changeset
   164
    void handleProvisoningMsg(int msgId);
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
    /**
hgs
parents:
diff changeset
   167
     * Handle bluetooth message
hgs
parents:
diff changeset
   168
     * @param msgId message id
hgs
parents:
diff changeset
   169
     */
hgs
parents:
diff changeset
   170
    void handleBTMessage(int msgId);
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   171
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   172
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   173
     * Start a custom effect animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   174
     * e.g. editor's send effect
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   175
     * @param effectEvent, effect type for animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   176
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   177
    void startAnimation(QString effectEvent);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   178
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   179
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   180
     * Reset a custom effect animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   181
     * e.g. editor's send effect
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   182
     * @param effectEvent, animation effect type which needs to be reset
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   183
     * @param item, QGraphicsItem on which the effect was run
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   184
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   185
    void resetAnimation(QString effectEvent, QGraphicsItem* item);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   186
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   187
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   188
     * Grab screenshot for animation purpose
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   189
     * e.g. editor's send effect animation
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   190
     * @return QGraphicsPixmapItem, item on which animation will run
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   191
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   192
    QGraphicsPixmapItem *screenShot();
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   193
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   194
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   195
     * find and return animation file for an effect
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   196
     * @param effectEvent, effect for which file definition needs to be found
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   197
     * @return QString, animation definition file path
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   198
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   199
    QString getAnimationFile(QString effectEvent);
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   200
37
hgs
parents:
diff changeset
   201
private slots:
hgs
parents:
diff changeset
   202
    /**
hgs
parents:
diff changeset
   203
     * This slot is called on mainwindows back action.
hgs
parents:
diff changeset
   204
     */
hgs
parents:
diff changeset
   205
    void onBackAction();
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
    /**
hgs
parents:
diff changeset
   208
     * This slot is called when switchView signal is emitted from a view.
hgs
parents:
diff changeset
   209
     * @param data data required to switch the views.
hgs
parents:
diff changeset
   210
     */
hgs
parents:
diff changeset
   211
    void switchView(const QVariantList& data);
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
    /**
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   214
     * This slot sets the current view on view-ready signal of mainwindow.
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   215
     * This is needed to show the default transitions correctly.
37
hgs
parents:
diff changeset
   216
     */
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   217
    void showOnViewReady();
51
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   218
    
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   219
    /**
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   220
     * Handle a custom effect animation complete signal
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   221
     * e.g. editor's send effect complete
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   222
     * @param status, status information of the effect that has finished
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   223
     */
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   224
    void onAnimationComplete(const HbEffect::EffectStatus &status);
3507212d340e 201031_02
hgs
parents: 38
diff changeset
   225
    
37
hgs
parents:
diff changeset
   226
private:
hgs
parents:
diff changeset
   227
    /**
hgs
parents:
diff changeset
   228
     * Main window pointer. 
hgs
parents:
diff changeset
   229
     * Not owned.
hgs
parents:
diff changeset
   230
     */
hgs
parents:
diff changeset
   231
    HbMainWindow* mMainWindow;
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
    /**
hgs
parents:
diff changeset
   234
     * Unified editor. 
hgs
parents:
diff changeset
   235
     * Owned.
hgs
parents:
diff changeset
   236
     */
hgs
parents:
diff changeset
   237
    MsgUnifiedEditorView* mUniEditor;
hgs
parents:
diff changeset
   238
    
hgs
parents:
diff changeset
   239
    /**
hgs
parents:
diff changeset
   240
     * Unified viewer. 
hgs
parents:
diff changeset
   241
     * Owned.
hgs
parents:
diff changeset
   242
     */
hgs
parents:
diff changeset
   243
    UnifiedViewer* mUniViewer;
hgs
parents:
diff changeset
   244
    
hgs
parents:
diff changeset
   245
    /**
hgs
parents:
diff changeset
   246
     * Settings view. 
hgs
parents:
diff changeset
   247
     * Owned.
hgs
parents:
diff changeset
   248
     */
hgs
parents:
diff changeset
   249
    MsgSettingsView* mSettingsView;
hgs
parents:
diff changeset
   250
    
hgs
parents:
diff changeset
   251
    /**
hgs
parents:
diff changeset
   252
     * Back action 
hgs
parents:
diff changeset
   253
     * Owned.
hgs
parents:
diff changeset
   254
     */
hgs
parents:
diff changeset
   255
    HbAction* mBackAction;
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
    /**
hgs
parents:
diff changeset
   258
     * Store handler.
hgs
parents:
diff changeset
   259
     * Not Owned.
hgs
parents:
diff changeset
   260
     */
hgs
parents:
diff changeset
   261
    MsgStoreHandler* mStoreHandler;
hgs
parents:
diff changeset
   262
    
hgs
parents:
diff changeset
   263
    /**
hgs
parents:
diff changeset
   264
     * Current view value.
hgs
parents:
diff changeset
   265
     */
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   266
    int mCurrentView;    
37
hgs
parents:
diff changeset
   267
};
hgs
parents:
diff changeset
   268
hgs
parents:
diff changeset
   269
#endif /* MSGSERVICEVIEWMANAGER_H_ */