videocollection/videocollectionview/src/videolistwidget.cpp
author hgs
Thu, 01 Apr 2010 23:32:44 +0300
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
permissions -rw-r--r--
201011
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:   Videolist content widget implementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include "videolistwidget.h"
hgs
parents:
diff changeset
    19
34
hgs
parents: 30
diff changeset
    20
#include <qcoreapplication.h>
30
hgs
parents:
diff changeset
    21
#include <qtimer.h>
hgs
parents:
diff changeset
    22
#include <hbscrollbar.h>
hgs
parents:
diff changeset
    23
#include <xqserviceutil.h>
hgs
parents:
diff changeset
    24
#include <hbmenu.h>
hgs
parents:
diff changeset
    25
#include <hbaction.h>
hgs
parents:
diff changeset
    26
#include <hbinstance.h>
hgs
parents:
diff changeset
    27
#include <hbmainwindow.h>
hgs
parents:
diff changeset
    28
#include <hblistviewitem.h>
hgs
parents:
diff changeset
    29
#include <hbmessagebox.h>
hgs
parents:
diff changeset
    30
#include <vcxmyvideosdefs.h>
hgs
parents:
diff changeset
    31
34
hgs
parents: 30
diff changeset
    32
#include "videocollectionviewutils.h"
hgs
parents: 30
diff changeset
    33
#include "videocollectionuiloader.h"
hgs
parents: 30
diff changeset
    34
#include "videolistselectiondialog.h"
30
hgs
parents:
diff changeset
    35
#include "videoservices.h"
hgs
parents:
diff changeset
    36
#include "videothumbnaildata.h"
hgs
parents:
diff changeset
    37
#include "videosortfilterproxymodel.h"
hgs
parents:
diff changeset
    38
#include "videocollectioncommon.h"
hgs
parents:
diff changeset
    39
#include "mpxhbvideocommondefs.h"
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
// Interval in ms to report the scroll position.
hgs
parents:
diff changeset
    42
const int SCROLL_POSITION_TIMER_TIMEOUT = 100;
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
// Constructor
hgs
parents:
diff changeset
    46
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
//
34
hgs
parents: 30
diff changeset
    48
VideoListWidget::VideoListWidget(VideoCollectionUiLoader *uiLoader, HbView *parent) :
30
hgs
parents:
diff changeset
    49
HbListView(parent),
hgs
parents:
diff changeset
    50
mModel(0),
hgs
parents:
diff changeset
    51
mVideoServices(0),
34
hgs
parents: 30
diff changeset
    52
mCurrentLevel(VideoCollectionCommon::ELevelInvalid),
30
hgs
parents:
diff changeset
    53
mSignalsConnected(false),
hgs
parents:
diff changeset
    54
mIsService(false),
34
hgs
parents: 30
diff changeset
    55
mNavKeyBackAction(0),
hgs
parents: 30
diff changeset
    56
mNavKeyQuitAction(0),
30
hgs
parents:
diff changeset
    57
mContextMenu(0),
34
hgs
parents: 30
diff changeset
    58
mSelectionMode(HbAbstractItemView::NoSelection),
hgs
parents: 30
diff changeset
    59
mScrollPositionTimer(0),
hgs
parents: 30
diff changeset
    60
mUiLoader(uiLoader)
30
hgs
parents:
diff changeset
    61
{
hgs
parents:
diff changeset
    62
    // NOP
hgs
parents:
diff changeset
    63
}
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    66
// Destructor
hgs
parents:
diff changeset
    67
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    68
//
hgs
parents:
diff changeset
    69
