Subversion Repositories svn1-original

Rev

Rev 111 | Go to most recent revision | Details | Compare with Previous | 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]
114 - 55
SpinBoxDelegate::SpinBoxDelegate(int minvalue, int maxvalue, QObject *parent)
111 david 56
    : QItemDelegate(parent)
57
{
114 - 58
    min_value = minvalue;
59
    max_value = maxvalue;
111 david 60
}
61
//! [0]
62
 
63
//! [1]
64
QWidget *SpinBoxDelegate::createEditor(QWidget *parent,
65
    const QStyleOptionViewItem &/* option */,
66
    const QModelIndex &/* index */) const
67
{
68
    QSpinBox *editor = new QSpinBox(parent);
114 - 69
    editor->setMinimum(min_value);
70
    editor->setMaximum(max_value);
111 david 71
 
72
    return editor;
73
}
74
//! [1]
75
 
76
//! [2]
77
void SpinBoxDelegate::setEditorData(QWidget *editor,
78
                                    const QModelIndex &index) const
79
{
80
    int value = index.model()->data(index, Qt::EditRole).toInt();
81
 
82
    QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
83
    spinBox->setValue(value);
84
}
85
//! [2]
86
 
87
//! [3]
88
void SpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
89
                                   const QModelIndex &index) const
90
{
91
    QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
92
    spinBox->interpretText();
93
    int value = spinBox->value();
94
 
95
    model->setData(index, value, Qt::EditRole);
96
}
97
//! [3]
98
 
99
//! [4]
100
void SpinBoxDelegate::updateEditorGeometry(QWidget *editor,
101
    const QStyleOptionViewItem &option, const QModelIndex &/* index */) const
102
{
103
    editor->setGeometry(option.rect);
104
}
105
//! [4]