camerauis/cameraxui/cxui/src/cxuipostcaptureview.cpp
author hgs
Thu, 15 Jul 2010 01:55:05 +0300
changeset 43 0e652f8f1fbd
parent 28 3075d9b614e6
child 45 24fd82631616
permissions -rw-r--r--
201027_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
d9aefe59d544 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
d9aefe59d544 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"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d9aefe59d544 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".
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include <QDebug>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <QPixmap>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <QTimer>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <QFileInfo>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <QApplication>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <QGraphicsRectItem>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <QBrush>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <QDir>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <QProcess>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <hblabel.h>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <hbmainwindow.h>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <hbtoolbar.h>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <hbaction.h>
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include <hbmessagebox.h>
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    32
#include <hbactivitymanager.h>
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
    34
#include <shareui.h>
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    35
#include <thumbnailmanager_qt.h>
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include "cxeviewfindercontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "cxuienums.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include "cxuipostcaptureview.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include "cxeengine.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
#include "cxecameradevicecontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include "cxestillcapturecontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
#include "cxevideocapturecontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
#include "cxestillimage.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
#include "cxutils.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
#include "cxefeaturemanager.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
#include "cxuidocumentloader.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
#include "cxesettings.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
#include "cxenamespace.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
#include "cxuiserviceprovider.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    52
#ifdef Q_OS_SYMBIAN
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
#include "OstTraceDefinitions.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
#ifdef OST_TRACE_COMPILER_IN_USE
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
#include "cxuipostcaptureviewTraces.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
#endif
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    57
#endif //Q_OS_SYMBIAN
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
using namespace CxUiLayout;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
using namespace Cxe;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    64
namespace {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    65
    const QString FILENAME_KEY = "filename";
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    66
    const int CXUI_STOP_VIEWFINDER_TIMEOUT = 5000; //  5 seconds
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    67
    const int CXUI_RELEASE_CAMERA_TIMEOUT = 60000; // 60 seconds
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    68
}
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    70
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    71
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    72
* Constructor.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    73
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
CxuiPostcaptureView::CxuiPostcaptureView(QGraphicsItem *parent) :
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    75
    CxuiView(parent),
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
    mStillToolbar(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
    mVideoToolbar(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
    mEmbeddedToolbar(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    mBackgroundItem(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    mImageLabel(NULL),
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    81
    mShareUi(NULL),
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    mStopViewfinderTimer(this),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
    mReleaseCameraTimer(this),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
    mPostcaptureTimer(this),
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    85
    mTimersStarted(false),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    86
    mDeleteNoteOpen(false),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    87
    mFilename(QString::null),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    88
    mThumbnailManager(NULL)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
    CX_DEBUG_IN_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    95
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    96
* Destructor.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    97
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
CxuiPostcaptureView::~CxuiPostcaptureView()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    QCoreApplication::instance()->removeEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    stopTimers();
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   103
    delete mThumbnailManager;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   104
    delete mShareUi;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   108
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   109
* Second phase construction.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   110
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
void CxuiPostcaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   112
                                    CxuiDocumentLoader *documentLoader,
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   113
                                    CxuiCaptureKeyHandler *keyHandler,
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   114
                                    HbActivityManager *activityManager)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   116
    Q_UNUSED(keyHandler);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   119
    CxuiView::construct(mainwindow, engine, documentLoader, NULL, activityManager);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
    // set back action to go back to pre-capture
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    HbAction *backAction = new HbAction(Hb::BackNaviAction, this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
    connect(backAction, SIGNAL(triggered()), this, SLOT(goToPrecaptureView()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    setNavigationAction(backAction);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    // creates black background item
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    createBackground();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
    CX_DEBUG_ASSERT(mDocumentLoader);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    QGraphicsWidget *widget = 0;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
    widget = mDocumentLoader->findWidget(POST_CAPTURE_SNAPSHOT_LABEL);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
    mImageLabel = qobject_cast<HbLabel *>(widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
    CX_DEBUG_ASSERT(mImageLabel);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   135
    mShareUi = new ShareUi();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   136
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
    // get toolbar pointers from the documentloader
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    widget = mDocumentLoader->findWidget(STILL_POST_CAPTURE_TOOLBAR);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   139
    // This resize is a workaround to get toolbar shown correctly.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   140
    widget->resize(60, 300);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
    mStillToolbar = qobject_cast<HbToolBar *> (widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
    CX_DEBUG_ASSERT(mStillToolbar);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
    widget = mDocumentLoader->findWidget(VIDEO_POST_CAPTURE_TOOLBAR);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   145
    // This resize is a workaround to get toolbar shown correctly.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   146
    widget->resize(60, 300);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
    mVideoToolbar = qobject_cast<HbToolBar *> (widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
    CX_DEBUG_ASSERT(mVideoToolbar);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
    widget = mDocumentLoader->findWidget(EMBEDDED_POST_CAPTURE_TOOLBAR);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   151
    // This resize is a workaround to get toolbar shown correctly.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   152
    widget->resize(60, 300);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
    mEmbeddedToolbar = qobject_cast<HbToolBar *> (widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    CX_DEBUG_ASSERT(mEmbeddedToolbar);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
    mStopViewfinderTimer.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    connect(&mStopViewfinderTimer, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
            this, SLOT(stopViewfinder()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
    mReleaseCameraTimer.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    connect(&mReleaseCameraTimer, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
            this, SLOT(releaseCamera()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
    mHideControlsTimeout.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    connect(&mHideControlsTimeout, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
            this, SLOT(hideControls()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    mPostcaptureTimer.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
    connect(&mPostcaptureTimer, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
            this, SLOT(goToPrecaptureView()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    // set focus flags
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
    setFlag(QGraphicsItem::ItemIsFocusable);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    setFocusPolicy(Qt::StrongFocus);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    QCoreApplication::instance()->installEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   180
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   181
* Handle pressing capture key.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   182
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
void CxuiPostcaptureView::handleCaptureKeyPressed()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   187
    if (!mDeleteNoteOpen) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   188
        goToPrecaptureView();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   189
    }
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   194
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   195
* Handle pressing auto focus key.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   196
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
void CxuiPostcaptureView::handleAutofocusKeyPressed()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   201
    if (!mDeleteNoteOpen) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   202
        goToPrecaptureView();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   203
    }
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
    Slot for starting video playing.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
void CxuiPostcaptureView::playVideo()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   213
    CX_DEBUG_ENTER_FUNCTION();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   214
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   215
    stopTimers();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   216
    releaseCamera();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   217
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   218
    QString videoFile(getCurrentFilename());
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   219
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   220
    XQAiwRequest *videoRequest = mAppManager.create(
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   221
        "com.nokia.symbian.IVideoView","playMedia(QString)", true);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   222
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   223
    if (videoRequest) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   224
        QVariantList fileList;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   225
        fileList.append(QVariant(videoFile));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   226
        videoRequest->setArguments(fileList);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   227
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   228
        CX_DEBUG(("CxuiPostcaptureView: sending request"));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   229
        QVariant result;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   230
        bool res = videoRequest->send(result);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   231
        if (res) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   232
            CX_DEBUG(("CxuiPostcaptureView: request sent, received \"%s\"",
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   233
                      result.toString().toAscii().constData()));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   234
        } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   235
            CX_DEBUG(("CxuiPostcaptureView: request sending failed, error=%d",
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   236
                      videoRequest->lastError()));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   237
        }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   238
        delete videoRequest;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   239
        videoRequest = NULL;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   240
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   241
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   242
    CX_DEBUG_EXIT_FUNCTION();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   243
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   246
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   247
* Show delete query.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   248
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
void CxuiPostcaptureView::showDeleteNote()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
    hideControls();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   255
    QString text(mEngine->mode() == Cxe::VideoMode
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   256
               ? hbTrId("txt_cam_other_delete_video_clip")
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   257
               : hbTrId("txt_cam_other_delete_image"));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   259
    HbMessageBox::question(text,
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   260
                           this,
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   261
                           SLOT(handleDeleteDialogClosed(int)),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   262
                           HbMessageBox::Yes | HbMessageBox::No);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   263
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   264
    mDeleteNoteOpen = true;
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   265
    CX_DEBUG_EXIT_FUNCTION();
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   266
}
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   267
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   268
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   269
* Handle closing delete query dialog.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   270
* @param action HbMessageBox::Yes if user accepted the delete query, HbMessageBox::No if not.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   271
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   272
void CxuiPostcaptureView::handleDeleteDialogClosed(int action)
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   273
{
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   274
    CX_DEBUG_ENTER_FUNCTION();
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   275
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   276
    hideControls();
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   277
    mDeleteNoteOpen = false;
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   278
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   279
    // Check that user confirmed delete
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   280
    if (action == HbMessageBox::Yes) {
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   281
        QString filename = getCurrentFilename();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
        QFileInfo fileInfo(filename);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
        if (fileInfo.exists()) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
            //! @todo
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
            // We can retry deletion if file deletion does'nt succeed,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
            // but this is left out for the time being since the user
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
            // can't delete it so early that it's not saved yet or
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
            // is being harvested by MdS etc.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
            QDir dir = fileInfo.absolutePath();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
            bool ok = dir.remove(fileInfo.fileName());
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   291
            CX_DEBUG(("Delete file [%s], status %d", qPrintable(fileInfo.fileName()), ok));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
            // Go back to precapture view
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
            goToPrecaptureView();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
        }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   298
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
    Slot for handling image/video sharing.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
void CxuiPostcaptureView::launchShare()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
    CX_DEBUG_ENTER_FUNCTION();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   308
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    stopTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
    releaseCamera();
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   311
    hideControls();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
    QString filename = getCurrentFilename();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   313
    QStringList filelist;
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   314
    filelist.append(filename);
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   315
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   316
    mShareUi->send(filelist, true);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   317
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   321
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   322
* Go to pre-capture view.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   323
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
void CxuiPostcaptureView::goToPrecaptureView()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   328
    // Cannot return to pre-capture while stopping in video mode
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
    if (mEngine->mode() != Cxe::VideoMode ||
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
        mEngine->videoCaptureControl().state() != CxeVideoCaptureControl::Stopping) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
        stopTimers();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   332
        // Re-enabling starting timers the next time we enter post capture view.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   333
        mTimersStarted = false;
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   334
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   335
        // reset saved filename
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   336
        mFilename = QString::null;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
        // Switch to pre-capture view
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
        emit changeToPrecaptureView();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   345
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   346
* Stop viewfinder.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   347
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
void CxuiPostcaptureView::stopViewfinder()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
    if (mMainWindow->currentView() == this) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
        mEngine->viewfinderControl().stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
    mStopViewfinderTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   360
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   361
* Hides toolbar.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   362
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   363
void CxuiPostcaptureView::hideToolbar()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
    if (mStillToolbar) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
        mStillToolbar->hide();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
    if (mVideoToolbar) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
        mVideoToolbar->hide();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
    if (mEmbeddedToolbar) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
        mEmbeddedToolbar->hide();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   378
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   379
* Handle events.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   380
* Needed for restarting timers.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   381
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
bool CxuiPostcaptureView::eventFilter(QObject *object, QEvent *event)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
    Q_UNUSED(object)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
    bool eventWasConsumed = false;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
    switch (event->type())
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
    {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
    case QEvent::GraphicsSceneMouseRelease:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
        mHideControlsTimeout.start();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
        break;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
    case QEvent::GraphicsSceneMousePress:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
        mHideControlsTimeout.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
        // stop the postcapture timer
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
        mPostcaptureTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
        break;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
    default:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
        break;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
    return eventWasConsumed;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
/*!
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   405
* Paint method.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   406
* Used for performance tracing purposes.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
*/
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   408
void CxuiPostcaptureView::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   410
    OstTrace0(camerax_performance, CXUIPOSTCAPTUREVIEW_SNAPSHOT_DRAW, "msg: e_CX_SHOT_TO_SNAPSHOT 0");
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   411
    QGraphicsWidget::paint(painter, option, widget);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   412
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   413
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   414
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   415
 * Restore view state from activity.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   416
 * @param activityId Activity id
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   417
 * @param data Activity data
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   418
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   419
void CxuiPostcaptureView::restoreActivity(const QString &activityId, const QVariant &data)
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   420
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   421
    Q_UNUSED(activityId);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   422
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   423
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   424
    // get filename. if filename is not found (toString() returns empty string)
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   425
    // we will go back to pre-capture in updateSnapshotImage()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   426
    mFilename = data.toMap()[FILENAME_KEY].toString();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   427
    CX_DEBUG(("Got filename %s from activity", mFilename.toAscii().data()));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   428
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   429
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   432
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   433
 * Save view state to activity.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   434
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   435
void CxuiPostcaptureView::saveActivity()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   437
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   438
    QVariantMap data;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   439
    QVariantHash params;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   440
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   441
    QString filename = getCurrentFilename();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   442
    CX_DEBUG(("Saving filename %s", filename.toAscii().data()));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   443
    data.insert(FILENAME_KEY, filename);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   444
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   445
    QImage img(mMainWindow->rect().size(), QImage::Format_ARGB32_Premultiplied);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   446
    QPainter p(&img);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   447
    mMainWindow->render(&p, mMainWindow->rect(), mMainWindow->rect());
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   448
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   449
    QPixmap screenshot = QPixmap::fromImage(img);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   450
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   451
    params.insert("screenshot", screenshot);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   452
    if (mEngine->mode() == Cxe::ImageMode) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   453
        mActivityManager->removeActivity(CxuiActivityIds::STILL_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   454
        mActivityManager->addActivity(CxuiActivityIds::STILL_POSTCAPTURE_ACTIVITY, data, params);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   455
    } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   456
        mActivityManager->removeActivity(CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   457
        mActivityManager->addActivity(CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY, data, params);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
    }
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   459
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   462
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   463
 * Clear activity from activity manager.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   464
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   465
void CxuiPostcaptureView::clearActivity()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   466
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   467
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   468
    mActivityManager->removeActivity(CxuiActivityIds::STILL_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   469
    mActivityManager->removeActivity(CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   470
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   471
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   472
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   473
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   474
* Show event for this view.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   475
* Update snapshot and start timers.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   476
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
void CxuiPostcaptureView::showEvent(QShowEvent *event)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
    QGraphicsWidget::showEvent(event);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
    if (event->type() == QEvent::Show) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
        QCoreApplication::instance()->installEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
        updateSnapshotImage();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
        showControls();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
        startTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
        event->accept();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   495
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   496
* Hide event.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   497
* Release snapshot and stop timers.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   498
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
void CxuiPostcaptureView::hideEvent(QHideEvent *event)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
    QGraphicsWidget::hideEvent(event);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
    if (event->type() == QEvent::Hide) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
        // remove event filter to disable unnecessary actions
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
        QCoreApplication::instance()->removeEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   509
        // Clear the snapshot.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   510
        mImageLabel->setIcon(HbIcon());
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   511
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
        stopTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
        // Hide controls to make sure title bar reacts to show()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
        // when this view is reactivated.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
        hideControls();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
        event->accept();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
/*! Shows toolbar.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
    Toolbar that is shown is selected based on current mode.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
void CxuiPostcaptureView::showToolbar(){
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
    if (CxuiServiceProvider::isCameraEmbedded()) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
        mEmbeddedToolbar->setVisible(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
        mStillToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
        mVideoToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
    } else {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
        mEmbeddedToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
        if (mEngine->mode() == ImageMode) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
            mVideoToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
            mStillToolbar->setVisible(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
            mStillToolbar->show();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
        } else {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
            mStillToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
            mVideoToolbar->setVisible(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
            mVideoToolbar->show();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
        }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   545
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
    Creates black background item. If snapshot smaller than the screen size,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
    background is visible.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
void CxuiPostcaptureView::createBackground()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
    if (!mBackgroundItem) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
        mBackgroundItem = new QGraphicsRectItem(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
        QBrush blackBrush = QBrush(Qt::black);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
        mBackgroundItem->setBrush(blackBrush);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
        mBackgroundItem->setRect(mMainWindow->sceneRect());
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   567
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   568
 * Updates snapshot image. In normal case snapshot is retrieved from engine
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   569
 * but if we are restoring camera to post-capture through activity, then
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   570
 * we get snapshot from thumbnail manager.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   571
 */
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
void CxuiPostcaptureView::updateSnapshotImage()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   576
    if (!mFilename.isNull()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   577
        CX_DEBUG(("CxuiPostcaptureView::updateSnapshot restoring activity"));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   578
        // filename set, we are restoring activity
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   579
        if (QFile::exists(mFilename)) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   580
            CX_DEBUG(("Filename ok, requesting thumbnail from TNM"));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   581
            if (!mThumbnailManager) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   582
                mThumbnailManager = new ThumbnailManager();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   583
                connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   584
                                                this, SLOT(handleThumbnailReady(QPixmap, void*, int, int)));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   585
                mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   586
            }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   587
            mThumbnailManager->getThumbnail(mFilename);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   588
            CX_DEBUG(("Thumbnail requested"));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   590
        } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   591
            // file deleted
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   592
            CX_DEBUG(("File %s has been deleted, going back to pre-capture", mFilename.toAscii().data()));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   593
            goToPrecaptureView();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   594
        }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
    } else {
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   596
        QPixmap snapshot;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   597
        if (mEngine->mode() == ImageMode) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   598
            if( mEngine->stillCaptureControl().imageCount() > 0 ) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   599
                snapshot = mEngine->stillCaptureControl()[0].snapshot();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   600
            }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   601
        } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   602
            snapshot = mEngine->videoCaptureControl().snapshot();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   603
        }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   604
        if (mImageLabel) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   605
                mImageLabel->setIcon(HbIcon(QIcon(snapshot)));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   606
            } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   607
                // do nothing
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   608
        }
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
/* !
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
 * gets the filename of the current file
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
QString CxuiPostcaptureView::getCurrentFilename()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   618
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   621
    if (!mFilename.isNull()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   622
        // post-capture started by activity, engine doesn't contain correct
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   623
        // filename anymore so use the stored one
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   624
        CX_DEBUG(("Using filename saved in activity"));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   625
        CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   626
        return mFilename;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   627
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   628
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   629
    CX_DEBUG(("Getting filename from engine"));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
    QString filename;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   631
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
    if (mEngine->mode() == Cxe::VideoMode) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
        filename = mEngine->videoCaptureControl().filename();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
    } else {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
        //!@todo Currently only gets index 0 from the still capture control.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
        CxeStillCaptureControl& stillCaptureControl = mEngine->stillCaptureControl();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
        if (stillCaptureControl.imageCount()) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
            filename = stillCaptureControl[0].filename();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
        }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
    CX_DEBUG((filename.toAscii()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
    return filename;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
    Sends current capture to client app and closes camera
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
*/
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
void CxuiPostcaptureView::select()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
    CxuiServiceProvider *serviceProvider = CxuiServiceProvider::instance();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
    if (!serviceProvider) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
        return;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   658
    QString filename = getCurrentFilename();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
    serviceProvider->sendFilenameToClientAndExit(filename);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
/*!
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   663
* Handle exiting standby.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
*/
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   665
void CxuiPostcaptureView::exitStandby()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   667
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   668
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   669
    // Common functionality first.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   670
    CxuiView::exitStandby();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   671
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   672
    //!@note We should not start timers until we receive the ShowEvent
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   673
    showControls();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   674
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   675
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
/*!
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   679
* Handle entering standby.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
*/
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   681
void CxuiPostcaptureView::enterStandby()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   683
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   685
    // Common functionality (release camera).
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   686
    CxuiView::enterStandby();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   687
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
    stopTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
    hideControls();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   690
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   694
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   695
 * Handle thumbnail received from ThumbnailManager.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   696
 *
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   697
 * @param thumbnail Thumbnail as QPixmap
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   698
 * @param clientData Not used
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   699
 * @param id Thumbnail manager request id
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   700
 * @param errorCode Error code
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   701
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   702
void CxuiPostcaptureView::handleThumbnailReady(QPixmap thumbnail, void *clientData, int id, int errorCode)
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   703
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   704
    CX_DEBUG_ENTER_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   706
    Q_UNUSED(clientData);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   707
    Q_UNUSED(id);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   708
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   709
    if (thumbnail.isNull()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   710
        CX_DEBUG(("Received null thumbnail from TNM, going to pre-capture. Error=%d", errorCode));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   711
        // null thumbnail, go to precapture
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   712
        goToPrecaptureView();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   713
    } else if (mImageLabel) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   714
        mImageLabel->setIcon(HbIcon(QIcon(thumbnail)));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   715
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   716
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   717
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   718
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   719
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   720
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   721
    Start the timers
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   722
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   723
void CxuiPostcaptureView::startTimers()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   727
    // we start timers only once in a given postcapture view session
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   728
    if(!mTimersStarted) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   729
        startPostcaptureTimer();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   730
        startReleaseTimers();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
        mTimersStarted = true;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   734
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   735
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   736
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   737
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   738
    Start the timer to return to pre-capture view
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   739
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   740
void CxuiPostcaptureView::startPostcaptureTimer()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   741
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   742
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   743
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   744
    if (!mFilename.isNull()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   745
        // restored from activity, don't do post-capture timeout
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   746
        CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   747
        return;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   748
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   749
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   750
    int postCaptureTimeout = 0;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   751
    QString settingId;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   752
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   753
    if (mEngine->mode() == ImageMode) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   754
        settingId = CxeSettingIds::STILL_SHOWCAPTURED;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   755
    } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   756
        settingId = CxeSettingIds::VIDEO_SHOWCAPTURED;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   757
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   758
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   759
    if (!CxuiServiceProvider::isCameraEmbedded()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   760
        CxeError::Id err = mEngine->settings().get(settingId, postCaptureTimeout);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   761
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   762
        if (postCaptureTimeout > 0 && err == CxeError::None) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   763
            mPostcaptureTimer.start(postCaptureTimeout);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   764
        } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   765
            // do nothing
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   766
        }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   767
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   768
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   769
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   770
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   771
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   772
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   773
    Start the timers to stop viewfinder and release the camera
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   774
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   775
void CxuiPostcaptureView::startReleaseTimers()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   776
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   777
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   778
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   779
    // Release camera and stop viewfinder if user stays in postcapture long enough.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   780
    // Battery could otherwise drain fast.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   781
    mReleaseCameraTimer.start(CXUI_RELEASE_CAMERA_TIMEOUT);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   782
    mStopViewfinderTimer.start(CXUI_STOP_VIEWFINDER_TIMEOUT);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   783
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   786
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   787
void CxuiPostcaptureView::stopTimers()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   789
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   791
    // stop all the timers
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   792
    mHideControlsTimeout.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
    mReleaseCameraTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   794
    mPostcaptureTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   795
    mStopViewfinderTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   796
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   797
    //!@note mTimersStarted is intentionally not reset here.
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   798
    // Once the timers are stopped, they are not to be started again until
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   799
    // we come from precapture view again.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   800
    // E.g. returning from background could otherwise restart the timers and
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   801
    // if post-capture timer would be on, user could be confused: camera
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   802
    // shows up with  post-capture view, after couple  seconds it disappears
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   803
    // and we return to pre-capture view. That's not what we want.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   804
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   805
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   806
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   807
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   808
// end of file