VideoListWidget::~VideoListWidget()
hgs
parents:
diff changeset
    70
{
hgs
parents:
diff changeset
    71
    delete mScrollPositionTimer;
hgs
parents:
diff changeset
    72
    mScrollPositionTimer = 0;
hgs
parents:
diff changeset
    73
	mContextMenuActions.clear();
hgs
parents:
diff changeset
    74
	disconnect();
hgs
parents:
diff changeset
    75
    delete mContextMenu;
hgs
parents:
diff changeset
    76
    mContextMenu = 0;
34
hgs
parents: 30
diff changeset
    77
    delete mNavKeyBackAction;
hgs
parents: 30
diff changeset
    78
    mNavKeyBackAction = 0;
hgs
parents: 30
diff changeset
    79
    delete mNavKeyQuitAction;
hgs
parents: 30
diff changeset
    80
    mNavKeyQuitAction = 0;
30
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    84
// initialize
hgs
parents:
diff changeset
    85
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    86
//
hgs
parents:
diff changeset
    87
int VideoListWidget::initialize(VideoSortFilterProxyModel &model, VideoServices* videoServices)
hgs
parents:
diff changeset
    88
{
hgs
parents:
diff changeset
    89
    mModel = &model;
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
	mVideoServices = videoServices;
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
	if(mVideoServices)
hgs
parents:
diff changeset
    94
	{
hgs
parents:
diff changeset
    95
		mIsService = true;
hgs
parents:
diff changeset
    96
	}
hgs
parents:
diff changeset
    97
34
hgs
parents: 30
diff changeset
    98
    // init list view
hgs
parents: 30
diff changeset
    99
    VideoCollectionViewUtils::initListView(this);
30
hgs
parents:
diff changeset
   100
34
hgs
parents: 30
diff changeset
   101
    // Navigation keys.
hgs
parents: 30
diff changeset
   102
    mNavKeyBackAction = new HbAction(Hb::BackNaviAction);
hgs
parents: 30
diff changeset
   103
	
hgs
parents: 30
diff changeset
   104
    mNavKeyQuitAction = new HbAction(Hb::QuitNaviAction);
30
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
	mScrollPositionTimer = new QTimer();
hgs
parents:
diff changeset
   107
	mScrollPositionTimer->setSingleShot(true);
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
	if (mIsService)
hgs
parents:
diff changeset
   110
	{
hgs
parents:
diff changeset
   111
		connect(this, SIGNAL(fileUri(const QString&)), mVideoServices, SLOT(itemSelected(const QString&)));
hgs
parents:
diff changeset
   112
	}
hgs
parents:
diff changeset
   113
35
hgs
parents: 34
diff changeset
   114
	setModel(mModel);
34
hgs
parents: 30
diff changeset
   115
	
30
hgs
parents:
diff changeset
   116
    return 0;
hgs
parents:
diff changeset
   117
}
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   120
// activate
hgs
parents:
diff changeset
   121
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   122
//
hgs
parents:
diff changeset
   123
int VideoListWidget::activate()
hgs
parents:
diff changeset
   124
{
hgs
parents:
diff changeset
   125
    return activate(mCurrentLevel);
hgs
parents:
diff changeset
   126
}
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   129
// activate
hgs
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   131
//
34
hgs
parents: 30
diff changeset
   132
int VideoListWidget::activate(VideoCollectionCommon::TCollectionLevels level)
30
hgs
parents:
diff changeset
   133
{
hgs
parents:
diff changeset
   134
    if(!mModel)
hgs
parents:
diff changeset
   135
    {
hgs
parents:
diff changeset
   136
        return -1;
hgs
parents:
diff changeset
   137
    }
35
hgs
parents: 34
diff changeset
   138
    
30
hgs
parents:
diff changeset
   139
	mCurrentLevel = level;
35
hgs
parents: 34
diff changeset
   140
    setVisible(true);
30
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
    if ( connectSignals() < 0)
hgs
parents:
diff changeset
   143
    {
hgs
parents:
diff changeset
   144
        return -1;
hgs
parents:
diff changeset
   145
    }
hgs
parents:
diff changeset
   146
34
hgs
parents: 30
diff changeset
   147
    HbView *currentView = hbInstance->allMainWindows().value(0)->currentView();
hgs
parents: 30
diff changeset
   148
hgs
parents: 30
diff changeset
   149
    // Set navigation key only when widget is not in selection mode.
hgs
parents: 30
diff changeset
   150
    if(currentView && mSelectionMode == HbAbstractItemView::NoSelection)
hgs
parents: 30
diff changeset
   151
    {
hgs
parents: 30
diff changeset
   152
        if(level != VideoCollectionCommon::ELevelDefaultColl && 
hgs
parents: 30
diff changeset
   153
           level != VideoCollectionCommon::ELevelAlbum)
hgs
parents: 30
diff changeset
   154
        {
hgs
parents: 30
diff changeset
   155
            if(mNavKeyQuitAction)
hgs
parents: 30
diff changeset
   156
            {
hgs
parents: 30
diff changeset
   157
                currentView->setNavigationAction(mNavKeyQuitAction);
hgs
parents: 30
diff changeset
   158
            }
hgs
parents: 30
diff changeset
   159
        }
hgs
parents: 30
diff changeset
   160
        else if(mNavKeyBackAction)
hgs
parents: 30
diff changeset
   161
        {
hgs
parents: 30
diff changeset
   162
            currentView->setNavigationAction(mNavKeyBackAction);
hgs
parents: 30
diff changeset
   163
        }
hgs
parents: 30
diff changeset
   164
    }
hgs
parents: 30
diff changeset
   165
    // open model to the current level in case not in album or category
hgs
parents: 30
diff changeset
   166
    if(level != VideoCollectionCommon::ELevelAlbum &&
hgs
parents: 30
diff changeset
   167
        level != VideoCollectionCommon::ELevelDefaultColl)
hgs
parents: 30
diff changeset
   168
    {
hgs
parents: 30
diff changeset
   169
         mModel->open(level);
hgs
parents: 30
diff changeset
   170
    }
hgs
parents: 30
diff changeset
   171
    
30
hgs
parents:
diff changeset
   172
    // Enable thumbnail background fetching.
hgs
parents:
diff changeset
   173
    VideoThumbnailData &thumbnailData = VideoThumbnailData::instance();
hgs
parents:
diff changeset
   174
    thumbnailData.enableBackgroundFetching(true);
34
hgs
parents: 30
diff changeset
   175
    thumbnailData.startBackgroundFetching(mModel, 0);
30
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
    return 0;
hgs
parents:
diff changeset
   178
}
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   181
// deactivate
hgs
parents:
diff changeset
   182
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   183
//
hgs
parents:
diff changeset
   184
void VideoListWidget::deactivate()
hgs
parents:
diff changeset
   185
{
hgs
parents:
diff changeset
   186
    if(mContextMenu) 
hgs
parents:
diff changeset
   187
    {
hgs
parents:
diff changeset
   188
        mContextMenu->hide();
hgs
parents:
diff changeset
   189
    }
35
hgs
parents: 34
diff changeset
   190
hgs
parents: 34
diff changeset
   191
    setVisible(false);
30
hgs
parents:
diff changeset
   192
    disConnectSignals();
34
hgs
parents: 30
diff changeset
   193
    
30
hgs
parents:
diff changeset
   194
    // Free allocated memory for list thumbnails and disable background fetching.
hgs
parents:
diff changeset
   195
    VideoThumbnailData &thumbnailData = VideoThumbnailData::instance();
hgs
parents:
diff changeset
   196
    thumbnailData.enableBackgroundFetching(false);
hgs
parents:
diff changeset
   197
    thumbnailData.freeThumbnailData();
hgs
parents:
diff changeset
   198
}
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
// ---------------------------------------------------------------------------
34
hgs
parents: 30
diff changeset
   201
// getLevel
hgs
parents: 30
diff changeset
   202
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   203
//
hgs
parents: 30
diff changeset
   204
VideoCollectionCommon::TCollectionLevels VideoListWidget::getLevel()
hgs
parents: 30
diff changeset
   205
{
hgs
parents: 30
diff changeset
   206
    return mCurrentLevel;
hgs
parents: 30
diff changeset
   207
}
hgs
parents: 30
diff changeset
   208
hgs
parents: 30
diff changeset
   209
// ---------------------------------------------------------------------------
30
hgs
parents:
diff changeset
   210
// connectSignals
hgs
parents:
diff changeset
   211
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   212
//
hgs
parents:
diff changeset
   213
int VideoListWidget::connectSignals()
hgs
parents:
diff changeset
   214
{
hgs
parents:
diff changeset
   215
    if (!mSignalsConnected)
hgs
parents:
diff changeset
   216
    {
34
hgs
parents: 30
diff changeset
   217
        if(!connect(this, SIGNAL(scrollingStarted()), this, SLOT(scrollingStartedSlot())) ||
hgs
parents: 30
diff changeset
   218
           !connect(this, SIGNAL(scrollingEnded()), this, SLOT(scrollingEndedSlot())) ||
30
hgs
parents:
diff changeset
   219
           !connect(this, SIGNAL(scrollPositionChanged(const QPointF &)), 
hgs
parents:
diff changeset
   220
                   this, SLOT(scrollPositionChangedSlot(const QPointF &))) ||
34
hgs
parents: 30
diff changeset
   221
           !connect(mScrollPositionTimer, SIGNAL(timeout()), this, SLOT(scrollPositionTimerSlot())) || 
hgs
parents: 30
diff changeset
   222
           !connect(mNavKeyBackAction, SIGNAL(triggered()), this, SLOT(back())) ||
hgs
parents: 30
diff changeset
   223
           !connect(mNavKeyQuitAction, SIGNAL(triggered()), qApp, SLOT(quit()))) 
30
hgs
parents:
diff changeset
   224
        {
hgs
parents:
diff changeset
   225
            return -1;
hgs
parents:
diff changeset
   226
        }
hgs
parents:
diff changeset
   227
        mSignalsConnected = true;
hgs
parents:
diff changeset
   228
    }
hgs
parents:
diff changeset
   229
	return 0;
hgs
parents:
diff changeset
   230
}
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   233
// disConnectSignals
hgs
parents:
diff changeset
   234
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   235
//
hgs
parents:
diff changeset
   236
void VideoListWidget::disConnectSignals()
hgs
parents:
diff changeset
   237
{
34
hgs
parents: 30
diff changeset
   238
    disconnect(this, SIGNAL(scrollingStarted()), this, SLOT(scrollingStartedSlot()));
hgs
parents: 30
diff changeset
   239
    disconnect(this, SIGNAL(scrollingEnded()), this, SLOT(scrollingEndedSlot()));
30
hgs
parents:
diff changeset
   240
    disconnect(this, SIGNAL(scrollPositionChanged(const QPointF&)), 
hgs
parents:
diff changeset
   241
               this, SLOT(scrollPositionChangedSlot(const QPointF&)));
34
hgs
parents: 30
diff changeset
   242
    disconnect(mScrollPositionTimer, SIGNAL(timeout()), this, SLOT(scrollPositionTimerSlot()));
hgs
parents: 30
diff changeset
   243
    disconnect(mNavKeyBackAction, SIGNAL(triggered()), this, SLOT(back()));
hgs
parents: 30
diff changeset
   244
    disconnect(mNavKeyQuitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
hgs
parents: 30
diff changeset
   245
30
hgs
parents:
diff changeset
   246
	mSignalsConnected = false;
hgs
parents:
diff changeset
   247
}
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   250
// deleteItemSlot
hgs
parents:
diff changeset
   251
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   252
//
hgs
parents:
diff changeset
   253
void VideoListWidget::deleteItemSlot()
hgs
parents:
diff changeset
   254
{
hgs
parents:
diff changeset
   255
    if(!mModel)
hgs
parents:
diff changeset
   256
    {
hgs
parents:
diff changeset
   257
        return;
hgs
parents:
diff changeset
   258
    }
hgs
parents:
diff changeset
   259
    
hgs
parents:
diff changeset
   260
    QVariant variant;
hgs
parents:
diff changeset
   261
    QModelIndex index = currentIndex();
hgs
parents:
diff changeset
   262
    variant = mModel->data(index, Qt::DisplayRole);
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
    if (variant.isValid())
hgs
parents:
diff changeset
   265
    {
35
hgs
parents: 34
diff changeset
   266
        QString text = hbTrId("txt_videos_info_do_you_want_to_delete_1").arg(
30
hgs
parents:
diff changeset
   267
                variant.toStringList().first());
hgs
parents:
diff changeset
   268
        if(HbMessageBox::question(text))
hgs
parents:
diff changeset
   269
        {
hgs
parents:
diff changeset
   270
            QModelIndexList list;
hgs
parents:
diff changeset
   271
            list.append(index);
hgs
parents:
diff changeset
   272
            mModel->deleteItems(list);
hgs
parents:
diff changeset
   273
        }
hgs
parents:
diff changeset
   274
    }
hgs
parents:
diff changeset
   275
}
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   278
// createContextMenu
hgs
parents:
diff changeset
   279
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   280
//
hgs
parents:
diff changeset
   281
void VideoListWidget::createContextMenu()
hgs
parents:
diff changeset
   282
{
hgs
parents:
diff changeset
   283
    if(mContextMenu)
hgs
parents:
diff changeset
   284
    {
hgs
parents:
diff changeset
   285
        return;
hgs
parents:
diff changeset
   286
    }
35
hgs
parents: 34
diff changeset
   287
    
30
hgs
parents:
diff changeset
   288
    mContextMenu = new HbMenu();
35
hgs
parents: 34
diff changeset
   289
    if (mContextMenu)
30
hgs
parents:
diff changeset
   290
    {
35
hgs
parents: 34
diff changeset
   291
        mContextMenu->setDismissPolicy(HbPopup::TapAnywhere);
hgs
parents: 34
diff changeset
   292
        if (mIsService)
hgs
parents: 34
diff changeset
   293
        {
hgs
parents: 34
diff changeset
   294
            mContextMenuActions[EActionPlay]    = 
hgs
parents: 34
diff changeset
   295
                    mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot())); 
hgs
parents: 34
diff changeset
   296
            mContextMenuActions[EActionDetails] = 
hgs
parents: 34
diff changeset
   297
                    mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
hgs
parents: 34
diff changeset
   298
        }
hgs
parents: 34
diff changeset
   299
        else
hgs
parents: 34
diff changeset
   300
        {
hgs
parents: 34
diff changeset
   301
            mContextMenuActions[EActionAddToCollection] = 
hgs
parents: 34
diff changeset
   302
                    mContextMenu->addAction(hbTrId("txt_videos_menu_add_to_collection"), this, SLOT(addToCollectionSlot()));
hgs
parents: 34
diff changeset
   303
            mContextMenuActions[EActionRemove]           = 
hgs
parents: 34
diff changeset
   304
                    mContextMenu->addAction(hbTrId("txt_videos_menu_remove_from_collection"), this, SLOT(removeFromCollectionSlot()));
hgs
parents: 34
diff changeset
   305
            mContextMenuActions[EActionRename]           = 
hgs
parents: 34
diff changeset
   306
                    mContextMenu->addAction(hbTrId("txt_common_menu_rename_item"), this, SLOT(renameSlot()));
hgs
parents: 34
diff changeset
   307
            mContextMenuActions[EActionRemoveCollection] = 
hgs
parents: 34
diff changeset
   308
                    mContextMenu->addAction(hbTrId("txt_videos_menu_remove_collection"), this, SLOT(removeCollectionSlot()));   
hgs
parents: 34
diff changeset
   309
            mContextMenuActions[EActionDelete]           = 
hgs
parents: 34
diff changeset
   310
                    mContextMenu->addAction(hbTrId("txt_common_menu_delete"), this, SLOT(deleteItemSlot()));
hgs
parents: 34
diff changeset
   311
            mContextMenuActions[EActionDetails]          = 
hgs
parents: 34
diff changeset
   312
                    mContextMenu->addAction(hbTrId("txt_common_menu_details"), this, SLOT(openDetailsSlot()));
hgs
parents: 34
diff changeset
   313
        }
30
hgs
parents:
diff changeset
   314
    }
hgs
parents:
diff changeset
   315
}
hgs
parents:
diff changeset
   316
