src/hbwidgets/popups/hblistdialog_p.cpp
changeset 2 06ff229162e9
parent 1 f7ac710697a9
child 3 11d3954df52a
child 4 ae1717029441
--- a/src/hbwidgets/popups/hblistdialog_p.cpp	Mon May 03 12:48:33 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,386 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (developer.feedback@nokia.com)
-**
-** This file is part of the HbWidgets module of the UI Extensions for Mobile.
-**
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights.  These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at developer.feedback@nokia.com.
-**
-****************************************************************************/
-
-#include <QGraphicsGridLayout>
-#include <qglobal.h>
-#include "hbabstractviewitem.h"
-#include "hblistdialog_p.h"
-#include <hblabel.h>
-#include <hbaction.h>
-#include <hblistwidget.h>
-#include <hblistwidgetitem.h>
-#include <QtDebug>
-
-HbListDialogContentWidget::HbListDialogContentWidget(HbListDialogPrivate *priv):HbWidget(),
-						mListView(0),d(priv)
-{
-    mListView = new HbListWidget(this);
-    HbStyle::setItemName(mListView, "list");
-    HbStyle::setItemName(this, "this");
-    HbAbstractItemView *view = qobject_cast<HbListWidget*>(mListView);
-    if(view)
-        QObject::connect(view,SIGNAL(activated(const QModelIndex&)),this,SLOT(_q_listItemSelected(QModelIndex)));
-
-    HbListWidget* widget = qobject_cast<HbListWidget*>(mListView);
-    
-    if(widget){
-        QObject::connect(widget,SIGNAL(activated(HbListWidgetItem *)),this,SLOT(_q_listWidgetItemSelected(HbListWidgetItem *)));
-        widget->installEventFilter(this);
-    }
-}
-
-
-void HbListDialogContentWidget::_q_listWidgetItemSelected(HbListWidgetItem *item)
-{
-	if(item){
-		HbListWidget* widget = qobject_cast<HbListWidget*>(mListView);
-		if(widget){
-			d->mSelectedIndex = widget->row(item);
-		}
-	}
-}
-
-
-void HbListDialogContentWidget::_q_listItemSelected(QModelIndex index)
-{
-	if(mListView->selectionMode()== HbAbstractItemView::NoSelection){
-		d->mSelectedModelIndex = index;
-		d->mSelectedIndex = index.row();
-	}
-	if(mListView->selectionMode()== HbAbstractItemView::SingleSelection ||
-	   mListView->selectionMode()== HbAbstractItemView::NoSelection){
-	   d->close();   
-	}
-}
-
-bool HbListDialogContentWidget::eventFilter(QObject *obj, QEvent *event)
-{
-    bool accepted = false;
-    if (obj == mListView) {
-         switch(event->type()){
-         case QEvent::LayoutRequest: {
-             qreal minHeight = minimumHeight();
-             qreal maxHeight = preferredHeight();
-             qreal height = 0;
-             int count = 0;
-             QAbstractItemModel* itemModel = mListView->model();
-             if(itemModel)
-                 count = itemModel->rowCount();
-             for(int i = 0 ; i < count ; i++){
-                 HbAbstractViewItem *row = mListView->viewItem(i);
-                 if(row)
-                     height += row->size().rheight();
-             }
-             if(height > minHeight && height < maxHeight){
-                 setPreferredHeight(height);
-                 parentWidget()->resize(parentWidget()->preferredSize());
-             }
-             break;
-         }
-         default:
-             break;
-         }
-    }
-    return accepted;
-}
-
-HbListDialogPrivate::HbListDialogPrivate()
-    :HbDialogPrivate()
-{
-	bOwnItems = false;
-	mSelectedIndex = -1;
-}
-
-
-HbListDialogPrivate::~HbListDialogPrivate()
-{
-	if(!bOwnItems){
-			Q_Q(HbListDialog);
-			HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-			if(cWidget){
-				HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
-				if(widget){
-                    int nRows = 0;
-                    QAbstractItemModel* itemModel = widget->model();
-                    if(itemModel){
-                        nRows = itemModel->rowCount();
-                        while(nRows){
-                            widget->takeItem(0);
-                            nRows = itemModel->rowCount();
-                        }
-                    }
-				}
-			}
-	}
-}
-void HbListDialogPrivate::init()
-{
-    qDebug()<<" Entering init()";
-    Q_Q(HbListDialog);
-
-    bOwnItems = false;
-
-    HbListDialogContentWidget* contentWidget = new HbListDialogContentWidget(this);
-    q->setContentWidget(contentWidget);
-
-    mPrimaryAction = new HbAction(QString(q->tr("Ok")));
-    q->setPrimaryAction(mPrimaryAction);
-
-    mSecondaryAction = new HbAction(QString(q->tr("Cancel")));
-    q->setSecondaryAction(mSecondaryAction);
-    q->setTimeout(0);
-    q->setModal(true);
-
-}
-
-
-void HbListDialogPrivate::setSelectionMode(HbAbstractItemView::SelectionMode mode)
-{
-	Q_Q(HbListDialog);
-
-	mSelectionMode = mode;
-	switch(mode)
-	{
-	case HbAbstractItemView::SingleSelection:
-	case HbAbstractItemView::MultiSelection:
-	case HbAbstractItemView::NoSelection:
-	{
-		HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-		if(cWidget){
-			cWidget->mListView->setSelectionMode(mode);
-		}
-	}
-	break;
-	case HbAbstractItemView::ContiguousSelection:
-		break;
-	}
-}
-
-QList<HbListWidgetItem*> HbListDialogPrivate::widgetItems() const
-{
-	Q_Q(const HbListDialog);
-
-	QList<HbListWidgetItem*> rows;
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(cWidget){
-		HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
-		if(widget){
-            int count = 0;
-            QAbstractItemModel* itemModel = widget->model();
-            if(itemModel)
-                count = itemModel->rowCount();
-			for(int i = 0; i < count; i++){
-				rows.append(widget->item(i));
-			}
-		}
-	}
-	return rows;
-}
-
-void HbListDialogPrivate::setCurrentRow(int row)
-{
-	Q_Q(HbListDialog);
-
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(cWidget){
-		HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
-		if(widget){
-            QAbstractItemModel* itemModel = widget->model();
-            QModelIndex index;
-            if(itemModel){
-                index = itemModel->index(row,0);
-            }
-		    QItemSelectionModel* selectionModel = widget->selectionModel();
-		    if(selectionModel){
-                selectionModel->select(index,QItemSelectionModel::Select);
-		    }
-		}
-	}
-}
-
-void HbListDialogPrivate::setStringItems(const QStringList &items, int current)
-{
-	Q_Q(HbListDialog);
-
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(!cWidget) return;
-	
-	HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
-    int nRows = 0;
-
-	if(widget){
-		int count = items.size();
-		for (int i = 0; i < count; ++i) {
-			HbListWidgetItem* modelItem = new HbListWidgetItem();
-			QString str = items.at(i);
-			modelItem->setText(str);
-			widget->addItem(modelItem);
-			
-            QAbstractItemModel* itemModel = widget->model();
-            if(itemModel)
-                nRows = itemModel->rowCount();
-		}
-		if(nRows > 0){ //if addition of rows was correct.
-            QList<int> currentRow;
-            currentRow.append(current);
-            setSelectedItems(currentRow);
-		}
-		
-	}
-}
-
-QStringList HbListDialogPrivate::stringItems() const
-{
-	QStringList list;
-	QList<HbListWidgetItem*> items = widgetItems();
-	int count = items.count();
-	for(int i = 0; i < count; i++){
-                QString text = items[i]->text();
-                if(!text.isEmpty()){
-			list += text;
-		}
-	}
-	return list;
-}
-
-int HbListDialogPrivate::currentRow()
-{
-	Q_Q(HbListDialog);
-
-	int nCurrentRow = -1;
-
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(!cWidget) return nCurrentRow;
-
-	HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
-	if(widget){
-            QItemSelectionModel* selectionModel = widget->selectionModel();
-            if(selectionModel){
-                QModelIndexList selectdList = selectionModel->selectedIndexes();
-                if(selectdList.count() > 0)
-                    nCurrentRow = selectdList[0].row();
-            }
-	}
-	return nCurrentRow;
-}
-
-void HbListDialogPrivate::setModel(QAbstractItemModel* model)
-{
-	Q_Q(HbListDialog);
-
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(cWidget){
-		cWidget->mListView->HbListView::setModel(model); //HbListView's implementation of setModel()
-	}
-}
-
-void HbListDialogPrivate::setWidgetItems(QList<HbListWidgetItem*> &items,bool bTransferOwnership,int current)
-{
-	Q_Q(HbListDialog);
-
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(cWidget){
-		HbListWidget* widget = qobject_cast<HbListWidget*>(cWidget->mListView);
-		if(widget){
-			int count = items.count();
-			for(int i = 0; i < count; i++){
-				widget->addItem(items[i]);
-			}
-			widget->setCurrentRow(current);
-			
-		}
-		bOwnItems = bTransferOwnership;
-	}
-}
-
-QAbstractItemModel* HbListDialogPrivate::model() const
-{
-	Q_Q(const HbListDialog);
-	
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(cWidget){
-		return cWidget->mListView->HbListView::model(); //HbListView's implementation of model()
-	}
-	return 0;
-}
-
-QItemSelectionModel* HbListDialogPrivate::selectionModel() const
-{
-	Q_Q(const HbListDialog);
-	
-	HbListDialogContentWidget* cWidget = qobject_cast<HbListDialogContentWidget*>(q->contentWidget());
-	if(cWidget){
-		return cWidget->mListView->selectionModel();
-	}
-	return 0;
-}
-
-void HbListDialogPrivate::setSelectedItems(QList<int> items)
-{
-    QItemSelectionModel *model = 0;
-    model = selectionModel();
-    if(model){
-        Q_FOREACH(int i,items) {
-                model->select(model->model()->index(i,0),
-                    QItemSelectionModel::Select);
-        }
-    }
-}
-
-QList<int> HbListDialogPrivate::selectedItems() const
-{
-    QItemSelectionModel *model = 0;
-    QList<int> selIndexes;
-    model = selectionModel();
-    if(model){
-        QModelIndexList indexes = model->selectedIndexes();
-        int count = indexes.count();
-        QModelIndex index;
-        for(int i = 0 ; i < count ; i++){
-            index = indexes[i];
-            selIndexes.append(index.row());
-        }
-    }
-    return selIndexes;
-
-}
-
-QModelIndexList HbListDialogPrivate::selectedModelIndexes() const
-{
-    QItemSelectionModel *model = 0;
-    QModelIndexList selIndexes;
-    model = selectionModel();
-    if(model){
-        selIndexes =  model->selectedIndexes();
-    }
-    return selIndexes;
-}
-
-void HbListDialogPrivate::close()
-{
-	Q_Q(HbListDialog);
-	q->close();
-}
-