src/hbwidgets/popups/hbselectiondialog_p.cpp
author hgs
Mon, 18 Oct 2010 18:23:13 +0300
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/****************************************************************************
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
**
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
** All rights reserved.
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
** Contact: Nokia Corporation (developer.feedback@nokia.com)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
**
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
** This file is part of the HbWidgets module of the UI Extensions for Mobile.
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
**
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
** GNU Lesser General Public License Usage
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
** This file may be used under the terms of the GNU Lesser General Public
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
** License version 2.1 as published by the Free Software Foundation and
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
** appearing in the file LICENSE.LGPL included in the packaging of this file.
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
** Please review the following information to ensure the GNU Lesser General
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
** Public License version 2.1 requirements will be met:
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
**
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
** In addition, as a special exception, Nokia gives you certain additional
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
** rights.  These rights are described in the Nokia Qt LGPL Exception
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
**
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
** If you have questions regarding the use of this file, please contact
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
** Nokia at developer.feedback@nokia.com.
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
**
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
****************************************************************************/
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <QGraphicsLinearLayout>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <qglobal.h>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "hbabstractviewitem.h"
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include "hbselectiondialog_p.h"
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <hblabel.h>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include <hblistwidget.h>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <hblistwidgetitem.h>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <QtDebug>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <hbcheckbox.h>
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <hbaction.h>
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    36
#include <hbstyleoption_p.h>
34
hgs
parents: 7
diff changeset
    37
#include <hbstyleprimitivedata.h>
hgs
parents: 7
diff changeset
    38
#include <hbstyleframeprimitivedata.h>
hgs
parents: 7
diff changeset
    39
#include <hbstyletextprimitivedata.h>
hgs
parents: 7
diff changeset
    40
#include <hbstringutil.h>
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    41
34
hgs
parents: 7
diff changeset
    42
HbSelectionDialogMarkWidget::HbSelectionDialogMarkWidget(QGraphicsItem *parent):HbWidget(parent),mBackgroundItem(0),mLbCounter(0){
hgs
parents: 7
diff changeset
    43
    chkMark = new HbCheckBox(this);
hgs
parents: 7
diff changeset
    44
    HbStyle::setItemName(chkMark,"checkbox");
hgs
parents: 7
diff changeset
    45
    createPrimitives();
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    46
}
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    47
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    48
void HbSelectionDialogMarkWidget::createPrimitives()
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    49
{
34
hgs
parents: 7
diff changeset
    50
    if (!mBackgroundItem ) {
hgs
parents: 7
diff changeset
    51
        mBackgroundItem = style()->createPrimitive( HbStyle::PT_FrameItem ,"background",this );
hgs
parents: 7
diff changeset
    52
        mBackgroundItem->setZValue(-5);
hgs
parents: 7
diff changeset
    53
    }
hgs
parents: 7
diff changeset
    54
    if(!mLbCounter){
hgs
parents: 7
diff changeset
    55
        mLbCounter = style()->createPrimitive( HbStyle::PT_TextItem ,"counter",this );
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    56
    }
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    57
}
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    58
34
hgs
parents: 7
diff changeset
    59
void HbSelectionDialogMarkWidget::recreatePrimitives()
hgs
parents: 7
diff changeset
    60
{
hgs
parents: 7
diff changeset
    61
    delete mBackgroundItem;
hgs
parents: 7
diff changeset
    62
    mBackgroundItem = style()->createPrimitive( HbStyle::PT_FrameItem ,"background",this );
hgs
parents: 7
diff changeset
    63
    mBackgroundItem->setZValue(-5);
hgs
parents: 7
diff changeset
    64
hgs
parents: 7
diff changeset
    65
    delete mLbCounter;
hgs
parents: 7
diff changeset
    66
    mLbCounter = style()->createPrimitive( HbStyle::PT_TextItem ,"counter",this );
hgs
parents: 7
diff changeset
    67
hgs
parents: 7
diff changeset
    68
}
hgs
parents: 7
diff changeset
    69
void HbSelectionDialogMarkWidget::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive)
hgs
parents: 7
diff changeset
    70
{
hgs
parents: 7
diff changeset
    71
      HbWidgetBase::initPrimitiveData(primitiveData, primitive); 
hgs
parents: 7
diff changeset
    72
      QString itemName = HbStyle::itemName(primitive); 
hgs
parents: 7
diff changeset
    73
      if (itemName == QLatin1String("background")) { 
hgs
parents: 7
diff changeset
    74
          HbStyleFramePrimitiveData* data = hbstyleprimitivedata_cast<HbStyleFramePrimitiveData*>(primitiveData); 
hgs
parents: 7
diff changeset
    75
          data->frameGraphicsName = QLatin1String("qtg_fr_groupbox");
hgs
parents: 7
diff changeset
    76
          data->frameType = HbFrameDrawer::NinePieces;
hgs
parents: 7
diff changeset
    77
      } 
hgs
parents: 7
diff changeset
    78
      else if (itemName == QLatin1String("counter")) { 
hgs
parents: 7
diff changeset
    79
            HbStyleTextPrimitiveData *data = hbstyleprimitivedata_cast<HbStyleTextPrimitiveData*>(primitiveData);
hgs
parents: 7
diff changeset
    80
            data->text = mCounterText;
hgs
parents: 7
diff changeset
    81
      } 
hgs
parents: 7
diff changeset
    82
hgs
parents: 7
diff changeset
    83
}
hgs
parents: 7
diff changeset
    84