hgs
parents:
diff changeset
   317
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   318
// setContextMenu
hgs
parents:
diff changeset
   319
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   320
//
34
hgs
parents: 30
diff changeset
   321
void VideoListWidget::setContextMenu()
30
hgs
parents:
diff changeset
   322
{
hgs
parents:
diff changeset
   323
    if(!mContextMenu)
hgs
parents:
diff changeset
   324
    {
hgs
parents:
diff changeset
   325
        createContextMenu();
hgs
parents:
diff changeset
   326
    }
35
hgs
parents: 34
diff changeset
   327
    
hgs
parents: 34
diff changeset
   328
    if (!mContextMenu)
hgs
parents: 34
diff changeset
   329
    {
hgs
parents: 34
diff changeset
   330
        // failed to create context menu, return
hgs
parents: 34
diff changeset
   331
        return;
hgs
parents: 34
diff changeset
   332
    }
hgs
parents: 34
diff changeset
   333
    
30
hgs
parents:
diff changeset
   334
	int menuActionCount = 0;
hgs
parents:
diff changeset
   335
    HbAction *action = 0;
hgs
parents:
diff changeset
   336
    foreach(action, mContextMenuActions.values())
hgs
parents:
diff changeset
   337
    {
hgs
parents:
diff changeset
   338
        if(action)
hgs
parents:
diff changeset
   339
        {
hgs
parents:
diff changeset
   340
			++menuActionCount;
hgs
parents:
diff changeset
   341
			action->setVisible(false);
hgs
parents:
diff changeset
   342
        }
hgs
parents:
diff changeset
   343
    }
hgs
parents:
diff changeset
   344
    if(menuActionCount != mContextMenuActions.values().count() || mContextMenuActions.values().count() == 0)
hgs
parents:
diff changeset
   345
    {
hgs
parents:
diff changeset
   346
    	// fatal error, some action(s) was not created before.
hgs
parents:
diff changeset
   347
        delete mContextMenu;
hgs
parents:
diff changeset
   348
        mContextMenu = 0;
hgs
parents:
diff changeset
   349
        mContextMenuActions.clear();
hgs
parents:
diff changeset
   350
    	return;
hgs
parents:
diff changeset
   351
    }
hgs
parents:
diff changeset
   352
hgs
parents:
diff changeset
   353
    HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0);
