messagingapp/msgui/unifiededitor/src/msgunieditorview.cpp
author hgs
Tue, 19 Oct 2010 11:30:16 +0530
changeset 76 60a8a215b0ec
parent 73 ecf6a73a9186
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
// SYSTEM INCLUDES
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    19
#include <e32base.h>
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <HbMenu>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <HbAction>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <QGraphicsLinearLayout>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <QDateTime>
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <QDir>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    25
#include <QBuffer>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    26
#include <QFile>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    27
#include <QFileInfo>
76
hgs
parents: 73
diff changeset
    28
#include <QApplication>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    29
#include <xqconversions.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    30
#include <HbNotificationDialog>
48
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    31
#include <HbDeviceNotificationDialog>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    32
#include <HbMessageBox>
37
hgs
parents: 25
diff changeset
    33
#include <HbMainWindow>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    34
#include <xqaiwrequest.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    35
#include <xqappmgr.h>
37
hgs
parents: 25
diff changeset
    36
#include <HbStyleLoader>
76
hgs
parents: 73
diff changeset
    37
#include<HbInputMethod>
hgs
parents: 73
diff changeset
    38
#include <QTimer>
hgs
parents: 73
diff changeset
    39
#include<QInputContext>
hgs
parents: 73
diff changeset
    40
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    41
// QT Mobility for fetching business card
37
hgs
parents: 25
diff changeset
    42
#include <qmobilityglobal.h>
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    43
#include <qversitwriter.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    44
#include <qversitdocument.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    45
#include <qcontact.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    46
#include <qcontactmanager.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    47
#include <qversitcontactexporter.h>
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    48
#include <cntservicescontact.h>
38
4e4b6adb1024 201025_01
hgs
parents: 37
diff changeset
    49
#include <commonphoneparser.h>      // Common phone number validity checker
37
hgs
parents: 25
diff changeset
    50
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
// USER INCLUDES
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
#include "debugtraces.h"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
#include "msgunieditorview.h"
37
hgs
parents: 25
diff changeset
    54
#include "msgunieditormonitor.h"
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    55
#include "msgsendutil.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
#include "convergedmessageaddress.h"
37
hgs
parents: 25
diff changeset
    57
#include "UniEditorGenUtils.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
#include "unieditorpluginloader.h"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
#include "unieditorplugininterface.h"
37
hgs
parents: 25
diff changeset
    60
#include "msgsettingsview.h"
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
    61
#include "msgcontacthandler.h"
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
    62
#include "msgaudiofetcherdialog.h"
76
hgs
parents: 73
diff changeset
    63
#include "msgunieditorscrollarea.h"
hgs
parents: 73
diff changeset
    64
#include "msgunieditorbodyeditor.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
37
hgs
parents: 25
diff changeset
    66
QTM_USE_NAMESPACE
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
// Constants
76
hgs
parents: 73
diff changeset
    68
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    69
// temporary folder for unieditor
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    70
const QString UNIFIED_EDITOR_TEMP_FOLDER("unifiededitor");
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
    71
// invalid chars in vcard
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
    72
const QString INVALID_FILENAME_CHARS("[?*<>/\"|\\:]");
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
    73
// replacement char for invalid char
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
    74
const QChar REPLACE_CHAR('_');
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
const int INVALID_MSGID = -1;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    77
// vcard file extn.
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    78
const QString FILE_EXTN(".vcf");
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    79
// Max vcards inside a msg. Using a very large number.
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    80
// TODO: how we can avoid this?
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    81
const int MAX_VCARDS(1000);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
// LOCALIZED CONSTANTS
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
    84
#define LOC_TITLE hbTrId("txt_messaging_title_messaging")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    85
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    86
//attach options
48
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    87
#define LOC_PHOTO           hbTrId("txt_messaging_opt_attach_sub_photo")
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    88
#define LOC_SOUND           hbTrId("txt_messaging_opt_attach_sub_sound")
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
    89
#define LOC_BUSINESS_CARD   hbTrId("txt_messaging_opt_sub_business_card")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    90
76
hgs
parents: 73
diff changeset
    91
////options menu.
hgs
parents: 73
diff changeset
    92
#define LOC_ATTACH          hbTrId("txt_messaging_opt_attach")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    93
#define LOC_ADD_SUBJECT     hbTrId("txt_messaging_opt_add_subject")
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    94
#define LOC_ADD_CC_BCC      hbTrId("txt_messaging_opt_add_cc_bcc")
37
hgs
parents: 25
diff changeset
    95
#define LOC_PRIORITY        hbTrId("txt_messaging_opt_priority")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    96
#define LOC_DELETE_MESSAGE  hbTrId("txt_messaging_opt_delete_message")
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    97
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    98
//priority sub menu
37
hgs
parents: 25
diff changeset
    99
#define LOC_HIGH hbTrId("txt_messaging_opt_attach_sub_high")
hgs
parents: 25
diff changeset
   100
#define LOC_NORMAL hbTrId("txt_messaging_opt_attach_sub_normal")
hgs
parents: 25
diff changeset
   101
#define LOC_LOW hbTrId("txt_messaging_opt_attach_sub_low")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   102
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   103
//saved to draft note
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   104
#define LOC_SAVED_TO_DRAFTS    hbTrId("txt_messaging_dpopinfo_saved_to_drafts")
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   106
//delete confermation
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   107
#define LOC_NOTE_DELETE_MESSAGE hbTrId("txt_messaging_dialog_delete_message")
37
hgs
parents: 25
diff changeset
   108
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   109
37
hgs
parents: 25
diff changeset
   110
//settings confirmation
hgs
parents: 25
diff changeset
   111
#define LOC_DIALOG_SMS_SETTINGS_INCOMPLETE hbTrId("txt_messaging_dialog_sms_message_centre_does_not_e")
hgs
parents: 25
diff changeset
   112
#define LOC_DIALOG_MMS_SETTINGS_INCOMPLETE hbTrId("txt_messaging_dialog_mms_access_point_not_defined")
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   113
#define LOC_NOTE_FILES_MISSED_DRAFTS hbTrId("txt_messaging_dpopinfo_some_files_in_the_message")
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   114
#define LOC_NOTE_FILES_MISSED_SEND hbTrId("txt_messaging_dialog_unable_to_send_message_some")
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   115
// LOCAL FUNCTIONS
37
hgs
parents: 25
diff changeset
   116
hgs
parents: 25
diff changeset
   117
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   118
// editorTempPath
hgs
parents: 25
diff changeset
   119
// @return fullPath of unified editor's temporary dir
hgs
parents: 25
diff changeset
   120
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   121
QString editorTempPath()
hgs
parents: 25
diff changeset
   122
{
hgs
parents: 25
diff changeset
   123
    QDir tempDir;
hgs
parents: 25
diff changeset
   124
    QString tempPath(QDir::toNativeSeparators(tempDir.tempPath()));
hgs
parents: 25
diff changeset
   125
    tempPath.append(QDir::separator());
hgs
parents: 25
diff changeset
   126
    tempPath.append(UNIFIED_EDITOR_TEMP_FOLDER);
hgs
parents: 25
diff changeset
   127
    tempPath.append(QDir::separator());
hgs
parents: 25
diff changeset
   128
    return tempPath;
hgs
parents: 25
diff changeset
   129
}
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
// MsgUnifiedEditorView::MsgUnifiedEditorView
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
// @see header file
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
//---------------------------------------------------------------
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
MsgUnifiedEditorView::MsgUnifiedEditorView( QGraphicsItem *parent ) :
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   136
    MsgBaseView(parent),
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   137
    mMainLayout(0),
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   138
    mMsgMonitor(0),    
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   139
    mPluginLoader(0),
37
hgs
parents: 25
diff changeset
   140
    mCanSaveToDrafts(true),
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   141
    mVkbHost(NULL),
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   142
	mDialog(NULL),
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   143
    mOriginatingSC(0),
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   144
    mOriginatingSME(0),
76
hgs
parents: 73
diff changeset
   145
    mReplyPath(false),
hgs
parents: 73
diff changeset
   146
    mSubjectAction(0),
hgs
parents: 73
diff changeset
   147
    mCcBccAction(0),
hgs
parents: 73
diff changeset
   148
    mPhotoAction(0),
hgs
parents: 73
diff changeset
   149
    mSoundAction(0),
hgs
parents: 73
diff changeset
   150
    mFocusedWidget(0),
hgs
parents: 73
diff changeset
   151
    mMinHeight(0.0),
hgs
parents: 73
diff changeset
   152
    mMaxHeight(0.0)
hgs
parents: 73
diff changeset
   153
    {    
hgs
parents: 73
diff changeset
   154
    connect(this->mainWindow(),SIGNAL(viewReady()),this,SLOT(doDelayedConstruction()));    
37
hgs
parents: 25
diff changeset
   155
    initView();
76
hgs
parents: 73
diff changeset
   156
    addMenu();    
37
hgs
parents: 25
diff changeset
   157
    }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
37
hgs
parents: 25
diff changeset
   159
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   160
// MsgUnifiedEditorView::~MsgUnifiedEditorView
hgs
parents: 25
diff changeset
   161
// @see header file
hgs
parents: 25
diff changeset
   162
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   163
MsgUnifiedEditorView::~MsgUnifiedEditorView()
hgs
parents: 25
diff changeset
   164
{
hgs
parents: 25
diff changeset
   165
    // clean editor's temporary contents before exiting
hgs
parents: 25
diff changeset
   166
    removeTempFolder();
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   167
    
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   168
    //delete the popup dialog
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   169
    delete mDialog;
37
hgs
parents: 25
diff changeset
   170
}
hgs
parents: 25
diff changeset
   171
hgs
parents: 25
diff changeset
   172
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   173
// MsgUnifiedEditorView::initView
hgs
parents: 25
diff changeset
   174
// @see header file
hgs
parents: 25
diff changeset
   175
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
   176
