emailuis/nmailui/src/nmeditorview.cpp
author hgs
Thu, 14 Oct 2010 17:33:43 +0300
changeset 76 38bf5461e270
parent 74 6c59112cfd31
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
578830873419 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
578830873419 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"
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
578830873419 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".
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description: Message editor view
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include "nmuiheaders.h"
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
// Layout file and view
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
static const char *NMUI_EDITOR_VIEW_XML = ":/docml/nmeditorview.docml";
56
hgs
parents: 51
diff changeset
    21
static const char *NMUI_EDITOR_VIEW = "editorview";
68
hgs
parents: 66
diff changeset
    22
static const char *NMUI_EDITOR_VIEW_ATTACHMENT_EXTENSION =
hgs
parents: 66
diff changeset
    23
    "attachmentTypeToolbarExtension";
56
hgs
parents: 51
diff changeset
    24
hgs
parents: 51
diff changeset
    25
// extension list item frame.
hgs
parents: 51
diff changeset
    26
static const QString NmPopupListFrame = "qtg_fr_popup_list_normal";
47
hgs
parents: 44
diff changeset
    27
static const QString NmDelimiter("; ");
57
hgs
parents: 56
diff changeset
    28
static const QString NmPriorityLow("low");
hgs
parents: 56
diff changeset
    29
static const QString NmPriorityNormal("normal");
hgs
parents: 56
diff changeset
    30
static const QString NmPriorityHigh("high");
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
68
hgs
parents: 66
diff changeset
    32
static const QString NmMimeTypeHtml("text/html");
hgs
parents: 66
diff changeset
    33
hgs
parents: 66
diff changeset
    34
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
	\class NmEditorView
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
	\brief Mail editor view
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
68
hgs
parents: 66
diff changeset
    40
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
/*!
68
hgs
parents: 66
diff changeset
    42
    Class constructor.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
NmEditorView::NmEditorView(
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    NmApplication &application,
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    NmUiStartParam* startParam,
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    NmUiEngine &uiEngine,
43
hgs
parents: 40
diff changeset
    48
    NmAttachmentManager &attaManager,
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
    QGraphicsItem *parent)
68
hgs
parents: 66
diff changeset
    50
: NmBaseView(startParam, application, parent),
hgs
parents: 66
diff changeset
    51
  mApplication(application),
hgs
parents: 66
diff changeset
    52
  mUiEngine(uiEngine),
hgs
parents: 66
diff changeset
    53
  mAttaManager(attaManager),
hgs
parents: 66
diff changeset
    54
  mDocumentLoader(NULL),
hgs
parents: 66
diff changeset
    55
  mHeaderWidget(NULL),
hgs
parents: 66
diff changeset
    56
  mMessage(NULL),
hgs
parents: 66
diff changeset
    57
  mContent(NULL),
hgs
parents: 66
diff changeset
    58
  mAttachmentListContextMenu(NULL),
hgs
parents: 66
diff changeset
    59
  mMessageCreationOperation(NULL),
hgs
parents: 66
diff changeset
    60
  mAddAttachmentOperation(NULL),
hgs
parents: 66
diff changeset
    61
  mRemoveAttachmentOperation(NULL),
hgs
parents: 66
diff changeset
    62
  mWaitDialog(NULL),
hgs
parents: 66
diff changeset
    63
  mQueryDialog(NULL),
hgs
parents: 66
diff changeset
    64
  mAttachmentPicker(NULL),
hgs
parents: 66
diff changeset
    65
  mCcBccFieldVisible(false),
hgs
parents: 66
diff changeset
    66
  mServiceSendingDialog(NULL),
hgs
parents: 66
diff changeset
    67
  mTBExtnContentWidget(NULL),
hgs
parents: 66
diff changeset
    68
  mHiddenPriorityName(NmPriorityNormal)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
{
43
hgs
parents: 40
diff changeset
    70
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
    71
hgs
parents: 66
diff changeset
    72
    mDocumentLoader = new NmUiDocumentLoader(mApplication.mainWindow());
hgs
parents: 66
diff changeset
    73
hgs
parents: 66
diff changeset
    74
    // Set the object name.
hgs
parents: 66
diff changeset
    75
    setObjectName(QString(NMUI_EDITOR_VIEW));
hgs
parents: 66
diff changeset
    76
hgs
parents: 66
diff changeset
    77
    // Load the view layout.
hgs
parents: 66
diff changeset
    78
    loadViewLayout();
hgs
parents: 66
diff changeset
    79
hgs
parents: 66
diff changeset
    80
    // Create the toolbar.
44
hgs
parents: 43
diff changeset
    81
    createToolBar();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
68
hgs
parents: 66
diff changeset
    84
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
/*!
68
hgs
parents: 66
diff changeset
    86
    Class destructor.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
NmEditorView::~NmEditorView()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
{
43
hgs
parents: 40
diff changeset
    90
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
    91
74
hgs
parents: 68
diff changeset
    92
    // Delete opened temporary files.
hgs
parents: 68
diff changeset
    93
    NmUtilities::deleteTempFiles(mTempFiles);
76
hgs
parents: 74
diff changeset
    94
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    95
    if (mRemoveAttachmentOperation && mRemoveAttachmentOperation->isRunning()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    96
        mRemoveAttachmentOperation->cancelOperation();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    97
    }
68
hgs
parents: 66
diff changeset
    98
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    99
    if (mAddAttachmentOperation && mAddAttachmentOperation->isRunning()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   100
        mAddAttachmentOperation->cancelOperation();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   101
    }
68
hgs
parents: 66
diff changeset
   102
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   103
    if (mMessageCreationOperation && mMessageCreationOperation->isRunning()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   104
        mMessageCreationOperation->cancelOperation();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   105
    }
68
hgs
parents: 66
diff changeset
   106
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    delete mMessage;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
    mWidgetList.clear();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
    delete mDocumentLoader;
68
hgs
parents: 66
diff changeset
   110
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   111
    if (mAttachmentListContextMenu) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   112
        mAttachmentListContextMenu->clearActions();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   113
        delete mAttachmentListContextMenu;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   114
    }
68
hgs
parents: 66
diff changeset
   115
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   116
    delete mWaitDialog;
40
hgs
parents: 23
diff changeset
   117
    delete mQueryDialog;
68
hgs
parents: 66
diff changeset
   118
    delete mAttachmentPicker;
43
hgs
parents: 40
diff changeset
   119
    mAttaManager.clearObserver();
hgs
parents: 40
diff changeset
   120
    mAttaManager.cancelFetch();
68
hgs
parents: 66
diff changeset
   121
44
hgs
parents: 43
diff changeset
   122
    // make sure virtual keyboard is closed
hgs
parents: 43
diff changeset
   123
    QInputContext *ic = qApp->inputContext();
68
hgs
parents: 66
diff changeset
   124
44
hgs
parents: 43
diff changeset
   125
    if (ic) {
hgs
parents: 43
diff changeset
   126
        QEvent *closeEvent = new QEvent(QEvent::CloseSoftwareInputPanel);
hgs
parents: 43
diff changeset
   127
        ic->filterEvent(closeEvent);
hgs
parents: 43
diff changeset
   128
        delete closeEvent;
hgs
parents: 43
diff changeset
   129
    }
68
hgs
parents: 66
diff changeset
   130
hgs
parents: 66
diff changeset
   131
    if (!mTBExtnContentWidget->parent()) {
hgs
parents: 66
diff changeset
   132
        delete mTBExtnContentWidget;
hgs
parents: 66
diff changeset
   133
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
68
hgs
parents: 66
diff changeset
   136
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
/*!
68
hgs
parents: 66
diff changeset
   138
    Loads the view layout from XML.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
void NmEditorView::loadViewLayout()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
{
43
hgs
parents: 40
diff changeset
   142
    NM_FUNCTION;
76
hgs
parents: 74
diff changeset
   143
68
hgs
parents: 66
diff changeset
   144
    // Use the document loader to load the view.
49
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
   145
    QObjectList objectList;
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
   146
    objectList.append(this);
68
hgs
parents: 66
diff changeset
   147
hgs
parents: 66
diff changeset
   148
    // Pass the view to documentloader. Document loader uses this view when
hgs
parents: 66
diff changeset
   149
    // docml is parsed, instead of creating new view. The document loader is
hgs
parents: 66
diff changeset
   150
    // created in the constructor.
49
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
   151
    mDocumentLoader->setObjectTree(objectList);
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
   152
68
hgs
parents: 66
diff changeset
   153
    bool ok(false);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    mWidgetList = mDocumentLoader->load(NMUI_EDITOR_VIEW_XML, &ok);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
49
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
   156
   if (ok) {
76
hgs
parents: 74
diff changeset
   157
       mContent = new NmEditorContent(this, mDocumentLoader,
68
hgs
parents: 66
diff changeset
   158
                                      mApplication.networkAccessManager(),
hgs
parents: 66
diff changeset
   159
                                      mApplication);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
68
hgs
parents: 66
diff changeset
   161
       mHeaderWidget = mContent->header();
hgs
parents: 66
diff changeset
   162
hgs
parents: 66
diff changeset
   163
       // Set default color for user - entered text if editor is in re/reAll/fw
hgs
parents: 66
diff changeset
   164
       // mode.
hgs
parents: 66
diff changeset
   165
       if (mStartParam) {
hgs
parents: 66
diff changeset
   166
           NmUiEditorStartMode mode = mStartParam->editorStartMode();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
68
hgs
parents: 66
diff changeset
   168
           if (mode == NmUiEditorReply ||
76
hgs
parents: 74
diff changeset
   169
               mode == NmUiEditorReplyAll ||
68
hgs
parents: 66
diff changeset
   170
               mode == NmUiEditorForward) {
hgs
parents: 66
diff changeset
   171
               mContent->editor()->setCustomTextColor(true, Qt::blue);
hgs
parents: 66
diff changeset
   172
           }
hgs
parents: 66
diff changeset
   173
       }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
68
hgs
parents: 66
diff changeset
   175
       // Get the toolbar extension for adding attachments.
hgs
parents: 66
diff changeset
   176
       mTBExtnContentWidget = qobject_cast<HbListWidget *>(
hgs
parents: 66
diff changeset
   177
           mDocumentLoader->findWidget(NMUI_EDITOR_VIEW_ATTACHMENT_EXTENSION));
hgs
parents: 66
diff changeset
   178
hgs
parents: 66
diff changeset
   179
       // The rest of the view initialization is done in viewReady().
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   180
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
68
hgs
parents: 66
diff changeset
   183
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    Reload view contents with new start parameters
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    Typically when view is already open and external view activation occurs
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    for this same view
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
void NmEditorView::reloadViewContents(NmUiStartParam* startParam)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
{
43
hgs
parents: 40
diff changeset
   191
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   192
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    // Check start parameter validity.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
    if (startParam&&startParam->viewId()==NmUiViewMessageEditor) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
        // Delete existing start parameter data
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
        delete mStartParam;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
        mStartParam=NULL;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
        // Store new start parameter data
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
        mStartParam=startParam;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
        // Store existing edited message to drafts and reload
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
        // editor with new start parameters.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
        // ..
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
        // Reload editor with new message data
44
hgs
parents: 43
diff changeset
   204
        fetchMessageIfNeeded(*mStartParam);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    else {
43
hgs
parents: 40
diff changeset
   207
        NM_ERROR(1,"nmailui: Invalid editor start parameter");
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
        // Unused start parameter needs to be deleted
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
        delete startParam;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
        startParam = NULL;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
   Screen orientation changed. Editor view needs to be scaled when
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
   landscape <-> portrait switch occurs because text needs to
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
   be wrapped again.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
void NmEditorView::orientationChanged(Qt::Orientation orientation)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
{
43
hgs
parents: 40
diff changeset
   221
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   222
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   223
    Q_UNUSED(orientation);
68
hgs
parents: 66
diff changeset
   224
47
hgs
parents: 44
diff changeset
   225
    // content widget height needs to be set according to the new orientation to get the scroll
hgs
parents: 44
diff changeset
   226
	// area work correctly
hgs
parents: 44
diff changeset
   227
	mHeaderWidget->sendDelayedHeaderHeightChanged();
51
hgs
parents: 49
diff changeset
   228
	mHeaderWidget->adjustHeaderWidth();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
/*!
47
hgs
parents: 44
diff changeset
   232
    This slot is signaled by VKB when it opens
hgs
parents: 44
diff changeset
   233
 */