hgs
parents:
diff changeset
   354
34
hgs
parents: 30
diff changeset
   355
    if(mCurrentLevel == VideoCollectionCommon::ELevelVideos ||
hgs
parents: 30
diff changeset
   356
       mCurrentLevel == VideoCollectionCommon::ELevelDefaultColl)
30
hgs
parents:
diff changeset
   357
    {
hgs
parents:
diff changeset
   358
    	if (!mIsService)
hgs
parents:
diff changeset
   359
    	{
35
hgs
parents: 34
diff changeset
   360
			mContextMenuActions[EActionAddToCollection]->setVisible(true);
30
hgs
parents:
diff changeset
   361
    		mContextMenuActions[EActionDelete]->setVisible(true);
hgs
parents:
diff changeset
   362
    	}
hgs
parents:
diff changeset
   363
    	else
hgs
parents:
diff changeset
   364
    	{
hgs
parents:
diff changeset
   365
    		mContextMenuActions[EActionPlay]->setVisible(true);
hgs
parents:
diff changeset
   366
    	}
hgs
parents:
diff changeset
   367
		mContextMenuActions[EActionDetails]->setVisible(true);
hgs
parents:
diff changeset
   368
    }
34
hgs
parents: 30
diff changeset
   369
    else if(mCurrentLevel == VideoCollectionCommon::ELevelCategory) 
