logsui/logsapp/src/logsviewmanager.cpp
author hgs
Fri, 15 Oct 2010 14:47:48 +0300
changeset 21 2f0af9ba7665
parent 18 acd4e87b24b4
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
4a5361db8937 Revision: 201015
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".
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
//USER
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "logsviewmanager.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include "logscomponentrepository.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include "logsrecentcallsview.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "logsmatchesview.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "logsdetailsview.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "logsfilter.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "logsdefs.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "logslogger.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "logsservicehandler.h"
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "logsmainwindow.h"
18
hgs
parents: 17
diff changeset
    28
#include "logsappsettings.h"
hgs
parents: 17
diff changeset
    29
#include "logsforegroundwatcher.h"
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
//SYSTEM
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <hbmainwindow.h>
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <hbview.h>
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <QApplication>
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <hblineedit.h>
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include <dialpad.h>
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    37
#include <hbapplication.h>
17
hgs
parents: 15
diff changeset
    38
#include <tstasksettings.h>
21
hgs
parents: 18
diff changeset
    39
#include <afactivation.h>
hgs
parents: 18
diff changeset
    40
#include <afactivitystorage.h>
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
// LogsViewManager::LogsViewManager
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
LogsViewManager::LogsViewManager( 
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    47
        LogsMainWindow& mainWindow, LogsServiceHandler& service,
18
hgs
parents: 17
diff changeset
    48
        LogsAppSettings& settings) : 
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    49
    QObject( 0 ), mMainWindow( mainWindow ), 
21
hgs
parents: 18
diff changeset
    50
    mService( service ), mSettings( settings ),
18
hgs
parents: 17
diff changeset
    51
    mFirstActivation(true), mViewActivationShowDialpad(false), 
21
hgs
parents: 18
diff changeset
    52
    mBackgroundStartupWatcher(0), mDialpadText(QString())
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::LogsViewManager()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
    //It is important that we always handle orientation change first, before
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    //dialpad widget. If connection is moved to a view, then it's not guarantied.
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
    connect( &mainWindow, SIGNAL(orientationChanged(Qt::Orientation)),
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
            this, SLOT(handleOrientationChanged()) );
15
hgs
parents: 9
diff changeset
    60
    connect( &mainWindow, SIGNAL(appGainedForeground()), this, SLOT(appGainedForeground()) );
18
hgs
parents: 17
diff changeset
    61
    connect( &mainWindow, SIGNAL(appLostForeground()), this, SLOT(appLostForeground()) );
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
    mComponentsRepository = new LogsComponentRepository(*this);
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
    
15
hgs
parents: 9
diff changeset
    65
    connect( &mService, SIGNAL( activateView(XQService::LogsViewIndex, bool, QString) ), 
hgs
parents: 9
diff changeset
    66
             this, SLOT( changeRecentViewViaService(XQService::LogsViewIndex, bool, QString) ) );
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
    connect( &mService, SIGNAL( activateView(QString) ), 
8
hgs
parents: 6
diff changeset
    69
             this, SLOT( changeMatchesViewViaService(QString) ));
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    70
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    71
    QObject::connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(saveActivity()));
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    72
21
hgs
parents: 18
diff changeset
    73
    mActivityManager = new AfActivityStorage;
hgs
parents: 18
diff changeset
    74
    mActivation = new AfActivation;
hgs
parents: 18
diff changeset
    75
    
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    76
    handleFirstActivation();
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
    77
    
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::LogsViewManager()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
// LogsViewManager::~LogsViewManager
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
LogsViewManager::~LogsViewManager()
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::~LogsViewManager()" );
21
hgs
parents: 18
diff changeset
    89
    
hgs
parents: 18
diff changeset
    90
    delete mActivation;
hgs
parents: 18
diff changeset
    91
    delete mActivityManager;
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
    delete mComponentsRepository;
18
hgs
parents: 17
diff changeset
    93
    delete mBackgroundStartupWatcher;
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
    
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::~LogsViewManager()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
// -----------------------------------------------------------------------------
8
hgs
parents: 6
diff changeset
    99
// LogsViewManager::changeRecentViewViaService
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
//
8
hgs
parents: 6
diff changeset
   102
void LogsViewManager::changeRecentViewViaService(
15
hgs
parents: 9
diff changeset
   103
    XQService::LogsViewIndex view, bool showDialpad, QString dialpadText)
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
{
17
hgs
parents: 15
diff changeset
   105
    QVariant args(view);
hgs
parents: 15
diff changeset
   106
    activateViewViaService(LogsRecentViewId, showDialpad, dialpadText, args);
8
hgs
parents: 6
diff changeset
   107
}
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
8
hgs
parents: 6
diff changeset
   109