hgs
parents: 44
diff changeset
   234
void NmEditorView::vkbOpened()
hgs
parents: 44
diff changeset
   235
{
68
hgs
parents: 66
diff changeset
   236
    showChrome(false);
47
hgs
parents: 44
diff changeset
   237
}
hgs
parents: 44
diff changeset
   238
hgs
parents: 44
diff changeset
   239
/*!
hgs
parents: 44
diff changeset
   240
    This slot is signaled by VKB when it closes.
hgs
parents: 44
diff changeset
   241
 */
hgs
parents: 44
diff changeset
   242
void NmEditorView::vkbClosed()
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
{
47
hgs
parents: 44
diff changeset
   244
	showChrome(true);
hgs
parents: 44
diff changeset
   245
}
hgs
parents: 44
diff changeset
   246
hgs
parents: 44
diff changeset
   247
/*!
hgs
parents: 44
diff changeset
   248
    Hide or show chrome.
hgs
parents: 44
diff changeset
   249
 */
hgs
parents: 44
diff changeset
   250
void NmEditorView::showChrome(bool show)
hgs
parents: 44
diff changeset
   251
{
hgs
parents: 44
diff changeset
   252
    if (show) {
66
hgs
parents: 62
diff changeset
   253
        setContentFullScreen(false);
hgs
parents: 62
diff changeset
   254
        showItems(Hb::ToolBarItem);
47
hgs
parents: 44
diff changeset
   255
    }
hgs
parents: 44
diff changeset
   256
    else {
66
hgs
parents: 62
diff changeset
   257
        setContentFullScreen(true);
hgs
parents: 62
diff changeset
   258
        hideItems(Hb::ToolBarItem);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
    View id
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
NmUiViewId NmEditorView::nmailViewId() const
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
{
43
hgs
parents: 40
diff changeset
   267
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   268
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
    return NmUiViewMessageEditor;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
/*
40
hgs
parents: 23
diff changeset
   273
   Launch dialog for query user if we want to exit the editor
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   274
*/
40
hgs
parents: 23
diff changeset
   275
void NmEditorView::okToExitView()
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
{
43
hgs
parents: 40
diff changeset
   277
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   278
47
hgs
parents: 44
diff changeset
   279
    bool okToExit(true);
68
hgs
parents: 66
diff changeset
   280
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   281
    if (mContent) {
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   282
        NmEditorHeader *header = mContent->header();
47
hgs
parents: 44
diff changeset
   283
        // show the query if the message has not been sent
hgs
parents: 44
diff changeset
   284
        if (mMessage && header) {
hgs
parents: 44
diff changeset
   285
            // see if editor has any content
hgs
parents: 44
diff changeset
   286
            int subjectLength = 0;
hgs
parents: 44
diff changeset
   287
            if (header->subjectEdit()) {
hgs
parents: 44
diff changeset
   288
                subjectLength = header->subjectEdit()->text().length();
40
hgs
parents: 23
diff changeset
   289
            }
68
hgs
parents: 66
diff changeset
   290
47
hgs
parents: 44
diff changeset
   291
            QList<NmMessagePart*> attachmentList;
hgs
parents: 44
diff changeset
   292
            mMessage->attachmentList(attachmentList);
68
hgs
parents: 66
diff changeset
   293
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   294
            if (mContent->editor()) {
68
hgs
parents: 66
diff changeset
   295
                okToExit = (subjectLength == 0 && mContent->editor()->document()->isEmpty());
47
hgs
parents: 44
diff changeset
   296
            }
68
hgs
parents: 66
diff changeset
   297
47
hgs
parents: 44
diff changeset
   298
            // content exists, verify exit from user
hgs
parents: 44
diff changeset
   299
            if (!okToExit) {
hgs
parents: 44
diff changeset
   300
                if (mQueryDialog) {
hgs
parents: 44
diff changeset
   301
                    delete mQueryDialog;
hgs
parents: 44
diff changeset
   302
                    mQueryDialog = 0;
hgs
parents: 44
diff changeset
   303
                }
hgs
parents: 44
diff changeset
   304
                // Launch query dialog.
68
hgs
parents: 66
diff changeset
   305
                mQueryDialog =
47
hgs
parents: 44
diff changeset
   306
                    NmUtilities::displayQuestionNote(hbTrId("txt_mail_dialog_save_message_to_drafts"),
hgs
parents: 44
diff changeset
   307
                                                                this,
hgs
parents: 44
diff changeset
   308
                                                                SLOT(okToExitQuery(HbAction*)));
hgs
parents: 44
diff changeset
   309
            }
68
hgs
parents: 66
diff changeset
   310
        }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
    }
68
hgs
parents: 66
diff changeset
   312
40
hgs
parents: 23
diff changeset
   313
    // no need to query anything, just exit.
hgs
parents: 23
diff changeset
   314
    if(okToExit) {
hgs
parents: 23
diff changeset
   315
        QMetaObject::invokeMethod(&mApplication,
hgs
parents: 23
diff changeset
   316
                                  "popView",
hgs
parents: 23
diff changeset
   317
                                  Qt::QueuedConnection);
hgs
parents: 23
diff changeset
   318
    }
hgs
parents: 23
diff changeset
   319
}
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
40
hgs
parents: 23
diff changeset
   321
/*!
hgs
parents: 23
diff changeset
   322
    Handle the user selection is it ok to exit.
hgs
parents: 23
diff changeset
   323
*/
47
hgs
parents: 44
diff changeset
   324
void NmEditorView::okToExitQuery(HbAction *action)
40
hgs
parents: 23
diff changeset
   325
{
43
hgs
parents: 40
diff changeset
   326
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   327
43
hgs
parents: 40
diff changeset
   328
    HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
hgs
parents: 40
diff changeset
   329
    // The first action in dialogs action list is for the "Yes"-button.
hgs
parents: 40
diff changeset
   330
    if (action == dlg->actions().at(0)) {
76
hgs
parents: 74
diff changeset
   331
        connect(&mUiEngine, SIGNAL(draftSaved()),this, SLOT(closeView()));
62
hgs
parents: 57
diff changeset
   332
        safeToDraft();
76
hgs
parents: 74
diff changeset
   333
    } else {
hgs
parents: 74
diff changeset
   334
        // delete draft now because it is always created in the beginning
hgs
parents: 74
diff changeset
   335
        // of new email creation process
hgs
parents: 74
diff changeset
   336
        connect(&mUiEngine, SIGNAL(draftDeleted()),this, SLOT(closeView()));
hgs
parents: 74
diff changeset
   337
        deleteDraft();
68
hgs
parents: 66
diff changeset
   338
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
/*!
62
hgs
parents: 57
diff changeset
   342
    Public slot to handle draft saving.
hgs
parents: 57
diff changeset
   343
*/
hgs
parents: 57
diff changeset
   344
void NmEditorView::safeToDraft()
hgs
parents: 57
diff changeset
   345
{
hgs
parents: 57
diff changeset
   346
    // Update draft message with content.
hgs
parents: 57
diff changeset
   347
    updateMessageWithEditorContents();
hgs
parents: 57
diff changeset
   348
76
hgs
parents: 74
diff changeset
   349
    // Draft messages are always read.
hgs
parents: 74
diff changeset
   350
    mMessage->envelope().setRead(true);
hgs
parents: 74
diff changeset
   351
62
hgs
parents: 57
diff changeset
   352
    // Save message to drafts
hgs
parents: 57
diff changeset
   353
    QList<NmOperation *> preliminaryOperations;
hgs
parents: 57
diff changeset
   354
    if (mAddAttachmentOperation && mAddAttachmentOperation->isRunning()) {
hgs
parents: 57
diff changeset
   355
        preliminaryOperations.append(mAddAttachmentOperation);
hgs
parents: 57
diff changeset
   356
    }
hgs
parents: 57
diff changeset
   357
    if (mRemoveAttachmentOperation && mRemoveAttachmentOperation->isRunning()) {
hgs
parents: 57
diff changeset
   358
        preliminaryOperations.append(mRemoveAttachmentOperation);
hgs
parents: 57
diff changeset
   359
    }
hgs
parents: 57
diff changeset
   360
    // ownership of mMessage is transferred
hgs
parents: 57
diff changeset
   361
    // NmOperations are automatically deleted after completion
hgs
parents: 57
diff changeset
   362
    mUiEngine.saveDraftMessage(mMessage, preliminaryOperations);
hgs
parents: 57
diff changeset
   363
    mMessage = NULL;
hgs
parents: 57
diff changeset
   364
    preliminaryOperations.clear();
hgs
parents: 57
diff changeset
   365
}
hgs
parents: 57
diff changeset
   366
hgs
parents: 57
diff changeset
   367
/*!
76
hgs
parents: 74
diff changeset
   368
    Public slot to handle draft deletion.
hgs
parents: 74
diff changeset
   369
*/
hgs
parents: 74
diff changeset
   370
void NmEditorView::deleteDraft()
hgs
parents: 74
diff changeset
   371
{
hgs
parents: 74
diff changeset
   372
    // ownership of mMessage is transferred
hgs
parents: 74
diff changeset
   373
    // NmOperations are automatically deleted after completion
hgs
parents: 74
diff changeset
   374
    mUiEngine.removeDraftMessage(mMessage);
hgs
parents: 74
diff changeset
   375
    mMessage = NULL;
hgs
parents: 74
diff changeset
   376
}
hgs
parents: 74
diff changeset
   377
hgs
parents: 74
diff changeset
   378
void NmEditorView::closeView()
hgs
parents: 74
diff changeset
   379
{
hgs
parents: 74
diff changeset
   380
    // Close the view
hgs
parents: 74
diff changeset
   381
    QMetaObject::invokeMethod(&mApplication,
hgs
parents: 74
diff changeset
   382
                              "popView",
hgs
parents: 74
diff changeset
   383
                              Qt::QueuedConnection);
hgs
parents: 74
diff changeset
   384
}
hgs
parents: 74
diff changeset
   385
hgs
parents: 74
diff changeset
   386
/*!
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
    About to exit view. Application calls this function when user has
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
    pressed back key and editor needs to delete the draft message. This is
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
    called when "auto-exiting" after a successful mail sending.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
void NmEditorView::aboutToExitView()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
{
43
hgs
parents: 40
diff changeset
   393
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   394
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
    // These operations need to be stopped before message can be deleted
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   396
    if (mAddAttachmentOperation && mAddAttachmentOperation->isRunning()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   397
        mAddAttachmentOperation->cancelOperation();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   398
    }
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   399
    if (mRemoveAttachmentOperation && mRemoveAttachmentOperation->isRunning()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   400
        mRemoveAttachmentOperation->cancelOperation();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   401
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
44
hgs
parents: 43
diff changeset
   403
    if (mMessage) { // this is NULL if sending or saving is started
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
        // Delete message from drafts
43
hgs
parents: 40
diff changeset
   405
        mUiEngine.removeDraftMessage(mMessage);
hgs
parents: 40
diff changeset
   406
        mMessage = NULL;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
/*!
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   411
    Lazy loading when view layout has been loaded
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   412
*/
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   413
void NmEditorView::viewReady()
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   414
{
43
hgs
parents: 40
diff changeset
   415
    NM_FUNCTION;
62
hgs
parents: 57
diff changeset
   416
hgs
parents: 57
diff changeset
   417
    // Set mailbox name to title pane
hgs
parents: 57
diff changeset
   418
    setMailboxName();
68
hgs
parents: 66
diff changeset
   419
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   420
    // Connect options menu about to show to create options menu function
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   421
    // Menu needs to be create "just-in-time"
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   422
    connect(menu(), SIGNAL(aboutToShow()), this, SLOT(createOptionsMenu()));
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   423
    NmAction *dummy = new NmAction(0);
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   424
    menu()->addAction(dummy);
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   425
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   426
    mVkbHost = new HbShrinkingVkbHost(this);
68
hgs
parents: 66
diff changeset
   427
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   428
    initializeVKB();
68
hgs
parents: 66
diff changeset
   429
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   430
    //start to listen VKB open and close signals for hiding the chrome.
47
hgs
parents: 44
diff changeset
   431
    connect(mVkbHost, SIGNAL(keypadOpened()), this, SLOT(vkbOpened()));
hgs
parents: 44
diff changeset
   432
    connect(mVkbHost, SIGNAL(keypadClosed()), this, SLOT(vkbClosed()));
68
hgs
parents: 66
diff changeset
   433
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   434
    connect(mContent->header(), SIGNAL(recipientFieldsHaveContent(bool)),
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   435
            this, SLOT(setButtonsDimming(bool)) );
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   436
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   437
    // Connect to observe orientation change events
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   438
    connect(mApplication.mainWindow(), SIGNAL(orientationChanged(Qt::Orientation)),
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   439
            this, SLOT(orientationChanged(Qt::Orientation)));
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   440
    // Signal for handling the attachment list selection
44
hgs
parents: 43
diff changeset
   441
    connect(mHeaderWidget, SIGNAL(attachmentShortPressed(NmId)),
hgs
parents: 43
diff changeset
   442
            this, SLOT(openAttachmentTriggered(NmId)));
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   443
    connect(mHeaderWidget, SIGNAL(attachmentLongPressed(NmId, QPointF)),
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   444
            this, SLOT(attachmentLongPressed(NmId, QPointF)));
68
hgs
parents: 66
diff changeset
   445
44
hgs
parents: 43
diff changeset
   446
    if (mStartParam) {
hgs
parents: 43
diff changeset
   447
        fetchMessageIfNeeded(*mStartParam);
hgs
parents: 43
diff changeset
   448
    }
68
hgs
parents: 66
diff changeset
   449
    else { // execution cannot proceed without start param
44
hgs
parents: 43
diff changeset
   450
        QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection);
hgs
parents: 43
diff changeset
   451
    }
68
hgs
parents: 66
diff changeset
   452
62
hgs
parents: 57
diff changeset
   453
    // Adjust the header width according to the current screen width.
68
hgs
parents: 66
diff changeset
   454
    mHeaderWidget->adjustHeaderWidth();
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   455
}
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   456
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   457
/*!
43
hgs
parents: 40
diff changeset
   458
    If entering editor for forwarding or replying, use attachment manager
hgs
parents: 40
diff changeset
   459
    to check that we have all message parts fetched. Also show dialog for
hgs
parents: 40
diff changeset
   460
    fetching progress.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   461
*/
44
hgs
parents: 43
diff changeset
   462
void NmEditorView::fetchMessageIfNeeded(NmUiStartParam &startParam)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
{
43
hgs
parents: 40
diff changeset
   464
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   465
62
hgs
parents: 57
diff changeset
   466
    if (startParam.editorStartMode() == NmUiEditorForward
hgs
parents: 57
diff changeset
   467
        || startParam.editorStartMode()== NmUiEditorReply
hgs
parents: 57
diff changeset
   468
        || startParam.editorStartMode() == NmUiEditorReplyAll) {
68
hgs
parents: 66
diff changeset
   469
62
hgs
parents: 57
diff changeset
   470
        fetchProgressDialogShow();
hgs
parents: 57
diff changeset
   471
        mAttaManager.clearObserver();
hgs
parents: 57
diff changeset
   472
        mAttaManager.setObserver(this);
hgs
parents: 57
diff changeset
   473
        mAttaManager.fetchAllMessageParts(
hgs
parents: 57
diff changeset
   474
            startParam.mailboxId(),
hgs
parents: 57
diff changeset
   475
            startParam.folderId(),
hgs
parents: 57
diff changeset
   476
            startParam.messageId());
hgs
parents: 57
diff changeset
   477
    }
hgs
parents: 57
diff changeset
   478
    else {
hgs
parents: 57
diff changeset
   479
        startMessageCreation(startParam);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
/*!
43
hgs
parents: 40
diff changeset
   484
    Slot. Called when attachments fetch progress changes.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   485
*/
43
hgs
parents: 40
diff changeset
   486
void NmEditorView::progressChanged(int value)
hgs
parents: 40
diff changeset
   487
{
hgs
parents: 40
diff changeset
   488
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   489
43
hgs
parents: 40
diff changeset
   490
    Q_UNUSED(value);
hgs
parents: 40
diff changeset
   491
}
hgs
parents: 40
diff changeset
   492
hgs
parents: 40
diff changeset
   493
/*!
hgs
parents: 40
diff changeset
   494
    Slot. Called when attachments fetch is completed. We can start
68
hgs
parents: 66
diff changeset
   495
    message creation.
43
hgs
parents: 40
diff changeset
   496
*/
hgs
parents: 40
diff changeset
   497
void NmEditorView::fetchCompleted(int result)
hgs
parents: 40
diff changeset
   498
{
hgs
parents: 40
diff changeset
   499
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   500
44
hgs
parents: 43
diff changeset
   501
    if (result == NmNoError && mStartParam) {
hgs
parents: 43
diff changeset
   502
        startMessageCreation(*mStartParam);
43
hgs
parents: 40
diff changeset
   503
    }
hgs
parents: 40
diff changeset
   504
    else {
62
hgs
parents: 57
diff changeset
   505
        // Close "Loading mail content" dialog
hgs
parents: 57
diff changeset
   506
        mWaitDialog->close();
68
hgs
parents: 66
diff changeset
   507
62
hgs
parents: 57
diff changeset
   508
        // Show a fetching failed note when the failure is not caused by a Device/System failure.
68
hgs
parents: 66
diff changeset
   509
        if (result != NmNoError &&
47
hgs
parents: 44
diff changeset
   510
            result != NmNotFoundError &&
hgs
parents: 44
diff changeset
   511
            result != NmGeneralError &&
hgs
parents: 44
diff changeset
   512
            result != NmCancelError &&
hgs
parents: 44
diff changeset
   513
            result != NmAuthenticationError &&
hgs
parents: 44
diff changeset
   514
            result != NmServerConnectionError &&
68
hgs
parents: 66
diff changeset
   515
            result != NmConnectionError) {
hgs
parents: 66
diff changeset
   516
            HbNotificationDialog *note = new HbNotificationDialog();
47
hgs
parents: 44
diff changeset
   517
            bool enalbeAttribute(true);
68
hgs
parents: 66
diff changeset
   518
            note->setAttribute(Qt::WA_DeleteOnClose, enalbeAttribute);
hgs
parents: 66
diff changeset
   519
            note->setIcon(HbIcon(QLatin1String("note_warning")));
47
hgs
parents: 44
diff changeset
   520
            note->setTitle(hbTrId("txt_mail_dpopinfo_loading_failed"));
68
hgs
parents: 66
diff changeset
   521
            note->setTitleTextWrapping(Hb::TextWordWrap);
47
hgs
parents: 44
diff changeset
   522
            note->setDismissPolicy(HbNotificationDialog::TapAnywhere);
68
hgs
parents: 66
diff changeset
   523
            note->setTimeout(HbNotificationDialog::StandardTimeout);
47
hgs
parents: 44
diff changeset
   524
            note->setSequentialShow(true);
hgs
parents: 44
diff changeset
   525
            note->show();
hgs
parents: 44
diff changeset
   526
        }
68
hgs
parents: 66
diff changeset
   527
62
hgs
parents: 57
diff changeset
   528
        // Go back to Viewer view
43
hgs
parents: 40
diff changeset
   529
        QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection);
hgs
parents: 40
diff changeset
   530
    }
hgs
parents: 40
diff changeset
   531
}
hgs
parents: 40
diff changeset
   532
hgs
parents: 40
diff changeset
   533
void NmEditorView::fetchProgressDialogShow()
hgs
parents: 40
diff changeset
   534
{
hgs
parents: 40
diff changeset
   535
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   536
43
hgs
parents: 40
diff changeset
   537
    delete mWaitDialog;
hgs
parents: 40
diff changeset
   538
    mWaitDialog = NULL;
hgs
parents: 40
diff changeset
   539
    // Create new wait dialog and set it to me modal with dimmed background
hgs
parents: 40
diff changeset
   540
    mWaitDialog = new HbProgressDialog(HbProgressDialog::WaitDialog);
hgs
parents: 40
diff changeset
   541
    mWaitDialog->setModal(true);
hgs
parents: 40
diff changeset
   542
    mWaitDialog->setBackgroundFaded(true);
hgs
parents: 40
diff changeset
   543
    connect(mWaitDialog, SIGNAL(cancelled()), this, SLOT(fetchProgressDialogCancelled()));
hgs
parents: 40
diff changeset
   544
    mWaitDialog->setText(hbTrId("txt_mail_dialog_loading_mail_content"));
hgs
parents: 40
diff changeset
   545
    // Display wait dialog
hgs
parents: 40
diff changeset
   546
    mWaitDialog->show();
hgs
parents: 40
diff changeset
   547
}
hgs
parents: 40
diff changeset
   548
hgs
parents: 40
diff changeset
   549
/*!
hgs
parents: 40
diff changeset
   550
    This is called by mFetchProgressDialog when the note is cancelled
hgs
parents: 40
diff changeset
   551
 */
hgs
parents: 40
diff changeset
   552
void NmEditorView::fetchProgressDialogCancelled()
hgs
parents: 40
diff changeset
   553
{
hgs
parents: 40
diff changeset
   554
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   555
hgs
parents: 66
diff changeset
   556
    if (mAttaManager.isFetching()) {
43
hgs
parents: 40
diff changeset
   557
        mAttaManager.cancelFetch();
hgs
parents: 40
diff changeset
   558
        mAttaManager.clearObserver();
hgs
parents: 40
diff changeset
   559
    }
68
hgs
parents: 66
diff changeset
   560
    else {
62
hgs
parents: 57
diff changeset
   561
        // For those email has no attachment or attachment has fetched.
hgs
parents: 57
diff changeset
   562
        // Go back to Viewer view.
hgs
parents: 57
diff changeset
   563
        QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection);
hgs
parents: 57
diff changeset
   564
    }
43
hgs
parents: 40
diff changeset
   565
}
hgs
parents: 40
diff changeset
   566
44
hgs
parents: 43
diff changeset
   567
void NmEditorView::startMessageCreation(NmUiStartParam &startParam)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
{
43
hgs
parents: 40
diff changeset
   569
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   570
    NM_TIMESTAMP("Start editor.");
76
hgs
parents: 74
diff changeset
   571
44
hgs
parents: 43
diff changeset
   572
    NmUiEditorStartMode startMode = startParam.editorStartMode();
hgs
parents: 43
diff changeset
   573
    NmId mailboxId = startParam.mailboxId();
hgs
parents: 43
diff changeset
   574
    NmId folderId = startParam.folderId();
hgs
parents: 43
diff changeset
   575
    NmId msgId = startParam.messageId();
68
hgs
parents: 66
diff changeset
   576
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   577
    if (mMessageCreationOperation && mMessageCreationOperation->isRunning()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   578
        mMessageCreationOperation->cancelOperation();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   579
    }
68
hgs
parents: 66
diff changeset
   580
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   581
    // original message is now fetched so start message creation
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   582
    if (startMode == NmUiEditorForward) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   583
        mMessageCreationOperation = mUiEngine.createForwardMessage(mailboxId, msgId);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   585
    else if (startMode == NmUiEditorReply || startMode == NmUiEditorReplyAll) {
68
hgs
parents: 66
diff changeset
   586
        mMessageCreationOperation = mUiEngine.createReplyMessage(mailboxId,
hgs
parents: 66
diff changeset
   587
            msgId,
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
            startMode == NmUiEditorReplyAll);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
    }
44
hgs
parents: 43
diff changeset
   590
    else if (startMode == NmUiEditorFromDrafts) {
hgs
parents: 43
diff changeset
   591
        // Draft opened, so reload message and fill editor with message data.
hgs
parents: 43
diff changeset
   592
        mMessage = mUiEngine.message(
68
hgs
parents: 66
diff changeset
   593
            mStartParam->mailboxId(),
hgs
parents: 66
diff changeset
   594
            mStartParam->folderId(),
44
hgs
parents: 43
diff changeset
   595
            mStartParam->messageId());
hgs
parents: 43
diff changeset
   596
        fillEditorWithMessageContents();
hgs
parents: 43
diff changeset
   597
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
    else {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   599
        mMessageCreationOperation = mUiEngine.createNewMessage(mailboxId);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
    }
68
hgs
parents: 66
diff changeset
   601
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   602
    // operation continues in messageCreated() once it finishes ok
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   603
    if (mMessageCreationOperation) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
        connect(mMessageCreationOperation,
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
                SIGNAL(operationCompleted(int)),
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   606
                this,
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
                SLOT(messageCreated(int)));
68
hgs
parents: 66
diff changeset
   608
    }
76
hgs
parents: 74
diff changeset
   609
74
hgs
parents: 68
diff changeset
   610
    // Set focus
hgs
parents: 68
diff changeset
   611
    if (mContent && mContent->header() ) {
hgs
parents: 68
diff changeset
   612
        if (startMode == NmUiEditorCreateNew || XQServiceUtil::isEmbedded()) {
hgs
parents: 68
diff changeset
   613
            if (mContent->header()->toEdit()) {
hgs
parents: 68
diff changeset
   614
                mContent->header()->toEdit()->setFocus(Qt::OtherFocusReason);
hgs
parents: 68
diff changeset
   615
            }
hgs
parents: 68
diff changeset
   616
        }
hgs
parents: 68
diff changeset
   617
        else
hgs
parents: 68
diff changeset
   618
        {
hgs
parents: 68
diff changeset
   619
            if (mContent->editor()) {
hgs
parents: 68
diff changeset
   620
                mContent->editor()->setFocus(Qt::OtherFocusReason);
hgs
parents: 68
diff changeset
   621
            }
hgs
parents: 68
diff changeset
   622
        }
hgs
parents: 68
diff changeset
   623
    }
hgs
parents: 68
diff changeset
   624
hgs
parents: 68
diff changeset
   625
    // Show VKB
hgs
parents: 68
diff changeset
   626
    QInputContext *ic = qApp->inputContext();
hgs
parents: 68
diff changeset
   627
hgs
parents: 68
diff changeset
   628
    if(ic) {
hgs
parents: 68
diff changeset
   629
        QEvent *event = new QEvent(QEvent::RequestSoftwareInputPanel);
hgs
parents: 68
diff changeset
   630
        ic->filterEvent(event);
hgs
parents: 68
diff changeset
   631
        delete event;
hgs
parents: 68
diff changeset
   632
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
    Starting the message sending is handled here.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   637
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
void NmEditorView::startSending()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
{
43
hgs
parents: 40
diff changeset
   640
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   641
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
    // The message contents should be verified
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
    updateMessageWithEditorContents();
68
hgs
parents: 66
diff changeset
   644
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
    // verify addresses before sending
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
    QList<NmAddress> invalidAddresses;
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   647
    if (mMessage) {
47
hgs
parents: 44
diff changeset
   648
        NmUtilities::getRecipientsFromMessage(*mMessage, invalidAddresses, NmUtilities::NmInvalidAddress);
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   649
    }
68
hgs
parents: 66
diff changeset
   650
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
    if (invalidAddresses.count() > 0) {
68
hgs
parents: 66
diff changeset
   652
62
hgs
parents: 57
diff changeset
   653
        // Invalid addresses found, verify send from user.
hgs
parents: 57
diff changeset
   654
        // Set the first failing address to the note.
68
hgs
parents: 66
diff changeset
   655
        QString noteText =
62
hgs
parents: 57
diff changeset
   656
            HbParameterLengthLimiter(
hgs
parents: 57
diff changeset
   657
                "txt_mail_dialog_invalid_mail_address_send"
hgs
parents: 57
diff changeset
   658
                ).arg(invalidAddresses.at(0).address());
68
hgs
parents: 66
diff changeset
   659
40
hgs
parents: 23
diff changeset
   660
        if (mQueryDialog) {
hgs
parents: 23
diff changeset
   661
            delete mQueryDialog;
hgs
parents: 23
diff changeset
   662
            mQueryDialog = 0;
hgs
parents: 23
diff changeset
   663
        }
hgs
parents: 23
diff changeset
   664
        // Launch query dialog. Pressing "yes" will finalize the sending.
hgs
parents: 23
diff changeset
   665
        mQueryDialog = NmUtilities::displayQuestionNote(noteText,
hgs
parents: 23
diff changeset
   666
                                                        this,
hgs
parents: 23
diff changeset
   667
                                                        SLOT(invalidAddressQuery(HbAction*)));
hgs
parents: 23
diff changeset
   668
    }
hgs
parents: 23
diff changeset
   669
    else {
hgs
parents: 23
diff changeset
   670
        // no need to ask anything, just send
hgs
parents: 23
diff changeset
   671
        finalizeSending();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
    }
40
hgs
parents: 23
diff changeset
   673
}
hgs
parents: 23
diff changeset
   674
hgs
parents: 23
diff changeset
   675
/*!
hgs
parents: 23
diff changeset
   676
    Send the message after all checks have been done.
hgs
parents: 23
diff changeset
   677
*/
hgs
parents: 23
diff changeset
   678
void NmEditorView::finalizeSending()
hgs
parents: 23
diff changeset
   679
{
43
hgs
parents: 40
diff changeset
   680
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   681
40
hgs
parents: 23
diff changeset
   682
    QList<NmOperation *> preliminaryOperations;
43
hgs
parents: 40
diff changeset
   683
    if (mAddAttachmentOperation && mAddAttachmentOperation->isRunning()) {
hgs
parents: 40
diff changeset
   684
        preliminaryOperations.append(mAddAttachmentOperation);
hgs
parents: 40
diff changeset
   685
    }
hgs
parents: 40
diff changeset
   686
    if (mRemoveAttachmentOperation && mRemoveAttachmentOperation->isRunning()) {
hgs
parents: 40
diff changeset
   687
        preliminaryOperations.append(mRemoveAttachmentOperation);
hgs
parents: 40
diff changeset
   688
    }
40
hgs
parents: 23
diff changeset
   689
    // ownership of mMessage is transferred
hgs
parents: 23
diff changeset
   690
    // NmOperations are automatically deleted after completion
hgs
parents: 23
diff changeset
   691
    mUiEngine.sendMessage(mMessage, preliminaryOperations);
hgs
parents: 23
diff changeset
   692
    mMessage = NULL;
hgs
parents: 23
diff changeset
   693
    preliminaryOperations.clear();
43
hgs
parents: 40
diff changeset
   694
hgs
parents: 40
diff changeset
   695
    bool service = XQServiceUtil::isService();
hgs
parents: 40
diff changeset
   696
hgs
parents: 40
diff changeset
   697
    // If sending is started as a service, progress dialog needs to be shown
hgs
parents: 40
diff changeset
   698
    // so long that sending is finished otherwise we can close pop current view.
68
hgs
parents: 66
diff changeset
   699
    if (service && mStartParam && mStartParam->service() &&
44
hgs
parents: 43
diff changeset
   700
        mUiEngine.isSendingMessage()) {
43
hgs
parents: 40
diff changeset
   701
        connect(&mUiEngine, SIGNAL(sendOperationCompleted()),
hgs
parents: 40
diff changeset
   702
            this, SLOT(handleSendOperationCompleted()), Qt::UniqueConnection);
hgs
parents: 40
diff changeset
   703
hgs
parents: 40
diff changeset
   704
        // Construct and setup the wait dialog.
hgs
parents: 40
diff changeset
   705
        mServiceSendingDialog = new HbProgressDialog(HbProgressDialog::WaitDialog);
hgs
parents: 40
diff changeset
   706
        mServiceSendingDialog->setAttribute(Qt::WA_DeleteOnClose);
hgs
parents: 40
diff changeset
   707
        mServiceSendingDialog->setText(hbTrId("txt_mail_shareui_sending_please_wait"));
hgs
parents: 40
diff changeset
   708
        connect(mServiceSendingDialog, SIGNAL(cancelled()),
hgs
parents: 40
diff changeset
   709
            this, SLOT(sendProgressDialogCancelled()));
hgs
parents: 40
diff changeset
   710
hgs
parents: 40
diff changeset
   711
        if (!XQServiceUtil::isEmbedded()) {
hgs
parents: 40
diff changeset
   712
            // Hide the application.
hgs
parents: 40
diff changeset
   713
            XQServiceUtil::toBackground(true);
hgs
parents: 40
diff changeset
   714
        }
hgs
parents: 40
diff changeset
   715
         // Display the wait dialog.
hgs
parents: 40
diff changeset
   716
         mServiceSendingDialog->setModal(true);
hgs
parents: 40
diff changeset
   717
         mServiceSendingDialog->setBackgroundFaded(true);
hgs
parents: 40
diff changeset
   718
         mServiceSendingDialog->show();
hgs
parents: 40
diff changeset
   719
    } else {
hgs
parents: 40
diff changeset
   720
        // Must use delayed editor view destruction so that query dialog
hgs
parents: 40
diff changeset
   721
        // (which has signaled this) gets time to complete.
hgs
parents: 40
diff changeset
   722
        QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection);
hgs
parents: 40
diff changeset
   723
    }
40
hgs
parents: 23
diff changeset
   724
}
hgs
parents: 23
diff changeset
   725
hgs
parents: 23
diff changeset
   726
/*!
hgs
parents: 23
diff changeset
   727
    Handle the user selection for invalid address query which was started by startSending.
hgs
parents: 23
diff changeset
   728
*/
hgs
parents: 23
diff changeset
   729
void NmEditorView::invalidAddressQuery(HbAction* action)
hgs
parents: 23
diff changeset
   730
{
43
hgs
parents: 40
diff changeset
   731
    NM_FUNCTION;
hgs
parents: 40
diff changeset
   732
hgs
parents: 40
diff changeset
   733
    HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
hgs
parents: 40
diff changeset
   734
    // The first action in dialogs action list is for the "Yes"-button.
hgs
parents: 40
diff changeset
   735
    if (action == dlg->actions().at(0)) {
40
hgs
parents: 23
diff changeset
   736
        finalizeSending();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   738
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
/*!
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   741
    This is called when the view's geometry size has been changed, eg. when VKB is opened/closed.
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   742
*/
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   743
void NmEditorView::resizeEvent(QGraphicsSceneResizeEvent *event)
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   744
{
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   745
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   746
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   747
    NmBaseView::resizeEvent(event);
68
hgs
parents: 66
diff changeset
   748
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   749
    emit sizeChanged();
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   750
}
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   751
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   752
/*!
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
    This is signalled by mMessageCreationOperation when message is created.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   754
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   755
void NmEditorView::messageCreated(int result)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   756
{
43
hgs
parents: 40
diff changeset
   757
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   758
    NM_TIMESTAMP("Editor opened.");
76
hgs
parents: 74
diff changeset
   759
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   760
    delete mMessage;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
    mMessage = NULL;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
43
hgs
parents: 40
diff changeset
   763
    // Close wait dialog here
hgs
parents: 40
diff changeset
   764
    if (mWaitDialog) {
hgs
parents: 40
diff changeset
   765
        mWaitDialog->close();
hgs
parents: 40
diff changeset
   766
    }
68
hgs
parents: 66
diff changeset
   767
44
hgs
parents: 43
diff changeset
   768
    if (result == NmNoError && mStartParam && mMessageCreationOperation) {
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
        NmUiEditorStartMode startMode = mStartParam->editorStartMode();
68
hgs
parents: 66
diff changeset
   770
hgs
parents: 66
diff changeset
   771
        // get message "again" from engine to update the message contents
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   772
        mMessage = mUiEngine.message(
68
hgs
parents: 66
diff changeset
   773
            mStartParam->mailboxId(),
hgs
parents: 66
diff changeset
   774
            mStartParam->folderId(),
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
            mMessageCreationOperation->getMessageId());
68
hgs
parents: 66
diff changeset
   776
hgs
parents: 66
diff changeset
   777
        fillEditorWithMessageContents();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   780
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   781
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   782
   Updates the message with the editor contents.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   783
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
void NmEditorView::updateMessageWithEditorContents()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
{
43
hgs
parents: 40
diff changeset
   786
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   787
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
    if (mMessage) {
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   789
        if (mContent && mContent->editor()) {
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
            NmMessagePart* bodyPart = mMessage->htmlBodyPart();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   791
            if (bodyPart) {
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   792
                bodyPart->setTextContent(mContent->editor()->toHtml(), NmContentTypeTextHtml);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   794
            bodyPart = mMessage->plainTextBodyPart();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   795
            if (bodyPart) {
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   796
                bodyPart->setTextContent(mContent->editor()->toPlainText(), NmContentTypeTextPlain);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   797
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   798
        }
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   799
        if (mContent && mContent->header() ) {
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   800
            if (mContent->header()->subjectEdit()) {
74
hgs
parents: 68
diff changeset
   801
                mMessage->envelope().setSubject(mContent->header()->subjectEdit()->text());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   802
            }
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   803
            if (mContent->header()->toEdit()) {
74
hgs
parents: 68
diff changeset
   804
                mMessage->envelope().setToRecipients(
hgs
parents: 68
diff changeset
   805
                    mContent->header()->toEdit()->emailAddressList());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   806
            }
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   807
            if (mContent->header()->ccEdit()) {
74
hgs
parents: 68
diff changeset
   808
                mMessage->envelope().setCcRecipients(
hgs
parents: 68
diff changeset
   809
                    mContent->header()->ccEdit()->emailAddressList());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   810
            }
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   811
            if (mContent->header()->bccEdit()) {
74
hgs
parents: 68
diff changeset
   812
                mMessage->envelope().setBccRecipients(
hgs
parents: 68
diff changeset
   813
                    mContent->header()->bccEdit()->emailAddressList());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   814
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   815
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   816
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   817
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   818
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   819
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   820
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   821
    Updates the message with the editor contents. Called only once when the
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   822
    editor is launched.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   823
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   824
void NmEditorView::fillEditorWithMessageContents()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   825
{
43
hgs
parents: 40
diff changeset
   826
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
   827
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   828
    if (!mStartParam || !mMessage || !mContent) {
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   829
        return;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   830
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   831
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   832
    NmMessageEnvelope messageEnvelope(mMessage->envelope());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   833
    bool useStartParam(false);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   834
44
hgs
parents: 43
diff changeset
   835
    NmUiEditorStartMode editorStartMode = mStartParam->editorStartMode();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   836
44
hgs
parents: 43
diff changeset
   837
    if (editorStartMode == NmUiEditorMailto) {
hgs
parents: 43
diff changeset
   838
        // Retrieve the message header data e.g. recipients from mStartParam.
68
hgs
parents: 66
diff changeset
   839
        useStartParam = true;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   840
    }
68
hgs
parents: 66
diff changeset
   841
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   842
    // Set recipients (to, cc and bcc).
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   843
    QString toAddressesString;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   844
    QString ccAddressesString;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   845
    QString bccAddressesString;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   846
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   847
    if (useStartParam) {
68
hgs
parents: 66
diff changeset
   848
        QList<NmAddress *> toAddressList = mStartParam->mailtoAddressList();
hgs
parents: 66
diff changeset
   849
        QList<NmAddress *> ccAddressList = mStartParam->ccAddressList();
hgs
parents: 66
diff changeset
   850
        QList<NmAddress *> bccAddressList = mStartParam->bccAddressList();
hgs
parents: 66
diff changeset
   851
        toAddressesString = addressListToString(toAddressList);
hgs
parents: 66
diff changeset
   852
        ccAddressesString = addressListToString(ccAddressList);
hgs
parents: 66
diff changeset
   853
        bccAddressesString = addressListToString(bccAddressList);
76
hgs
parents: 74
diff changeset
   854
        // Also add recipients added for example from send service
hgs
parents: 74
diff changeset
   855
        // interface to recipient line edits.
68
hgs
parents: 66
diff changeset
   856
        mContent->header()->toEdit()->addContacts(toAddressList);
hgs
parents: 66
diff changeset
   857
        mContent->header()->ccEdit()->addContacts(ccAddressList);
hgs
parents: 66
diff changeset
   858
        mContent->header()->bccEdit()->addContacts(bccAddressList);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   859
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   860
    else {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   861
        toAddressesString = addressListToString(messageEnvelope.toRecipients());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   862
        ccAddressesString = addressListToString(messageEnvelope.ccRecipients());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   863
        bccAddressesString = addressListToString(messageEnvelope.bccRecipients());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   864
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   865
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   866
    mContent->header()->toEdit()->setPlainText(toAddressesString);
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   867
    mContent->header()->ccEdit()->setPlainText(ccAddressesString);
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   868
    mContent->header()->bccEdit()->setPlainText(bccAddressesString);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   869
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   870
    if (ccAddressesString.length() || bccAddressesString.length()) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   871
        // Since cc or/and bcc recipients exist, expand the group box to display
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   872
        // the addresses by expanding the group box.
62
hgs
parents: 57
diff changeset
   873
        mCcBccFieldVisible = true;
hgs
parents: 57
diff changeset
   874
        mHeaderWidget->setFieldVisibility(mCcBccFieldVisible);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   875
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   876
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   877
    // Set subject.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   878
    if (useStartParam) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   879
        QString *subject = mStartParam->subject();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   880
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   881
        if (subject) {
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   882
            mContent->header()->subjectEdit()->setPlainText(*subject);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   883
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   884
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   885
    else {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   886
        // Construct the subject field.
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   887
        mContent->header()->subjectEdit()->setPlainText(
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   888
            addSubjectPrefix(editorStartMode, messageEnvelope.subject()));
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   889
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   890
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   891
    // Set priority.
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   892
    if (editorStartMode==NmUiEditorReply || editorStartMode==NmUiEditorReplyAll) {
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   893
        //Clear the importance flag. Replied messages dont keep the importance
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   894
        setPriority(NmActionResponseCommandNone);
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
   895
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   896
    mHeaderWidget->setPriority(messageEnvelope.priority());
68
hgs
parents: 66
diff changeset
   897
62
hgs
parents: 57
diff changeset
   898
    NmMessage *originalMessage = NULL;
68
hgs
parents: 66
diff changeset
   899
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   900
    // Set the message body.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   901
    if (editorStartMode==NmUiEditorReply||
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   902
        editorStartMode==NmUiEditorReplyAll||
44
hgs
parents: 43
diff changeset
   903
        editorStartMode==NmUiEditorForward||
hgs
parents: 43
diff changeset
   904
        editorStartMode==NmUiEditorFromDrafts){
43
hgs
parents: 40
diff changeset
   905
hgs
parents: 40
diff changeset
   906
        // Use the body from the original message.
68
hgs
parents: 66
diff changeset
   907
        originalMessage = mUiEngine.message(mStartParam->mailboxId(),
hgs
parents: 66
diff changeset
   908
                                            mStartParam->folderId(),
62
hgs
parents: 57
diff changeset
   909
                                            mStartParam->messageId());
43
hgs
parents: 40
diff changeset
   910
hgs
parents: 40
diff changeset
   911
        if (originalMessage) {
hgs
parents: 40
diff changeset
   912
            NmMessagePart *plainPart = originalMessage->plainTextBodyPart();
hgs
parents: 40
diff changeset
   913
hgs
parents: 40
diff changeset
   914
            if (plainPart) {
hgs
parents: 40
diff changeset
   915
                mUiEngine.contentToMessagePart(originalMessage->envelope().mailboxId(),
hgs
parents: 40
diff changeset
   916
                                               originalMessage->envelope().folderId(),
hgs
parents: 40
diff changeset
   917
                                               originalMessage->envelope().messageId(),
hgs
parents: 40
diff changeset
   918
                                               *plainPart);
hgs
parents: 40
diff changeset
   919
            }
hgs
parents: 40
diff changeset
   920
hgs
parents: 40
diff changeset
   921
            NmMessagePart *htmlPart = originalMessage->htmlBodyPart();
hgs
parents: 40
diff changeset
   922
hgs
parents: 40
diff changeset
   923
            if (htmlPart) {
hgs
parents: 40
diff changeset
   924
                mUiEngine.contentToMessagePart(originalMessage->envelope().mailboxId(),
hgs
parents: 40
diff changeset
   925
                                               originalMessage->envelope().folderId(),
hgs
parents: 40
diff changeset
   926
                                               originalMessage->envelope().messageId(),
hgs
parents: 40
diff changeset
   927
                                               *htmlPart);
hgs
parents: 40
diff changeset
   928
            }
hgs
parents: 40
diff changeset
   929
hgs
parents: 40
diff changeset
   930
        }
hgs
parents: 40
diff changeset
   931
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   932
    }
68
hgs
parents: 66
diff changeset
   933
62
hgs
parents: 57
diff changeset
   934
    QString *signature = NULL;
hgs
parents: 57
diff changeset
   935
    // return value is not relevant here
hgs
parents: 57
diff changeset
   936
    mUiEngine.getSignature(mStartParam->mailboxId(), signature);
68
hgs
parents: 66
diff changeset
   937
62
hgs
parents: 57
diff changeset
   938
    mContent->setBodyContent(editorStartMode, originalMessage, signature);
hgs
parents: 57
diff changeset
   939
hgs
parents: 57
diff changeset
   940
    delete signature;
hgs
parents: 57
diff changeset
   941
    signature = NULL;
hgs
parents: 57
diff changeset
   942
hgs
parents: 57
diff changeset
   943
    delete originalMessage;
hgs
parents: 57
diff changeset
   944
    originalMessage = NULL;
hgs
parents: 57
diff changeset
   945
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   946
    // Get list of attachments from the message and set those into UI attachment list
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   947
    QList<NmMessagePart*> attachments;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   948
    mMessage->attachmentList(attachments);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   949
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   950
    for (int i=0; i<attachments.count(); i++) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   951
        mHeaderWidget->addAttachment(
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   952
            attachments[i]->attachmentName(),
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   953
            QString::number(attachments[i]->size()),
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   954
            attachments[i]->partId());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   955
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   956
44
hgs
parents: 43
diff changeset
   957
    // Attach passed files to the message.
hgs
parents: 43
diff changeset
   958
    QStringList *fileList = mStartParam->attachmentList();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   959
44
hgs
parents: 43
diff changeset
   960
    if (fileList) {
hgs
parents: 43
diff changeset
   961
        addAttachments(*fileList);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   962
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   963
68
hgs
parents: 66
diff changeset
   964
    if (mStartParam->bodyText().length()) {
hgs
parents: 66
diff changeset
   965
        // If the content is not HTML, use it as plain text
hgs
parents: 66
diff changeset
   966
        if (mStartParam->bodyMimeType().compare(NmMimeTypeHtml, Qt::CaseInsensitive)) {
hgs
parents: 66
diff changeset
   967
			mContent->editor()->setPlainText(mStartParam->bodyText());
hgs
parents: 66
diff changeset
   968
		}
hgs
parents: 66
diff changeset
   969
		else {
hgs
parents: 66
diff changeset
   970
		    mContent->editor()->setHtml(mStartParam->bodyText());
hgs
parents: 66
diff changeset
   971
		}
hgs
parents: 66
diff changeset
   972
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   973
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   974
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   975
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   976
/*!
68
hgs
parents: 66
diff changeset
   977
    Constructs the toolbar according to the actions received from the extension
hgs
parents: 66
diff changeset
   978
    manager.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   979
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   980
void NmEditorView::createToolBar()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   981
{
43
hgs
parents: 40
diff changeset
   982
    NM_FUNCTION;
76
hgs
parents: 74
diff changeset
   983
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   984
    HbToolBar *tb = toolBar();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   985
    NmUiExtensionManager &extMngr = mApplication.extManager();
68
hgs
parents: 66
diff changeset
   986
hgs
parents: 66
diff changeset
   987
    if (!tb || !mStartParam) {
hgs
parents: 66
diff changeset
   988
        return;
hgs
parents: 66
diff changeset
   989
    }
hgs
parents: 66
diff changeset
   990
hgs
parents: 66
diff changeset
   991
    tb->clearActions();
hgs
parents: 66
diff changeset
   992
hgs
parents: 66
diff changeset
   993
    NmActionRequest request(this,
hgs
parents: 66
diff changeset
   994
                            NmActionToolbar,
hgs
parents: 66
diff changeset
   995
                            NmActionContextViewEditor,
hgs
parents: 66
diff changeset
   996
                            NmActionContextDataNone,
hgs
parents: 66
diff changeset
   997
                            mStartParam->mailboxId(),
76
hgs
parents: 74
diff changeset
   998
                            mStartParam->folderId());
68
hgs
parents: 66
diff changeset
   999
    QList<NmAction *> list;
hgs
parents: 66
diff changeset
  1000
    extMngr.getActions(request, list);
hgs
parents: 66
diff changeset
  1001
hgs
parents: 66
diff changeset
  1002
    for (int i = 0; i < list.count(); i++) {
hgs
parents: 66
diff changeset
  1003
        tb->addAction(list[i]);
62
hgs
parents: 57
diff changeset
  1004
68
hgs
parents: 66
diff changeset
  1005
        // If action has NmSendable condition, it is shown only when send
hgs
parents: 66
diff changeset
  1006
        // action is available, i.e. when at least one recipient field has
hgs
parents: 66
diff changeset
  1007
        // data.
hgs
parents: 66
diff changeset
  1008
        if (list[i]->availabilityCondition() == NmAction::NmSendable) {
hgs
parents: 66
diff changeset
  1009
            list[i]->setEnabled(false);
hgs
parents: 66
diff changeset
  1010
        }
hgs
parents: 66
diff changeset
  1011
        else if (list[i]->availabilityCondition() == NmAction::NmAttachable &&
hgs
parents: 66
diff changeset
  1012
                 mTBExtnContentWidget) {
hgs
parents: 66
diff changeset
  1013
            // Setup the toolbar extension for attachments.
hgs
parents: 66
diff changeset
  1014
            HbToolBarExtension* extension = new HbToolBarExtension();
hgs
parents: 66
diff changeset
  1015
            extension->setParent(this);
hgs
parents: 66
diff changeset
  1016
            list[i]->setToolBarExtension(extension);
hgs
parents: 66
diff changeset
  1017
hgs
parents: 66
diff changeset
  1018
            mTBExtnContentWidget->addItem(hbTrId("txt_mail_list_photo"));
hgs
parents: 66
diff changeset
  1019
            mTBExtnContentWidget->addItem(hbTrId("txt_mail_list_sound"));
hgs
parents: 66
diff changeset
  1020
            mTBExtnContentWidget->addItem(hbTrId("txt_mail_list_video"));
hgs
parents: 66
diff changeset
  1021
            mTBExtnContentWidget->addItem(hbTrId("txt_mail_list_other"));
hgs
parents: 66
diff changeset
  1022
            mTBExtnContentWidget->addItem(hbTrId("txt_mail_list_new_photo"));
hgs
parents: 66
diff changeset
  1023
            mTBExtnContentWidget->addItem(hbTrId("txt_mail_list_new_video"));
hgs
parents: 66
diff changeset
  1024
hgs
parents: 66
diff changeset
  1025
            HbListViewItem *listView = mTBExtnContentWidget->listItemPrototype();
hgs
parents: 66
diff changeset
  1026
            HbFrameBackground frame(NmPopupListFrame, HbFrameDrawer::NinePieces);
hgs
parents: 66
diff changeset
  1027
            listView->setDefaultFrame(frame);
76
hgs
parents: 74
diff changeset
  1028
68
hgs
parents: 66
diff changeset
  1029
            extension->setContentWidget(mTBExtnContentWidget);
hgs
parents: 66
diff changeset
  1030
hgs
parents: 66
diff changeset
  1031
            connect(mTBExtnContentWidget, SIGNAL(activated(HbListWidgetItem*)),
hgs
parents: 66
diff changeset
  1032
                    extension, SLOT(close()));
hgs
parents: 66
diff changeset
  1033
hgs
parents: 66
diff changeset
  1034
            mAttachmentPicker = new NmAttachmentPicker(this);
76
hgs
parents: 74
diff changeset
  1035
68
hgs
parents: 66
diff changeset
  1036
            connect(mAttachmentPicker, SIGNAL(attachmentsFetchOk(const QVariant &)),
hgs
parents: 66
diff changeset
  1037
                    this, SLOT(onAttachmentReqCompleted(const QVariant &)));
hgs
parents: 66
diff changeset
  1038
            connect(this, SIGNAL(titleChanged(QString)),
hgs
parents: 66
diff changeset
  1039
                    mAttachmentPicker, SLOT(setTitle(QString)));
76
hgs
parents: 74
diff changeset
  1040
            connect(mTBExtnContentWidget, SIGNAL(activated(HbListWidgetItem*)),
68
hgs
parents: 66
diff changeset
  1041
                    mAttachmentPicker, SLOT (selectFetcher(HbListWidgetItem*)));
hgs
parents: 66
diff changeset
  1042
        }
76
hgs
parents: 74
diff changeset
  1043
    } // for ()
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1044
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1045
68
hgs
parents: 66
diff changeset
  1046
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1047
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1048
    createOptionsMenu. Functions asks menu commands from extension
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1049
    to be added to options menu.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1050
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1051
void NmEditorView::createOptionsMenu()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1052
{
43
hgs
parents: 40
diff changeset
  1053
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1054
40
hgs
parents: 23
diff changeset
  1055
    menu()->clearActions();
hgs
parents: 23
diff changeset
  1056
hgs
parents: 23
diff changeset
  1057
	// Create CC/BCC options menu object
hgs
parents: 23
diff changeset
  1058
    if (mCcBccFieldVisible) {
hgs
parents: 23
diff changeset
  1059
        menu()->addAction(hbTrId("txt_mail_opt_hide_cc_bcc"), this, SLOT(switchCcBccFieldVisibility()));
hgs
parents: 23
diff changeset
  1060
    }
hgs
parents: 23
diff changeset
  1061
    else {
hgs
parents: 23
diff changeset
  1062
        menu()->addAction(hbTrId("txt_mail_opt_show_cc_bcc"), this, SLOT(switchCcBccFieldVisibility()));
hgs
parents: 23
diff changeset
  1063
    }
hgs
parents: 23
diff changeset
  1064
hgs
parents: 23
diff changeset
  1065
	// Create Priority options menu object
74
hgs
parents: 68
diff changeset
  1066
    HbMenu *prioritySubMenu = new HbMenu();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1067
    NmActionRequest request(this, NmActionOptionsMenu, NmActionContextViewEditor,
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1068
            NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(),
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1069
            mStartParam->messageId());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1070
    NmUiExtensionManager &extMngr = mApplication.extManager();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1071
    QList<NmAction*> list;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1072
    extMngr.getActions(request, list);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1073
    for (int i = 0; i < list.count(); i++) {
57
hgs
parents: 56
diff changeset
  1074
        // check what priority has already been selected and hide it from options menu
hgs
parents: 56
diff changeset
  1075
        if (!list[i]->objectName().contains(mHiddenPriorityName)) {
74
hgs
parents: 68
diff changeset
  1076
	        prioritySubMenu->addAction(list[i]);
57
hgs
parents: 56
diff changeset
  1077
        }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1078
    }
74
hgs
parents: 68
diff changeset
  1079
    prioritySubMenu->setObjectName("editorPrioritySubMenu");
hgs
parents: 68
diff changeset
  1080
    prioritySubMenu->setTitle(hbTrId("txt_mail_opt_add_priority"));
hgs
parents: 68
diff changeset
  1081
    menu()->addMenu(prioritySubMenu);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1082
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1083
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1084
/*!
40
hgs
parents: 23
diff changeset
  1085
    Show or hide Cc field
hgs
parents: 23
diff changeset
  1086
*/
hgs
parents: 23
diff changeset
  1087
void NmEditorView::switchCcBccFieldVisibility()
hgs
parents: 23
diff changeset
  1088
{
43
hgs
parents: 40
diff changeset
  1089
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1090
40
hgs
parents: 23
diff changeset
  1091
    if (mCcBccFieldVisible) {
hgs
parents: 23
diff changeset
  1092
    	mCcBccFieldVisible = false;
hgs
parents: 23
diff changeset
  1093
    }
hgs
parents: 23
diff changeset
  1094
    else {
hgs
parents: 23
diff changeset
  1095
    	mCcBccFieldVisible = true;
hgs
parents: 23
diff changeset
  1096
    }
hgs
parents: 23
diff changeset
  1097
    mHeaderWidget->setFieldVisibility( mCcBccFieldVisible );
hgs
parents: 23
diff changeset
  1098
}
hgs
parents: 23
diff changeset
  1099
hgs
parents: 23
diff changeset
  1100
/*!
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1101
    handleActionCommand. From NmActionObserver, extension manager calls this
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1102
    call to handle menu command in the UI.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1103
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1104
void NmEditorView::handleActionCommand(NmActionResponse &actionResponse)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1105
{
43
hgs
parents: 40
diff changeset
  1106
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1107
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1108
    NmActionResponseCommand responseCommand = actionResponse.responseCommand();
68
hgs
parents: 66
diff changeset
  1109
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1110
    // Handle options menu
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1111
    if (actionResponse.menuType() == NmActionOptionsMenu) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1112
        setPriority(responseCommand);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1113
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1114
    else if (actionResponse.menuType() == NmActionToolbar) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1115
        switch (responseCommand) {
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1116
        case NmActionResponseCommandSendMail: {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1117
            // Just in case send mail would be somehow accessible during message creation or
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1118
            // outobox checking
43
hgs
parents: 40
diff changeset
  1119
            if (!mMessageCreationOperation || !mMessageCreationOperation->isRunning()) {
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1120
                startSending();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1121
            }
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1122
            break;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1123
        }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1124
        default:
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1125
            break;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1126
        }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1127
    }
40
hgs
parents: 23
diff changeset
  1128
    else if (actionResponse.menuType() == NmActionContextMenu) {
hgs
parents: 23
diff changeset
  1129
        switch (responseCommand) {
hgs
parents: 23
diff changeset
  1130
        case NmActionResponseCommandRemoveAttachment: {
hgs
parents: 23
diff changeset
  1131
            removeAttachmentTriggered();
hgs
parents: 23
diff changeset
  1132
            break;
hgs
parents: 23
diff changeset
  1133
        }
hgs
parents: 23
diff changeset
  1134
        case NmActionResponseCommandOpenAttachment: {
44
hgs
parents: 43
diff changeset
  1135
            openAttachmentTriggered(mSelectedAttachment);
40
hgs
parents: 23
diff changeset
  1136
            break;
hgs
parents: 23
diff changeset
  1137
        }
hgs
parents: 23
diff changeset
  1138
        default:
hgs
parents: 23
diff changeset
  1139
            break;
hgs
parents: 23
diff changeset
  1140
        }
hgs
parents: 23
diff changeset
  1141
    }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1142
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1143
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1144
/*!
43
hgs
parents: 40
diff changeset
  1145
    Slot. Cancelled sending progress dialog.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1146
*/
43
hgs
parents: 40
diff changeset
  1147
void NmEditorView::sendProgressDialogCancelled()
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1148
{
43
hgs
parents: 40
diff changeset
  1149
    // Must use delayed editor view destruction so that dialog
hgs
parents: 40
diff changeset
  1150
    // gets time to complete, closes also nmail.
hgs
parents: 40
diff changeset
  1151
    QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1152
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1153
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1154
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1155
   Sets all toolbar and VKB buttons dimmed state. All actions that have the
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1156
   availability condition NmSendable set, will be enabled/disabled.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1157
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1158
void NmEditorView::setButtonsDimming(bool enabled)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1159
{
43
hgs
parents: 40
diff changeset
  1160
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1161
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1162
    // Set the toolbar action states
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1163
    HbToolBar *tb = toolBar();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1164
    if (tb) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1165
        QList<QAction *> toolbarList = tb->actions();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1166
        int count = toolbarList.count();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1167
        for (int i = 0; i < count; i++) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1168
            NmAction *action = static_cast<NmAction *>(toolbarList[i]);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1169
            if (action->availabilityCondition() == NmAction::NmSendable) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1170
                action->setEnabled(enabled);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1171
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1172
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1173
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1174
        // Set the VKB action states
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1175
        // All editors of the view share the same action, so it is enough to set
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1176
        // this only to one of them.
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
  1177
        HbEditorInterface editorInterface(mContent->editor());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1178
        QList<HbAction *> vkbList = editorInterface.actions();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1179
        count = vkbList.count();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1180
        for (int i = 0; i < count; i++) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1181
            NmAction *action = static_cast<NmAction *>(vkbList[i]);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1182
            if (action->availabilityCondition() == NmAction::NmSendable) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1183
                action->setEnabled(enabled);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1184
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1185
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1186
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1187
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1188
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1189
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1190
    Initialize the Virtual Keyboard to show the "Send" button
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1191
    for all editors of the view.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1192
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1193
void NmEditorView::initializeVKB()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1194
{
43
hgs
parents: 40
diff changeset
  1195
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1196
44
hgs
parents: 43
diff changeset
  1197
    if (!mStartParam) {
hgs
parents: 43
diff changeset
  1198
        return;
hgs
parents: 43
diff changeset
  1199
    }
68
hgs
parents: 66
diff changeset
  1200
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1201
    NmActionRequest request(this, NmActionVKB, NmActionContextViewEditor,
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1202
         NmActionContextDataNone, mStartParam->mailboxId(), mStartParam->folderId() );
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1203
    NmUiExtensionManager &extMngr = mApplication.extManager();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1204
    if (&extMngr) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1205
        QList<NmAction *> list;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1206
        extMngr.getActions(request, list);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1207
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1208
        // VKB only supports one application key, but the responsibility of giving only one
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1209
        // action is left to the extension plugin. The rest are still attached to the VKB, but
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1210
        // they are not shown (unless VKB starts supporting more than one).
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1211
        for (int i = 0; i < list.count(); i++) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1212
            if( list[i]->availabilityCondition() == NmAction::NmSendable ) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1213
                list[i]->setEnabled(false);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1214
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1215
            list[i]->setIcon(NmIcons::getIcon(NmIcons::NmIconSend));
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1216
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1217
            // Link VKB to the action. This must be done to all
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1218
            // editors that show the button in VKB.
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
  1219
            HbEditorInterface editorInterface(mContent->editor());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1220
            editorInterface.addAction(list[i]);
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
  1221
            HbEditorInterface toEditorInterface(mContent->header()->toEdit());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1222
            toEditorInterface.addAction(list[i]);
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
  1223
            HbEditorInterface ccEditorInterface(mContent->header()->ccEdit());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1224
            ccEditorInterface.addAction(list[i]);
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
  1225
            HbEditorInterface bccEditorInterface(mContent->header()->bccEdit());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1226
            bccEditorInterface.addAction(list[i]);
48
10eaf342f539 201025_1
hgs
parents: 47
diff changeset
  1227
            HbEditorInterface subjectEditorInterface(mContent->header()->subjectEdit());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1228
            subjectEditorInterface.addAction(list[i]);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1229
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1230
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1231
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1232
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1233
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1234
    Set mailbox name to title
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1235
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1236
void NmEditorView::setMailboxName()
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1237
{
43
hgs
parents: 40
diff changeset
  1238
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1239
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1240
    if (mStartParam){
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1241
        NmMailboxMetaData *meta = mUiEngine.mailboxById(mStartParam->mailboxId());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1242
        if (meta){
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1243
            setTitle(meta->name());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1244
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1245
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1246
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1247
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1248
/*!
68
hgs
parents: 66
diff changeset
  1249
   Adds a prefix to the subject for reply or forward.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1250
   Strips other occurrences of the prefix from the beginning.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1251
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1252
QString NmEditorView::addSubjectPrefix( NmUiEditorStartMode startMode, const QString &subject )
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1253
{
43
hgs
parents: 40
diff changeset
  1254
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1255
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1256
    QString newSubject(subject.trimmed());
68
hgs
parents: 66
diff changeset
  1257
hgs
parents: 66
diff changeset
  1258
    if (startMode == NmUiEditorReply || startMode == NmUiEditorReplyAll ||
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1259
        startMode == NmUiEditorForward) {
68
hgs
parents: 66
diff changeset
  1260
        QString rePrefix(hbTrId("txt_mail_reply_subject_prefix"));
hgs
parents: 66
diff changeset
  1261
        QString fwPrefix(hbTrId("txt_mail_forward_subject_prefix"));
hgs
parents: 66
diff changeset
  1262
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1263
        // strip extra prefixes from beginning
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1264
        int rePrefixLength(rePrefix.length());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1265
        int fwPrefixLength(fwPrefix.length());
68
hgs
parents: 66
diff changeset
  1266
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1267
        bool startswithRe(newSubject.startsWith(rePrefix, Qt::CaseInsensitive));
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1268
        bool startswithFw(newSubject.startsWith(fwPrefix, Qt::CaseInsensitive));
68
hgs
parents: 66
diff changeset
  1269
hgs
parents: 66
diff changeset
  1270
        while (startswithRe || startswithFw) {
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1271
            if (startswithRe) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1272
                newSubject.remove(0,rePrefixLength);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1273
                newSubject = newSubject.trimmed();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1274
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1275
            else if (startswithFw) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1276
                newSubject.remove(0,fwPrefixLength);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1277
                newSubject = newSubject.trimmed();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1278
            }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1279
            startswithRe = newSubject.startsWith(rePrefix, Qt::CaseInsensitive);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1280
            startswithFw = newSubject.startsWith(fwPrefix, Qt::CaseInsensitive);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1281
        }
68
hgs
parents: 66
diff changeset
  1282
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1283
        if (startMode == NmUiEditorReply || startMode == NmUiEditorReplyAll) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1284
            newSubject = rePrefix + " " + newSubject;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1285
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1286
        else if (startMode == NmUiEditorForward) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1287
            newSubject = fwPrefix + " " + newSubject;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1288
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1289
    }
68
hgs
parents: 66
diff changeset
  1290
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1291
    return newSubject;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1292
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1293
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1294
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1295
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1296
    This slot is called when 'attachment picker' request has been performed succesfully
68
hgs
parents: 66
diff changeset
  1297
    Parameter 'value' contains file currently one file name but later list of the files.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1298
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1299
void NmEditorView::onAttachmentReqCompleted(const QVariant &value)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1300
{
43
hgs
parents: 40
diff changeset
  1301
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1302
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1303
    //temporary fix for music picker back button:
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1304
    //it shouldn't emit requestOk signal when nothing is selected
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1305
	if (value.canConvert<QStringList>()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1306
	    QStringList list = value.toStringList();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1307
        if (!list.at(0).isEmpty()) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1308
            addAttachments(list);
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1309
        }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1310
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1311
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1312
43
hgs
parents: 40
diff changeset
  1313
/*!
hgs
parents: 40
diff changeset
  1314
    This slot is called when 'attachment picker' request has been unsuccesfull
hgs
parents: 40
diff changeset
  1315
    Parameter 'errorCode' is the error code returned by the service
hgs
parents: 40
diff changeset
  1316
    Parameter 'errorMessage' is the error message returned by the service
hgs
parents: 40
diff changeset
  1317
*/
hgs
parents: 40
diff changeset
  1318
void NmEditorView::onAttachmentsFetchError(int errorCode, const QString& errorMessage)
hgs
parents: 40
diff changeset
  1319
{
hgs
parents: 40
diff changeset
  1320
    NM_FUNCTION;
44
hgs
parents: 43
diff changeset
  1321
    Q_UNUSED(errorCode);
hgs
parents: 43
diff changeset
  1322
    Q_UNUSED(errorMessage);
43
hgs
parents: 40
diff changeset
  1323
    NM_COMMENT(QString("Error code: %1").arg(errorCode));
hgs
parents: 40
diff changeset
  1324
    NM_COMMENT(QString("Error message: %1").arg(errorMessage));
hgs
parents: 40
diff changeset
  1325
}
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1326
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1327
/*!
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1328
    Closes the wait dialog if one exists.
68
hgs
parents: 66
diff changeset
  1329
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1330
    This slot is called if the mail application has been started as a service
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1331
    and is about to close. Closing the application while still sending a message
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1332
    may cause unwanted cancelling of the operation.
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1333
*/
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1334
void NmEditorView::handleSendOperationCompleted()
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1335
{
43
hgs
parents: 40
diff changeset
  1336
    NM_FUNCTION;
hgs
parents: 40
diff changeset
  1337
hgs
parents: 40
diff changeset
  1338
    if (mServiceSendingDialog) {
hgs
parents: 40
diff changeset
  1339
        mServiceSendingDialog->close();
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1340
    }
43
hgs
parents: 40
diff changeset
  1341
    // Must use delayed editor view destruction so that dialog
hgs
parents: 40
diff changeset
  1342
    // gets time to complete, closes also nmail.
hgs
parents: 40
diff changeset
  1343
    QMetaObject::invokeMethod(&mApplication, "popView", Qt::QueuedConnection);
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1344
}
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1345
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1346
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1347
    Add list of attachments
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1348
*/
68
hgs
parents: 66
diff changeset
  1349
void NmEditorView::addAttachments(const QStringList& fileNames)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1350
{
43
hgs
parents: 40
diff changeset
  1351
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1352
    NM_TIMESTAMP("Add attachments.");
76
hgs
parents: 74
diff changeset
  1353
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1354
    // Add attachment name into UI
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1355
    foreach (QString fileName, fileNames)  {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1356
        // At this phase attachment size and nmid are not known
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1357
        mHeaderWidget->addAttachment(fileName, QString("0"), NmId(0));
43
hgs
parents: 40
diff changeset
  1358
        NM_COMMENT(fileName);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1359
    }
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1360
    //  Cancel previous operation if it's not running.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1361
    if (mAddAttachmentOperation) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1362
        if (!mAddAttachmentOperation->isRunning()) {
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1363
            mAddAttachmentOperation->cancelOperation();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1364
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1365
    }
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1366
    // Start operation to attach file or list of files into mail message.
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1367
    // This will also copy files into message store.
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1368
    mAddAttachmentOperation = mUiEngine.addAttachments(*mMessage, fileNames);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1369
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1370
    if (mAddAttachmentOperation) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1371
        enableToolBarAttach(false);
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1372
        // Signal to inform completion of one attachment
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1373
        connect(mAddAttachmentOperation,
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1374
                SIGNAL(operationPartCompleted(const QString &, const NmId &, int)),
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1375
                this,
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1376
                SLOT(oneAttachmentAdded(const QString &, const NmId &, int)));
68
hgs
parents: 66
diff changeset
  1377
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1378
        // Signal to inform the completion of the whole operation
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1379
        connect(mAddAttachmentOperation,
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1380
                SIGNAL(operationCompleted(int)),
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1381
                this,
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1382
                SLOT(allAttachmentsAdded(int)));
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1383
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1384
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1385
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1386
/*!
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1387
    This slot is called to create context menu when attachment has been selected
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1388
    from UI by longpress.
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1389
*/
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1390
void NmEditorView::attachmentLongPressed(NmId attachmentPartId, QPointF point)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1391
{
43
hgs
parents: 40
diff changeset
  1392
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1393
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1394
    // Store id of the attachment to be removed into member.
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1395
    // It is used by removeAttachmentTriggered later if 'remove' selected.
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1396
    mSelectedAttachment = attachmentPartId;
68
hgs
parents: 66
diff changeset
  1397
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1398
    if (!mAttachmentListContextMenu) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1399
        mAttachmentListContextMenu = new HbMenu();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1400
    }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1401
    mAttachmentListContextMenu->clearActions();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1402
    NmActionRequest request(this, NmActionContextMenu, NmActionContextViewEditor,
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1403
        NmActionContextDataMessage, mStartParam->mailboxId(), mStartParam->folderId(),
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1404
        mStartParam->messageId());
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1405
    NmUiExtensionManager &extensionManager = mApplication.extManager();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1406
    if (&extensionManager) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1407
        QList<NmAction*> actionList;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1408
        extensionManager.getActions(request, actionList);
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1409
        for (int i = 0; i < actionList.count(); ++i) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1410
            mAttachmentListContextMenu->addAction(actionList[i]);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1411
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1412
    }
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1413
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1414
    // Add menu position check here, so that it does not go outside of the screen
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1415
    QPointF menuPos(point.x(),point.y());
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1416
    mAttachmentListContextMenu->setPreferredPos(menuPos);
40
hgs
parents: 23
diff changeset
  1417
    mAttachmentListContextMenu->open();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1418
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1419
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1420
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1421
    This is signalled by mAddAttachmentOperation when the operation is
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1422
    completed for one attachment.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1423
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1424
void NmEditorView::oneAttachmentAdded(const QString &fileName, const NmId &msgPartId, int result)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1425
{
43
hgs
parents: 40
diff changeset
  1426
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1427
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1428
    if (result == NmNoError && mMessage) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1429
        // Need to get the message again because new attachment part has been added.
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1430
        NmId mailboxId = mMessage->envelope().mailboxId();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1431
        NmId folderId = mMessage->envelope().folderId();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1432
        NmId msgId = mMessage->envelope().messageId();
68
hgs
parents: 66
diff changeset
  1433
        NmMessagePriority messagePriority = mMessage->envelope().priority();
hgs
parents: 66
diff changeset
  1434
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1435
        delete mMessage;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1436
        mMessage = NULL;
68
hgs
parents: 66
diff changeset
  1437
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1438
        mMessage = mUiEngine.message(mailboxId, folderId, msgId);
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1439
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1440
        if (mMessage) {
49
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1441
            mMessage->envelope().setPriority(messagePriority);
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1442
            mMessage->envelope().setHasAttachments(true);
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1443
            // Get attachment list from the message
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1444
            QList<NmMessagePart*> attachmentList;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1445
            mMessage->attachmentList(attachmentList);
68
hgs
parents: 66
diff changeset
  1446
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1447
            // Search newly added attachment from the list
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1448
            for (int i=0; i<attachmentList.count(); i++) {
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1449
                if (attachmentList[i]->partId() == msgPartId) {
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1450
                    // Get attachment file size and set it into UI
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1451
                    mHeaderWidget->setAttachmentParameters(fileName,
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1452
                        msgPartId,
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1453
                        QString().setNum(attachmentList[i]->size()),
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1454
                        result);
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1455
                }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1456
            }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1457
        }
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1458
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1459
    else {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1460
        // Attachment adding failed. Show an error note and remove from UI attachment list.
43
hgs
parents: 40
diff changeset
  1461
        NM_ERROR(1,QString("nmailui: attachment adding into message failed: %1").arg(fileName));
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1462
        mHeaderWidget->removeAttachment(fileName);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1463
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1464
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1465
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1466
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1467
    This is signalled by mAddAttachmentOperation when the operation is
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1468
    completed totally.
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1469
*/
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1470
void NmEditorView::allAttachmentsAdded(int result)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1471
{
43
hgs
parents: 40
diff changeset
  1472
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1473
    NM_TIMESTAMP("All attachments added.");
76
hgs
parents: 74
diff changeset
  1474
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1475
    enableToolBarAttach(true);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1476
    if (result != NmNoError) {
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1477
        NmUtilities::displayWarningNote(hbTrId("txt_mail_dialog_unable_to_add_attachment"));
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1478
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1479
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1480
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1481
/*!
68
hgs
parents: 66
diff changeset
  1482
   Sets priority for the message object that is being edited
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1483
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1484
void NmEditorView::setPriority(NmActionResponseCommand priority)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1485
{
43
hgs
parents: 40
diff changeset
  1486
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1487
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1488
    mHeaderWidget->setPriority(priority);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1489
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1490
    if (mMessage) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1491
        NmMessagePriority messagePriority = NmMessagePriorityNormal;
57
hgs
parents: 56
diff changeset
  1492
        mHiddenPriorityName = NmPriorityNormal;
68
hgs
parents: 66
diff changeset
  1493
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1494
        if (priority == NmActionResponseCommandPriorityHigh) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1495
            messagePriority = NmMessagePriorityHigh;
57
hgs
parents: 56
diff changeset
  1496
            mHiddenPriorityName = NmPriorityHigh;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1497
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1498
        else if (priority == NmActionResponseCommandPriorityLow) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1499
            messagePriority = NmMessagePriorityLow;
57
hgs
parents: 56
diff changeset
  1500
            mHiddenPriorityName = NmPriorityLow;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1501
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1502
        mMessage->envelope().setPriority(messagePriority);
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1503
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1504
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1505
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1506
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1507
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1508
    Extracts the addresses from the given list into a string separated with a
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1509
    delimiter.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1510
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1511
    \param list The list containing the addresses.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1512
    \return String containing the addresses.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1513
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1514
QString NmEditorView::addressListToString(const QList<NmAddress*> &list) const
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1515
{
43
hgs
parents: 40
diff changeset
  1516
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1517
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1518
    QString addressesString;
74
hgs
parents: 68
diff changeset
  1519
    foreach (NmAddress *nmAddress,list) {
hgs
parents: 68
diff changeset
  1520
        if (nmAddress->displayName().length() > 0) {
hgs
parents: 68
diff changeset
  1521
            addressesString += nmAddress->displayName();
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1522
        }
68
hgs
parents: 66
diff changeset
  1523
        else {
74
hgs
parents: 68
diff changeset
  1524
            addressesString += nmAddress->address();
68
hgs
parents: 66
diff changeset
  1525
        }
74
hgs
parents: 68
diff changeset
  1526
        addressesString += NmDelimiter;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1527
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1528
    return addressesString;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1529
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1530
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1531
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1532
/*!
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1533
    Extracts the addresses from the given list into a string separated with a
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1534
    delimiter.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1535
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1536
    \param list The list containing the addresses.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1537
    \return String containing the addresses.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1538
*/
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1539
QString NmEditorView::addressListToString(const QList<NmAddress> &list) const
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1540
{
43
hgs
parents: 40
diff changeset
  1541
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1542
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1543
    QString addressesString;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1544
    QList<NmAddress>::const_iterator i = list.constBegin();
68
hgs
parents: 66
diff changeset
  1545
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1546
    while (i != list.constEnd()) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1547
        if (i > list.constBegin()) {
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1548
            // Add the delimiter.
47
hgs
parents: 44
diff changeset
  1549
            addressesString += NmDelimiter;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1550
        }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1551
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1552
        addressesString += (*i).address();
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1553
        ++i;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1554
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1555
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1556
    return addressesString;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1557
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1558
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1559
/*!
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1560
    This slot is called when 'remove' is selected from attachment list context menu.
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1561
*/
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1562
void NmEditorView::removeAttachmentTriggered()
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1563
{
43
hgs
parents: 40
diff changeset
  1564
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1565
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1566
    // Cancel will delete previous operation
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1567
    if (mRemoveAttachmentOperation) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1568
        if (!mRemoveAttachmentOperation->isRunning()) {
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1569
            mRemoveAttachmentOperation->cancelOperation();
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1570
        }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1571
    }
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1572
    // Remove from UI
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1573
    mHeaderWidget->removeAttachment(mSelectedAttachment);
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1574
    // Remove from message store
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1575
    mRemoveAttachmentOperation = mUiEngine.removeAttachment(*mMessage, mSelectedAttachment);
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1576
    if (mRemoveAttachmentOperation) {
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1577
        // Signal to inform the remove operation completion
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1578
        connect(mRemoveAttachmentOperation,
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1579
                SIGNAL(operationCompleted(int)),
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1580
                this,
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1581
                SLOT(attachmentRemoved(int)));
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1582
    }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1583
}
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1584
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1585
/*!
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1586
    This slot is called by mRemoveAttachmentOperation when the operation is
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1587
    completed. There is no need to update UI because it was already updated.
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1588
 */
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1589
void NmEditorView::attachmentRemoved(int result)
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1590
{
43
hgs
parents: 40
diff changeset
  1591
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1592
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1593
    // It is not desided yet what to do if operation fails
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1594
    Q_UNUSED(result);
68
hgs
parents: 66
diff changeset
  1595
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1596
    if (mMessage) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1597
        // Reload message because one attachment has been removed
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1598
        NmId mailboxId = mMessage->envelope().mailboxId();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1599
        NmId folderId = mMessage->envelope().folderId();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1600
        NmId msgId = mMessage->envelope().messageId();
68
hgs
parents: 66
diff changeset
  1601
        NmMessagePriority messagePriority = mMessage->envelope().priority();
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1602
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1603
        delete mMessage;
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1604
        mMessage = NULL;
68
hgs
parents: 66
diff changeset
  1605
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1606
        mMessage = mUiEngine.message(mailboxId, folderId, msgId);
68
hgs
parents: 66
diff changeset
  1607
49
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1608
        if(mMessage) {
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1609
            // Set the correct priority
68
hgs
parents: 66
diff changeset
  1610
            mMessage->envelope().setPriority(messagePriority);
hgs
parents: 66
diff changeset
  1611
49
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1612
            // If there is no more attachments in the message, set the correct value
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1613
            QList<NmMessagePart*> attachmentList;
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1614
            mMessage->attachmentList(attachmentList);
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1615
            if(attachmentList.count() == 0) {
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1616
                mMessage->envelope().setHasAttachments(false);
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1617
            }
00c7ae862740 201025_2
hgs
parents: 48
diff changeset
  1618
        }
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1619
    }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1620
}
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1621
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1622
/*!
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1623
    This slot is called when 'open' is selected from attachment list context menu.
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1624
*/
44
hgs
parents: 43
diff changeset
  1625
void NmEditorView::openAttachmentTriggered(NmId attachmentId)
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1626
{
43
hgs
parents: 40
diff changeset
  1627
    NM_FUNCTION;
44
hgs
parents: 43
diff changeset
  1628
    NmId mailboxId = mMessage->envelope().mailboxId();
hgs
parents: 43
diff changeset
  1629
    NmId folderId = mMessage->envelope().folderId();
hgs
parents: 43
diff changeset
  1630
    NmId msgId = mMessage->envelope().messageId();
hgs
parents: 43
diff changeset
  1631
74
hgs
parents: 68
diff changeset
  1632
    QList<NmMessagePart *> attachments;
hgs
parents: 68
diff changeset
  1633
    mMessage->attachmentList(attachments);
hgs
parents: 68
diff changeset
  1634
    foreach (NmMessagePart *part, attachments) {
hgs
parents: 68
diff changeset
  1635
        if (part->partId() == attachmentId) {
hgs
parents: 68
diff changeset
  1636
            // We need to fill the part before opening the attachment.
hgs
parents: 68
diff changeset
  1637
            mUiEngine.contentToMessagePart(mailboxId,folderId,msgId, *part);
hgs
parents: 68
diff changeset
  1638
            int error = NmUtilities::openAttachment(part,mTempFiles);
hgs
parents: 68
diff changeset
  1639
            if ( error == NmGeneralError ) {
hgs
parents: 68
diff changeset
  1640
                HbMessageBox *box = NmUtilities::displayWarningNote(hbTrId("txt_mail_dialog_unable_to_open_attachment_file_ty"));
hgs
parents: 68
diff changeset
  1641
                box->setAttribute(Qt::WA_DeleteOnClose);
hgs
parents: 68
diff changeset
  1642
            }
hgs
parents: 68
diff changeset
  1643
            break;
hgs
parents: 68
diff changeset
  1644
        }
44
hgs
parents: 43
diff changeset
  1645
    }
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1646
}
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1647
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1648
/*!
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1649
   Enables/disables toolbar extension for attach
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1650
*/
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1651
void NmEditorView::enableToolBarAttach(bool enable)
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1652
{
43
hgs
parents: 40
diff changeset
  1653
    NM_FUNCTION;
68
hgs
parents: 66
diff changeset
  1654
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1655
    HbToolBar *tb = toolBar();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1656
    if (tb) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1657
        QList<QAction *> toolbarList = tb->actions();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1658
        int count = toolbarList.count();
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1659
        for (int i = 0; i < count; i++) {
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1660
            NmAction *action = static_cast<NmAction *>(toolbarList[i]);
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
  1661
            if (action->availabilityCondition() == NmAction::NmAttachable) {
20
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1662
                action->setEnabled(enable);
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1663
            }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1664
        }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1665
    }
ecc8def7944a Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
  1666
}