30
hgs
parents:
diff changeset
   370
    {
hgs
parents:
diff changeset
   371
		if(!mIsService)
hgs
parents:
diff changeset
   372
		{
hgs
parents:
diff changeset
   373
            mContextMenuActions[EActionRename]->setVisible(true);
35
hgs
parents: 34
diff changeset
   374
            mContextMenuActions[EActionRemoveCollection]->setVisible(true);
30
hgs
parents:
diff changeset
   375
		}
hgs
parents:
diff changeset
   376
    }
34
hgs
parents: 30
diff changeset
   377
    else if(mCurrentLevel == VideoCollectionCommon::ELevelAlbum)
30
hgs
parents:
diff changeset
   378
    {
hgs
parents:
diff changeset
   379
    	if (!mIsService)
hgs
parents:
diff changeset
   380
    	{
35
hgs
parents: 34
diff changeset
   381
			mContextMenuActions[EActionRemove]->setVisible(true);
30
hgs
parents:
diff changeset
   382
            mContextMenuActions[EActionDelete]->setVisible(true);
hgs
parents:
diff changeset
   383
    	}
hgs
parents:
diff changeset
   384
    	else
hgs
parents:
diff changeset
   385
    	{
hgs
parents:
diff changeset
   386
    		mContextMenuActions[EActionPlay]->setVisible(true);
hgs
parents:
diff changeset
   387
    	}
hgs
parents:
diff changeset
   388
		mContextMenuActions[EActionDetails]->setVisible(true);
hgs
parents:
diff changeset
   389
    }
hgs
parents:
diff changeset
   390
}
hgs
parents:
diff changeset
   391
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   394
// getModel
hgs
parents:
diff changeset
   395
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   396
//
hgs
parents:
diff changeset
   397
VideoSortFilterProxyModel& VideoListWidget::getModel()
hgs
parents:
diff changeset
   398
{ 
hgs
parents:
diff changeset
   399
    return *mModel; 
hgs
parents:
diff changeset
   400
}
hgs
parents:
diff changeset
   401
hgs
parents:
diff changeset
   402
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   403
// emitActivated
hgs
parents:
diff changeset
   404
// This slot is called by the fw when viewitem is activated
hgs
parents:
diff changeset
   405
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   406
//
hgs
parents:
diff changeset
   407
void VideoListWidget::emitActivated (const QModelIndex &modelIndex)
hgs
parents:
diff changeset
   408
{
35
hgs
parents: 34
diff changeset
   409
    // surprisingly interenting feature: after long press also single press
hgs
parents: 34
diff changeset
   410
    // is executed. as a workaround the following hack check is needed.
hgs
parents: 34
diff changeset
   411
    // otherwise after the context menu is shown also single press action
hgs
parents: 34
diff changeset
   412
    // is executed.
hgs
parents: 34
diff changeset
   413
    if (mContextMenu &&
hgs
parents: 34
diff changeset
   414
        mContextMenu->isVisible())
hgs
parents: 34
diff changeset
   415
    {
hgs
parents: 34
diff changeset
   416
        // do not activate context menu if it is already visible
hgs
parents: 34
diff changeset
   417
        return;
hgs
parents: 34
diff changeset
   418
    }
hgs
parents: 34
diff changeset
   419
    
34
hgs
parents: 30
diff changeset
   420
    if(mSelectionMode != HbAbstractItemView::NoSelection)
30
hgs
parents:
diff changeset
   421
    {
34
hgs
parents: 30
diff changeset
   422
        // no custom functionality defined
hgs
parents: 30
diff changeset
   423
        emit activated(modelIndex);
hgs
parents: 30
diff changeset
   424
        return;
30
hgs
parents:
diff changeset
   425
    }
hgs
parents:
diff changeset
   426
hgs
parents:
diff changeset
   427
    if (!mModel || !modelIndex.isValid())
hgs
parents:
diff changeset
   428
    {
hgs
parents:
diff changeset
   429
        return;
hgs
parents:
diff changeset
   430
    }
34
hgs
parents: 30
diff changeset
   431
    
hgs
parents: 30
diff changeset
   432
    if (mCurrentLevel == VideoCollectionCommon::ELevelCategory)
30
hgs
parents:
diff changeset
   433
    {
34
hgs
parents: 30
diff changeset
   434
        QVariant variant = mModel->data(modelIndex, Qt::DisplayRole);
hgs
parents: 30
diff changeset
   435
        if (variant.isValid())
30
hgs
parents:
diff changeset
   436
        {
34
hgs
parents: 30
diff changeset
   437
            // signal view that item has been activated
hgs
parents: 30
diff changeset
   438
            emit(collectionOpened(true,
hgs
parents: 30
diff changeset
   439
                variant.toStringList().first(),
35
hgs
parents: 34
diff changeset
   440
                modelIndex));                       
30
hgs
parents:
diff changeset
   441
        }
35
hgs
parents: 34
diff changeset
   442
        return;
30
hgs
parents:
diff changeset
   443
    }
34
hgs
parents: 30
diff changeset
   444
    if(mIsService && (mCurrentLevel != VideoCollectionCommon::ELevelCategory))
30
hgs
parents:
diff changeset
   445
    {
hgs
parents:
diff changeset
   446
    	QVariant variant = mModel->data(modelIndex, VideoCollectionCommon::KeyFilePath);
hgs
parents:
diff changeset
   447
		if ( variant.isValid()  )
hgs
parents:
diff changeset
   448
		{
hgs
parents:
diff changeset
   449
			QString itemPath = variant.value<QString>();
hgs
parents:
diff changeset
   450
			emit(fileUri(itemPath));
hgs
parents:
diff changeset
   451
		}
hgs
parents:
diff changeset
   452
    }
hgs
parents:
diff changeset
   453
    else
hgs
parents:
diff changeset
   454
    {
34
hgs
parents: 30
diff changeset
   455
    	mModel->openItem(mModel->getMediaIdAtIndex(modelIndex));
30
hgs
parents:
diff changeset
   456
    }
hgs
parents:
diff changeset
   457
}
hgs
parents:
diff changeset
   458
