~mixxxdevelopers/mixxx/trunk

« back to all changes in this revision

Viewing changes to mixxx/src/midi/midinodelegate.cpp

Merging features_controllerAbstraction. Migration of mappings from .mixxx/midi/ to controllers/ only works on a version upgrade (end-users.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * midinodelegate.cpp
3
 
 *
4
 
 *  Created on: 1-Feb-2009
5
 
 *      Author: alb
6
 
 */
7
 
 
8
 
#include <QtCore>
9
 
#include <QtGui>
10
 
#include "widget/hexspinbox.h"
11
 
#include "midinodelegate.h"
12
 
 
13
 
MidiNoDelegate::MidiNoDelegate(QObject *parent)
14
 
         : QItemDelegate(parent)
15
 
{
16
 
}
17
 
 
18
 
void MidiNoDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
19
 
                         const QModelIndex &index) const
20
 
{
21
 
    if (index.data().canConvert<int>()) {
22
 
        int midino = index.data().value<int>();
23
 
        
24
 
        if (option.state & QStyle::State_Selected)
25
 
            painter->fillRect(option.rect, option.palette.highlight());
26
 
 
27
 
        QString text = QString("0x") + QString("%1").arg(midino, 
28
 
                                                2,   //Field width (makes "F" become "0F")
29
 
                                                16, 
30
 
                                                QLatin1Char('0')).toUpper();
31
 
 
32
 
        painter->drawText(option.rect, text, QTextOption(Qt::AlignCenter));
33
 
        //Note that Qt::AlignCenter does both vertical and horizontal alignment.
34
 
    } else {
35
 
        QItemDelegate::paint(painter, option, index);
36
 
    }
37
 
}
38
 
 
39
 
QWidget *MidiNoDelegate::createEditor(QWidget *parent,
40
 
        const QStyleOptionViewItem &/* option */,
41
 
        const QModelIndex & index ) const
42
 
{
43
 
    HexSpinBox *editor = new HexSpinBox(parent);
44
 
    editor->setMinimum(0);
45
 
    editor->setMaximum(127);
46
 
 
47
 
    return editor;
48
 
}
49
 
 
50
 
void MidiNoDelegate::setEditorData(QWidget *editor,
51
 
                                    const QModelIndex &index) const
52
 
{
53
 
    int value = index.model()->data(index, Qt::EditRole).toInt();
54
 
 
55
 
    HexSpinBox *spinBox = static_cast<HexSpinBox*>(editor);
56
 
    spinBox->setValue(value);
57
 
    spinBox->interpretText();
58
 
}
59
 
 
60
 
void MidiNoDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
61
 
                                    const QModelIndex &index) const
62
 
{
63
 
    HexSpinBox *spinBox = static_cast<HexSpinBox*>(editor);
64
 
    spinBox->interpretText();
65
 
    int value = spinBox->value();
66
 
 
67
 
    model->setData(index, value, Qt::EditRole);
68
 
}
69
 
 
70
 
void MidiNoDelegate::updateEditorGeometry(QWidget *editor,
71
 
                                           const QStyleOptionViewItem &option,
72
 
                                           const QModelIndex &/* index */) const
73
 
{
74
 
    editor->setGeometry(option.rect);
75
 
}