summaryrefslogtreecommitdiffstats
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 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ *
+ * Copyright (C) 2011 by Dominik Riebeling
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#include <QStyledItemDelegate>
+#include <QPainter>
+#include <QApplication>
+#include <qdebug.h>
+#include "comboboxviewdelegate.h"
+
+void ComboBoxViewDelegate::paint(QPainter *painter,
+ const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ QPen pen;
+ QFont font;
+ pen = painter->pen();
+ font = painter->font();
+
+ painter->save();
+ // paint selection
+ if(option.state & QStyle::State_Selected) {
+ painter->setPen(QPen(Qt::NoPen));
+ painter->setBrush(QApplication::palette().highlight());
+ painter->drawRect(option.rect);
+ painter->restore();
+ painter->save();
+ pen.setColor(QApplication::palette().color(QPalette::HighlightedText));
+ }
+ else {
+ pen.setColor(QApplication::palette().color(QPalette::Text));
+ }
+ // draw data (text)
+ painter->setPen(pen);
+ painter->drawText(option.rect, Qt::AlignLeft, index.data().toString());
+
+ // draw user data right aligned, italic
+ font.setItalic(true);
+ painter->setFont(font);
+ painter->drawText(option.rect, Qt::AlignRight, index.data(Qt::UserRole).toString());
+ painter->restore();
+}
+