hgs
parents:
diff changeset
   459
// ---------------------------------------------------------------------------
34
hgs
parents: 30
diff changeset
   460
// setSelectionMode
hgs
parents: 30
diff changeset
   461
// called by the fw when user long presses some item
hgs
parents: 30
diff changeset
   462
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   463
//
hgs
parents: 30
diff changeset
   464
//
hgs
parents: 30
diff changeset
   465
void VideoListWidget::setSelectionMode(int mode)
hgs
parents: 30
diff changeset
   466
{
hgs
parents: 30
diff changeset
   467
    HbAbstractItemView::SelectionMode selMode = HbAbstractItemView::NoSelection;
hgs
parents: 30
diff changeset
   468
    if(mode >= HbAbstractItemView::NoSelection && mode <= HbAbstractItemView::ContiguousSelection)
hgs
parents: 30
diff changeset
   469
    {
hgs
parents: 30
diff changeset
   470
        selMode = HbAbstractItemView::SelectionMode(mode);
hgs
parents: 30
diff changeset
   471
    }
hgs
parents: 30
diff changeset
   472
hgs
parents: 30
diff changeset
   473
    HbListView::setSelectionMode(selMode);
hgs
parents: 30
diff changeset
   474
    mSelectionMode = mode;
hgs
parents: 30
diff changeset
   475
}
hgs
parents: 30
diff changeset
   476
hgs
parents: 30
diff changeset
   477
// ---------------------------------------------------------------------------
30
hgs
parents:
diff changeset
   478
// longPressGesture
hgs
parents:
diff changeset
   479
// called by the fw when user long presses some item
hgs
parents:
diff changeset
   480
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   481
//
hgs
parents:
diff changeset
   482
//
hgs
parents:
diff changeset
   483
void VideoListWidget::longPressGesture (const QPointF &point)
hgs
parents:
diff changeset
   484
{
34
hgs
parents: 30
diff changeset
   485
    if(mSelectionMode != HbAbstractItemView::NoSelection)
30
hgs
parents:
diff changeset
   486
    {
hgs
parents:
diff changeset
   487
        // do not activate context menu during selection mode
hgs
parents:
diff changeset
   488
        return;
hgs
parents:
diff changeset
   489
    }
hgs
parents:
diff changeset
   490
35
hgs
parents: 34
diff changeset
   491
    HbAbstractViewItem *viewItem = itemAtPosition(point);
hgs
parents: 34
diff changeset
   492
    if (viewItem)
hgs
parents: 34
diff changeset
   493
    {
hgs
parents: 34
diff changeset
   494
        QModelIndex index = viewItem->modelIndex();
hgs
parents: 34
diff changeset
   495
        if(mModel && index.isValid())
hgs
parents: 34
diff changeset
   496
        {   
hgs
parents: 34
diff changeset
   497
            TMPXItemId mpxId = mModel->getMediaIdAtIndex(index);
hgs
parents: 34
diff changeset
   498
            // Only videos and user created albums have context menu.
hgs
parents: 34
diff changeset
   499
            if((mpxId.iId2 == KVcxMvcMediaTypeVideo) ||
hgs
parents: 34
diff changeset
   500
               (!mIsService && mpxId.iId2 == KVcxMvcMediaTypeAlbum ))
34
hgs
parents: 30
diff changeset
   501
            {
35
hgs
parents: 34
diff changeset
   502
                setContextMenu();
hgs
parents: 34
diff changeset
   503
                // if menu not yet exists, it has been created
hgs
parents: 34
diff changeset
   504
                // setup might fail causing menu to be removed
hgs
parents: 34
diff changeset
   505
                if(mContextMenu)
hgs
parents: 34
diff changeset
   506
                {
hgs
parents: 34
diff changeset
   507
                    mContextMenu->setPreferredPos(point);
hgs
parents: 34
diff changeset
   508
                    mContextMenu->show();
hgs
parents: 34
diff changeset
   509
                }
34
hgs
parents: 30
diff changeset
   510
            }
35
hgs
parents: 34
diff changeset
   511
        }
30
hgs
parents:
diff changeset
   512
    }
34
hgs
parents: 30
diff changeset
   513
	HbListView::longPressGesture(point);
30
hgs
parents:
diff changeset
   514
}
hgs
parents:
diff changeset
   515
hgs
parents:
diff changeset
   516
// ---------------------------------------------------------------------------
35
hgs
parents: 34
diff changeset
   517
// doDelayedsSlot
hgs
parents: 34
diff changeset
   518
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   519
//
hgs
parents: 34
diff changeset
   520
void VideoListWidget::doDelayedsSlot()
hgs
parents: 34
diff changeset
   521
{
hgs
parents: 34
diff changeset
   522
	if (!mContextMenu)
hgs
parents: 34
diff changeset
   523
	{
hgs
parents: 34
diff changeset
   524
		createContextMenu();
hgs
parents: 34
diff changeset
   525
	}
hgs
parents: 34
diff changeset
   526
}
hgs
parents: 34
diff changeset
   527
hgs
parents: 34
diff changeset
   528
// ---------------------------------------------------------------------------
30
hgs
parents:
diff changeset
   529
// playItemSlot
hgs
parents:
diff changeset
   530
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   531
//
hgs
parents:
diff changeset
   532
void VideoListWidget::playItemSlot()
hgs
parents:
diff changeset
   533
{
34
hgs
parents: 30
diff changeset
   534
    mModel->openItem(mModel->getMediaIdAtIndex(currentIndex()));
30
hgs
parents:
diff changeset
   535
}
hgs
parents:
diff changeset
   536
