Subversion Repositories svn1-original

Rev

Rev 114 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
111 david 1
/****************************************************************************
2
**
3
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
** All rights reserved.
5
** Contact: Nokia Corporation (qt-info@nokia.com)
6
**
7
** This file is part of the examples of the Qt Toolkit.
8
**
9
** $QT_BEGIN_LICENSE:LGPL$
10
** Commercial Usage
11
** Licensees holding valid Qt Commercial licenses may use this file in
12
** accordance with the Qt Commercial License Agreement provided with the
13
** Software or, alternatively, in accordance with the terms contained in
14
** a written agreement between you and Nokia.
15
**
16
** GNU Lesser General Public License Usage
17
** Alternatively, this file may be used under the terms of the GNU Lesser
18
** General Public License version 2.1 as published by the Free Software
19
** Foundation and appearing in the file LICENSE.LGPL included in the
20
** packaging of this file.  Please review the following information to
21
** ensure the GNU Lesser General Public License version 2.1 requirements
22
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23
**
24
** In addition, as a special exception, Nokia gives you certain additional
25
** rights.  These rights are described in the Nokia Qt LGPL Exception
26
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27
**
28
** GNU General Public License Usage
29
** Alternatively, this file may be used under the terms of the GNU
30
** General Public License version 3.0 as published by the Free Software
31
** Foundation and appearing in the file LICENSE.GPL included in the
32
** packaging of this file.  Please review the following information to
33
** ensure the GNU General Public License version 3.0 requirements will be
34
** met: http://www.gnu.org/copyleft/gpl.html.
35
**
36
** If you have questions regarding the use of this file, please contact
37
** Nokia at qt-info@nokia.com.
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
 
42
/*
43
    spinboxdelegate.cpp
44
 
45
    A delegate that allows the user to change integer values from the model
46
    using a spin box widget.
47
*/
48
 
49
#include <QtGui>
50
 
51
#include "spinboxdelegate.h"
52
 
53
 
54
//! [0]
55
SpinBoxDelegate::SpinBoxDelegate(QObject *parent)
56
    : QItemDelegate(parent)
57
{
58
}
59
//! [0]
60
 
61
//! [1]
62
QWidget *SpinBoxDelegate::createEditor(QWidget *parent,
63
    const QStyleOptionViewItem &/* option */,
64
    const QModelIndex &/* index */) const
65
{
66
    QSpinBox *editor = new QSpinBox(parent);
67
    editor->setMinimum(0);
68
    editor->setMaximum(100);
69
 
70
    return editor;
71
}
72
//! [1]
73
 
74
//! [2]
75
void SpinBoxDelegate::setEditorData(QWidget *editor,
76
                                    const QModelIndex &index) const
77
{
78
    int value = index.model()->data(index, Qt::EditRole).toInt();
79
 
80
    QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
81
    spinBox->setValue(value);
82
}
83
//! [2]
84
 
85
//! [3]
86
void SpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
87
                                   const QModelIndex &index) const
88
{
89
    QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
90
    spinBox->interpretText();
91
    int value = spinBox->value();
92
 
93
    model->setData(index, value, Qt::EditRole);
94
}
95
//! [3]
96
 
97
//! [4]
98
void SpinBoxDelegate::updateEditorGeometry(QWidget *editor,
99
    const QStyleOptionViewItem &option, const QModelIndex &/* index */) const
100
{
101
    editor->setGeometry(option.rect);
102
}
103
//! [4]