diff options
Diffstat (limited to 'utils/rbutilqt/gui/comboboxviewdelegate.cpp')
-rw-r--r-- | utils/rbutilqt/gui/comboboxviewdelegate.cpp | 56 |
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(); +} + |