hgs
parents:
diff changeset
   537
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   538
// openDetailsSlot
hgs
parents:
diff changeset
   539
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   540
//
hgs
parents:
diff changeset
   541
void VideoListWidget::openDetailsSlot()
hgs
parents:
diff changeset
   542
{   
hgs
parents:
diff changeset
   543
    if(mModel && mModel->fetchItemDetails(currentIndex()) == 0 ) 
hgs
parents:
diff changeset
   544
    {
hgs
parents:
diff changeset
   545
        emit command(MpxHbVideoCommon::ActivateVideoDetailsView);
hgs
parents:
diff changeset
   546
    }
hgs
parents:
diff changeset
   547
}
34
hgs
parents: 30
diff changeset
   548
30
hgs
parents:
diff changeset
   549
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   550
// renameSlot
hgs
parents:
diff changeset
   551
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   552
//
hgs
parents:
diff changeset
   553
void VideoListWidget::renameSlot()
hgs
parents:
diff changeset
   554
{
hgs
parents:
diff changeset
   555
	debugNotImplementedYet();
hgs
parents:
diff changeset
   556
}
hgs
parents:
diff changeset
   557
hgs
parents:
diff changeset
   558
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   559
// addToCollectionSlot
hgs
parents:
diff changeset
   560
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   561
//
hgs
parents:
diff changeset
   562
void VideoListWidget::addToCollectionSlot()
hgs
parents:
diff changeset
   563
{
34
hgs
parents: 30
diff changeset
   564
    VideoListSelectionDialog *dialog =
hgs
parents: 30
diff changeset
   565
       mUiLoader->findWidget<VideoListSelectionDialog>(
hgs
parents: 30
diff changeset
   566
           DOCML_NAME_DIALOG);
hgs
parents: 30
diff changeset
   567
    if (!dialog || !mModel)
hgs
parents: 30
diff changeset
   568
    {
hgs
parents: 30
diff changeset
   569
        return;
hgs
parents: 30
diff changeset
   570
    }
hgs
parents: 30
diff changeset
   571
    TMPXItemId itemId = mModel->getMediaIdAtIndex(currentIndex());
hgs
parents: 30
diff changeset
   572
    if(itemId != TMPXItemId::InvalidId())
hgs
parents: 30
diff changeset
   573
    {
hgs
parents: 30
diff changeset
   574
        dialog->setupContent(VideoListSelectionDialog::ESelectCollection, itemId);
hgs
parents: 30
diff changeset
   575
        dialog->exec();
hgs
parents: 30
diff changeset
   576
    }
30
hgs
parents:
diff changeset
   577
}
hgs
parents:
diff changeset
   578
34
hgs
parents: 30
diff changeset
   579
// ---------------------------------------------------------------------------
35
hgs
parents: 34
diff changeset
   580
// removeFromCollectionSlot
hgs
parents: 34
diff changeset
   581
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   582
//
hgs
parents: 34
diff changeset
   583
void VideoListWidget::removeFromCollectionSlot()
hgs
parents: 34
diff changeset
   584
{
hgs
parents: 34
diff changeset
   585
    if(!mModel)
hgs
parents: 34
diff changeset
   586
    {
hgs
parents: 34
diff changeset
   587
        return;
hgs
parents: 34
diff changeset
   588
    }
hgs
parents: 34
diff changeset
   589
    TMPXItemId collectionId = mModel->getOpenItem();
hgs
parents: 34
diff changeset
   590
    TMPXItemId itemId = mModel->getMediaIdAtIndex(currentIndex());
hgs
parents: 34
diff changeset
   591
    if(collectionId != TMPXItemId::InvalidId() && 
hgs
parents: 34
diff changeset
   592
       itemId != TMPXItemId::InvalidId())
hgs
parents: 34
diff changeset
   593
    {
hgs
parents: 34
diff changeset
   594
        QList<TMPXItemId> ids;
hgs
parents: 34
diff changeset
   595
        ids.append(itemId);
hgs
parents: 34
diff changeset
   596
        mModel->removeItemsFromAlbum(collectionId, ids);
hgs
parents: 34
diff changeset
   597
    }
hgs
parents: 34
diff changeset
   598
}
hgs
parents: 34
diff changeset
   599
hgs
parents: 34
diff changeset
   600
// ---------------------------------------------------------------------------
34
hgs
parents: 30
diff changeset
   601
// removeCollectionSlot
hgs
parents: 30
diff changeset
   602
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   603
//
hgs
parents: 30
diff changeset
   604
void VideoListWidget::removeCollectionSlot()
hgs
parents: 30
diff changeset
   605
{
hgs
parents: 30
diff changeset
   606
    if(!mModel)
hgs
parents: 30
diff changeset
   607
    {
hgs
parents: 30
diff changeset
   608
        return;
hgs
parents: 30
diff changeset
   609
    }
hgs
parents: 30
diff changeset
   610
    
hgs
parents: 30
diff changeset
   611
    QVariant variant;
hgs
parents: 30
diff changeset
   612
    QModelIndex index = currentIndex();
hgs
parents: 30
diff changeset
   613
    variant = mModel->data(index, Qt::DisplayRole);
hgs
parents: 30
diff changeset
   614
hgs
parents: 30
diff changeset
   615
    if (variant.isValid())
hgs
parents: 30
diff changeset
   616
    {
hgs
parents: 30
diff changeset
   617
        QString text = tr("Do you want to remove collection \"%1\"?").arg( //TODO: localisation
hgs
parents: 30
diff changeset
   618
                variant.toStringList().first());
hgs
parents: 30
diff changeset
   619
        if(HbMessageBox::question(text))
hgs
parents: 30
diff changeset
   620
        {
hgs
parents: 30
diff changeset
   621
            QModelIndexList list;
hgs
parents: 30
diff changeset
   622
            list.append(index);
hgs
parents: 30
diff changeset
   623
        	mModel->removeAlbums(list);
hgs
parents: 30
diff changeset
   624
        }
hgs
parents: 30
diff changeset
   625
    }
hgs
parents: 30
diff changeset
   626
}
30
hgs
parents:
diff changeset
   627