hgs
parents: 7
diff changeset
    85
void HbSelectionDialogMarkWidget::updateCounter(const QString& text)
hgs
parents: 7
diff changeset
    86
{
hgs
parents: 7
diff changeset
    87
    mCounterText = text;
hgs
parents: 7
diff changeset
    88
    HbStyleTextPrimitiveData data;
hgs
parents: 7
diff changeset
    89
    initPrimitiveData(&data, mLbCounter);
hgs
parents: 7
diff changeset
    90
    style()->updatePrimitive(mLbCounter, &data, this);
hgs
parents: 7
diff changeset
    91
}
hgs
parents: 7
diff changeset
    92
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    93
void HbSelectionDialogMarkWidget::updatePrimitives()
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
    94
{
34
hgs
parents: 7
diff changeset
    95
      if (mBackgroundItem) { 
hgs
parents: 7
diff changeset
    96
          HbStyleFramePrimitiveData frameData; 
hgs
parents: 7
diff changeset
    97
          initPrimitiveData(&frameData, mBackgroundItem); 
hgs
parents: 7
diff changeset
    98
          style()->updatePrimitive(mBackgroundItem, &frameData, this); 
hgs
parents: 7
diff changeset
    99
      }     
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   100
}
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   101
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   102
/*!
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   103
    \reimp
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   104
 */
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   105
QVariant HbSelectionDialogMarkWidget::itemChange( GraphicsItemChange change, const QVariant &value )
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   106
{
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   107
    switch ( change ) {
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   108
        case ItemVisibleHasChanged: {
34
hgs
parents: 7
diff changeset
   109
            updatePrimitives( );
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   110
            }
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   111
            break;
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   112
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   113
        case ItemSceneHasChanged: {
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   114
            updatePrimitives();
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   115
            }
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   116
            break;
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   117
        default:
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   118
            break;
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   119
    }
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   120
    return HbWidget::itemChange( change, value );
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   121
}
34
hgs
parents: 7
diff changeset
   122
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   123
/*!
34
hgs
parents: 7
diff changeset
   124
    \reimp
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   125
*/
34
hgs
parents: 7
diff changeset
   126
QGraphicsItem *HbSelectionDialogMarkWidget::primitive(const QString &itemName) const
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   127
{
34
hgs
parents: 7
diff changeset
   128
    if(!itemName.compare(QString("background"))){
hgs
parents: 7
diff changeset
   129
        return mBackgroundItem;
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   130
    }
34
hgs
parents: 7
diff changeset
   131
hgs
parents: 7
diff changeset
   132
    return HbWidget::primitive(itemName);
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   133
}
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   134
34
hgs
parents: 7
diff changeset
   135
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   136
HbSelectionDialogMarkWidget::~HbSelectionDialogMarkWidget()
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   137
{
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   138
}
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
HbSelectionDialogContentWidget::HbSelectionDialogContentWidget(HbSelectionDialogPrivate *priv):HbWidget(),
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   141
                        mListView(0),d(priv),markWidget(0)
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
{
34
hgs
parents: 7
diff changeset
   143
    mSelectionTitle = hbTrId("txt_common_list_mark_all_items");
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
}
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   145
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
void HbSelectionDialogContentWidget::_q_listWidgetItemSelected(HbListWidgetItem *item)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
{
34
hgs
parents: 7
diff changeset
   148
    Q_UNUSED(item)
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
int HbSelectionDialogContentWidget::selectedItemCount() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   154
    int selectedItems = 0;
34
hgs
parents: 7
diff changeset
   155
    if(mListView){
hgs
parents: 7
diff changeset
   156
        QItemSelectionModel* selectionModel = mListView->selectionModel();
hgs
parents: 7
diff changeset
   157
        if(selectionModel){
hgs
parents: 7
diff changeset
   158
            selectedItems = selectionModel->selectedRows().count();
hgs
parents: 7
diff changeset
   159
        }
hgs
parents: 7
diff changeset
   160
    }
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   161
    return selectedItems;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
int HbSelectionDialogContentWidget::totalItemCount() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
{
34
hgs
parents: 7
diff changeset
   166
    int nCount = 0;
hgs
parents: 7
diff changeset
   167
    if(mListView && mListView->model()){
hgs
parents: 7
diff changeset
   168
        nCount = mListView->model()->rowCount();
hgs
parents: 7
diff changeset
   169
    }
hgs
parents: 7
diff changeset
   170
    return nCount;
hgs
parents: 7
diff changeset
   171
}
hgs
parents: 7
diff changeset
   172
hgs
parents: 7
diff changeset
   173
void HbSelectionDialogContentWidget::setModel(QAbstractItemModel* model)
hgs
parents: 7
diff changeset
   174
{
hgs
parents: 7
diff changeset
   175
    if(mListView){
hgs
parents: 7
diff changeset
   176
        HbListWidget* mView = qobject_cast<HbListWidget*>(mListView);
hgs
parents: 7
diff changeset
   177
        if(!mView){ //can not set model on HbListWidget
hgs
parents: 7
diff changeset
   178
            QObject::disconnect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&)));
hgs
parents: 7
diff changeset
   179
            mListView->setModel(model);
hgs
parents: 7
diff changeset
   180
            if(model)
hgs
parents: 7
diff changeset
   181
                QObject::connect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&)));
