summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/gui/comboboxviewdelegate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/rbutilqt/gui/comboboxviewdelegate.cpp')
-rw-r--r--utils/rbutilqt/gui/comboboxviewdelegate.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/utils/rbutilqt/gui/comboboxviewdelegate.cpp b/utils/rbutilqt/gui/comboboxviewdelegate.cpp
new file mode 100644
index 0000000000..91489d10c0
--- /dev/null
+++ b/utils/rbutilqt/gui/comboboxviewdelegate.cpp
@@ -0,0 +1,56 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2011 by Dominik Riebeling
10 *
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19#include <QStyledItemDelegate>
20#include <QPainter>
21#include <QApplication>
22#include <qdebug.h>
23#include "comboboxviewdelegate.h"
24
25void ComboBoxViewDelegate::paint(QPainter *painter,
26 const QStyleOptionViewItem &option, const QModelIndex &index) const
27{
28 QPen pen;
29 QFont font;
30 pen = painter->pen();
31 font = painter->font();
32
33 painter->save();
34 // paint selection
35 if(option.state & QStyle::State_Selected) {
36 painter->setPen(QPen(Qt::NoPen));
37 painter->setBrush(QApplication::palette().highlight());
38 painter->drawRect(option.rect);
39 painter->restore();
40 painter->save();
41 pen.setColor(QApplication::palette().color(QPalette::HighlightedText));
42 }
43 else {
44 pen.setColor(QApplication::palette().color(QPalette::Text));
45 }
46 // draw data (text)
47 painter->setPen(pen);
48 painter->drawText(option.rect, Qt::AlignLeft, index.data().toString());
49
50 // draw user data right aligned, italic
51 font.setItalic(true);
52 painter->setFont(font);
53 painter->drawText(option.rect, Qt::AlignRight, index.data(Qt::UserRole).toString());
54 painter->restore();
55}
56