hgs
parents:
diff changeset
   628
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   629
// playAllSlot
hgs
parents:
diff changeset
   630
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   631
//
hgs
parents:
diff changeset
   632
void VideoListWidget::playAllSlot()
hgs
parents:
diff changeset
   633
{
hgs
parents:
diff changeset
   634
	debugNotImplementedYet();
hgs
parents:
diff changeset
   635
}
hgs
parents:
diff changeset
   636
hgs
parents:
diff changeset
   637
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   638
// back
hgs
parents:
diff changeset
   639
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   640
//
hgs
parents:
diff changeset
   641
void VideoListWidget::back()
hgs
parents:
diff changeset
   642
{
35
hgs
parents: 34
diff changeset
   643
	// Empty the proxy model causing the items to be removed from list widget.
hgs
parents: 34
diff changeset
   644
    mModel->setAlbumInUse(TMPXItemId::InvalidId());
30
hgs
parents:
diff changeset
   645
    if(mModel)
hgs
parents:
diff changeset
   646
    {
35
hgs
parents: 34
diff changeset
   647
        emit collectionOpened(false, QString(), QModelIndex());
30
hgs
parents:
diff changeset
   648
    }
hgs
parents:
diff changeset
   649
}
hgs
parents:
diff changeset
   650
hgs
parents:
diff changeset
   651
// ---------------------------------------------------------------------------
34
hgs
parents: 30
diff changeset
   652
// scrollingStartedSlot
hgs
parents: 30
diff changeset
   653
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   654
//
hgs
parents: 30
diff changeset
   655
void VideoListWidget::scrollingStartedSlot()
hgs
parents: 30
diff changeset
   656
{
hgs
parents: 30
diff changeset
   657
    VideoThumbnailData::instance().enableThumbnailCreation(false);
hgs
parents: 30
diff changeset
   658
}
hgs
parents: 30
diff changeset
   659
hgs
parents: 30
diff changeset
   660
// ---------------------------------------------------------------------------
30
hgs
parents:
diff changeset
   661
// scrollingEndedSlot
hgs
parents:
diff changeset
   662
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   663
//
hgs
parents:
diff changeset
   664
void VideoListWidget::scrollingEndedSlot()
hgs
parents:
diff changeset
   665
{
hgs
parents:
diff changeset
   666
    if(mScrollPositionTimer)
34
hgs
parents: 30
diff changeset
   667
        mScrollPositionTimer->stop();	
hgs
parents: 30
diff changeset
   668
    VideoThumbnailData::instance().enableThumbnailCreation(true);
hgs
parents: 30
diff changeset
   669
    fetchThumbnailsForVisibleItems();
30
hgs
parents:
diff changeset
   670
}
hgs
parents:
diff changeset
   671
hgs
parents:
diff changeset
   672
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   673
// scrollPositionChangedSlot
hgs
parents:
diff changeset
   674
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   675
//
hgs
parents:
diff changeset
   676
void VideoListWidget::scrollPositionChangedSlot(const QPointF &newPosition)
hgs
parents:
diff changeset
   677
{
hgs
parents:
diff changeset
   678
    Q_UNUSED(newPosition);
hgs
parents:
diff changeset
   679
	if(mScrollPositionTimer && !mScrollPositionTimer->isActive())
hgs
parents:
diff changeset
   680
	    mScrollPositionTimer->start(SCROLL_POSITION_TIMER_TIMEOUT);
hgs
parents:
diff changeset
   681
}
hgs
parents:
diff changeset
   682
hgs
parents:
diff changeset
   683
// ---------------------------------------------------------------------------
34
hgs
parents: 30
diff changeset
   684
// scrollPositionTimerSlot
hgs
parents: 30
diff changeset
   685
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   686
//
hgs
parents: 30
diff changeset
   687
void VideoListWidget::scrollPositionTimerSlot()
hgs
parents: 30
diff changeset
   688
{
hgs
parents: 30
diff changeset
   689
    fetchThumbnailsForVisibleItems();
hgs
parents: 30
diff changeset
   690
}
hgs
parents: 30
diff changeset
   691
hgs
parents: 30
diff changeset
   692
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   693
// fetchThumbnailsForVisibleItems
hgs
parents: 30
diff changeset
   694
// ---------------------------------------------------------------------------
hgs
parents: 30
diff changeset
   695
//
hgs
parents: 30
diff changeset
   696
void VideoListWidget::fetchThumbnailsForVisibleItems()
hgs
parents: 30
diff changeset
   697
{
hgs
parents: 30
diff changeset
   698
    const QList<HbAbstractViewItem *> itemsVisible = visibleItems();
hgs
parents: 30
diff changeset
   699
hgs
parents: 30
diff changeset
   700
    if(itemsVisible.count() > 0)
hgs
parents: 30
diff changeset
   701
    {
hgs
parents: 30
diff changeset
   702
        int row = itemsVisible.value(0)->modelIndex().row();
hgs
parents: 30
diff changeset
   703
        VideoThumbnailData::instance().startBackgroundFetching(mModel, row);
hgs
parents: 30
diff changeset
   704
    }
hgs
parents: 30
diff changeset
   705
}
hgs
parents: 30
diff changeset
   706
hgs
parents: 30
diff changeset
   707
// ---------------------------------------------------------------------------
30
hgs
parents:
diff changeset
   708
// debugNotImplementedYet
hgs
parents:
diff changeset
   709
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   710
//
hgs
parents:
diff changeset
   711
void VideoListWidget::debugNotImplementedYet()
hgs
parents:
diff changeset
   712
{
hgs
parents:
diff changeset
   713
    HbMessageBox::information(tr("Not implemented yet"));
hgs
parents:
diff changeset
   714
}
hgs
parents:
diff changeset
   715
hgs
parents:
diff changeset
   716
// end of file