hgs
parents: 7
diff changeset
   182
        }
hgs
parents: 7
diff changeset
   183
    }
hgs
parents: 7
diff changeset
   184
}
hgs
parents: 7
diff changeset
   185
hgs
parents: 7
diff changeset
   186
QString HbSelectionDialogContentWidget::selectionTitle() const
hgs
parents: 7
diff changeset
   187
{
hgs
parents: 7
diff changeset
   188
    return mSelectionTitle;
hgs
parents: 7
diff changeset
   189
}
hgs
parents: 7
diff changeset
   190
hgs
parents: 7
diff changeset
   191
void HbSelectionDialogContentWidget::setSelectionTitle(const QString& title)
hgs
parents: 7
diff changeset
   192
{
hgs
parents: 7
diff changeset
   193
    if(mSelectionTitle != title){
hgs
parents: 7
diff changeset
   194
        mSelectionTitle = title;
hgs
parents: 7
diff changeset
   195
        if(markWidget)
hgs
parents: 7
diff changeset
   196
            markWidget->chkMark->setText(mSelectionTitle);
hgs
parents: 7
diff changeset
   197
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
void HbSelectionDialogContentWidget::updateCounter()
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
{
34
hgs
parents: 7
diff changeset
   202
    if(!mListView) return;
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   203
    if(mListView->selectionMode()!= HbAbstractItemView::MultiSelection) return;
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   204
    if(markWidget){
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   205
        int totalItems = totalItemCount();
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   206
        int selectedItems = selectedItemCount();
34
hgs
parents: 7
diff changeset
   207
        markWidget->updatePrimitives();
hgs
parents: 7
diff changeset
   208
        markWidget->updateCounter(QString(HbStringUtil::convertDigits(QString::number(selectedItems)) + "/" + HbStringUtil::convertDigits(QString::number(totalItems))));
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   209
        //update checked state of "MarkAll" checkbox 
5
627c4a0fd0e7 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   210
        if (totalItems > 0 && (selectedItems == totalItems)){
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   211
            markWidget->chkMark->blockSignals(true); //should not call _q_checkboxclicked()
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   212
            markWidget->chkMark->setChecked(true);
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   213
            markWidget->chkMark->blockSignals(false);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   214
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   215
        else{
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   216
            markWidget->chkMark->blockSignals(true); //should not call _q_checkboxclicked()
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   217
            markWidget->chkMark->setChecked(false);
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   218
            markWidget->chkMark->blockSignals(false);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   219
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   220
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
void HbSelectionDialogContentWidget::_q_checkboxclicked(int value)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
{
34
hgs
parents: 7
diff changeset
   225
   QAbstractItemModel* itemModel = mListView->model();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   226
    QModelIndex indexStart,indexEnd;
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   227
    if(itemModel){
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   228
        indexStart = itemModel->index(0,0);
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   229
        indexEnd = itemModel->index(itemModel->rowCount()-1,0);
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   230
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   232
    QItemSelectionModel* selectionModel = mListView->selectionModel();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   233
    if(selectionModel){
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   234
        if(value){ //Select All
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   235
            selectionModel->select(QItemSelection(indexStart,indexEnd),QItemSelectionModel::Select);
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   236
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   237
        else{ //Select None
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   238
            selectionModel->clear();
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   239
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   240
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   241
    updateCounter();
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
void HbSelectionDialogContentWidget::showMarkWidget(bool bShow)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
{
34
hgs
parents: 7
diff changeset
   246
    if(bShow){
hgs
parents: 7
diff changeset
   247
        if(!markWidget){
hgs
parents: 7
diff changeset
   248
            markWidget = new HbSelectionDialogMarkWidget(this);
hgs
parents: 7
diff changeset
   249
            markWidget->chkMark->setText(mSelectionTitle);
hgs
parents: 7
diff changeset
   250
        }
hgs
parents: 7
diff changeset
   251
        else{
hgs
parents: 7
diff changeset
   252
            markWidget->show();
hgs
parents: 7
diff changeset
   253
        }
hgs
parents: 7
diff changeset
   254
        HbStyle::setItemName(markWidget,"markwidget");
hgs
parents: 7
diff changeset
   255
        connect(markWidget->chkMark,SIGNAL(stateChanged ( int )),this,SLOT(_q_checkboxclicked(int)));
hgs
parents: 7
diff changeset
   256
        repolish();
hgs
parents: 7
diff changeset
   257
        updateCounter();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   258
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   259
    else{
34
hgs
parents: 7
diff changeset
   260
        if(markWidget){
hgs
parents: 7
diff changeset
   261
            HbStyle::setItemName(markWidget,"");
hgs
parents: 7
diff changeset
   262
            markWidget->hide();
hgs
parents: 7
diff changeset
   263
            repolish();
hgs
parents: 7
diff changeset
   264
        }
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   265
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   268
void HbSelectionDialogContentWidget::connectSlots()
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   269
{
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   270
    QObject::connect(mListView,SIGNAL(activated(const QModelIndex&)),this,SLOT(_q_listItemSelected(QModelIndex)));
34
hgs
parents: 7
diff changeset
   271
    QObject::connect(mListView->model(),SIGNAL(rowsRemoved(const QModelIndex& ,int,int)),this,SLOT(modelChanged(const QModelIndex&,int,int)));
hgs
parents: 7
diff changeset
   272
    QObject::connect(mListView->model(),SIGNAL(rowsInserted(const QModelIndex& ,int,int)),this,SLOT(modelChanged(const QModelIndex&,int,int)));
hgs
parents: 7
diff changeset
   273
}
hgs
parents: 7
diff changeset
   274
hgs
parents: 7
diff changeset
   275
void HbSelectionDialogContentWidget::_q_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
hgs
parents: 7
diff changeset
   276
{
hgs
parents: 7
diff changeset
   277
    Q_UNUSED(selected);
hgs
parents: 7
diff changeset
   278
    Q_UNUSED(deselected);
hgs
parents: 7
diff changeset
   279
    updateCounter();
hgs
parents: 7
diff changeset
   280
    if(mListView->selectionMode()== HbAbstractItemView::MultiSelection)
hgs
parents: 7
diff changeset
   281
        d->_p_SelectionChanged();
hgs
parents: 7
diff changeset
   282
}
hgs
parents: 7
diff changeset
   283
hgs
parents: 7
diff changeset
   284
void HbSelectionDialogContentWidget::_q_listItemSelected(QModelIndex index)
hgs
parents: 7
diff changeset
   285
{
hgs
parents: 7
diff changeset
   286
    Q_UNUSED(index)
hgs
parents: 7
diff changeset
   287
    if(mListView->selectionMode()== HbAbstractItemView::SingleSelection || mListView->selectionMode()== HbAbstractItemView::NoSelection){
hgs
parents: 7
diff changeset
   288
       d->close();
hgs
parents: 7
diff changeset
   289
    }
hgs
parents: 7
diff changeset
   290
    updateCounter();
hgs
parents: 7
diff changeset
   291
}
hgs
parents: 7
diff changeset
   292
hgs
parents: 7
diff changeset
   293
hgs
parents: 7
diff changeset
   294
void HbSelectionDialogContentWidget::modelChanged(const QModelIndex &parent, int start,int end)
hgs
parents: 7
diff changeset
   295
{
hgs
parents: 7
diff changeset
   296
    Q_UNUSED(parent);
hgs
parents: 7
diff changeset
   297
    Q_UNUSED(start);
hgs
parents: 7
diff changeset
   298
    Q_UNUSED(end);
hgs
parents: 7
diff changeset
   299
    updateCounter();
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   300
}
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   301
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   302
void HbSelectionDialogContentWidget::createListWidget()
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   303
{
34
hgs
parents: 7
diff changeset
   304
    if(mListView){
hgs
parents: 7
diff changeset
   305
        QObject::disconnect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&)));
hgs
parents: 7
diff changeset
   306
        HbListWidget* mView = qobject_cast<HbListWidget*>(mListView);
hgs
parents: 7
diff changeset
   307
        if(!mView){
hgs
parents: 7
diff changeset
   308
            delete mListView;
hgs
parents: 7
diff changeset
   309
            mListView = new HbListWidget(this);
hgs
parents: 7
diff changeset
   310
            HbStyle::setItemName(mListView, "list");
hgs
parents: 7
diff changeset
   311
            connectSlots();
hgs
parents: 7
diff changeset
   312
            repolish();
hgs
parents: 7
diff changeset
   313
        }
hgs
parents: 7
diff changeset
   314
    }
hgs
parents: 7
diff changeset
   315
    else{
hgs
parents: 7
diff changeset
   316
            mListView = new HbListWidget(this);
hgs
parents: 7
diff changeset
   317
            HbStyle::setItemName(mListView, "list");
hgs
parents: 7
diff changeset
   318
            connectSlots();
hgs
parents: 7
diff changeset
   319
            repolish();
hgs
parents: 7
diff changeset
   320
    }
hgs
parents: 7
diff changeset
   321
    QObject::connect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&)));
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   322
}
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   323
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   324
void HbSelectionDialogContentWidget::createListView()
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   325
{
34
hgs
parents: 7
diff changeset
   326
    if(mListView){
hgs
parents: 7
diff changeset
   327
        QObject::disconnect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&)));
hgs
parents: 7
diff changeset
   328
        HbListWidget* mView = qobject_cast<HbListWidget*>(mListView);
hgs
parents: 7
diff changeset
   329
        if(mView){
hgs
parents: 7
diff changeset
   330
            delete mListView;
hgs
parents: 7
diff changeset
   331
            mListView = new HbListView(this);
hgs
parents: 7
diff changeset
   332
            HbStyle::setItemName(mListView, "list");
hgs
parents: 7
diff changeset
   333
            connectSlots();
hgs
parents: 7
diff changeset
   334
            repolish();
hgs
parents: 7
diff changeset
   335
        }
hgs
parents: 7
diff changeset
   336
    }
hgs
parents: 7
diff changeset
   337
    else{
hgs
parents: 7
diff changeset
   338
            mListView = new HbListView(this);
hgs
parents: 7
diff changeset
   339
            HbStyle::setItemName(mListView, "list");
hgs
parents: 7
diff changeset
   340
            connectSlots();
hgs
parents: 7
diff changeset
   341
            repolish();
hgs
parents: 7
diff changeset
   342
    }
hgs
parents: 7
diff changeset
   343
    QObject::connect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&)));
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   344
}
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   345
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
HbSelectionDialogPrivate::HbSelectionDialogPrivate()
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
    :HbDialogPrivate()
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   349
    bOwnItems = false;
34
hgs
parents: 7
diff changeset
   350
//    action1 = action2 = 0;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
HbSelectionDialogPrivate::~HbSelectionDialogPrivate()
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
{
34
hgs
parents: 7
diff changeset
   355
    clearItems(bOwnItems);    
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
}
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   357
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
void HbSelectionDialogPrivate::init()
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
{
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
    qDebug()<<" Entering init()";
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
    Q_Q(HbSelectionDialog);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
    bOwnItems = false;
34
hgs
parents: 7
diff changeset
   364
    mSelectionMode = HbAbstractItemView::SingleSelection;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
    HbSelectionDialogContentWidget* contentWidget = new HbSelectionDialogContentWidget(this);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
    q->setContentWidget(contentWidget);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   368
    q->setDismissPolicy(HbPopup::NoDismiss);
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   369
    q->setTimeout(HbPopup::NoTimeout);      
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
    q->setModal(true);
34
hgs
parents: 7
diff changeset
   371
    showActions(mSelectionMode);
hgs
parents: 7
diff changeset
   372
}
hgs
parents: 7
diff changeset
   373
hgs
parents: 7
diff changeset
   374
void HbSelectionDialogPrivate::_p_SelectionChanged()
hgs
parents: 7
diff changeset
   375
{
hgs
parents: 7
diff changeset
   376
    Q_Q(HbSelectionDialog);
hgs
parents: 7
diff changeset
   377
    if(mSelectionMode == HbAbstractItemView::MultiSelection)
hgs
parents: 7
diff changeset
   378
    {
hgs
parents: 7
diff changeset
   379
        if(action1){
hgs
parents: 7
diff changeset
   380
            QItemSelectionModel *model = 0;
hgs
parents: 7
diff changeset
   381
            model = selectionModel();
hgs
parents: 7
diff changeset
   382
            if(model->selectedRows().count()==0)
hgs
parents: 7
diff changeset
   383
                action1->setEnabled(false);
hgs
parents: 7
diff changeset
   384
            else
hgs
parents: 7
diff changeset
   385
                action1->setEnabled(true);
hgs
parents: 7
diff changeset
   386
        }
hgs
parents: 7
diff changeset
   387
        emit q->selectionChanged();
hgs
parents: 7
diff changeset
   388
    }
7
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   389
}
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   390
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   391
void HbSelectionDialogPrivate::showActions(HbAbstractItemView::SelectionMode selectionMode)
923ff622b8b9 Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 6
diff changeset
   392
{
34
hgs
parents: 7
diff changeset
   393
    Q_Q(HbSelectionDialog);
hgs
parents: 7
diff changeset
   394
    if(selectionMode == HbAbstractItemView::SingleSelection || selectionMode == HbAbstractItemView::NoSelection){
hgs
parents: 7
diff changeset
   395
        if(action1) {
hgs
parents: 7
diff changeset
   396
            q->disconnect(action1,SIGNAL(triggered()),q,SLOT(accept()));
hgs
parents: 7
diff changeset
   397
            q->removeAction(action1);
hgs
parents: 7
diff changeset
   398
        }
hgs
parents: 7
diff changeset
   399
        if(action2 == NULL){
hgs
parents: 7
diff changeset
   400
            action2 =new HbAction(hbTrId("txt_common_button_cancel"),q);
hgs
parents: 7
diff changeset
   401
        }
hgs
parents: 7
diff changeset
   402
        if(q->actions().contains(action2) == false){
hgs
parents: 7
diff changeset
   403
            q->connect(action2,SIGNAL(triggered()),q,SLOT(reject()));
hgs
parents: 7
diff changeset
   404
            q->insertAction(0,action2);
hgs
parents: 7
diff changeset
   405
        }
hgs
parents: 7
diff changeset
   406
    }
hgs
parents: 7
diff changeset
   407
    else{
hgs
parents: 7
diff changeset
   408
hgs
parents: 7
diff changeset
   409
        if(action2 == NULL){
hgs
parents: 7
diff changeset
   410
            action2 =new HbAction(hbTrId("txt_common_button_cancel"),q);
hgs
parents: 7
diff changeset
   411
        }    
hgs
parents: 7
diff changeset
   412
        if(q->actions().contains(action2) == false){
hgs
parents: 7
diff changeset
   413
            q->connect(action2,SIGNAL(triggered()),q,SLOT(reject()));
hgs
parents: 7
diff changeset
   414
            q->insertAction(0,action2);
hgs
parents: 7
diff changeset
   415
        }
hgs
parents: 7
diff changeset
   416
        if(action1 == NULL){
hgs
parents: 7
diff changeset
   417
            action1 =new HbAction(hbTrId("txt_common_button_ok"),q);
hgs
parents: 7
diff changeset
   418
        }    
hgs
parents: 7
diff changeset
   419
        if(q->actions().contains(action1) == false)
hgs
parents: 7
diff changeset
   420
        {
hgs
parents: 7
diff changeset
   421
            q->connect(action1,SIGNAL(triggered()),q,SLOT(accept()));
hgs
parents: 7
diff changeset
   422
            q->insertAction(q->actions().first(),action1);
hgs
parents: 7
diff changeset
   423
        }
hgs
parents: 7
diff changeset
   424
    }
hgs
parents: 7
diff changeset
   425
    
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
void HbSelectionDialogPrivate::setSelectionMode(HbAbstractItemView::SelectionMode mode)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   430
    Q_Q(HbSelectionDialog);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   432
    mSelectionMode = mode;
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   433
    switch(mSelectionMode)
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   434
    {
34
hgs
parents: 7
diff changeset
   435
    case HbAbstractItemView::NoSelection:
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   436
    case HbAbstractItemView::SingleSelection:
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   437
    case HbAbstractItemView::MultiSelection:
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   438
    {
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   439
        HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   440
        if(cWidget && cWidget->mListView){
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   441
            cWidget->mListView->setSelectionMode(mSelectionMode);
34
hgs
parents: 7
diff changeset
   442
            if(mode == HbAbstractItemView::MultiSelection){
hgs
parents: 7
diff changeset
   443
                cWidget->showMarkWidget(true);    
hgs
parents: 7
diff changeset
   444
                q->setFullScreen(true);
hgs
parents: 7
diff changeset
   445
            }
hgs
parents: 7
diff changeset
   446
            else{
hgs
parents: 7
diff changeset
   447
                cWidget->showMarkWidget(false);    
hgs
parents: 7
diff changeset
   448
                q->setFullScreen(false);
hgs
parents: 7
diff changeset
   449
            }
hgs
parents: 7
diff changeset
   450
        }
hgs
parents: 7
diff changeset
   451
        showActions(mSelectionMode);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   452
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   453
    break;
34
hgs
parents: 7
diff changeset
   454
    default:
hgs
parents: 7
diff changeset
   455
    break;
hgs
parents: 7
diff changeset
   456
    }
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   457
}
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   458
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   459
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   460
void HbSelectionDialogPrivate::clearItems(bool keepItems)
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   461
{
34
hgs
parents: 7
diff changeset
   462
    Q_Q(HbSelectionDialog);
hgs
parents: 7
diff changeset
   463
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
hgs
parents: 7
diff changeset
   464
    if(cWidget){
hgs
parents: 7
diff changeset
   465
        HbListWidget* mWidget = qobject_cast<HbListWidget*>(cWidget->mListView);
hgs
parents: 7
diff changeset
   466
        if(mWidget){
hgs
parents: 7
diff changeset
   467
                if(keepItems){
hgs
parents: 7
diff changeset
   468
                int nRows = 0;
hgs
parents: 7
diff changeset
   469
                QAbstractItemModel* itemModel = mWidget->model();
hgs
parents: 7
diff changeset
   470
                if(itemModel){
hgs
parents: 7
diff changeset
   471
                    nRows = itemModel->rowCount();
hgs
parents: 7
diff changeset
   472
                    while(nRows){
hgs
parents: 7
diff changeset
   473
                        mWidget->takeItem(0);
hgs
parents: 7
diff changeset
   474
                        nRows = itemModel->rowCount();
hgs
parents: 7
diff changeset
   475
                    }
hgs
parents: 7
diff changeset
   476
                }
hgs
parents: 7
diff changeset
   477
            }
hgs
parents: 7
diff changeset
   478
            else{
hgs
parents: 7
diff changeset
   479
                mWidget->clear();
hgs
parents: 7
diff changeset
   480
            }
hgs
parents: 7
diff changeset
   481
            bOwnItems = false;
hgs
parents: 7
diff changeset
   482
            return;
hgs
parents: 7
diff changeset
   483
        }
hgs
parents: 7
diff changeset
   484
        HbListView* mView = qobject_cast<HbListView*>(cWidget->mListView);
hgs
parents: 7
diff changeset
   485
        if(mView){
hgs
parents: 7
diff changeset
   486
            cWidget->setModel(0);
hgs
parents: 7
diff changeset
   487
        }
hgs
parents: 7
diff changeset
   488
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
QList<HbListWidgetItem*> HbSelectionDialogPrivate::widgetItems() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   493
    Q_Q(const HbSelectionDialog);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   495
    QList<HbListWidgetItem*> rows;
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   496
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   497
    if(cWidget){
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   498
        HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   499
        if(widget){
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
            int count = 0;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
            QAbstractItemModel* itemModel = widget->model();
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
            if(itemModel)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
                count = itemModel->rowCount();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   504
            for(int i = 0; i < count; i++){
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   505
                rows.append(widget->item(i));
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   506
            }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   507
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   508
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   509
    return rows;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
void HbSelectionDialogPrivate::setStringItems(const QStringList &items, int currentIndex)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   514
    Q_Q(HbSelectionDialog);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   516
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   517
    if(!cWidget) return;
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   518
    
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
    int nRows = 0;
34
hgs
parents: 7
diff changeset
   520
    cWidget->createListWidget();
hgs
parents: 7
diff changeset
   521
    setSelectionMode(mSelectionMode);
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   522
    if(cWidget->mListView){
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   523
        int count = items.size();
34
hgs
parents: 7
diff changeset
   524
        if(count > 0) clearItems(bOwnItems); //Clear the existing items first
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   525
        for (int i = 0; i < count; ++i) {
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   526
            HbListWidgetItem* modelItem = new HbListWidgetItem();
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   527
            QString str = items.at(i);
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   528
            modelItem->setText(str);
34
hgs
parents: 7
diff changeset
   529
            HbListWidget* widget = (HbListWidget*)cWidget->mListView;
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   530
            widget->addItem(modelItem);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   531
            
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   532
            QAbstractItemModel* itemModel = cWidget->mListView->model();
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
            if(itemModel)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
                nRows = itemModel->rowCount();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   535
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   536
        if(nRows > 0){ //if addition of rows was correct.
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
            QList<QVariant> currentRow;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
            currentRow.append(QVariant(currentIndex));
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
            setSelectedItems(currentRow);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   540
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   541
        
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   542
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   545
QStringList HbSelectionDialogPrivate::stringItems() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   547
    QStringList list;
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   548
    QList<HbListWidgetItem*> items = widgetItems();
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   549
    int count = items.count();
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   550
    for(int i = 0; i < count; i++){
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
                QString text = items[i]->text();
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
                if(!text.isEmpty()){
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   553
            list += text;
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   554
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   555
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   556
    return list;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
void HbSelectionDialogPrivate::setModel(QAbstractItemModel* model)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   561
    Q_Q(HbSelectionDialog);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   563
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   564
    if(cWidget){
34
hgs
parents: 7
diff changeset
   565
        cWidget->createListView();
hgs
parents: 7
diff changeset
   566
        setSelectionMode(mSelectionMode);
hgs
parents: 7
diff changeset
   567
        cWidget->setModel(model); 
hgs
parents: 7
diff changeset
   568
        cWidget->updateCounter();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   569
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
void HbSelectionDialogPrivate::setWidgetItems(const QList<HbListWidgetItem*> &items,bool transferOwnership,int currentIndex)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   574
    Q_Q(HbSelectionDialog);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   576
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   577
    if(cWidget){
34
hgs
parents: 7
diff changeset
   578
        cWidget->createListWidget();
hgs
parents: 7
diff changeset
   579
        setSelectionMode(mSelectionMode);
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   580
        if(cWidget->mListView){
34
hgs
parents: 7
diff changeset
   581
            HbListWidget* widget = (HbListWidget*)cWidget->mListView;
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   582
            int count = items.count();
34
hgs
parents: 7
diff changeset
   583
            if(count > 0) clearItems(bOwnItems); //Clear the existing items first
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   584
            for(int i = 0; i < count; i++){
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   585
                widget->addItem(items[i]);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   586
            }
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   587
            widget->setCurrentRow(currentIndex);
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   588
            
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   589
        }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   590
        bOwnItems = transferOwnership;
34
hgs
parents: 7
diff changeset
   591
        cWidget->updateCounter();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   592
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   594
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
QAbstractItemModel* HbSelectionDialogPrivate::model() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   596
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   597
    Q_Q(const HbSelectionDialog);
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   598
    
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   599
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   600
    if(cWidget && cWidget->mListView){
34
hgs
parents: 7
diff changeset
   601
        return cWidget->mListView->model();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   602
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   603
    return 0;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   606
QItemSelectionModel* HbSelectionDialogPrivate::selectionModel() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   608
    Q_Q(const HbSelectionDialog);
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   609
    
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   610
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   611
    if(cWidget && cWidget->mListView){
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   612
        return cWidget->mListView->selectionModel();
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   613
    }
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   614
    return 0;
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
void HbSelectionDialogPrivate::setSelectedItems(const QList<QVariant> items)
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   618
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   619
    Q_Q(const HbSelectionDialog);
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
    QItemSelectionModel *model = 0;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
    model = selectionModel();
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
    if(model){
34
hgs
parents: 7
diff changeset
   623
        model->clearSelection();
hgs
parents: 7
diff changeset
   624
        _p_SelectionChanged();
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
        Q_FOREACH(QVariant i,items) {
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
                model->select(model->model()->index(i.toInt(),0),
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
                    QItemSelectionModel::Select);
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
        }
34
hgs
parents: 7
diff changeset
   629
        HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
hgs
parents: 7
diff changeset
   630
        if(cWidget){
hgs
parents: 7
diff changeset
   631
            cWidget->updateCounter();
hgs
parents: 7
diff changeset
   632
        }
hgs
parents: 7
diff changeset
   633
    }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
QList<QVariant> HbSelectionDialogPrivate::selectedItems() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
{
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
    QItemSelectionModel *model = 0;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
    QList<QVariant> selIndexes;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
    model = selectionModel();
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
    if(model){
34
hgs
parents: 7
diff changeset
   642
        if(mSelectionMode == HbAbstractItemView::NoSelection){
hgs
parents: 7
diff changeset
   643
            QModelIndex index = model->currentIndex();
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
            selIndexes.append(QVariant(index.row()));
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
        }
34
hgs
parents: 7
diff changeset
   646
        else{
hgs
parents: 7
diff changeset
   647
            QModelIndexList indexes = model->selectedIndexes();
hgs
parents: 7
diff changeset
   648
            int count = indexes.count();
hgs
parents: 7
diff changeset
   649
            QModelIndex index;
hgs
parents: 7
diff changeset
   650
            for(int i = 0 ; i < count ; i++){
hgs
parents: 7
diff changeset
   651
                index = indexes[i];
hgs
parents: 7
diff changeset
   652
                selIndexes.append(QVariant(index.row()));
hgs
parents: 7
diff changeset
   653
            }
hgs
parents: 7
diff changeset
   654
        }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
    }
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
    return selIndexes;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   658
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
QModelIndexList HbSelectionDialogPrivate::selectedModelIndexes() const
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
{
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
    QItemSelectionModel *model = 0;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
    QModelIndexList selIndexes;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
    model = selectionModel();
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
    if(model){
34
hgs
parents: 7
diff changeset
   665
        if(mSelectionMode == HbAbstractItemView::NoSelection){
hgs
parents: 7
diff changeset
   666
            QModelIndex index = model->currentIndex();
hgs
parents: 7
diff changeset
   667
            selIndexes.append(index);
hgs
parents: 7
diff changeset
   668
        }
hgs
parents: 7
diff changeset
   669
        else{
hgs
parents: 7
diff changeset
   670
            selIndexes =  model->selectedIndexes();
hgs
parents: 7
diff changeset
   671
        }
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
    }
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
    return selIndexes;
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
}
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
void HbSelectionDialogPrivate::close()
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
{
2
06ff229162e9 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
   678
    Q_Q(HbSelectionDialog);
34
hgs
parents: 7
diff changeset
   679
    q->accept(); //emit the signal
1
f7ac710697a9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
}
6
c3690ec91ef8 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 5
diff changeset
   681
34
hgs
parents: 7
diff changeset
   682
QString HbSelectionDialogPrivate::selectionTitle() const
hgs
parents: 7
diff changeset
   683
{
hgs
parents: 7
diff changeset
   684
    Q_Q(const HbSelectionDialog);
hgs
parents: 7
diff changeset
   685
    QString str;
hgs
parents: 7
diff changeset
   686
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
hgs
parents: 7
diff changeset
   687
    if(cWidget){
hgs
parents: 7
diff changeset
   688
        str = cWidget->selectionTitle();
hgs
parents: 7
diff changeset
   689
    }
hgs
parents: 7
diff changeset
   690
    return str;
hgs
parents: 7
diff changeset
   691
}
hgs
parents: 7
diff changeset
   692
hgs
parents: 7
diff changeset
   693
void HbSelectionDialogPrivate::setSelectionTitle(const QString& title)
hgs
parents: 7
diff changeset
   694
{
hgs
parents: 7
diff changeset
   695
    Q_Q(HbSelectionDialog);
hgs
parents: 7
diff changeset
   696
    HbSelectionDialogContentWidget* cWidget = qobject_cast<HbSelectionDialogContentWidget*>(q->contentWidget());
hgs
parents: 7
diff changeset
   697
    if(cWidget){
hgs
parents: 7
diff changeset
   698
        cWidget->setSelectionTitle(title);
hgs
parents: 7
diff changeset
   699
    }
hgs
parents: 7
diff changeset
   700
}