void MsgUnifiedEditorView::initView()
hgs
parents: 25
diff changeset
   177
{
hgs
parents: 25
diff changeset
   178
    if (!HbStyleLoader::registerFilePath(":/layouts")) {
hgs
parents: 25
diff changeset
   179
        QDEBUG_WRITE("ERROR: MsgUnifiedEditorView -> HbStyleLoader::registerFilePath");
hgs
parents: 25
diff changeset
   180
    }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
76
hgs
parents: 73
diff changeset
   182
    //message monitor.
hgs
parents: 73
diff changeset
   183
    mMsgMonitor = new MsgUnifiedEditorMonitor(this);
hgs
parents: 73
diff changeset
   184
    
hgs
parents: 73
diff changeset
   185
    //Set the invalid msg id
hgs
parents: 73
diff changeset
   186
    mOpenedMessageId.setId(-1);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
76
hgs
parents: 73
diff changeset
   188
    mMainLayout = new QGraphicsLinearLayout(Qt::Vertical, this);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   189
    qreal vTopSpacing = 0.0;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
    qreal vItemSpacing = 0.0;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   191
    style()->parameter("hb-param-margin-gene-top",vTopSpacing);    
76
hgs
parents: 73
diff changeset
   192
    style()->parameter("hb-param-margin-gene-middle-vertical",vItemSpacing);    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   193
    mMainLayout->setContentsMargins(0,vTopSpacing,0,0);
76
hgs
parents: 73
diff changeset
   194
    mMainLayout->setSpacing(vItemSpacing); 
hgs
parents: 73
diff changeset
   195
    
hgs
parents: 73
diff changeset
   196
    mScrollArea = new MsgUnifiedEditorScrollArea(mMsgMonitor,this);
hgs
parents: 73
diff changeset
   197
    mMainLayout->addItem(mScrollArea); 
hgs
parents: 73
diff changeset
   198
    
hgs
parents: 73
diff changeset
   199
    mBodyEditor = new MsgUnifiedEditorBodyEditor(this);
hgs
parents: 73
diff changeset
   200
    
hgs
parents: 73
diff changeset
   201
    connect(mScrollArea,SIGNAL(enableMenuAction(int,bool)),this,SLOT(enableMenuAction(int,bool)));
37
hgs
parents: 25
diff changeset
   202
    
76
hgs
parents: 73
diff changeset
   203
    connect(mBodyEditor, SIGNAL(contentsChanged(const QVariant&)),
hgs
parents: 73
diff changeset
   204
            mMsgMonitor,SLOT(handleContentsChanged(const QVariant&)));
hgs
parents: 73
diff changeset
   205
    
hgs
parents: 73
diff changeset
   206
    connect(mMsgMonitor,SIGNAL(enableSend(bool)),
hgs
parents: 73
diff changeset
   207
            mBodyEditor,SLOT(enableSendButton(bool)));
37
hgs
parents: 25
diff changeset
   208
    
76
hgs
parents: 73
diff changeset
   209
    connect(mBodyEditor,SIGNAL(sendMessage()),this,SLOT(send()));
hgs
parents: 73
diff changeset
   210
    
hgs
parents: 73
diff changeset
   211
    connect(mMsgMonitor,SIGNAL(contentsChanged()),this,SLOT(onContentChanged()));
hgs
parents: 73
diff changeset
   212
    
hgs
parents: 73
diff changeset
   213
    mMainLayout->addItem(mBodyEditor);
37
hgs
parents: 25
diff changeset
   214
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
76
hgs
parents: 73
diff changeset
   217
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   218
// MsgUnifiedEditorView::addMenu
hgs
parents: 73
diff changeset
   219
// @see header file
hgs
parents: 73
diff changeset
   220
//---------------------------------------------------------------
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
void MsgUnifiedEditorView::addMenu()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
    //Create Menu Options
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   224
    HbMenu* mainMenu = this->menu();
76
hgs
parents: 73
diff changeset
   225
    mainMenu->setFocusPolicy(Qt::NoFocus); 
hgs
parents: 73
diff changeset
   226
    
hgs
parents: 73
diff changeset
   227
    //attach sub menu
hgs
parents: 73
diff changeset
   228
    HbMenu* attachMenu = mainMenu->addMenu(LOC_ATTACH);
hgs
parents: 73
diff changeset
   229
    mPhotoAction = attachMenu->addAction(LOC_PHOTO,this,SLOT(fetchImages()));
hgs
parents: 73
diff changeset
   230
    mSoundAction = attachMenu->addAction(LOC_SOUND,this,SLOT(fetchAudio()));
hgs
parents: 73
diff changeset
   231
    attachMenu->addAction(LOC_BUSINESS_CARD,this,SLOT(fetchContacts()));
37
hgs
parents: 25
diff changeset
   232
    
76
hgs
parents: 73
diff changeset
   233
    //subject action
hgs
parents: 73
diff changeset
   234
    mSubjectAction = mainMenu->addAction(LOC_ADD_SUBJECT);
hgs
parents: 73
diff changeset
   235
    //CcBcc action
hgs
parents: 73
diff changeset
   236
    mCcBccAction = mainMenu->addAction(LOC_ADD_CC_BCC);
hgs
parents: 73
diff changeset
   237
    connect(mSubjectAction,SIGNAL(triggered()),this, SLOT(addSubject()));
hgs
parents: 73
diff changeset
   238
    connect(mCcBccAction,SIGNAL(triggered()),this, SLOT(addCcBcc()));
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    
76
hgs
parents: 73
diff changeset
   240
    //priority sub menu
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   241
    HbMenu* prioritySubMenu = mainMenu->addMenu(LOC_PRIORITY);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   243
    HbAction* highPriorityAction = prioritySubMenu->addAction(LOC_HIGH);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
    highPriorityAction->setData(ConvergedMessage::High);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   246
    HbAction* normalPriorityAction = prioritySubMenu->addAction(LOC_NORMAL);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
    normalPriorityAction->setData(ConvergedMessage::Normal);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   249
    HbAction* lowPriorityAction = prioritySubMenu->addAction(LOC_LOW);
76
hgs
parents: 73
diff changeset
   250
    lowPriorityAction->setData(ConvergedMessage::Low);    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
76
hgs
parents: 73
diff changeset
   252
    connect(highPriorityAction, SIGNAL(triggered()), mScrollArea, SLOT(changePriority()));
hgs
parents: 73
diff changeset
   253
    connect(normalPriorityAction, SIGNAL(triggered()), mScrollArea, SLOT(changePriority()));
hgs
parents: 73
diff changeset
   254
    connect(lowPriorityAction, SIGNAL(triggered()), mScrollArea, SLOT(changePriority()));
hgs
parents: 73
diff changeset
   255
    
hgs
parents: 73
diff changeset
   256
	
hgs
parents: 73
diff changeset
   257
    HbAction* deleteMsgAction = mainMenu->addAction(LOC_DELETE_MESSAGE);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
    connect(deleteMsgAction,SIGNAL(triggered()),this, SLOT(deleteMessage()));
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
76
hgs
parents: 73
diff changeset
   262
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   263
// MsgUnifiedEditorView::openDraftsMessage
hgs
parents: 73
diff changeset
   264
// @see header file
hgs
parents: 73
diff changeset
   265
//---------------------------------------------------------------
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   266
void MsgUnifiedEditorView::openDraftsMessage(const QVariantList& editorData)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   268
    // unpack editor's data
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   269
    // first arg is convergedmessage
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   270
    QByteArray dataArray = editorData.at(0).toByteArray();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   271
    ConvergedMessage* messageDetails = new ConvergedMessage;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   272
    QDataStream stream(&dataArray, QIODevice::ReadOnly);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   273
    messageDetails->deserialize(stream);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   274
    ConvergedMessage::MessageType messageType = messageDetails->messageType();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   275
    ConvergedMessageId messageId = *(messageDetails->id());
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   276
    delete messageDetails;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   277
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
    if(!mPluginLoader)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
    {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
        mPluginLoader = new UniEditorPluginLoader(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   282
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
    UniEditorPluginInterface* pluginInterface =
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
        mPluginLoader->getUniEditorPlugin(messageType);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   285
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
    mOpenedMessageId.setId(messageId.getId());
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
    //Fetch the converged message from the msgId
76
hgs
parents: 73
diff changeset
   289
    ConvergedMessage* msg = pluginInterface->convertFrom(messageId.getId());
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   290
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
    if( msg != NULL )
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   292
    {
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   293
        mReplyPath = msg->replyPath();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   294
        if(mReplyPath)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   295
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   296
            mOriginatingSC = msg->originatingSC();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   297
            mOriginatingSME = msg->toAddressList().at(0)->address();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   298
        }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
        //Populate the content inside editor
76
hgs
parents: 73
diff changeset
   300
        populateContentIntoEditor(*msg,true,true); // true as it is  draft message
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   301
        delete msg;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   302
    }
37
hgs
parents: 25
diff changeset
   303
    
hgs
parents: 25
diff changeset
   304
    mCanSaveToDrafts = false;  
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   305
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   306
76
hgs
parents: 73
diff changeset
   307
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   308
// MsgUnifiedEditorView::fetchMessageFromStore
hgs
parents: 73
diff changeset
   309
// @see header file
hgs
parents: 73
diff changeset
   310
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   311
void MsgUnifiedEditorView::fetchMessageFromStore(ConvergedMessageId& messageId,
hgs
parents: 73
diff changeset
   312
    ConvergedMessage::MessageType messageType, int editorOperation)
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   313
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   314
    if(!mPluginLoader)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   315
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   316
        mPluginLoader = new UniEditorPluginLoader(this);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   317
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   318
    UniEditorPluginInterface* pluginInterface = NULL;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   319
    if( messageType == ConvergedMessage::Mms )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   320
    {
76
hgs
parents: 73
diff changeset
   321
        pluginInterface = mPluginLoader->getUniEditorPlugin(ConvergedMessage::Mms);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   322
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   323
    else // For sms,vcard,vcal cases
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   324
    {
76
hgs
parents: 73
diff changeset
   325
        pluginInterface = mPluginLoader->getUniEditorPlugin(ConvergedMessage::Sms);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   326
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   327
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   328
    //Fetch the converged message from the msgId
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   329
    ConvergedMessage* msg;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   330
    msg = pluginInterface->convertFrom(messageId.getId(),
41
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   331
                    (UniEditorPluginInterface::EditorOperation)editorOperation);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   332
    if( msg != NULL )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   333
    {
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   334
        if(editorOperation == UniEditorPluginInterface::Reply)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   335
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   336
            mReplyPath = msg->replyPath();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   337
            if(mReplyPath)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   338
            {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   339
                mOriginatingSC = msg->originatingSC();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   340
                mOriginatingSME = msg->toAddressList().at(0)->address();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   341
            }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   342
        }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   343
        //Populate the content inside editor
76
hgs
parents: 73
diff changeset
   344
        populateContentIntoEditor(*msg,false,true);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
        delete msg;
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
76
hgs
parents: 73
diff changeset
   349
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   350
// MsgUnifiedEditorView::populateContent
hgs
parents: 73
diff changeset
   351
// @see header file
hgs
parents: 73
diff changeset
   352
//---------------------------------------------------------------
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   353
void MsgUnifiedEditorView::populateContent(const QVariantList& editorData)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   355
    // unpack editor's data
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   356
    // first arg is convergedmessage
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   357
    QByteArray dataArray = editorData.at(0).toByteArray();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   358
    ConvergedMessage* messageDetails = new ConvergedMessage;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   359
    QDataStream stream(&dataArray, QIODevice::ReadOnly);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   360
    messageDetails->deserialize(stream);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   362
    // get next arg i.e. editor operation command
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   363
    int editorOp = 0;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   364
    if(editorData.length() > 1)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
    {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   366
        editorOp = editorData.at(1).toInt();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   367
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   368
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   369
    // population logic based on editor Operation command
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   370
    switch(editorOp)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   371
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   372
        case MsgBaseView::ADD_SUBJECT:
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   373
        {
76
hgs
parents: 73
diff changeset
   374
            //setfocus also.
hgs
parents: 73
diff changeset
   375
            addSubject(true);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   376
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   377
        break;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   378
        case MsgBaseView::ADD_VCARD:
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   379
        {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   380
            contactsFetched(editorData.at(2));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   381
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   382
        break;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   383
        case MsgBaseView::FORWARD_MSG:
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
        {
41
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   385
            fetchMessageFromStore(*messageDetails->id(),
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   386
                                   messageDetails->messageType(),
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   387
                                   UniEditorPluginInterface::Forward);
76
hgs
parents: 73
diff changeset
   388
            return;
41
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   389
        }
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   390
        case MsgBaseView::REPLY_MSG:
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   391
        {
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   392
            fetchMessageFromStore(*messageDetails->id(),
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   393
                                   messageDetails->messageType(),
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   394
                                   UniEditorPluginInterface::Reply);
76
hgs
parents: 73
diff changeset
   395
            return;
41
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   396
        }
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   397
        case MsgBaseView::REPLY_ALL_MSG:
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   398
        {
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   399
            fetchMessageFromStore(*messageDetails->id(),
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   400
                                   messageDetails->messageType(),
25fe1fe642e3 201027_02
hgs
parents: 38
diff changeset
   401
                                   UniEditorPluginInterface::ReplyAll);
76
hgs
parents: 73
diff changeset
   402
            return;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   403
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   404
        default:
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   405
        break;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   406
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   407
76
hgs
parents: 73
diff changeset
   408
    populateContentIntoEditor(*messageDetails,false,false);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   409
37
hgs
parents: 25
diff changeset
   410
    delete messageDetails; 
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   411
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   412
76
hgs
parents: 73
diff changeset
   413
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   414
// MsgUnifiedEditorView::populateContentIntoEditor
hgs
parents: 73
diff changeset
   415
// @see header file
hgs
parents: 73
diff changeset
   416
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   417
void MsgUnifiedEditorView::populateContentIntoEditor(const ConvergedMessage& messageDetails,
hgs
parents: 73
diff changeset
   418
                                                     bool draftMessage,
hgs
parents: 73
diff changeset
   419
                                                     bool checkForInline)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
{
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
    // skip first-time MMS type switch note for draft
76
hgs
parents: 73
diff changeset
   422
    if(draftMessage)
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   423
    {
76
hgs
parents: 73
diff changeset
   424
    mMsgMonitor->setSkipNote(true);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   426
76
hgs
parents: 73
diff changeset
   427
    //scrollarea populate contents
hgs
parents: 73
diff changeset
   428
    mScrollArea->populateContent(messageDetails,draftMessage,checkForInline);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
76
hgs
parents: 73
diff changeset
   430
    //body editor populate contents
hgs
parents: 73
diff changeset
   431
    mBodyEditor->populateContent(messageDetails);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   432
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   433
    mMsgMonitor->setSkipNote(false);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
76
hgs
parents: 73
diff changeset
   436
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   437
// MsgUnifiedEditorView::addSubject
hgs
parents: 73
diff changeset
   438
// @see header file
hgs
parents: 73
diff changeset
   439
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   440
void MsgUnifiedEditorView::addSubject(bool needFocus)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
{
76
hgs
parents: 73
diff changeset
   442
    //triggered from menu so need a focus.
37
hgs
parents: 25
diff changeset
   443
    HbAction* subjectAction = qobject_cast<HbAction*>(this->sender());
hgs
parents: 25
diff changeset
   444
    if(subjectAction)
hgs
parents: 25
diff changeset
   445
    {
76
hgs
parents: 73
diff changeset
   446
        needFocus = true;
37
hgs
parents: 25
diff changeset
   447
    }
76
hgs
parents: 73
diff changeset
   448
    mScrollArea->addSubject(needFocus);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
76
hgs
parents: 73
diff changeset
   451
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   452
// MsgUnifiedEditorView::addCcBcc
hgs
parents: 73
diff changeset
   453
// @see header file
hgs
parents: 73
diff changeset
   454
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   455
void MsgUnifiedEditorView::addCcBcc(bool needFocus)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
{
76
hgs
parents: 73
diff changeset
   457
    //set focus to Cc field.
hgs
parents: 73
diff changeset
   458
    HbAction* ccBccAction = qobject_cast<HbAction*>(this->sender());
hgs
parents: 73
diff changeset
   459
    if(ccBccAction)
hgs
parents: 73
diff changeset
   460
    {
hgs
parents: 73
diff changeset
   461
        needFocus = true;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
76
hgs
parents: 73
diff changeset
   464
    mScrollArea->addCcBcc(needFocus);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
    addSubject();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
76
hgs
parents: 73
diff changeset
   468
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   469
// MsgUnifiedEditorView::deleteMessage
hgs
parents: 73
diff changeset
   470
// @see header file
hgs
parents: 73
diff changeset
   471
//---------------------------------------------------------------
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
void MsgUnifiedEditorView::deleteMessage()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
{
37
hgs
parents: 25
diff changeset
   474
    HbMessageBox::question(LOC_NOTE_DELETE_MESSAGE,this,
hgs
parents: 25
diff changeset
   475
                           SLOT(onDialogDeleteMsg(HbAction*)),
hgs
parents: 25
diff changeset
   476
                           HbMessageBox::Delete | HbMessageBox::Cancel);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
76
hgs
parents: 73
diff changeset
   479
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   480
// MsgUnifiedEditorView::addAttachments
hgs
parents: 73
diff changeset
   481
// @see header file
hgs
parents: 73
diff changeset
   482
//---------------------------------------------------------------
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   483
void MsgUnifiedEditorView::addAttachments(QStringList files)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   484
{    
76
hgs
parents: 73
diff changeset
   485
    mScrollArea->addAttachments(files);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   486
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   487
76
hgs
parents: 73
diff changeset
   488
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   489
// MsgUnifiedEditorView::send
hgs
parents: 73
diff changeset
   490
// @see header file
hgs
parents: 73
diff changeset
   491
//---------------------------------------------------------------
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
void MsgUnifiedEditorView::send()
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   494
    activateInputBlocker();
76
hgs
parents: 73
diff changeset
   495
37
hgs
parents: 25
diff changeset
   496
    // first run the address validation tests
76
hgs
parents: 73
diff changeset
   497
    if(!mScrollArea->contactsValid() ||
hgs
parents: 73
diff changeset
   498
       !MsgUnifiedEditorMonitor::readyForSend())
37
hgs
parents: 25
diff changeset
   499
    {
hgs
parents: 25
diff changeset
   500
        deactivateInputBlocker();
hgs
parents: 25
diff changeset
   501
        return;
hgs
parents: 25
diff changeset
   502
    }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    // converged msg for sending
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
    ConvergedMessage msg;
37
hgs
parents: 25
diff changeset
   506
    ConvergedMessage::MessageType messageType = MsgUnifiedEditorMonitor::messageType();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
    msg.setMessageType(messageType);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
37
hgs
parents: 25
diff changeset
   510
    //close vkb before switching view.
hgs
parents: 25
diff changeset
   511
    mVkbHost->closeKeypad(true);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   513
    int result = packMessage(msg);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   514
    if(result == KErrNotFound)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   515
    {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   516
        HbMessageBox::information(LOC_NOTE_FILES_MISSED_SEND, 0, 0, HbMessageBox::Ok);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   517
        deactivateInputBlocker();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   518
        return;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   519
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   520
    // send message
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   521
    MsgSendUtil *sendUtil = new MsgSendUtil(this);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   522
    int sendResult = sendUtil->send(msg);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   523
    delete sendUtil;
76
hgs
parents: 73
diff changeset
   524
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
    // all checks and validations happen before send
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
    if( sendResult == KErrNone)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
    {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   528
        //After sending the new content to drafts chk if the msg
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
        //was originally opened from drafts and delete the opened entry
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
        if( mOpenedMessageId.getId() != -1)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
        {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
            if(!mPluginLoader)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
            {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
                mPluginLoader = new UniEditorPluginLoader(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
            }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
            UniEditorPluginInterface* pluginInterface =
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
                mPluginLoader->getUniEditorPlugin(messageType);
76
hgs
parents: 73
diff changeset
   540
            //delete the entry
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
            pluginInterface->deleteDraftsEntry(mOpenedMessageId.getId());
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
76
hgs
parents: 73
diff changeset
   544
        ConvergedMessageAddressList addrList = msg.toAddressList() +
hgs
parents: 73
diff changeset
   545
                                               msg.ccAddressList() + 
hgs
parents: 73
diff changeset
   546
                                               msg.bccAddressList();
hgs
parents: 73
diff changeset
   547
        
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
        int recepientCount = addrList.count();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
76
hgs
parents: 73
diff changeset
   550
        QVariantList params;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
76
hgs
parents: 73
diff changeset
   552
        if(recepientCount == 1 )
hgs
parents: 73
diff changeset
   553
        {
hgs
parents: 73
diff changeset
   554
            params << MsgBaseView::CV;  // target view
hgs
parents: 73
diff changeset
   555
            params << MsgBaseView::UNIEDITOR; // source view
hgs
parents: 73
diff changeset
   556
            QString receipient = addrList.at(0)->address();
hgs
parents: 73
diff changeset
   557
            params << receipient;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
        }
76
hgs
parents: 73
diff changeset
   559
        else
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
        {
76
hgs
parents: 73
diff changeset
   561
            params << MsgBaseView::CLV;// target view
hgs
parents: 73
diff changeset
   562
            params << MsgBaseView::UNIEDITOR; // source view
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
        }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   564
        deactivateInputBlocker();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   565
        emit switchView(params);
76
hgs
parents: 73
diff changeset
   566
        
hgs
parents: 73
diff changeset
   567
        mCanSaveToDrafts = false;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
    else
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
    {
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   571
        deactivateInputBlocker();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
        if(sendResult == KErrNotFound)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
        {
37
hgs
parents: 25
diff changeset
   574
            if (messageType == ConvergedMessage::Sms)
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   575
            {
37
hgs
parents: 25
diff changeset
   576
                HbMessageBox::question(LOC_DIALOG_SMS_SETTINGS_INCOMPLETE,
76
hgs
parents: 73
diff changeset
   577
                    this,SLOT(onDialogSmsSettings(HbAction*)),
hgs
parents: 73
diff changeset
   578
                    HbMessageBox::Ok | HbMessageBox::Cancel);
37
hgs
parents: 25
diff changeset
   579
            }
hgs
parents: 25
diff changeset
   580
            else
hgs
parents: 25
diff changeset
   581
            {
hgs
parents: 25
diff changeset
   582
                HbMessageBox::question(LOC_DIALOG_MMS_SETTINGS_INCOMPLETE,
76
hgs
parents: 73
diff changeset
   583
                    this,SLOT(onDialogMmsSettings(HbAction*)),                             
hgs
parents: 73
diff changeset
   584
                    HbMessageBox::Ok | HbMessageBox::Cancel);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   585
            }
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   586
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
76
hgs
parents: 73
diff changeset
   590
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   591
// MsgUnifiedEditorView::packMessage
hgs
parents: 73
diff changeset
   592
// @see header file
hgs
parents: 73
diff changeset
   593
//---------------------------------------------------------------
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   594
int MsgUnifiedEditorView::packMessage(ConvergedMessage &msg, bool isSave)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
{
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   596
    // reset reply-path if originating SME constraint is broken
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   597
    if(mReplyPath && isReplyPathBroken())
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   598
    {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   599
        mReplyPath = false;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   600
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   601
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   602
    msg.setReplyPath(mReplyPath);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   603
    if(mReplyPath)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   604
    {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   605
        msg.setOriginatingSC(mOriginatingSC);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   606
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   607
37
hgs
parents: 25
diff changeset
   608
    ConvergedMessage::MessageType messageType = MsgUnifiedEditorMonitor::messageType();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
    msg.setMessageType(messageType);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
    msg.setDirection(ConvergedMessage::Outgoing);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
    QDateTime time = QDateTime::currentDateTime();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
    msg.setTimeStamp(time.toTime_t());
76
hgs
parents: 73
diff changeset
   613
    
hgs
parents: 73
diff changeset
   614
    
hgs
parents: 73
diff changeset
   615
    //pack message data from mscrollarea.
hgs
parents: 73
diff changeset
   616
    int errorCode = mScrollArea->packMessage(msg,isSave);
hgs
parents: 73
diff changeset
   617
    
hgs
parents: 73
diff changeset
   618
    //pack message data from body editor.
hgs
parents: 73
diff changeset
   619
    mBodyEditor->packMessage(msg);
hgs
parents: 73
diff changeset
   620
    
hgs
parents: 73
diff changeset
   621
    return errorCode;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   623
76
hgs
parents: 73
diff changeset
   624
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   625
// MsgUnifiedEditorView::saveContentToDrafts
hgs
parents: 73
diff changeset
   626
// @see header file
hgs
parents: 73
diff changeset
   627
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
   628
int MsgUnifiedEditorView::saveContentToDrafts()
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   629
{
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   630
    if(!mCanSaveToDrafts)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   631
        {
37
hgs
parents: 25
diff changeset
   632
        return mOpenedMessageId.getId(); // return currently opened message id
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   633
        }
37
hgs
parents: 25
diff changeset
   634
    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   635
    activateInputBlocker();
37
hgs
parents: 25
diff changeset
   636
    ConvergedMessage::MessageType messageType = MsgUnifiedEditorMonitor::messageType();
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
    UniEditorPluginInterface* pluginInterface = NULL;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   639
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
    if( mOpenedMessageId.getId() != -1)
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   641
    {
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
        if(!mPluginLoader)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
        {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
            mPluginLoader = new UniEditorPluginLoader(this);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
        }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
76
hgs
parents: 73
diff changeset
   647
        pluginInterface = mPluginLoader->getUniEditorPlugin(messageType);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
    }
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
76
hgs
parents: 73
diff changeset
   650
    // if empty msg, do not save
hgs
parents: 73
diff changeset
   651
    if( MsgUnifiedEditorMonitor::messageSize() <= 0 && 
hgs
parents: 73
diff changeset
   652
        MsgUnifiedEditorMonitor::msgAddressCount() <= 0 )
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
    {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
        if(mOpenedMessageId.getId() != -1)
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
        {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
            pluginInterface->deleteDraftsEntry(mOpenedMessageId.getId());
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
        }
76
hgs
parents: 73
diff changeset
   658
        
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   659
        deactivateInputBlocker();
37
hgs
parents: 25
diff changeset
   660
        return INVALID_MSGID;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
    }
76
hgs
parents: 73
diff changeset
   662
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
    ConvergedMessage msg;
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   664
    int result = packMessage(msg, true);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   665
    if(result == KErrNotFound)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   666
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   667
        HbNotificationDialog::launchDialog(LOC_NOTE_FILES_MISSED_DRAFTS);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   668
        }
76
hgs
parents: 73
diff changeset
   669
    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   670
    // save to drafts
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   671
    MsgSendUtil *sendUtil = new MsgSendUtil(this);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   672
    int msgId = sendUtil->saveToDrafts(msg);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   673
    delete sendUtil;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   674
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   675
    // If saving new msg to draft succeeded and also if the originally
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   676
    // opened msg was from drafts, then delete the original msg entry
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   677
    if(msgId != -1 && mOpenedMessageId.getId() != -1)
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
    {
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
        pluginInterface->deleteDraftsEntry(mOpenedMessageId.getId());
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
        mOpenedMessageId.setId(INVALID_MSGID);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   682
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   683
    deactivateInputBlocker();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   684
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   685
    bool res = ((msgId > INVALID_MSGID)? true : false);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   687
    if(res)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   688
        {
48
4f501b74aeb1 201029_02
hgs
parents: 41
diff changeset
   689
        HbDeviceNotificationDialog::notification("", LOC_SAVED_TO_DRAFTS);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   690
        }
76
hgs
parents: 73
diff changeset
   691
    
hgs
parents: 73
diff changeset
   692
    mCanSaveToDrafts = false;
hgs
parents: 73
diff changeset
   693
    
37
hgs
parents: 25
diff changeset
   694
    return msgId;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
}
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
76
hgs
parents: 73
diff changeset
   697
hgs
parents: 73
diff changeset
   698
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
   699
// MsgUnifiedEditorView::handleKeyEvent
hgs
parents: 73
diff changeset
   700
// @see header file
hgs
parents: 73
diff changeset
   701
//---------------------------------------------------------------
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   702
bool MsgUnifiedEditorView::handleKeyEvent(int key)
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   703
{
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   704
    bool eventHandled = false;
76
hgs
parents: 73
diff changeset
   705
    if (Qt::Key_Yes == key) {
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   706
        eventHandled = true;
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   707
        send();
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   708
    }
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   709
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   710
    return eventHandled;
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   711
}
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   712
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   713
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   714
// MsgUnifiedEditorView::createVCards
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   715
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   716
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   717
int MsgUnifiedEditorView::createVCards(
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   718
        const QVariant& value, QStringList& filelist)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   719
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   720
    // make sure that temp-folder is created for storing vcards
37
hgs
parents: 25
diff changeset
   721
    if(!createTempFolder())
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   722
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   723
        return KErrGeneral;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   724
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   725
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   726
    // extract contact-list
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   727
    QContactManager* contactManager = new QContactManager("symbian");
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   728
    CntServicesContactList cntServicesContacts = qVariantValue<CntServicesContactList>(value);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   729
    int cntCount = cntServicesContacts.count();
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   730
    
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   731
    QCRITICAL_WRITE_FORMAT("servicecontactlist count:",cntCount);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   732
    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   733
    QList<QtMobility::QContact> contactList;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   734
    for(int i = 0; i < cntCount; i++ )
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   735
    {        
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   736
        contactList << contactManager->contact( cntServicesContacts.at(i).mContactId );
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   737
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   738
    delete contactManager;
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   739
   
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   740
    // get list of all versit-documents
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   741
    QVersitDocument::VersitType versitType(QVersitDocument::VCard21Type);
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   742
    
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   743
    QVersitContactExporter exporter;
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   744
    bool ret_val = exporter.exportContacts(contactList, versitType);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   745
    
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   746
    if(ret_val == false)
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   747
        { 
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   748
        QCRITICAL_WRITE("QVersitContactExporter::exportContacts returned false");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   749
        return KErrGeneral;
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   750
        }  
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   751
    
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   752
    // process the documents
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   753
	QList<QtMobility::QVersitDocument> documentList = exporter.documents();
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   754
	
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   755
    // loop though and create a vcard for each contact
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   756
    QVersitWriter* writer = new QVersitWriter();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   757
    for(int i = 0; i < cntCount; i++ )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   758
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   759
        // buffer to hold vcard data fetched from contacts
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   760
        QBuffer contactsbuf;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   761
        contactsbuf.open(QBuffer::ReadWrite);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   762
        writer->setDevice( &contactsbuf );
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   763
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   764
        //write document data to buffer
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   765
        QList<QtMobility::QVersitDocument> currDoc;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   766
        currDoc << documentList.at(i);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   767
        writer->startWriting(currDoc);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   768
        if(writer->waitForFinished())
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   769
        {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   770
            // generate file name
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   771
            QString displayLabel = contactList.at(i).displayLabel();
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   772
            displayLabel.replace(QRegExp(INVALID_FILENAME_CHARS), REPLACE_CHAR);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   773
            QString filepath = generateFileName(displayLabel);
67
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   774
            
fc91263aee62 201037_04
hgs
parents: 62
diff changeset
   775
            // create file
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   776
            QFile file(filepath);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   777
            if(file.open(QIODevice::WriteOnly))
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   778
            {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   779
                // trap ignore so that, incase of multiselection, other vcards are still created
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   780
                QByteArray bufArr;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   781
                TRAP_IGNORE(
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   782
                        HBufC8* contactBuf8 = XQConversions::qStringToS60Desc8(contactsbuf.data());
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   783
                        if(contactBuf8)
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   784
                            {
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   785
                            CleanupStack::PushL(contactBuf8);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   786
                            CBufBase* contactbufbase = CBufFlat::NewL(contactsbuf.size());
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   787
                            CleanupStack::PushL(contactbufbase);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   788
                            
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   789
                            contactbufbase->InsertL( contactbufbase->Size(), *contactBuf8);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   790
                            
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   791
                            TPtr8 ptrbuf(contactbufbase->Ptr(0));
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   792
                            bufArr = XQConversions::s60Desc8ToQByteArray(ptrbuf);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   793
                            
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   794
                            CleanupStack::PopAndDestroy(contactbufbase);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   795
                            CleanupStack::PopAndDestroy(contactBuf8);
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   796
                            
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   797
                            // write to file
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   798
                            file.write(bufArr);                                            
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   799
                            filelist << filepath;
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   800
                            }
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   801
                ); // TRAP END
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   802
                
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   803
                //close file
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   804
                file.close();                
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   805
            }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   806
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   807
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   808
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   809
    // cleanup & return
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   810
    delete writer;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   811
    return KErrNone;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   812
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   813
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   814
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   815
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   816
// MsgUnifiedEditorView::generateFileName
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   817
// @param suggestedName suggested name of the file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   818
// @return fullPath of the generated filename
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   819
// @algo For multiselected 'Unnamed' contacts, the filename should
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   820
// be synthesized as unnamed.vcf, unnamed1.vcf, unnamed2.vcf etc.
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   821
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   822
QString MsgUnifiedEditorView::generateFileName(QString& suggestedName)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   823
{
37
hgs
parents: 25
diff changeset
   824
    QDir editorTempDir;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   825
    editorTempDir.cd(editorTempPath());
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   826
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   827
    for(int i=0; i<MAX_VCARDS; i++)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   828
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   829
        QString searchFileName = suggestedName;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   830
        if(i>0)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   831
        {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   832
            searchFileName.append(QString::number(i));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   833
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   834
        searchFileName.append(FILE_EXTN);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   835
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   836
        // check if filename is already used by an attachment in container
76
hgs
parents: 73
diff changeset
   837
        if(!mScrollArea->fileNameInUse(searchFileName))
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   838
        {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   839
            if(i>0)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   840
            {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   841
                suggestedName.append(QString::number(i));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   842
            }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   843
            break;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   844
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   845
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   846
    QString filepath(editorTempPath());
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   847
    filepath.append(suggestedName);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   848
    filepath.append(FILE_EXTN);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   849
    return filepath;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   850
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   851
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   852
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   853
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   854
// MsgUnifiedEditorView::fetchContacts
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   855
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   856
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   857
void MsgUnifiedEditorView::fetchContacts()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   858
{
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   859
    QString service("phonebookservices");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   860
    QString interface("com.nokia.symbian.IContactsFetch");
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   861
    QString operation("multiFetch(QString,QString)");
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   862
  
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   863
    XQApplicationManager appManager;   
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   864
    XQAiwRequest* request = appManager.create(service, interface, operation, true); //embedded
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   865
	
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   866
    if ( request == NULL )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   867
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   868
        QCRITICAL_WRITE("AIW-ERROR: NULL request");
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   869
        return;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   870
    }
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   871
	
76
hgs
parents: 73
diff changeset
   872
    request->setSynchronous(false); // asynchronous
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   873
	
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   874
    // Result handlers
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   875
    connect (request, SIGNAL(requestOk(const QVariant&)),
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   876
        this, SLOT(contactsFetched(const QVariant&)));
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   877
    connect (request, SIGNAL(requestError(int,const QString&)),
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   878
        this, SLOT(serviceRequestError(int,const QString&)));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   879
62
fdbe8253b596 201035_03
hgs
parents: 56
diff changeset
   880
    QList<QVariant> args;
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   881
    args << LOC_TITLE;
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   882
    args << KCntActionAll;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   883
    args << KCntFilterDisplayAll;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   884
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   885
    request->setArguments(args);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   886
    if(!request->send())
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   887
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   888
        QDEBUG_WRITE_FORMAT("AIW-ERROR: Request Send failed:",request->lastError());
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   889
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   890
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   891
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   892
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   893
// MsgUnifiedEditorView::fetchImages
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   894
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   895
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   896
void MsgUnifiedEditorView::fetchImages()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   897
{
37
hgs
parents: 25
diff changeset
   898
    QString service("photos");
hgs
parents: 25
diff changeset
   899
    QString interface("com.nokia.symbian.IImageFetch");
hgs
parents: 25
diff changeset
   900
    QString operation("fetch()");
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   901
    XQApplicationManager appManager;
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   902
    XQAiwRequest* request = appManager.create(service,interface, operation, true);//embedded
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   903
    if(!request)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   904
    {     
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   905
        QCRITICAL_WRITE("AIW-ERROR: NULL request");
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   906
        return;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   907
    }
76
hgs
parents: 73
diff changeset
   908
    request->setSynchronous(false); // asynchronous
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   909
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   910
    connect(request, SIGNAL(requestOk(const QVariant&)),
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   911
        this, SLOT(imagesFetched(const QVariant&)));
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   912
    connect(request, SIGNAL(requestError(int,const QString&)),
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   913
        this, SLOT(serviceRequestError(int,const QString&)));
37
hgs
parents: 25
diff changeset
   914
    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   915
    // Make the request
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   916
    if (!request->send())
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   917
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   918
        QDEBUG_WRITE_FORMAT("AIW-ERROR: Request Send failed:" , request->lastError());
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   919
    }  
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   920
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   921
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   922
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   923
// MsgUnifiedEditorView::fetchAudio
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   924
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   925
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   926
void MsgUnifiedEditorView::fetchAudio()
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   927
{
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   928
    // Launch Audio fetcher dialog
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   929
    if(!mDialog)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   930
    {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   931
       mDialog = new MsgAudioFetcherDialog();
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   932
       connect(mDialog,
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   933
            SIGNAL(audioSelected(QString&)),
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   934
            this,
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   935
            SLOT(onAudioSelected(QString&)));
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   936
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   937
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   938
    //show the dialog
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
   939
    mDialog->show();    
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   940
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   941
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   942
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   943
// MsgUnifiedEditorView::contactsFetched
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   944
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   945
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   946
void MsgUnifiedEditorView::contactsFetched(const QVariant& value)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   947
{
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   948
    XQAiwRequest* request = qobject_cast<XQAiwRequest*>(this->sender());
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   949
    if(request)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   950
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   951
        delete request;
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   952
    }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   953
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   954
    // create a vcard for each contact fetched and add as attachment
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   955
    QStringList attachmentList;
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   956
    if(createVCards(value, attachmentList) == KErrNone)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   957
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   958
        addAttachments(attachmentList);
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   959
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   960
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   961
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   962
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   963
// MsgUnifiedEditorView::imagesFetched
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   964
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   965
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   966
void MsgUnifiedEditorView::imagesFetched(const QVariant& result )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   967
{
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   968
    XQAiwRequest* request = qobject_cast<XQAiwRequest*>(this->sender());
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   969
    if(request)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   970
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   971
        delete request;        
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   972
    }
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   973
	
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   974
    if(result.canConvert<QStringList>())
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   975
    {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   976
        QStringList fileList = result.value<QStringList>();
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   977
        if ( fileList.size()>0 )
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   978
        {
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   979
            QString filepath(QDir::toNativeSeparators(fileList.at(0)));
76
hgs
parents: 73
diff changeset
   980
            mScrollArea->setImage(filepath);
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   981
        }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   982
    }
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   983
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   984
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   985
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   986
// MsgUnifiedEditorView::serviceRequestError
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   987
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   988
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   989
void MsgUnifiedEditorView::serviceRequestError(int errorCode, const QString& errorMessage)
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   990
{
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   991
    QDEBUG_WRITE_FORMAT(errorMessage,errorCode);
73
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   992
    Q_UNUSED(errorCode)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   993
    Q_UNUSED(errorMessage)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   994
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   995
    XQAiwRequest* request = qobject_cast<XQAiwRequest*>(this->sender());
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   996
    if(request)
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   997
    {
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   998
        delete request;	
ecf6a73a9186 201039_03
hgs
parents: 67
diff changeset
   999
    }
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1000
}
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1001
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1002
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1003
// MsgUnifiedEditorView::activateInputBlocker
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1004
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1005
//--------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1006
void MsgUnifiedEditorView::activateInputBlocker()
37
hgs
parents: 25
diff changeset
  1007
{
hgs
parents: 25
diff changeset
  1008
    mainWindow()->setInteractive(false);
hgs
parents: 25
diff changeset
  1009
}
25
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1010
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1011
//---------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1012
// MsgUnifiedEditorView::deactivateInputBlocker
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1013
// @see header file
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1014
//--------------------------------------------------------------
84d9eb65b26f Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
  1015
void MsgUnifiedEditorView::deactivateInputBlocker()
37
hgs
parents: 25
diff changeset
  1016
{
hgs
parents: 25
diff changeset
  1017
    mainWindow()->setInteractive(true);
hgs
parents: 25
diff changeset
  1018
}
hgs
parents: 25
diff changeset
  1019
hgs
parents: 25
diff changeset
  1020
//---------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1021
// MsgUnifiedEditorView::enableMenuAction
37
hgs
parents: 25
diff changeset
  1022
// @see header file
hgs
parents: 25
diff changeset
  1023
//--------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1024
void MsgUnifiedEditorView::enableMenuAction(int action, bool enable)
37
hgs
parents: 25
diff changeset
  1025
{
76
hgs
parents: 73
diff changeset
  1026
    switch(action)
hgs
parents: 73
diff changeset
  1027
    {
hgs
parents: 73
diff changeset
  1028
    case SOUND:
hgs
parents: 73
diff changeset
  1029
    {
hgs
parents: 73
diff changeset
  1030
        if(mSoundAction)
hgs
parents: 73
diff changeset
  1031
        {
hgs
parents: 73
diff changeset
  1032
            mSoundAction->setEnabled(enable);
hgs
parents: 73
diff changeset
  1033
        }
hgs
parents: 73
diff changeset
  1034
        break;
hgs
parents: 73
diff changeset
  1035
    }
hgs
parents: 73
diff changeset
  1036
    case PHOTO:
hgs
parents: 73
diff changeset
  1037
    {
hgs
parents: 73
diff changeset
  1038
        if(mPhotoAction)
hgs
parents: 73
diff changeset
  1039
        {
hgs
parents: 73
diff changeset
  1040
            mPhotoAction->setEnabled(enable);
hgs
parents: 73
diff changeset
  1041
        }
hgs
parents: 73
diff changeset
  1042
        break;
hgs
parents: 73
diff changeset
  1043
    }  
hgs
parents: 73
diff changeset
  1044
    case SUBJECT: //subject action has to be removed
hgs
parents: 73
diff changeset
  1045
    {
hgs
parents: 73
diff changeset
  1046
        // remove mainmenu's "Add Subject" action
hgs
parents: 73
diff changeset
  1047
        if(mSubjectAction)
hgs
parents: 73
diff changeset
  1048
        {
hgs
parents: 73
diff changeset
  1049
            this->menu()->removeAction(mSubjectAction);
hgs
parents: 73
diff changeset
  1050
            mSubjectAction->setParent(NULL);
hgs
parents: 73
diff changeset
  1051
            delete mSubjectAction;
hgs
parents: 73
diff changeset
  1052
            mSubjectAction = NULL;
hgs
parents: 73
diff changeset
  1053
        }
hgs
parents: 73
diff changeset
  1054
        break;
hgs
parents: 73
diff changeset
  1055
    }
hgs
parents: 73
diff changeset
  1056
    case CCBCC: //CcBcc action has to be removed
hgs
parents: 73
diff changeset
  1057
    {
hgs
parents: 73
diff changeset
  1058
        // remove mainmenu's "Add Cc/Bcc" & "Add Subject" actions
hgs
parents: 73
diff changeset
  1059
        if(mCcBccAction)
hgs
parents: 73
diff changeset
  1060
        {
hgs
parents: 73
diff changeset
  1061
            this->menu()->removeAction(mCcBccAction);
hgs
parents: 73
diff changeset
  1062
            mCcBccAction->setParent(NULL);
hgs
parents: 73
diff changeset
  1063
            delete mCcBccAction;
hgs
parents: 73
diff changeset
  1064
            mCcBccAction = NULL;
hgs
parents: 73
diff changeset
  1065
        }
hgs
parents: 73
diff changeset
  1066
        break;
hgs
parents: 73
diff changeset
  1067
    }
hgs
parents: 73
diff changeset
  1068
    
hgs
parents: 73
diff changeset
  1069
    default:
hgs
parents: 73
diff changeset
  1070
        break;
hgs
parents: 73
diff changeset
  1071
    }
37
hgs
parents: 25
diff changeset
  1072
}
hgs
parents: 25
diff changeset
  1073
hgs
parents: 25
diff changeset
  1074
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1075
// MsgUnifiedEditorView::vkbOpened
hgs
parents: 25
diff changeset
  1076
// @see header file
hgs
parents: 25
diff changeset
  1077
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1078
void MsgUnifiedEditorView::vkbOpened()
hgs
parents: 25
diff changeset
  1079
{
hgs
parents: 25
diff changeset
  1080
    hideChrome(true); 
hgs
parents: 25
diff changeset
  1081
    
76
hgs
parents: 73
diff changeset
  1082
    //get focussed object.
hgs
parents: 73
diff changeset
  1083
    HbInputMethod* im =   HbInputMethod::activeInputMethod(); 
hgs
parents: 73
diff changeset
  1084
    HbInputFocusObject* focusObj =   im->focusObject();
hgs
parents: 73
diff changeset
  1085
    if(focusObj)
hgs
parents: 73
diff changeset
  1086
    {
hgs
parents: 73
diff changeset
  1087
        QObject* obj =   focusObj->object(); 
hgs
parents: 73
diff changeset
  1088
        mFocusedWidget = qobject_cast<QGraphicsWidget*>(obj); 
hgs
parents: 73
diff changeset
  1089
        HbAbstractEdit* editor = qobject_cast<HbAbstractEdit*>(obj);
hgs
parents: 73
diff changeset
  1090
        if(editor)
hgs
parents: 73
diff changeset
  1091
        {
hgs
parents: 73
diff changeset
  1092
            connect(editor,SIGNAL(contentsChanged()),this,SLOT(ensureVisibility()));
hgs
parents: 73
diff changeset
  1093
        }
hgs
parents: 73
diff changeset
  1094
    }
hgs
parents: 73
diff changeset
  1095
    
hgs
parents: 73
diff changeset
  1096
    QRectF appRect = mVkbHost->applicationArea();
hgs
parents: 73
diff changeset
  1097
    
hgs
parents: 73
diff changeset
  1098
    if(this->mainWindow()->orientation() == Qt::Vertical)
hgs
parents: 73
diff changeset
  1099
    {
hgs
parents: 73
diff changeset
  1100
        this->setMaximumHeight(appRect.height());
hgs
parents: 73
diff changeset
  1101
        mScrollArea->resize(-1,-1);
hgs
parents: 73
diff changeset
  1102
    }
hgs
parents: 73
diff changeset
  1103
    else
hgs
parents: 73
diff changeset
  1104
    {
hgs
parents: 73
diff changeset
  1105
        if(mFocusedWidget)
hgs
parents: 73
diff changeset
  1106
        {
hgs
parents: 73
diff changeset
  1107
            qreal vItemSpacing = 0.0;
hgs
parents: 73
diff changeset
  1108
            style()->parameter("hb-param-margin-gene-middle-vertical",vItemSpacing); 
hgs
parents: 73
diff changeset
  1109
            
hgs
parents: 73
diff changeset
  1110
            mMinHeight = mFocusedWidget->minimumHeight();
hgs
parents: 73
diff changeset
  1111
            mMaxHeight = mFocusedWidget->maximumHeight();
hgs
parents: 73
diff changeset
  1112
            qreal newHeight = appRect.height()-vItemSpacing-1;
hgs
parents: 73
diff changeset
  1113
            mFocusedWidget->setMinimumHeight(newHeight);
hgs
parents: 73
diff changeset
  1114
            mFocusedWidget->setMaximumHeight(newHeight);
hgs
parents: 73
diff changeset
  1115
            mFocusedWidget->resize(mFocusedWidget->rect().width(),newHeight);
hgs
parents: 73
diff changeset
  1116
hgs
parents: 73
diff changeset
  1117
        }
hgs
parents: 73
diff changeset
  1118
    }
hgs
parents: 73
diff changeset
  1119
    
hgs
parents: 73
diff changeset
  1120
    //do layouting after some delay.
hgs
parents: 73
diff changeset
  1121
    QTimer::singleShot(50,this,SLOT(doLayout()));
hgs
parents: 73
diff changeset
  1122
    
37
hgs
parents: 25
diff changeset
  1123
    disconnect(mVkbHost,SIGNAL(keypadOpened()),this,SLOT(vkbOpened()));
76
hgs
parents: 73
diff changeset
  1124
    connect(this->mainWindow(),SIGNAL(aboutToChangeOrientation()),this,SLOT(resetLayout()));
37
hgs
parents: 25
diff changeset
  1125
}
76
hgs
parents: 73
diff changeset
  1126
37
hgs
parents: 25
diff changeset
  1127
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1128
// MsgUnifiedEditorView::vkbClosed
hgs
parents: 25
diff changeset
  1129
// @see header file
hgs
parents: 25
diff changeset
  1130
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1131
void MsgUnifiedEditorView::vkbClosed()
hgs
parents: 25
diff changeset
  1132
{
76
hgs
parents: 73
diff changeset
  1133
    hideChrome(false); 
hgs
parents: 73
diff changeset
  1134
    
hgs
parents: 73
diff changeset
  1135
    resetLayout();
hgs
parents: 73
diff changeset
  1136
   
hgs
parents: 73
diff changeset
  1137
    connect(mVkbHost,SIGNAL(keypadOpened()),this,SLOT(vkbOpened()));
37
hgs
parents: 25
diff changeset
  1138
    
76
hgs
parents: 73
diff changeset
  1139
    disconnect(this->mainWindow(),SIGNAL(aboutToChangeOrientation()),this,SLOT(resetLayout()));    
hgs
parents: 73
diff changeset
  1140
}
hgs
parents: 73
diff changeset
  1141
hgs
parents: 73
diff changeset
  1142
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
  1143
// MsgUnifiedEditorView::doLayout
hgs
parents: 73
diff changeset
  1144
// @see header file
hgs
parents: 73
diff changeset
  1145
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
  1146
void MsgUnifiedEditorView::doLayout()
hgs
parents: 73
diff changeset
  1147
{
hgs
parents: 73
diff changeset
  1148
    if(mFocusedWidget && mVkbHost->keypadStatus() == HbVkbHost::HbVkbStatusOpened)
hgs
parents: 73
diff changeset
  1149
    {
hgs
parents: 73
diff changeset
  1150
        if(this->mainWindow()->orientation() == Qt::Vertical)
hgs
parents: 73
diff changeset
  1151
        {
hgs
parents: 73
diff changeset
  1152
            ensureVisibility();
hgs
parents: 73
diff changeset
  1153
        }
hgs
parents: 73
diff changeset
  1154
        else 
hgs
parents: 73
diff changeset
  1155
        {
hgs
parents: 73
diff changeset
  1156
            qreal vItemSpacing = 0.0;
hgs
parents: 73
diff changeset
  1157
            style()->parameter("hb-param-margin-gene-middle-vertical",vItemSpacing); 
hgs
parents: 73
diff changeset
  1158
            
hgs
parents: 73
diff changeset
  1159
            if(mScrollArea->isAncestorOf(mFocusedWidget))
hgs
parents: 73
diff changeset
  1160
            {
hgs
parents: 73
diff changeset
  1161
                QPointF p = mScrollArea->mapFromScene(mFocusedWidget->scenePos());
hgs
parents: 73
diff changeset
  1162
                mScrollArea->scrollContentsTo(p,0);
hgs
parents: 73
diff changeset
  1163
                mScrollArea->enableScrolling(false);
hgs
parents: 73
diff changeset
  1164
                mScrollArea->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);
hgs
parents: 73
diff changeset
  1165
            }
hgs
parents: 73
diff changeset
  1166
hgs
parents: 73
diff changeset
  1167
            QPointF pp = mapFromScene(mFocusedWidget->scenePos());
hgs
parents: 73
diff changeset
  1168
            qreal delta = pp.y() - vItemSpacing;
hgs
parents: 73
diff changeset
  1169
            this->setTransform(QTransform::fromTranslate(0, -delta), true);
hgs
parents: 73
diff changeset
  1170
        }
hgs
parents: 73
diff changeset
  1171
    }
37
hgs
parents: 25
diff changeset
  1172
}
hgs
parents: 25
diff changeset
  1173
hgs
parents: 25
diff changeset
  1174
//---------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1175
// MsgUnifiedEditorView::resetLayout
hgs
parents: 73
diff changeset
  1176
// @see header file
hgs
parents: 73
diff changeset
  1177
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
  1178
void MsgUnifiedEditorView::resetLayout()
hgs
parents: 73
diff changeset
  1179
{
hgs
parents: 73
diff changeset
  1180
    //disconnect signal from previously focused object.
hgs
parents: 73
diff changeset
  1181
    if(mFocusedWidget)
hgs
parents: 73
diff changeset
  1182
    {
hgs
parents: 73
diff changeset
  1183
        HbAbstractEdit* editor = qobject_cast<HbAbstractEdit*>(mFocusedWidget);
hgs
parents: 73
diff changeset
  1184
        disconnect(editor,SIGNAL(contentsChanged()),this,SLOT(ensureVisibility()));
hgs
parents: 73
diff changeset
  1185
    }
hgs
parents: 73
diff changeset
  1186
hgs
parents: 73
diff changeset
  1187
    if(this->mainWindow()->orientation() == Qt::Vertical)
hgs
parents: 73
diff changeset
  1188
    {
hgs
parents: 73
diff changeset
  1189
        this->setMaximumHeight(-1);
hgs
parents: 73
diff changeset
  1190
        mScrollArea->scrollContentsTo(QPointF(0,0),0);
hgs
parents: 73
diff changeset
  1191
        mScrollArea->resize(-1,-1);
hgs
parents: 73
diff changeset
  1192
    }
hgs
parents: 73
diff changeset
  1193
    else
hgs
parents: 73
diff changeset
  1194
    {
hgs
parents: 73
diff changeset
  1195
        this->resetTransform(); 
hgs
parents: 73
diff changeset
  1196
hgs
parents: 73
diff changeset
  1197
        if(mFocusedWidget)
hgs
parents: 73
diff changeset
  1198
        {
hgs
parents: 73
diff changeset
  1199
            if(mMinHeight >0)
hgs
parents: 73
diff changeset
  1200
            {
hgs
parents: 73
diff changeset
  1201
                mFocusedWidget->setMinimumHeight(mMinHeight);
hgs
parents: 73
diff changeset
  1202
                mMinHeight = 0.0;
hgs
parents: 73
diff changeset
  1203
            }
hgs
parents: 73
diff changeset
  1204
            if(mMaxHeight >0)
hgs
parents: 73
diff changeset
  1205
            {
hgs
parents: 73
diff changeset
  1206
                mFocusedWidget->setMaximumHeight(mMaxHeight);
hgs
parents: 73
diff changeset
  1207
                mMaxHeight = 0.0;
hgs
parents: 73
diff changeset
  1208
            }
hgs
parents: 73
diff changeset
  1209
hgs
parents: 73
diff changeset
  1210
            if(mScrollArea->isAncestorOf(mFocusedWidget))
hgs
parents: 73
diff changeset
  1211
            {
hgs
parents: 73
diff changeset
  1212
                mScrollArea->enableScrolling(true);
hgs
parents: 73
diff changeset
  1213
                mScrollArea->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAutoHide); 
hgs
parents: 73
diff changeset
  1214
                mScrollArea->scrollContentsTo(QPointF(0,0),0);
hgs
parents: 73
diff changeset
  1215
            }
hgs
parents: 73
diff changeset
  1216
hgs
parents: 73
diff changeset
  1217
            mFocusedWidget = NULL;
hgs
parents: 73
diff changeset
  1218
        }
hgs
parents: 73
diff changeset
  1219
hgs
parents: 73
diff changeset
  1220
    }
hgs
parents: 73
diff changeset
  1221
}
hgs
parents: 73
diff changeset
  1222
hgs
parents: 73
diff changeset
  1223
//---------------------------------------------------------------
hgs
parents: 73
diff changeset
  1224
// MsgUnifiedEditorView::ensureVisibility
51
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1225
// @see header file
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1226
//---------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1227
void MsgUnifiedEditorView::ensureVisibility()
hgs
parents: 73
diff changeset
  1228
{
hgs
parents: 73
diff changeset
  1229
    if(mFocusedWidget && mVkbHost->keypadStatus() == HbVkbHost::HbVkbStatusOpened)
hgs
parents: 73
diff changeset
  1230
    {
hgs
parents: 73
diff changeset
  1231
        if(this->mainWindow()->orientation() == Qt::Vertical)
hgs
parents: 73
diff changeset
  1232
        {
hgs
parents: 73
diff changeset
  1233
            if ( mScrollArea->isAncestorOf(mFocusedWidget)) 
hgs
parents: 73
diff changeset
  1234
            {
hgs
parents: 73
diff changeset
  1235
                QRectF scrollRect = mScrollArea->sceneBoundingRect();
hgs
parents: 73
diff changeset
  1236
                QRectF editorRect = mFocusedWidget->sceneBoundingRect();
hgs
parents: 73
diff changeset
  1237
hgs
parents: 73
diff changeset
  1238
                if (!scrollRect.contains(editorRect) ||
hgs
parents: 73
diff changeset
  1239
                    scrollRect.intersects(editorRect))
hgs
parents: 73
diff changeset
  1240
                {
hgs
parents: 73
diff changeset
  1241
hgs
parents: 73
diff changeset
  1242
                    if (editorRect.height() < scrollRect.height()) {
hgs
parents: 73
diff changeset
  1243
                        // Whole editor rect fits into scroll area. Move it there.
hgs
parents: 73
diff changeset
  1244
                        if (editorRect.bottom() > scrollRect.bottom()) {
hgs
parents: 73
diff changeset
  1245
                            // Scroll upwards.                    
hgs
parents: 73
diff changeset
  1246
                            mScrollArea->ensureVisible(mScrollArea->contentWidget()->mapFromScene(editorRect.bottomLeft()));
hgs
parents: 73
diff changeset
  1247
                        } else {
hgs
parents: 73
diff changeset
  1248
                            // Scroll downwards.                        
hgs
parents: 73
diff changeset
  1249
                            mScrollArea->ensureVisible(mScrollArea->contentWidget()->mapFromScene(editorRect.topLeft()));
hgs
parents: 73
diff changeset
  1250
                        }
hgs
parents: 73
diff changeset
  1251
                    } 
hgs
parents: 73
diff changeset
  1252
                }
hgs
parents: 73
diff changeset
  1253
            }
hgs
parents: 73
diff changeset
  1254
        }
hgs
parents: 73
diff changeset
  1255
    }
51
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1256
}
76
hgs
parents: 73
diff changeset
  1257
51
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1258
//---------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1259
// MsgUnifiedEditorView::focusChanged
51
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1260
// @see header file
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1261
//---------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1262
void MsgUnifiedEditorView::focusChanged()
hgs
parents: 73
diff changeset
  1263
{
hgs
parents: 73
diff changeset
  1264
    //disconnect signal from previously focused object.
hgs
parents: 73
diff changeset
  1265
    if(mFocusedWidget)
hgs
parents: 73
diff changeset
  1266
    {
hgs
parents: 73
diff changeset
  1267
        HbAbstractEdit* editor = qobject_cast<HbAbstractEdit*>(mFocusedWidget);
hgs
parents: 73
diff changeset
  1268
        disconnect(editor,SIGNAL(contentsChanged()),this,SLOT(ensureVisibility()));
hgs
parents: 73
diff changeset
  1269
    }
hgs
parents: 73
diff changeset
  1270
    
hgs
parents: 73
diff changeset
  1271
    //connect signal for newly focused object.
hgs
parents: 73
diff changeset
  1272
    HbInputMethod* im =   HbInputMethod::activeInputMethod(); 
hgs
parents: 73
diff changeset
  1273
    HbInputFocusObject* focusObj =   im->focusObject();
hgs
parents: 73
diff changeset
  1274
    if(focusObj)
hgs
parents: 73
diff changeset
  1275
    {
hgs
parents: 73
diff changeset
  1276
        QObject* obj =   focusObj->object(); 
hgs
parents: 73
diff changeset
  1277
        mFocusedWidget = qobject_cast<QGraphicsWidget*>(obj); 
hgs
parents: 73
diff changeset
  1278
        HbAbstractEdit* editor = qobject_cast<HbAbstractEdit*>(obj);
hgs
parents: 73
diff changeset
  1279
        if(editor)
hgs
parents: 73
diff changeset
  1280
        {
hgs
parents: 73
diff changeset
  1281
            connect(editor,SIGNAL(contentsChanged()),this,SLOT(ensureVisibility()));
hgs
parents: 73
diff changeset
  1282
        }
hgs
parents: 73
diff changeset
  1283
    }
51
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1284
}
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1285
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1286
//---------------------------------------------------------------
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1287
// MsgUnifiedEditorView::onAudioSelected
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1288
// @see header file
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1289
//---------------------------------------------------------------
76
hgs
parents: 73
diff changeset
  1290
void MsgUnifiedEditorView::onAudioSelected(QString& filePath)
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1291
{
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1292
    if (!filePath.isEmpty())
76
hgs
parents: 73
diff changeset
  1293
    {
hgs
parents: 73
diff changeset
  1294
        mScrollArea->setAudio(filePath);
hgs
parents: 73
diff changeset
  1295
    }    
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1296
}
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1297
51
3507212d340e 201031_02
hgs
parents: 48
diff changeset
  1298
//---------------------------------------------------------------
37
hgs
parents: 25
diff changeset
  1299
// MsgUnifiedEditorView::hideChrome
hgs
parents: 25
diff changeset
  1300
//
hgs
parents: 25
diff changeset
  1301
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1302
void MsgUnifiedEditorView::hideChrome(bool hide)
hgs
parents: 25
diff changeset
  1303
{
hgs
parents: 25
diff changeset
  1304
    if(hide)
hgs
parents: 25
diff changeset
  1305
    {        
hgs
parents: 25
diff changeset
  1306
        this->setContentFullScreen(true);
hgs
parents: 25
diff changeset
  1307
        this->hideItems(Hb::StatusBarItem | Hb::TitleBarItem);
hgs
parents: 25
diff changeset
  1308
    }
hgs
parents: 25
diff changeset
  1309
    else
hgs
parents: 25
diff changeset
  1310
    {
hgs
parents: 25
diff changeset
  1311
        this->setContentFullScreen(false);
hgs
parents: 25
diff changeset
  1312
        this->showItems(Hb::StatusBarItem | Hb::TitleBarItem);
hgs
parents: 25
diff changeset
  1313
    }
hgs
parents: 25
diff changeset
  1314
}
hgs
parents: 25
diff changeset
  1315
hgs
parents: 25
diff changeset
  1316
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1317
// MsgUnifiedEditorView::doDelayedConstruction
hgs
parents: 25
diff changeset
  1318
//
hgs
parents: 25
diff changeset
  1319
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1320
void MsgUnifiedEditorView::doDelayedConstruction()
hgs
parents: 25
diff changeset
  1321
{
hgs
parents: 25
diff changeset
  1322
    createTempFolder();
hgs
parents: 25
diff changeset
  1323
    
hgs
parents: 25
diff changeset
  1324
    //Create VKB instance and listen to VKB open and close signals.
76
hgs
parents: 73
diff changeset
  1325
    mVkbHost = new MsgUniEditorVkbHost(this);
hgs
parents: 73
diff changeset
  1326
    
hgs
parents: 73
diff changeset
  1327
    connect(mVkbHost, SIGNAL(focusChanged()), this, SLOT(focusChanged()));
37
hgs
parents: 25
diff changeset
  1328
    connect(mVkbHost, SIGNAL(keypadOpened()), this, SLOT(vkbOpened()));
hgs
parents: 25
diff changeset
  1329
    connect(mVkbHost, SIGNAL(keypadClosed()), this, SLOT(vkbClosed()));
hgs
parents: 25
diff changeset
  1330
    
hgs
parents: 25
diff changeset
  1331
    disconnect(this->mainWindow(),SIGNAL(viewReady()),this,SLOT(doDelayedConstruction()));
hgs
parents: 25
diff changeset
  1332
}
hgs
parents: 25
diff changeset
  1333
hgs
parents: 25
diff changeset
  1334
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1335
// MsgUnifiedEditorView::createTempFolder
hgs
parents: 25
diff changeset
  1336
//
hgs
parents: 25
diff changeset
  1337
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1338
bool MsgUnifiedEditorView::createTempFolder()
hgs
parents: 25
diff changeset
  1339
{
hgs
parents: 25
diff changeset
  1340
    // create editor's temp folder
hgs
parents: 25
diff changeset
  1341
    QDir tempDir;
hgs
parents: 25
diff changeset
  1342
    QString tempPath(editorTempPath());
hgs
parents: 25
diff changeset
  1343
    bool result = tempDir.mkpath(tempPath);    
hgs
parents: 25
diff changeset
  1344
    return result;
hgs
parents: 25
diff changeset
  1345
}
hgs
parents: 25
diff changeset
  1346
hgs
parents: 25
diff changeset
  1347
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1348
// MsgUnifiedEditorView::removeTempFolder
hgs
parents: 25
diff changeset
  1349
//
hgs
parents: 25
diff changeset
  1350
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1351
void MsgUnifiedEditorView::removeTempFolder()
hgs
parents: 25
diff changeset
  1352
{
hgs
parents: 25
diff changeset
  1353
    QDir tempDir;
hgs
parents: 25
diff changeset
  1354
    QString tempPath(editorTempPath());
hgs
parents: 25
diff changeset
  1355
    tempDir.cd(tempPath);
hgs
parents: 25
diff changeset
  1356
    QStringList contentList(tempDir.entryList());
hgs
parents: 25
diff changeset
  1357
    
hgs
parents: 25
diff changeset
  1358
    int contentCount = contentList.count();
hgs
parents: 25
diff changeset
  1359
    for(int i=0; i<contentCount; i++)
hgs
parents: 25
diff changeset
  1360
    {
hgs
parents: 25
diff changeset
  1361
        tempDir.remove(contentList.at(i));
hgs
parents: 25
diff changeset
  1362
    }
hgs
parents: 25
diff changeset
  1363
    
hgs
parents: 25
diff changeset
  1364
    tempDir.cdUp();
hgs
parents: 25
diff changeset
  1365
    tempDir.rmdir(UNIFIED_EDITOR_TEMP_FOLDER); 
hgs
parents: 25
diff changeset
  1366
}
hgs
parents: 25
diff changeset
  1367
hgs
parents: 25
diff changeset
  1368
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1369
// MsgUnifiedEditorView::setFocus
hgs
parents: 25
diff changeset
  1370
//
hgs
parents: 25
diff changeset
  1371
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1372
void MsgUnifiedEditorView::setFocus(MsgUnifiedEditorBaseWidget* item)
hgs
parents: 25
diff changeset
  1373
{
hgs
parents: 25
diff changeset
  1374
    if(item)
hgs
parents: 25
diff changeset
  1375
    {
hgs
parents: 25
diff changeset
  1376
        item->setFocus();  
hgs
parents: 25
diff changeset
  1377
    }
hgs
parents: 25
diff changeset
  1378
}
hgs
parents: 25
diff changeset
  1379
hgs
parents: 25
diff changeset
  1380
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1381
// MsgUnifiedEditorView::onContentChanged
hgs
parents: 25
diff changeset
  1382
//
hgs
parents: 25
diff changeset
  1383
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1384
void MsgUnifiedEditorView::onContentChanged()
hgs
parents: 25
diff changeset
  1385
{
hgs
parents: 25
diff changeset
  1386
    mCanSaveToDrafts = true; 
hgs
parents: 25
diff changeset
  1387
}
hgs
parents: 25
diff changeset
  1388
hgs
parents: 25
diff changeset
  1389
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1390
// MsgUnifiedEditorView::onDialogDeleteMsg
hgs
parents: 25
diff changeset
  1391
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1392
void MsgUnifiedEditorView::onDialogDeleteMsg(HbAction* action)
hgs
parents: 25
diff changeset
  1393
{
hgs
parents: 25
diff changeset
  1394
    HbMessageBox *dlg = qobject_cast<HbMessageBox*> (sender());
hgs
parents: 25
diff changeset
  1395
    if (action == dlg->actions().at(0)) {
hgs
parents: 25
diff changeset
  1396
hgs
parents: 25
diff changeset
  1397
        mCanSaveToDrafts = false;
hgs
parents: 25
diff changeset
  1398
hgs
parents: 25
diff changeset
  1399
        //delete if draft entry opened
hgs
parents: 25
diff changeset
  1400
        if (mOpenedMessageId.getId() != -1) {
hgs
parents: 25
diff changeset
  1401
            if (!mPluginLoader) {
hgs
parents: 25
diff changeset
  1402
                mPluginLoader = new UniEditorPluginLoader(this);
hgs
parents: 25
diff changeset
  1403
            }
hgs
parents: 25
diff changeset
  1404
hgs
parents: 25
diff changeset
  1405
            UniEditorPluginInterface* pluginInterface = mPluginLoader->getUniEditorPlugin(
hgs
parents: 25
diff changeset
  1406
                MsgUnifiedEditorMonitor::messageType());
hgs
parents: 25
diff changeset
  1407
hgs
parents: 25
diff changeset
  1408
            pluginInterface->deleteDraftsEntry(mOpenedMessageId.getId());
hgs
parents: 25
diff changeset
  1409
        }
hgs
parents: 25
diff changeset
  1410
hgs
parents: 25
diff changeset
  1411
        //trigger back action.
hgs
parents: 25
diff changeset
  1412
        HbAction* backAction = this->navigationAction();
hgs
parents: 25
diff changeset
  1413
        if (backAction) {
hgs
parents: 25
diff changeset
  1414
            backAction->trigger();
hgs
parents: 25
diff changeset
  1415
        }
hgs
parents: 25
diff changeset
  1416
    }
hgs
parents: 25
diff changeset
  1417
}
hgs
parents: 25
diff changeset
  1418
hgs
parents: 25
diff changeset
  1419
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1420
// MsgUnifiedEditorView::onDialogSmsSettings
hgs
parents: 25
diff changeset
  1421
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1422
void MsgUnifiedEditorView::onDialogSmsSettings(HbAction* action)
hgs
parents: 25
diff changeset
  1423
{
hgs
parents: 25
diff changeset
  1424
    HbMessageBox *dlg = qobject_cast<HbMessageBox*> (sender());
76
hgs
parents: 73
diff changeset
  1425
    if (action == dlg->actions().at(0))
hgs
parents: 73
diff changeset
  1426
    {
37
hgs
parents: 25
diff changeset
  1427
        QVariantList params;
hgs
parents: 25
diff changeset
  1428
        params << MsgBaseView::MSGSETTINGS;// target view
hgs
parents: 25
diff changeset
  1429
        params << MsgBaseView::UNIEDITOR; // source view
hgs
parents: 25
diff changeset
  1430
        params << MsgSettingsView::SMSView;
hgs
parents: 25
diff changeset
  1431
        emit switchView(params);
hgs
parents: 25
diff changeset
  1432
    }
hgs
parents: 25
diff changeset
  1433
}
hgs
parents: 25
diff changeset
  1434
hgs
parents: 25
diff changeset
  1435
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1436
// MsgUnifiedEditorView::onDialogMmsSettings
hgs
parents: 25
diff changeset
  1437
//---------------------------------------------------------------
hgs
parents: 25
diff changeset
  1438
void MsgUnifiedEditorView::onDialogMmsSettings(HbAction* action)
hgs
parents: 25
diff changeset
  1439
{
hgs
parents: 25
diff changeset
  1440
    HbMessageBox *dlg = qobject_cast<HbMessageBox*> (sender());
hgs
parents: 25
diff changeset
  1441
    if (action == dlg->actions().at(0)) {
hgs
parents: 25
diff changeset
  1442
        
hgs
parents: 25
diff changeset
  1443
        QVariantList params;
hgs
parents: 25
diff changeset
  1444
        params << MsgBaseView::MSGSETTINGS;// target view
hgs
parents: 25
diff changeset
  1445
        params << MsgBaseView::UNIEDITOR; // source view
hgs
parents: 25
diff changeset
  1446
        params << MsgSettingsView::MMSView;
hgs
parents: 25
diff changeset
  1447
        emit switchView(params); 
hgs
parents: 25
diff changeset
  1448
    }
hgs
parents: 25
diff changeset
  1449
}
hgs
parents: 25
diff changeset
  1450
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1451
// ----------------------------------------------------------------------------
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1452
// MsgUnifiedEditorView::isReplyPathBroken
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1453
// @see header
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1454
// ----------------------------------------------------------------------------
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1455
bool MsgUnifiedEditorView::isReplyPathBroken()
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1456
{
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1457
    // 1. Never set for MMS
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1458
    // 2. if additional recipients exits
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1459
    if( (MsgUnifiedEditorMonitor::messageType() == ConvergedMessage::Mms) ||
76
hgs
parents: 73
diff changeset
  1460
        (MsgUnifiedEditorMonitor::msgAddressCount() != 1) )
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1461
    {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1462
        // broken
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1463
        return true;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1464
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1465
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1466
    // 3. if only recipient is not same as originating SME
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1467
    QString dispName;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1468
    int phCount;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1469
    int origCntLocalId = MsgContactHandler::resolveContactDisplayName(
76
hgs
parents: 73
diff changeset
  1470
        mOriginatingSME, dispName, phCount);
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1471
    int currCntLocalId = -1;
76
hgs
parents: 73
diff changeset
  1472
    QString currAddress;
hgs
parents: 73
diff changeset
  1473
    ConvergedMessageAddress* currentAdd = mScrollArea->currentAddress();
hgs
parents: 73
diff changeset
  1474
    if(currentAdd)
hgs
parents: 73
diff changeset
  1475
    {
hgs
parents: 73
diff changeset
  1476
        currAddress = currentAdd->address();
hgs
parents: 73
diff changeset
  1477
        delete currentAdd;
hgs
parents: 73
diff changeset
  1478
    }
hgs
parents: 73
diff changeset
  1479
    
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1480
    if(origCntLocalId != -1)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1481
    {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1482
        currCntLocalId = MsgContactHandler::resolveContactDisplayName(
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1483
            currAddress, dispName, phCount);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1484
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1485
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1486
    if(currCntLocalId != -1)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1487
    { // both are mapped contacts present in contacts db
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1488
        if(currCntLocalId != origCntLocalId)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1489
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1490
            return true;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1491
        }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1492
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1493
    else
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1494
    { // atleast one contact is not present in contacts db
76
hgs
parents: 73
diff changeset
  1495
        // direct compare
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1496
        UniEditorGenUtils* genUtils = q_check_ptr(new UniEditorGenUtils);
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1497
        bool compareResult = false;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1498
        TRAP_IGNORE(
76
hgs
parents: 73
diff changeset
  1499
            compareResult = genUtils->MatchPhoneNumberL(
56
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1500
                *XQConversions::qStringToS60Desc(mOriginatingSME),
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1501
                *XQConversions::qStringToS60Desc(currAddress))
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1502
        );
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1503
        delete genUtils;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1504
        if(!compareResult)
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1505
        {
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1506
            return true;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1507
        }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1508
    }
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1509
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1510
    return false;
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1511
}
f42d9a78f435 201033_02
hgs
parents: 51
diff changeset
  1512
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1513
//EOF