camerauis/cameraxui/cxui/src/cxuipostcaptureview.cpp
author hgs
Fri, 23 Jul 2010 11:35:41 +0300
changeset 45 24fd82631616
parent 43 0e652f8f1fbd
permissions -rw-r--r--
201029
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
45
hgs
parents: 43
diff changeset
    34
#include <xqaiwdecl.h>
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
    35
#include <shareui.h>
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    36
#include <thumbnailmanager_qt.h>
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "cxeviewfindercontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include "cxuienums.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include "cxuipostcaptureview.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
#include "cxeengine.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include "cxecameradevicecontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
#include "cxestillcapturecontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
#include "cxevideocapturecontrol.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
#include "cxestillimage.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
#include "cxutils.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
#include "cxefeaturemanager.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
#include "cxuidocumentloader.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
#include "cxesettings.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
#include "cxenamespace.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
#include "cxuiserviceprovider.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    53
#ifdef Q_OS_SYMBIAN
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
#include "OstTraceDefinitions.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
#ifdef OST_TRACE_COMPILER_IN_USE
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
#include "cxuipostcaptureviewTraces.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
#endif
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    58
#endif //Q_OS_SYMBIAN
19
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
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
using namespace CxUiLayout;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
using namespace Cxe;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    65
namespace {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    66
    const QString FILENAME_KEY = "filename";
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    67
    const int CXUI_STOP_VIEWFINDER_TIMEOUT = 5000; //  5 seconds
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    68
    const int CXUI_RELEASE_CAMERA_TIMEOUT = 60000; // 60 seconds
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    69
}
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    71
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    72
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    73
* Constructor.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    74
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
CxuiPostcaptureView::CxuiPostcaptureView(QGraphicsItem *parent) :
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    76
    CxuiView(parent),
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
    mStillToolbar(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
    mVideoToolbar(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    mEmbeddedToolbar(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    mBackgroundItem(NULL),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    mImageLabel(NULL),
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    82
    mShareUi(NULL),
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
    mStopViewfinderTimer(this),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
    mReleaseCameraTimer(this),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
    mPostcaptureTimer(this),
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    86
    mTimersStarted(false),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    87
    mDeleteNoteOpen(false),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    88
    mFilename(QString::null),
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    89
    mThumbnailManager(NULL)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
    CX_DEBUG_IN_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    96
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    97
* Destructor.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
    98
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
CxuiPostcaptureView::~CxuiPostcaptureView()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    QCoreApplication::instance()->removeEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
    stopTimers();
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   104
    delete mThumbnailManager;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   105
    delete mShareUi;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   109
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   110
* Second phase construction.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   111
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
void CxuiPostcaptureView::construct(HbMainWindow *mainwindow, CxeEngine *engine,
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   113
                                    CxuiDocumentLoader *documentLoader,
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   114
                                    CxuiCaptureKeyHandler *keyHandler,
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   115
                                    HbActivityManager *activityManager)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   117
    Q_UNUSED(keyHandler);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   120
    CxuiView::construct(mainwindow, engine, documentLoader, NULL, activityManager);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    // 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
   123
    HbAction *backAction = new HbAction(Hb::BackNaviAction, this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    connect(backAction, SIGNAL(triggered()), this, SLOT(goToPrecaptureView()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    setNavigationAction(backAction);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    // creates black background item
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
    createBackground();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    CX_DEBUG_ASSERT(mDocumentLoader);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
    QGraphicsWidget *widget = 0;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
    widget = mDocumentLoader->findWidget(POST_CAPTURE_SNAPSHOT_LABEL);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
    mImageLabel = qobject_cast<HbLabel *>(widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
    CX_DEBUG_ASSERT(mImageLabel);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   136
    mShareUi = new ShareUi();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   137
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    // get toolbar pointers from the documentloader
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
    widget = mDocumentLoader->findWidget(STILL_POST_CAPTURE_TOOLBAR);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   140
    // This resize is a workaround to get toolbar shown correctly.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   141
    widget->resize(60, 300);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
    mStillToolbar = qobject_cast<HbToolBar *> (widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
    CX_DEBUG_ASSERT(mStillToolbar);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
    widget = mDocumentLoader->findWidget(VIDEO_POST_CAPTURE_TOOLBAR);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   146
    // This resize is a workaround to get toolbar shown correctly.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   147
    widget->resize(60, 300);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
    mVideoToolbar = qobject_cast<HbToolBar *> (widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
    CX_DEBUG_ASSERT(mVideoToolbar);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
    widget = mDocumentLoader->findWidget(EMBEDDED_POST_CAPTURE_TOOLBAR);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   152
    // This resize is a workaround to get toolbar shown correctly.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   153
    widget->resize(60, 300);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    mEmbeddedToolbar = qobject_cast<HbToolBar *> (widget);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
    CX_DEBUG_ASSERT(mEmbeddedToolbar);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    mStopViewfinderTimer.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
    connect(&mStopViewfinderTimer, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
            this, SLOT(stopViewfinder()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    mReleaseCameraTimer.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    connect(&mReleaseCameraTimer, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
            this, SLOT(releaseCamera()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    mHideControlsTimeout.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
    connect(&mHideControlsTimeout, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
            this, SLOT(hideControls()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
    mPostcaptureTimer.setSingleShot(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
    connect(&mPostcaptureTimer, SIGNAL(timeout()),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
            this, SLOT(goToPrecaptureView()));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
    // set focus flags
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    setFlag(QGraphicsItem::ItemIsFocusable);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    setFocusPolicy(Qt::StrongFocus);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    QCoreApplication::instance()->installEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   181
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   182
* Handle pressing capture key.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   183
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
void CxuiPostcaptureView::handleCaptureKeyPressed()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   188
    if (!mDeleteNoteOpen) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   189
        goToPrecaptureView();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   190
    }
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   195
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   196
* Handle pressing auto focus key.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   197
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
void CxuiPostcaptureView::handleAutofocusKeyPressed()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   202
    if (!mDeleteNoteOpen) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   203
        goToPrecaptureView();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   204
    }
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    CX_DEBUG_EXIT_FUNCTION();
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
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
    Slot for starting video playing.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
void CxuiPostcaptureView::playVideo()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   214
    CX_DEBUG_ENTER_FUNCTION();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   215
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   216
    stopTimers();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   217
    releaseCamera();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   218
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   219
    QString videoFile(getCurrentFilename());
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   220
45
hgs
parents: 43
diff changeset
   221
    XQAiwRequest *videoRequest = mAppManager.create(XQI_VIDEO_PLAY, XQOP_VIDEO_PLAY, true);
43
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\"",
45
hgs
parents: 43
diff changeset
   233
                      qPrintable(result.toString())));
43
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) {
45
hgs
parents: 43
diff changeset
   281
        QFileInfo fileInfo(getCurrentFilename());
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
        if (fileInfo.exists()) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
            //! @todo
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
            // 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
   285
            // 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
   286
            // 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
   287
            // is being harvested by MdS etc.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
            QDir dir = fileInfo.absolutePath();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
            bool ok = dir.remove(fileInfo.fileName());
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   290
            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
   291
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
            // Go back to precapture view
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
            goToPrecaptureView();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
        }
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
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   297
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
}
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
    Slot for handling image/video sharing.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
void CxuiPostcaptureView::launchShare()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
    CX_DEBUG_ENTER_FUNCTION();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   307
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
    stopTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    releaseCamera();
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   310
    hideControls();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
    QString filename = getCurrentFilename();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   312
    QStringList filelist;
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   313
    filelist.append(filename);
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   314
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   315
    mShareUi->send(filelist, true);
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   316
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   320
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   321
* Go to pre-capture view.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   322
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
void CxuiPostcaptureView::goToPrecaptureView()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   327
    // 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
   328
    if (mEngine->mode() != Cxe::VideoMode ||
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
        mEngine->videoCaptureControl().state() != CxeVideoCaptureControl::Stopping) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
        stopTimers();
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   331
        // Re-enabling starting timers the next time we enter post capture view.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   332
        mTimersStarted = false;
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   333
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   334
        // reset saved filename
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   335
        mFilename = QString::null;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
        // Switch to pre-capture view
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
        emit changeToPrecaptureView();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
    }
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
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   344
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   345
* Stop viewfinder.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   346
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
void CxuiPostcaptureView::stopViewfinder()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
    if (mMainWindow->currentView() == this) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
        mEngine->viewfinderControl().stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
    mStopViewfinderTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   359
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   360
* Hides toolbar.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   361
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   362
void CxuiPostcaptureView::hideToolbar()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
    if (mStillToolbar) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
        mStillToolbar->hide();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
    if (mVideoToolbar) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
        mVideoToolbar->hide();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
    if (mEmbeddedToolbar) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
        mEmbeddedToolbar->hide();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   377
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   378
* Handle events.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   379
* Needed for restarting timers.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   380
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
bool CxuiPostcaptureView::eventFilter(QObject *object, QEvent *event)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
    Q_UNUSED(object)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
    bool eventWasConsumed = false;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
    switch (event->type())
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
    {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
    case QEvent::GraphicsSceneMouseRelease:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
        mHideControlsTimeout.start();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
        break;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
    case QEvent::GraphicsSceneMousePress:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
        mHideControlsTimeout.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
        // stop the postcapture timer
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
        mPostcaptureTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
        break;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
    default:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
        break;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
    }
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
    return eventWasConsumed;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
}
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
/*!
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   404
* Paint method.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   405
* Used for performance tracing purposes.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
*/
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   407
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
   408
{
45
hgs
parents: 43
diff changeset
   409
    // Performance trace for checking shot to snapshot time.
hgs
parents: 43
diff changeset
   410
    // Guard that we actually have the snapshot set before outputting the trace.
hgs
parents: 43
diff changeset
   411
    if (mImageLabel && !mImageLabel->icon().isNull()) {
hgs
parents: 43
diff changeset
   412
        OstTrace0(camerax_performance, CXUIPOSTCAPTUREVIEW_SNAPSHOT_DRAW, "msg: e_CX_SHOT_TO_SNAPSHOT 0");
hgs
parents: 43
diff changeset
   413
    }
hgs
parents: 43
diff changeset
   414
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   415
    QGraphicsWidget::paint(painter, option, widget);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   416
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   417
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   418
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   419
 * Restore view state from activity.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   420
 * @param activityId Activity id
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   421
 * @param data Activity data
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   422
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   423
void CxuiPostcaptureView::restoreActivity(const QString &activityId, const QVariant &data)
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   424
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   425
    Q_UNUSED(activityId);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   426
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   427
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   428
    // get filename. if filename is not found (toString() returns empty string)
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   429
    // we will go back to pre-capture in updateSnapshotImage()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   430
    mFilename = data.toMap()[FILENAME_KEY].toString();
45
hgs
parents: 43
diff changeset
   431
    CX_DEBUG(("Got filename [%s] from activity", qPrintable(mFilename)));
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   432
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   433
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   436
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   437
 * Save view state to activity.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   438
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   439
void CxuiPostcaptureView::saveActivity()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   441
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   442
    QVariantMap data;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   443
    QVariantHash params;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   444
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   445
    QString filename = getCurrentFilename();
45
hgs
parents: 43
diff changeset
   446
    CX_DEBUG(("Saving filename [%s]", qPrintable(filename)));
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   447
    data.insert(FILENAME_KEY, filename);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   448
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   449
    QImage img(mMainWindow->rect().size(), QImage::Format_ARGB32_Premultiplied);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   450
    QPainter p(&img);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   451
    mMainWindow->render(&p, mMainWindow->rect(), mMainWindow->rect());
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   452
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   453
    QPixmap screenshot = QPixmap::fromImage(img);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   454
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   455
    params.insert("screenshot", screenshot);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   456
    if (mEngine->mode() == Cxe::ImageMode) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   457
        mActivityManager->removeActivity(CxuiActivityIds::STILL_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   458
        mActivityManager->addActivity(CxuiActivityIds::STILL_POSTCAPTURE_ACTIVITY, data, params);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   459
    } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   460
        mActivityManager->removeActivity(CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   461
        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
   462
    }
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   463
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   466
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   467
 * Clear activity from activity manager.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   468
 */
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   469
void CxuiPostcaptureView::clearActivity()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   470
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   471
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   472
    mActivityManager->removeActivity(CxuiActivityIds::STILL_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   473
    mActivityManager->removeActivity(CxuiActivityIds::VIDEO_POSTCAPTURE_ACTIVITY);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   474
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   475
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   476
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   477
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   478
* Show event for this view.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   479
* Update snapshot and start timers.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   480
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
void CxuiPostcaptureView::showEvent(QShowEvent *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
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
    QGraphicsWidget::showEvent(event);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
    if (event->type() == QEvent::Show) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
        QCoreApplication::instance()->installEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
45
hgs
parents: 43
diff changeset
   490
        // Update snapshot for current file.
hgs
parents: 43
diff changeset
   491
        // If the current file does not exist anymore, return to pre-capture view.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
        updateSnapshotImage();
45
hgs
parents: 43
diff changeset
   493
hgs
parents: 43
diff changeset
   494
        // If the image / video has been deleted, control returned to pre-capture view.
hgs
parents: 43
diff changeset
   495
        // No point to start timers or show controls then.
hgs
parents: 43
diff changeset
   496
        if (mMainWindow->currentView() == this) {
hgs
parents: 43
diff changeset
   497
            showControls();
hgs
parents: 43
diff changeset
   498
            startTimers();
hgs
parents: 43
diff changeset
   499
        }
hgs
parents: 43
diff changeset
   500
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
        event->accept();
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
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   507
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   508
* Hide event.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   509
* Release snapshot and stop timers.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   510
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
void CxuiPostcaptureView::hideEvent(QHideEvent *event)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
    QGraphicsWidget::hideEvent(event);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
    if (event->type() == QEvent::Hide) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
        // remove event filter to disable unnecessary actions
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
        QCoreApplication::instance()->removeEventFilter(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   521
        // Clear the snapshot.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   522
        mImageLabel->setIcon(HbIcon());
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   523
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
        stopTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
        // 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
   526
        // when this view is reactivated.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
        hideControls();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
        event->accept();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
/*! Shows toolbar.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
    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
   536
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
void CxuiPostcaptureView::showToolbar(){
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
    if (CxuiServiceProvider::isCameraEmbedded()) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
        mEmbeddedToolbar->setVisible(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
        mStillToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
        mVideoToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   545
    } else {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
        mEmbeddedToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
        if (mEngine->mode() == ImageMode) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
            mVideoToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
            mStillToolbar->setVisible(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
            mStillToolbar->show();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
        } else {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
            mStillToolbar->setVisible(false);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
            mVideoToolbar->setVisible(true);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
            mVideoToolbar->show();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
        }
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
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
    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
   563
    background is visible.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
void CxuiPostcaptureView::createBackground()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
    if (!mBackgroundItem) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
        mBackgroundItem = new QGraphicsRectItem(this);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
        QBrush blackBrush = QBrush(Qt::black);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
        mBackgroundItem->setBrush(blackBrush);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
        mBackgroundItem->setRect(mMainWindow->sceneRect());
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   576
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   579
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   580
 * Updates snapshot image. In normal case snapshot is retrieved from engine
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   581
 * but if we are restoring camera to post-capture through activity, then
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   582
 * we get snapshot from thumbnail manager.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   583
 */
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
void CxuiPostcaptureView::updateSnapshotImage()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   585
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   586
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
45
hgs
parents: 43
diff changeset
   588
    if (isFileDeleted()) {
hgs
parents: 43
diff changeset
   589
        // File deleted, go to pre-capture view.
hgs
parents: 43
diff changeset
   590
        CX_DEBUG(("File has been deleted, going back to pre-capture"));
hgs
parents: 43
diff changeset
   591
        goToPrecaptureView();
hgs
parents: 43
diff changeset
   592
hgs
parents: 43
diff changeset
   593
    } else if (!mFilename.isNull()) {
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   594
        // filename set, we are restoring activity
45
hgs
parents: 43
diff changeset
   595
        if (!mThumbnailManager) {
hgs
parents: 43
diff changeset
   596
            mThumbnailManager = new ThumbnailManager();
hgs
parents: 43
diff changeset
   597
            connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
hgs
parents: 43
diff changeset
   598
                    this, SLOT(handleThumbnailReady(QPixmap)));
hgs
parents: 43
diff changeset
   599
            mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
hgs
parents: 43
diff changeset
   600
        }
hgs
parents: 43
diff changeset
   601
        mThumbnailManager->getThumbnail(mFilename);
hgs
parents: 43
diff changeset
   602
        CX_DEBUG(("Thumbnail requested"));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   603
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
    } else {
45
hgs
parents: 43
diff changeset
   605
        // Normal use of post-capture view
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   606
        QPixmap snapshot;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   607
        if (mEngine->mode() == ImageMode) {
45
hgs
parents: 43
diff changeset
   608
hgs
parents: 43
diff changeset
   609
            if (mEngine->stillCaptureControl().imageCount() > 0) {
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   610
                snapshot = mEngine->stillCaptureControl()[0].snapshot();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   611
            }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   612
        } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   613
            snapshot = mEngine->videoCaptureControl().snapshot();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   614
        }
45
hgs
parents: 43
diff changeset
   615
hgs
parents: 43
diff changeset
   616
        // Update the snapshot image
hgs
parents: 43
diff changeset
   617
        handleThumbnailReady(snapshot);
19
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
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
45
hgs
parents: 43
diff changeset
   623
/*!
hgs
parents: 43
diff changeset
   624
* Check if the file we show this post-capture view for is deleted.
hgs
parents: 43
diff changeset
   625
* This can happen e.g. if we send camera to background and delete
hgs
parents: 43
diff changeset
   626
* the file in other application. When used as activity, we may also
hgs
parents: 43
diff changeset
   627
* get the name of already deleted file as activity parameter.
hgs
parents: 43
diff changeset
   628
* @return True if the current file is deleted, false if not.
hgs
parents: 43
diff changeset
   629
*/
hgs
parents: 43
diff changeset
   630
bool CxuiPostcaptureView::isFileDeleted()
hgs
parents: 43
diff changeset
   631
{
hgs
parents: 43
diff changeset
   632
    CX_DEBUG_ENTER_FUNCTION();
hgs
parents: 43
diff changeset
   633
hgs
parents: 43
diff changeset
   634
    bool deleted(false);
hgs
parents: 43
diff changeset
   635
hgs
parents: 43
diff changeset
   636
    // Check how we entered this view.
hgs
parents: 43
diff changeset
   637
    if (mFilename.isNull()) {
hgs
parents: 43
diff changeset
   638
        CX_DEBUG(("Checking engine filename"));
hgs
parents: 43
diff changeset
   639
        // Normally entered post-capture view.
hgs
parents: 43
diff changeset
   640
        if (mEngine->mode() == ImageMode) {
hgs
parents: 43
diff changeset
   641
            // Check that the image have been saved already.
hgs
parents: 43
diff changeset
   642
            // If not, it cannot have been deleted in that case.
hgs
parents: 43
diff changeset
   643
            CxeStillImage &image(mEngine->stillCaptureControl()[0]);
hgs
parents: 43
diff changeset
   644
            CX_DEBUG(("Image filename [%s]", qPrintable(image.filename())));
hgs
parents: 43
diff changeset
   645
            CX_DEBUG(("Image file saved: %d exists: %d", image.saved(), QFile::exists(image.filename())));
hgs
parents: 43
diff changeset
   646
            deleted = image.saved() && !QFile::exists(image.filename());
hgs
parents: 43
diff changeset
   647
        } else {
hgs
parents: 43
diff changeset
   648
            // Check that video has been stopped fully.
hgs
parents: 43
diff changeset
   649
            // If it's still stopping, QFile may not work.
hgs
parents: 43
diff changeset
   650
            CX_DEBUG(("Video filename [%s]", qPrintable(mEngine->videoCaptureControl().filename())));
hgs
parents: 43
diff changeset
   651
            deleted = mEngine->videoCaptureControl().state() != CxeVideoCaptureControl::Stopping
hgs
parents: 43
diff changeset
   652
                   && !QFile::exists(mEngine->videoCaptureControl().filename());
hgs
parents: 43
diff changeset
   653
        }
hgs
parents: 43
diff changeset
   654
    } else {
hgs
parents: 43
diff changeset
   655
        // Started as activity, check the filename given when restoring activity.
hgs
parents: 43
diff changeset
   656
        CX_DEBUG(("Checking filename saved in activity"));
hgs
parents: 43
diff changeset
   657
        deleted = !QFile::exists(mFilename);
hgs
parents: 43
diff changeset
   658
    }
hgs
parents: 43
diff changeset
   659
hgs
parents: 43
diff changeset
   660
    CX_DEBUG_EXIT_FUNCTION();
hgs
parents: 43
diff changeset
   661
    return deleted;
hgs
parents: 43
diff changeset
   662
}
hgs
parents: 43
diff changeset
   663
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
/* !
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
 * gets the filename of the current file
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
 */
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   667
QString CxuiPostcaptureView::getCurrentFilename()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
    CX_DEBUG_ENTER_FUNCTION();
45
hgs
parents: 43
diff changeset
   670
    QString filename;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   672
    if (!mFilename.isNull()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   673
        // post-capture started by activity, engine doesn't contain correct
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   674
        // filename anymore so use the stored one
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   675
        CX_DEBUG(("Using filename saved in activity"));
45
hgs
parents: 43
diff changeset
   676
        filename = mFilename;
hgs
parents: 43
diff changeset
   677
    } else {
hgs
parents: 43
diff changeset
   678
        CX_DEBUG(("Getting filename from engine"));
hgs
parents: 43
diff changeset
   679
        if (mEngine->mode() == Cxe::VideoMode) {
hgs
parents: 43
diff changeset
   680
            filename = mEngine->videoCaptureControl().filename();
hgs
parents: 43
diff changeset
   681
        } else {
hgs
parents: 43
diff changeset
   682
            //!@todo Currently only gets index 0 from the still capture control.
hgs
parents: 43
diff changeset
   683
            CxeStillCaptureControl& stillCaptureControl = mEngine->stillCaptureControl();
hgs
parents: 43
diff changeset
   684
            if (stillCaptureControl.imageCount() > 0) {
hgs
parents: 43
diff changeset
   685
                filename = stillCaptureControl[0].filename();
hgs
parents: 43
diff changeset
   686
            }
hgs
parents: 43
diff changeset
   687
        }
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   688
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   689
45
hgs
parents: 43
diff changeset
   690
    CX_DEBUG(("Got filename [%s]", qPrintable(filename)));
19
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
    return filename;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
/*!
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   697
    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
   698
*/
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
void CxuiPostcaptureView::select()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
    CxuiServiceProvider *serviceProvider = CxuiServiceProvider::instance();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
    if (!serviceProvider) {
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
        return;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
    QString filename = getCurrentFilename();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
    serviceProvider->sendFilenameToClientAndExit(filename);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
/*!
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   711
* Handle exiting standby.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   712
*/
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   713
void CxuiPostcaptureView::exitStandby()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
{
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   715
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   716
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   717
    // Common functionality first.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   718
    CxuiView::exitStandby();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   719
45
hgs
parents: 43
diff changeset
   720
    // Update snapshot and check the current file is not deleted.
hgs
parents: 43
diff changeset
   721
    updateSnapshotImage();
hgs
parents: 43
diff changeset
   722
hgs
parents: 43
diff changeset
   723
    if (mMainWindow->currentView() == this) {
hgs
parents: 43
diff changeset
   724
        showControls();
hgs
parents: 43
diff changeset
   725
    }
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   726
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   727
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   728
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
/*!
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   731
* Handle entering standby.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
*/
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   733
void CxuiPostcaptureView::enterStandby()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   737
    // Common functionality (release camera).
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   738
    CxuiView::enterStandby();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   739
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
    stopTimers();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
    hideControls();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   743
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   744
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   746
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   747
 * Handle thumbnail received from ThumbnailManager.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   748
 *
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   749
 * @param thumbnail Thumbnail as QPixmap
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   750
 */
45
hgs
parents: 43
diff changeset
   751
void CxuiPostcaptureView::handleThumbnailReady(QPixmap thumbnail)
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   752
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   753
    CX_DEBUG_ENTER_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   755
    if (thumbnail.isNull()) {
45
hgs
parents: 43
diff changeset
   756
        CX_DEBUG(("[WARNING] Received null thumbnail from TNM, going to pre-capture."));
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   757
        // null thumbnail, go to precapture
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   758
        goToPrecaptureView();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   759
    } else if (mImageLabel) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   760
        mImageLabel->setIcon(HbIcon(QIcon(thumbnail)));
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   761
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   762
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   763
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   764
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   765
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   766
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   767
    Start the timers
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   768
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
void CxuiPostcaptureView::startTimers()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   770
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   771
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   772
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   773
    // we start timers only once in a given postcapture view session
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   774
    if(!mTimersStarted) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   775
        startPostcaptureTimer();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   776
        startReleaseTimers();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   777
        mTimersStarted = true;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   780
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   781
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   782
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   783
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   784
    Start the timer to return to pre-capture view
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   785
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   786
void CxuiPostcaptureView::startPostcaptureTimer()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   787
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   788
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   789
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   790
    if (!mFilename.isNull()) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   791
        // restored from activity, don't do post-capture timeout
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   792
        CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   793
        return;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   794
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   795
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   796
    int postCaptureTimeout = 0;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   797
    QString settingId;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   798
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   799
    if (mEngine->mode() == ImageMode) {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   800
        settingId = CxeSettingIds::STILL_SHOWCAPTURED;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   801
    } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   802
        settingId = CxeSettingIds::VIDEO_SHOWCAPTURED;
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   803
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   804
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   805
    if (!CxuiServiceProvider::isCameraEmbedded()) {
45
hgs
parents: 43
diff changeset
   806
        postCaptureTimeout = mEngine->settings().get<int>(settingId, 0);
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   807
45
hgs
parents: 43
diff changeset
   808
        if (postCaptureTimeout > 0) {
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   809
            mPostcaptureTimer.start(postCaptureTimeout);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   810
        } else {
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   811
            // do nothing
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   812
        }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   813
    }
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   814
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   815
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   816
}
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   817
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   818
/*!
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   819
    Start the timers to stop viewfinder and release the camera
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   820
*/
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   821
void CxuiPostcaptureView::startReleaseTimers()
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   822
{
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   823
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   824
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   825
    // Release camera and stop viewfinder if user stays in postcapture long enough.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   826
    // Battery could otherwise drain fast.
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   827
    mReleaseCameraTimer.start(CXUI_RELEASE_CAMERA_TIMEOUT);
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   828
    mStopViewfinderTimer.start(CXUI_STOP_VIEWFINDER_TIMEOUT);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   829
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   830
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   831
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   832
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   833
void CxuiPostcaptureView::stopTimers()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   834
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   835
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   836
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   837
    // stop all the timers
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   838
    mHideControlsTimeout.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   839
    mReleaseCameraTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   840
    mPostcaptureTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   841
    mStopViewfinderTimer.stop();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   842
43
0e652f8f1fbd 201027_1
hgs
parents: 28
diff changeset
   843
    //!@note mTimersStarted is intentionally not reset here.
28
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   844
    // Once the timers are stopped, they are not to be started again until
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   845
    // we come from precapture view again.
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   846
    // E.g. returning from background could otherwise restart the timers and
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   847
    // if post-capture timer would be on, user could be confused: camera
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   848
    // shows up with  post-capture view, after couple  seconds it disappears
3075d9b614e6 201017_1
hgs
parents: 19
diff changeset
   849
    // 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
   850
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   851
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   852
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   853
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   854
// end of file