// -----------------------------------------------------------------------------
hgs
parents: 6
diff changeset
   110
// LogsViewManager::changeMatchesViewViaService
hgs
parents: 6
diff changeset
   111
// -----------------------------------------------------------------------------
hgs
parents: 6
diff changeset
   112
//
hgs
parents: 6
diff changeset
   113
void LogsViewManager::changeMatchesViewViaService(QString dialpadText)
hgs
parents: 6
diff changeset
   114
{
17
hgs
parents: 15
diff changeset
   115
    activateViewViaService(LogsMatchesViewId, true, dialpadText);
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
// LogsViewManager::changeRecentView
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
//
8
hgs
parents: 6
diff changeset
   122
void LogsViewManager::changeRecentView(
15
hgs
parents: 9
diff changeset
   123
    XQService::LogsViewIndex view, bool showDialpad)
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    QVariant args(view);
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    doActivateView(LogsRecentViewId, showDialpad, args);
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
// LogsViewManager::proceedExit
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
void LogsViewManager::proceedExit()
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::proceedExit()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
    
18
hgs
parents: 17
diff changeset
   137
    if ( mSettings.logsFeatureFakeExitEnabled() ){
17
hgs
parents: 15
diff changeset
   138
        doFakeExit();
hgs
parents: 15
diff changeset
   139
    } else {
hgs
parents: 15
diff changeset
   140
        qApp->quit();
hgs
parents: 15
diff changeset
   141
    }
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
    
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::proceedExit()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
// LogsViewManager::activateView
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
bool LogsViewManager::activateView(LogsAppViewId viewId)
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
    return doActivateView(viewId, false, QVariant());
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
// LogsViewManager::activateView
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
bool LogsViewManager::activateView(
21
hgs
parents: 18
diff changeset
   161
        LogsAppViewId viewId, bool showDialpad, QVariant args, const QString& dialpadText)
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
{
21
hgs
parents: 18
diff changeset
   163
    return doActivateView(viewId, showDialpad, args, dialpadText );  
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
// LogsViewManager::mainWindow
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
HbMainWindow& LogsViewManager::mainWindow()
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    return mMainWindow;
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
// LogsViewManager::exitApplication
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
void LogsViewManager::exitApplication()
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::exitApplication()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    
18
hgs
parents: 17
diff changeset
   183
    // Send app immetiately to background as there might be some async stuff
hgs
parents: 17
diff changeset
   184
    // that needs to complete before the process can be terminated.
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    mMainWindow.sendAppToBackground();
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
18
hgs
parents: 17
diff changeset
   187
    doExitApplication();
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::exitApplication()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
// LogsViewManager::activatePreviousView
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
// Previously activated view is at slot 1 of view stack
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
//
21
hgs
parents: 18
diff changeset
   197
bool LogsViewManager::activatePreviousView(bool showDialpad,  const QString& dialpadText)
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
{
8
hgs
parents: 6
diff changeset
   199
    LogsAppViewId viewId = ( mViewStack.count() > 1 ) ? 
hgs
parents: 6
diff changeset
   200
        mViewStack.at(1)->viewId() : LogsRecentViewId;
21
hgs
parents: 18
diff changeset
   201
    return doActivateView(viewId, showDialpad, QVariant(), dialpadText);
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
// LogsViewManager::doActivateView
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
// Currently activated view is always at beginning of view stack. Deactivates
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
// previously activated view and activates new view and place it at top of
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
// view stack.
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
bool LogsViewManager::doActivateView(
17
hgs
parents: 15
diff changeset
   212
        LogsAppViewId viewId, bool showDialpad, 
hgs
parents: 15
diff changeset
   213
        QVariant args, const QString& dialpadText, bool reset)
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::doActivateView()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
    
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
    bool activated(false);
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    LogsBaseView* newView = 0; 
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    LogsBaseView* oldView = mViewStack.count() > 0 ? mViewStack.at(0) : 0;
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
    
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   221
    viewId = checkMatchesViewTransition(viewId, dialpadText);
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   222
    
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
    for ( int i = 0; i < mViewStack.count(); ++i ){
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
        if ( mViewStack.at(i)->viewId() == viewId ){
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
            newView = mViewStack.takeAt(i);
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
        }
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
    }
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
    
8
hgs
parents: 6
diff changeset
   229
    if ( !newView ){
hgs
parents: 6
diff changeset
   230
        newView = createView(viewId);
hgs
parents: 6
diff changeset
   231
    }
hgs
parents: 6
diff changeset
   232
    
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
    if ( oldView && newView && oldView != newView ){   
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
        oldView->deactivated();
15
hgs
parents: 9
diff changeset
   235
        disconnect( &mMainWindow, SIGNAL(callKeyPressed()), oldView, SLOT(callKeyPressed()) );
hgs
parents: 9
diff changeset
   236
        disconnect( &mMainWindow, SIGNAL(localeChanged()), oldView, SLOT(localeChanged()) );
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
    }
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
    
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    if ( newView ){
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
        mViewStack.insert(0, newView);
17
hgs
parents: 15
diff changeset
   241
        if ( reset ){
hgs
parents: 15
diff changeset
   242
            newView->resetView();
hgs
parents: 15
diff changeset
   243
        }
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
        mMainWindow.setCurrentView(newView);
8
hgs
parents: 6
diff changeset
   245
        //Setting mainwindow interactive to enable user input during
hgs
parents: 6
diff changeset
   246
        //view switching animation.
hgs
parents: 6
diff changeset
   247
        mMainWindow.setInteractive(true);
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
        mViewActivationArgs = args;
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
        mViewActivationShowDialpad = showDialpad;
21
hgs
parents: 18
diff changeset
   250
        mDialpadText = dialpadText;
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
        completeViewActivation();
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
        activated = true;
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
    }
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::doActivateView()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
    
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
    return activated;
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
// LogsViewManager::completeViewActivation
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
void LogsViewManager::completeViewActivation()
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
    LOGS_QDEBUG_2( "logs [UI] -> LogsViewManager::completeViewActivation(), first", 
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
                   mFirstActivation );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
    if ( mFirstActivation ){
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
        mFirstActivation = false;
15
hgs
parents: 9
diff changeset
   270
        connect( &mMainWindow, SIGNAL(viewReady()), 
hgs
parents: 9
diff changeset
   271
                 this, SLOT(completeViewActivation()), 
hgs
parents: 9
diff changeset
   272
                 Qt::UniqueConnection );
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
    } else {
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
        disconnect( &mMainWindow, SIGNAL(viewReady()), this, SLOT(completeViewActivation()) );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
        LogsBaseView* newView = mViewStack.at(0);
21
hgs
parents: 18
diff changeset
   276
        newView->activated(mViewActivationShowDialpad, mViewActivationArgs, mDialpadText);
15
hgs
parents: 9
diff changeset
   277
        connect( &mMainWindow, SIGNAL(callKeyPressed()), 
hgs
parents: 9
diff changeset
   278
                 newView, SLOT(callKeyPressed()),
hgs
parents: 9
diff changeset
   279
                 Qt::UniqueConnection );
hgs
parents: 9
diff changeset
   280
        connect( &mMainWindow, SIGNAL(localeChanged()), 
hgs
parents: 9
diff changeset
   281
                 newView, SLOT(localeChanged()),
hgs
parents: 9
diff changeset
   282
                 Qt::UniqueConnection );
0
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
    }
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::completeViewActivation()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
}
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
// -----------------------------------------------------------------------------
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
//
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
void LogsViewManager::handleOrientationChanged()
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
{
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::handleOrientationChanged()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
    QMetaObject::invokeMethod(mMainWindow.currentView(), "handleOrientationChanged");
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::handleOrientationChanged()" );
4a5361db8937 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
}
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   297
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   298
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   299
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   300
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   301
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   302
void LogsViewManager::saveActivity()
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   303
{
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   304
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::saveActivity()" );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   305
    
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   306
    if ( mViewStack.count() == 0 ){
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   307
        return;
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   308
    }
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   309
    
17
hgs
parents: 15
diff changeset
   310
    clearActivities();
21
hgs
parents: 18
diff changeset
   311
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   312
    QVariantHash metaData;
8
hgs
parents: 6
diff changeset
   313
    LOGS_QDEBUG( "logs [UI] Start taking screenshot" );
hgs
parents: 6
diff changeset
   314
    QImage* img = new QImage(mMainWindow.rect().size(), QImage::Format_ARGB32_Premultiplied);
hgs
parents: 6
diff changeset
   315
    QPainter p( img );
hgs
parents: 6
diff changeset
   316
    // Use render instead of QPixmap::grabWidget as otherwise screenshot
hgs
parents: 6
diff changeset
   317
    // may become empty.
hgs
parents: 6
diff changeset
   318
    mMainWindow.render( &p, mMainWindow.rect(), mMainWindow.rect() );
21
hgs
parents: 18
diff changeset
   319
    metaData.insert(QString("screenshot"), QPixmap::fromImage(*img));
8
hgs
parents: 6
diff changeset
   320
    delete img;
hgs
parents: 6
diff changeset
   321
    LOGS_QDEBUG( "logs [UI] End taking screenshot" );
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   322
    
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   323
    QByteArray serializedActivity;
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   324
    QDataStream stream(&serializedActivity, QIODevice::WriteOnly | QIODevice::Append);
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   325
    
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   326
    metaData.insert( 
8
hgs
parents: 6
diff changeset
   327
        logsActivityParamInternalViewId, mViewStack.at(0)->viewId() );
hgs
parents: 6
diff changeset
   328
    metaData.insert( 
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   329
        logsActivityParamShowDialpad, mComponentsRepository->dialpad()->isOpen() );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   330
    metaData.insert( 
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   331
        logsActivityParamDialpadText, mComponentsRepository->dialpad()->editor().text() );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   332
    QString activityId = mViewStack.at(0)->saveActivity(stream, metaData);
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   333
    
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   334
    // add the activity to the activity manager
21
hgs
parents: 18
diff changeset
   335
    bool ok = mActivityManager->saveActivity(activityId, serializedActivity, metaData);
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   336
    if ( !ok ){
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   337
        LOGS_QDEBUG( "logs [UI] activity adding failed" );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   338
    }
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   339
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::saveActivity()" );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   340
}
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   341
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   342
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   343
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   344
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   345
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   346
bool LogsViewManager::loadActivity()
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   347
{
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   348
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::loadActivity()" );
21
hgs
parents: 18
diff changeset
   349
    bool loaded = false;
hgs
parents: 18
diff changeset
   350
    if ( mActivation->reason() == Af::ActivationReasonActivity ){
hgs
parents: 18
diff changeset
   351
        loaded = doLoadActivity(mActivation->name());
hgs
parents: 18
diff changeset
   352
    }
hgs
parents: 18
diff changeset
   353
    return loaded;
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   354
}
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   355
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   356
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   357
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   358
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   359
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   360
LogsAppViewId LogsViewManager::checkMatchesViewTransition(
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   361
    LogsAppViewId viewId, const QString& dialpadText)
21
hgs
parents: 18
diff changeset
   362
{Q_UNUSED( dialpadText );
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   363
    if ( viewId == LogsMatchesViewId ){
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   364
        LogsModel* model = mComponentsRepository->model();
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   365
        if ( model && model->predictiveSearchStatus() != logsContactSearchEnabled ){
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   366
            LOGS_QDEBUG( "logs [UI]     contact search disabled, go to recent view" );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   367
            viewId = LogsRecentViewId;
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   368
        }
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   369
    }
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   370
    return viewId;
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   371
}
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   372
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   373
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   374
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   375
// -----------------------------------------------------------------------------
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   376
//
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   377
void LogsViewManager::handleFirstActivation()
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   378
{      
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   379
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::handleFirstActivation()" );
18
hgs
parents: 17
diff changeset
   380
hgs
parents: 17
diff changeset
   381
    if ( mSettings.logsFeaturePreloadingEnabled() ) {
hgs
parents: 17
diff changeset
   382
        delete mBackgroundStartupWatcher;
hgs
parents: 17
diff changeset
   383
        mBackgroundStartupWatcher = 0;
hgs
parents: 17
diff changeset
   384
        mBackgroundStartupWatcher = new LogsForegroundWatcher();
hgs
parents: 17
diff changeset
   385
        connect( mBackgroundStartupWatcher, SIGNAL(gainingForeground()), 
hgs
parents: 17
diff changeset
   386
                 this, SLOT(bgStartupForegroundGained()) );
hgs
parents: 17
diff changeset
   387
        setTaskSwitcherVisibility(false);
hgs
parents: 17
diff changeset
   388
hgs
parents: 17
diff changeset
   389
    } else {
17
hgs
parents: 15
diff changeset
   390
        // Start immediately using all possible resources
hgs
parents: 15
diff changeset
   391
        mComponentsRepository->model()->refreshData();
18
hgs
parents: 17
diff changeset
   392
        
21
hgs
parents: 18
diff changeset
   393
        if ( loadActivity() ){
18
hgs
parents: 17
diff changeset
   394
            LOGS_QDEBUG( "logs [UI] loaded saved activity" );    
hgs
parents: 17
diff changeset
   395
            mMainWindow.bringAppToForeground();
21
hgs
parents: 18
diff changeset
   396
        } else if ( mFirstActivation && !mService.isStartedUsingService() ) {
18
hgs
parents: 17
diff changeset
   397
            activateDefaultView();
hgs
parents: 17
diff changeset
   398
            mMainWindow.bringAppToForeground();
hgs
parents: 17
diff changeset
   399
        }
hgs
parents: 17
diff changeset
   400
        
hgs
parents: 17
diff changeset
   401
        clearActivities();
17
hgs
parents: 15
diff changeset
   402
    }
6
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   403
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   404
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::handleFirstActivation()" );
41c0a814d878 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 4
diff changeset
   405
}
8
hgs
parents: 6
diff changeset
   406
hgs
parents: 6
diff changeset
   407
// -----------------------------------------------------------------------------
hgs
parents: 6
diff changeset
   408
//
hgs
parents: 6
diff changeset
   409
// -----------------------------------------------------------------------------
hgs
parents: 6
diff changeset
   410
//
hgs
parents: 6
diff changeset
   411
LogsBaseView* LogsViewManager::createView(LogsAppViewId viewId)
hgs
parents: 6
diff changeset
   412
{
hgs
parents: 6
diff changeset
   413
    LogsBaseView* newView = 0;
hgs
parents: 6
diff changeset
   414
    if ( viewId == LogsRecentViewId ){
hgs
parents: 6
diff changeset
   415
        newView = mComponentsRepository->recentCallsView();
hgs
parents: 6
diff changeset
   416
        mMainWindow.addView(newView);
hgs
parents: 6
diff changeset
   417
    } else if ( viewId == LogsMatchesViewId ) {
hgs
parents: 6
diff changeset
   418
        newView = mComponentsRepository->matchesView();
hgs
parents: 6
diff changeset
   419
        mMainWindow.addView(newView);
hgs
parents: 6
diff changeset
   420
    } else if ( viewId == LogsDetailsViewId ) {
hgs
parents: 6
diff changeset
   421
        newView = mComponentsRepository->detailsView();
hgs
parents: 6
diff changeset
   422
        mMainWindow.addView(newView);
hgs
parents: 6
diff changeset
   423
    }
hgs
parents: 6
diff changeset
   424
    return newView;
hgs
parents: 6
diff changeset
   425
}
9
hgs
parents: 8
diff changeset
   426
hgs
parents: 8
diff changeset
   427
// -----------------------------------------------------------------------------
hgs
parents: 8
diff changeset
   428
//
hgs
parents: 8
diff changeset
   429
// -----------------------------------------------------------------------------
hgs
parents: 8
diff changeset
   430
//
hgs
parents: 8
diff changeset
   431
void LogsViewManager::closeEmbeddedApplication()
hgs
parents: 8
diff changeset
   432
{
hgs
parents: 8
diff changeset
   433
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::closeEmbeddedApplication()" );
hgs
parents: 8
diff changeset
   434
    if (mViewStack.count()) {
hgs
parents: 8
diff changeset
   435
        mViewStack.at(0)->cancelServiceRequest();
hgs
parents: 8
diff changeset
   436
    }
hgs
parents: 8
diff changeset
   437
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::closeEmbeddedApplication()" );
hgs
parents: 8
diff changeset
   438
}
15
hgs
parents: 9
diff changeset
   439
hgs
parents: 9
diff changeset
   440
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   441
// If application comes back to foreground while exit is pending due unfinished
hgs
parents: 9
diff changeset
   442
// operations, finising of those operations does not cause anymore real exit.
hgs
parents: 9
diff changeset
   443
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   444
//
hgs
parents: 9
diff changeset
   445
void LogsViewManager::appGainedForeground()
hgs
parents: 9
diff changeset
   446
{
hgs
parents: 9
diff changeset
   447
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::appGainedForeground()" );
hgs
parents: 9
diff changeset
   448
    foreach ( LogsBaseView* view, mViewStack ){
hgs
parents: 9
diff changeset
   449
        disconnect( view, SIGNAL(exitAllowed()), this, SLOT(proceedExit()) );
hgs
parents: 9
diff changeset
   450
    }
17
hgs
parents: 15
diff changeset
   451
    
18
hgs
parents: 17
diff changeset
   452
    if ( mSettings.logsFeatureFakeExitEnabled() || mSettings.logsFeaturePreloadingEnabled() ){
hgs
parents: 17
diff changeset
   453
        endFakeExit();
17
hgs
parents: 15
diff changeset
   454
    }
hgs
parents: 15
diff changeset
   455
    
15
hgs
parents: 9
diff changeset
   456
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::appGainedForeground()" );
hgs
parents: 9
diff changeset
   457
}
17
hgs
parents: 15
diff changeset
   458
hgs
parents: 15
diff changeset
   459
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   460
//
hgs
parents: 15
diff changeset
   461
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   462
//
18
hgs
parents: 17
diff changeset
   463
void LogsViewManager::appLostForeground()
hgs
parents: 17
diff changeset
   464
{
hgs
parents: 17
diff changeset
   465
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::appLostForeground()" );
hgs
parents: 17
diff changeset
   466
    
hgs
parents: 17
diff changeset
   467
    if ( mSettings.logsFeatureFakeExitEnabled() ){
hgs
parents: 17
diff changeset
   468
        doExitApplication(false); // Bypass view exit handling
hgs
parents: 17
diff changeset
   469
    }
hgs
parents: 17
diff changeset
   470
    // TODO: non-continuus app should also do exit at this point if 
hgs
parents: 17
diff changeset
   471
    // didn't loose foreground because of embedded app. However, no sensible
hgs
parents: 17
diff changeset
   472
    // way at the moment for handling embedded app foreground monitoring.
hgs
parents: 17
diff changeset
   473
    
hgs
parents: 17
diff changeset
   474
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::appLostForeground()" );
hgs
parents: 17
diff changeset
   475
}
hgs
parents: 17
diff changeset
   476
hgs
parents: 17
diff changeset
   477
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   478
//
hgs
parents: 17
diff changeset
   479
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   480
//
21
hgs
parents: 18
diff changeset
   481
void LogsViewManager::activityRequested(
hgs
parents: 18
diff changeset
   482
        Af::ActivationReason reason, QString name, QVariantHash parameters)
17
hgs
parents: 15
diff changeset
   483
{
hgs
parents: 15
diff changeset
   484
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::activityRequested()" );
21
hgs
parents: 18
diff changeset
   485
    Q_UNUSED(reason);
hgs
parents: 18
diff changeset
   486
    Q_UNUSED(parameters);
hgs
parents: 18
diff changeset
   487
    if ( doLoadActivity(name) ){
17
hgs
parents: 15
diff changeset
   488
        mMainWindow.bringAppToForeground();
hgs
parents: 15
diff changeset
   489
    }
hgs
parents: 15
diff changeset
   490
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::activityRequested()" );
hgs
parents: 15
diff changeset
   491
}
hgs
parents: 15
diff changeset
   492
hgs
parents: 15
diff changeset
   493
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   494
//
hgs
parents: 15
diff changeset
   495
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   496
//
18
hgs
parents: 17
diff changeset
   497
void LogsViewManager::bgStartupForegroundGained()
hgs
parents: 17
diff changeset
   498
{
hgs
parents: 17
diff changeset
   499
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::bgStartupForegroundGained()" );
hgs
parents: 17
diff changeset
   500
    endFakeExit();
hgs
parents: 17
diff changeset
   501
    mMainWindow.bringAppToForeground(); 
hgs
parents: 17
diff changeset
   502
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::bgStartupForegroundGained()" );
hgs
parents: 17
diff changeset
   503
}
hgs
parents: 17
diff changeset
   504
hgs
parents: 17
diff changeset
   505
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   506
//
hgs
parents: 17
diff changeset
   507
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   508
//
17
hgs
parents: 15
diff changeset
   509
void LogsViewManager::doFakeExit()
hgs
parents: 15
diff changeset
   510
{
hgs
parents: 15
diff changeset
   511
    saveActivity();
21
hgs
parents: 18
diff changeset
   512
    connect( mActivation, SIGNAL(activated(Af::ActivationReason,QString,QVariantHash)), 
hgs
parents: 18
diff changeset
   513
             this, SLOT(activityRequested(Af::ActivationReason,QString,QVariantHash)), 
hgs
parents: 18
diff changeset
   514
             Qt::UniqueConnection );
17
hgs
parents: 15
diff changeset
   515
    mComponentsRepository->model()->compressData();
18
hgs
parents: 17
diff changeset
   516
    setTaskSwitcherVisibility(false);
hgs
parents: 17
diff changeset
   517
}
hgs
parents: 17
diff changeset
   518
hgs
parents: 17
diff changeset
   519
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   520
//
hgs
parents: 17
diff changeset
   521
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   522
//
hgs
parents: 17
diff changeset
   523
void LogsViewManager::endFakeExit()
hgs
parents: 17
diff changeset
   524
{
21
hgs
parents: 18
diff changeset
   525
    delete mBackgroundStartupWatcher;
hgs
parents: 18
diff changeset
   526
    mBackgroundStartupWatcher = 0;
18
hgs
parents: 17
diff changeset
   527
    setTaskSwitcherVisibility(true);
hgs
parents: 17
diff changeset
   528
    mComponentsRepository->model()->refreshData();
hgs
parents: 17
diff changeset
   529
    if ( !mMainWindow.currentView() ){
hgs
parents: 17
diff changeset
   530
        activateDefaultView();
hgs
parents: 17
diff changeset
   531
    }
hgs
parents: 17
diff changeset
   532
    clearActivities();
17
hgs
parents: 15
diff changeset
   533
}
hgs
parents: 15
diff changeset
   534
hgs
parents: 15
diff changeset
   535
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   536
//
hgs
parents: 15
diff changeset
   537
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   538
//
hgs
parents: 15
diff changeset
   539
bool LogsViewManager::doLoadActivity(const QString& activityId)
hgs
parents: 15
diff changeset
   540
{
21
hgs
parents: 18
diff changeset
   541
    LOGS_QDEBUG_2( "logs [UI] -> LogsViewManager::doLoadActivity():", activityId );
17
hgs
parents: 15
diff changeset
   542
    bool loaded = false;
hgs
parents: 15
diff changeset
   543
    
hgs
parents: 15
diff changeset
   544
    LogsBaseView* matchingView = 0;
hgs
parents: 15
diff changeset
   545
    for ( int i = 0; i < mViewStack.count() && !matchingView; i++ ){
hgs
parents: 15
diff changeset
   546
        if ( mViewStack.at(i)->matchWithActivityId(activityId) ){
hgs
parents: 15
diff changeset
   547
            matchingView =  mViewStack.at(i);
hgs
parents: 15
diff changeset
   548
        }
hgs
parents: 15
diff changeset
   549
    }
hgs
parents: 15
diff changeset
   550
    
21
hgs
parents: 18
diff changeset
   551
    QVariantHash params = mActivityManager->activityMetaData(activityId);
17
hgs
parents: 15
diff changeset
   552
    LOGS_QDEBUG_2( "logs [UI] Activity params", params );
hgs
parents: 15
diff changeset
   553
            
hgs
parents: 15
diff changeset
   554
    if ( !matchingView ){
hgs
parents: 15
diff changeset
   555
        // Try if creating such view is possible
hgs
parents: 15
diff changeset
   556
        int viewId = params.value(logsActivityParamInternalViewId).toInt();
hgs
parents: 15
diff changeset
   557
        matchingView = createView(static_cast<LogsAppViewId>(viewId));
hgs
parents: 15
diff changeset
   558
    }
hgs
parents: 15
diff changeset
   559
    
hgs
parents: 15
diff changeset
   560
    if ( matchingView ){
hgs
parents: 15
diff changeset
   561
        bool showDialpad = params.value(logsActivityParamShowDialpad).toBool();
hgs
parents: 15
diff changeset
   562
        QString dialpadText = params.value(logsActivityParamDialpadText).toString();
hgs
parents: 15
diff changeset
   563
        
21
hgs
parents: 18
diff changeset
   564
        QByteArray serializedActivity = 
hgs
parents: 18
diff changeset
   565
                mActivityManager->activityData(activityId).toByteArray();
17
hgs
parents: 15
diff changeset
   566
        QDataStream stream(&serializedActivity, QIODevice::ReadOnly);
hgs
parents: 15
diff changeset
   567
        
hgs
parents: 15
diff changeset
   568
        QVariant args = matchingView->loadActivity(activityId, stream, params);
hgs
parents: 15
diff changeset
   569
        loaded = doActivateView( 
18
hgs
parents: 17
diff changeset
   570
            matchingView->viewId(), showDialpad, args, dialpadText );
17
hgs
parents: 15
diff changeset
   571
    }
hgs
parents: 15
diff changeset
   572
    
hgs
parents: 15
diff changeset
   573
    LOGS_QDEBUG_2( "logs [UI] <- LogsViewManager::doLoadActivity() loaded:", loaded );
hgs
parents: 15
diff changeset
   574
    return loaded;
hgs
parents: 15
diff changeset
   575
}
hgs
parents: 15
diff changeset
   576
hgs
parents: 15
diff changeset
   577
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   578
//
hgs
parents: 15
diff changeset
   579
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   580
//
hgs
parents: 15
diff changeset
   581
void LogsViewManager::clearActivities()
hgs
parents: 15
diff changeset
   582
{
hgs
parents: 15
diff changeset
   583
    foreach ( LogsBaseView* view, mViewStack ){
21
hgs
parents: 18
diff changeset
   584
        view->clearActivity(*mActivityManager);
17
hgs
parents: 15
diff changeset
   585
    }
21
hgs
parents: 18
diff changeset
   586
    disconnect( mActivation, SIGNAL(activated(Af::ActivationReason,QString,QVariantHash)), 
hgs
parents: 18
diff changeset
   587
                this, SLOT(activityRequested(Af::ActivationReason,QString,QVariantHash)) );
17
hgs
parents: 15
diff changeset
   588
}
hgs
parents: 15
diff changeset
   589
hgs
parents: 15
diff changeset
   590
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   591
//
hgs
parents: 15
diff changeset
   592
// -----------------------------------------------------------------------------
hgs
parents: 15
diff changeset
   593
//
hgs
parents: 15
diff changeset
   594
void LogsViewManager::activateViewViaService(
hgs
parents: 15
diff changeset
   595
    LogsAppViewId viewId, bool showDialpad, 
hgs
parents: 15
diff changeset
   596
    const QString& dialpadText, const QVariant& args)
hgs
parents: 15
diff changeset
   597
{
hgs
parents: 15
diff changeset
   598
    LOGS_QDEBUG_2( "logs [UI] -> LogsViewManager::activateViewViaService()", viewId );
hgs
parents: 15
diff changeset
   599
    clearActivities();
hgs
parents: 15
diff changeset
   600
    closeEmbeddedApplication();
21
hgs
parents: 18
diff changeset
   601
    if ( doActivateView(viewId, showDialpad, args, dialpadText, true) ){  
18
hgs
parents: 17
diff changeset
   602
        mMainWindow.bringAppToForeground();
hgs
parents: 17
diff changeset
   603
    }
17
hgs
parents: 15
diff changeset
   604
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::activateViewViaService()" );
hgs
parents: 15
diff changeset
   605
}
18
hgs
parents: 17
diff changeset
   606
hgs
parents: 17
diff changeset
   607
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   608
//
hgs
parents: 17
diff changeset
   609
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   610
//
hgs
parents: 17
diff changeset
   611
void LogsViewManager::setTaskSwitcherVisibility(bool visible)
hgs
parents: 17
diff changeset
   612
{
hgs
parents: 17
diff changeset
   613
    LOGS_QDEBUG_2( "logs [UI] -> LogsViewManager::setTaskSwitcherVisibility()", visible );
hgs
parents: 17
diff changeset
   614
    TsTaskSettings taskSettings;
hgs
parents: 17
diff changeset
   615
    taskSettings.setVisibility(visible);
hgs
parents: 17
diff changeset
   616
}
hgs
parents: 17
diff changeset
   617
hgs
parents: 17
diff changeset
   618
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   619
//
hgs
parents: 17
diff changeset
   620
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   621
//
hgs
parents: 17
diff changeset
   622
void LogsViewManager::doExitApplication(bool viewExitHandling)
hgs
parents: 17
diff changeset
   623
{
hgs
parents: 17
diff changeset
   624
    LOGS_QDEBUG( "logs [UI] -> LogsViewManager::doExitApplication()" );
hgs
parents: 17
diff changeset
   625
    
hgs
parents: 17
diff changeset
   626
    bool exitAllowed( true );
hgs
parents: 17
diff changeset
   627
    foreach ( LogsBaseView* view, mViewStack ){
hgs
parents: 17
diff changeset
   628
        if ( viewExitHandling ){
hgs
parents: 17
diff changeset
   629
            view->handleExit();
hgs
parents: 17
diff changeset
   630
        }
hgs
parents: 17
diff changeset
   631
        if ( !view->isExitAllowed() ){
hgs
parents: 17
diff changeset
   632
            exitAllowed = false;
hgs
parents: 17
diff changeset
   633
            connect( view, SIGNAL(exitAllowed()),
hgs
parents: 17
diff changeset
   634
                     this, SLOT(proceedExit()), 
hgs
parents: 17
diff changeset
   635
                     Qt::UniqueConnection );
hgs
parents: 17
diff changeset
   636
        }
hgs
parents: 17
diff changeset
   637
    }
hgs
parents: 17
diff changeset
   638
    if ( exitAllowed ){
hgs
parents: 17
diff changeset
   639
        LOGS_QDEBUG( "logs [UI] Handle exit immediately" );
hgs
parents: 17
diff changeset
   640
        proceedExit();
hgs
parents: 17
diff changeset
   641
    } else {
hgs
parents: 17
diff changeset
   642
        // Just wait for signal from view(s) that exiting can proceed
hgs
parents: 17
diff changeset
   643
        LOGS_QDEBUG( "logs [UI] Delayed exit handling" );
hgs
parents: 17
diff changeset
   644
    }
hgs
parents: 17
diff changeset
   645
    
hgs
parents: 17
diff changeset
   646
    LOGS_QDEBUG( "logs [UI] <- LogsViewManager::doExitApplication()" );
hgs
parents: 17
diff changeset
   647
}
hgs
parents: 17
diff changeset
   648
hgs
parents: 17
diff changeset
   649
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   650
//
hgs
parents: 17
diff changeset
   651
// -----------------------------------------------------------------------------
hgs
parents: 17
diff changeset
   652
//
hgs
parents: 17
diff changeset
   653
void LogsViewManager::activateDefaultView()
hgs
parents: 17
diff changeset
   654
{
hgs
parents: 17
diff changeset
   655
    changeRecentView( XQService::LogsViewAll, false );
hgs
parents: 17
diff changeset
   656
}