diff -r 491b3ed49290 -r 65326cf895ed filemanager/src/filemanager/src/components/fmcombinedquery.cpp --- a/filemanager/src/filemanager/src/components/fmcombinedquery.cpp Tue Aug 31 15:06:05 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * - * Description: - * The source file of combined query of file manager - */ - -#include "fmcombinedquery.h" - -#include - -#include -#include -#include -#include - -FmCombinedQuery::FmCombinedQuery( QGraphicsItem *parent ) : FmDialog( parent ), - mSelectMode ( MultiSelectMode ), mDominantIndex ( -1 ) -{ - setObjectName( "combinedQueryDialog" ); - mContentWidget = new QGraphicsWidget(); - mContentWidget->setObjectName( "CombinedQueryContentWidget" ); - setContentWidget(mContentWidget); - - QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout(); - vLayout->setOrientation( Qt::Vertical ); - - mListWidget = new HbListWidget(); - vLayout->addItem( mListWidget ); - - mListWidget->setFontSpec( HbFontSpec( HbFontSpec::Primary ) ); - mListWidget->setObjectName( "CombinedQueryListWidget" ); - this->setTimeout( NoTimeout ); - mContentWidget->setLayout( vLayout ); - - setSelectMode( mSelectMode ); - connect( mListWidget, SIGNAL( activated ( const QModelIndex& ) ), this, SLOT( activated( const QModelIndex& ) ) ); - connect( this, SIGNAL( doCheckForPrimaryAction () ), this, SLOT( checkForPrimaryAction() ), Qt::QueuedConnection ); - this->setDismissPolicy( NoDismiss ); - - doCheckForPrimaryAction(); -} - -void FmCombinedQuery::setSelectMode( SelectMode mode ) -{ - mSelectMode = mode; - switch ( mSelectMode ) - { - case SingleSelectMode: - mListWidget->setSelectionMode( HbAbstractItemView::SingleSelection ); - break; - - case MultiSelectMode: - mListWidget->setSelectionMode( HbAbstractItemView::MultiSelection ); - break; - - case NoSelectMode: - default: - mListWidget->setSelectionMode( HbAbstractItemView::NoSelection ); - break; - } -} - -FmCombinedQuery::~FmCombinedQuery(void) -{ -} - -void FmCombinedQuery::setMarkedListItem( int row, bool mark ) -{ - QModelIndex index = mListWidget->model()->index( row, 0 ); - if ( mark ){ - mListWidget->selectionModel()->select( index, QItemSelectionModel::Select ); - } - else{ - mListWidget->selectionModel()->select( index, QItemSelectionModel::Deselect ); - } -} - -void FmCombinedQuery::setDominantIndex( int index ) -{ - mDominantIndex = index; -} - -void FmCombinedQuery::setListItems( const QMap< int, QString > &list ) -{ - mListWidget->clear(); - - for( QMap< int, QString >::const_iterator it = list.begin(); - it != list.end(); ++it ){ - HbListWidgetItem* modelItem = new HbListWidgetItem(); - if( !modelItem ){ - return; - } - - modelItem->setText( it.value() ); - modelItem->setData( it.key() ); - - mListWidget->addItem( modelItem ); - } -} - -void FmCombinedQuery::activated( const QModelIndex &index ) -{ - int selectedRow = index.row(); - if( selectedRow == mDominantIndex ){ - QModelIndexList modelIndexList = mListWidget->selectionModel()->selectedIndexes(); - for( QModelIndexList::const_iterator it = modelIndexList.begin(); it != modelIndexList.end(); ++it ){ - if( ( *it ) == index ){ - mListWidget->clearSelection(); - setMarkedListItem( selectedRow ); - } - } - } - else if( mDominantIndex >= 0 ){ - setMarkedListItem( mDominantIndex, false ); - } - - emit doCheckForPrimaryAction(); -} - -QStringList FmCombinedQuery::selectedValues() const -{ - QStringList selList; - QItemSelectionModel *selectionModel = 0; - QList selIndexes; - - if( !mListWidget ){ - return selList; - } - - selectionModel = mListWidget->selectionModel(); - - if( selectionModel ){ - QModelIndexList indexes = selectionModel->selectedIndexes(); - int count = indexes.count(); - QModelIndex index; - for( int i = 0; i < count; ++i ){ - index = indexes[i]; - HbListWidgetItem *item = mListWidget->item( index.row() ); - if (item) { - QString text = item->text(); - selList.append( text ); - } - } - } - - return selList; -} - - -QList FmCombinedQuery::selectedKeys() const -{ - QList selList; - QItemSelectionModel *selectionModel = 0; - QList selIndexes; - - if( !mListWidget ){ - return selList; - } - - selectionModel = mListWidget->selectionModel(); - - if( selectionModel ){ - QModelIndexList indexes = selectionModel->selectedIndexes(); - int count = indexes.count(); - QModelIndex index; - for( int i = 0; i < count; ++i ){ - index = indexes[i]; - HbListWidgetItem *item = mListWidget->item( index.row() ); - if ( item ) { - int key = item->data().toInt(); - selList.append( key ); - } - } - } - - return selList; -} - -void FmCombinedQuery::checkForPrimaryAction() -{ - QItemSelectionModel *selectionModel = mListWidget->selectionModel(); - - if( selectionModel->selectedIndexes().count() <= 0 ) { - primaryAction()->setDisabled( true ); - } else { - primaryAction()->setDisabled( false ); - } -}