diff options
| author | 2016-06-13 18:42:57 -0400 | |
|---|---|---|
| committer | 2016-06-13 18:42:57 -0400 | |
| commit | 65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch) | |
| tree | 6f245ba901b87ef42fed69965aea22f5eea6b590 /SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp | |
| parent | aeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff) | |
| parent | 5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (diff) | |
Merge tag 'upstream/3.1.0'
Upstream version 3.1.0
# gpg: Signature made Mon 13 Jun 2016 06:42:54 PM EDT using RSA key ID EBE9BD91
# gpg: Good signature from "Unit 193 <unit193@gmail.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.org>"
# gpg: aka "Unit 193 <unit193@ubuntu.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.com>"
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp b/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp new file mode 100644 index 0000000..83d8cc3 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp @@ -0,0 +1,35 @@ +#include "centerediconitemdelegate.h" +#include <QApplication> +#include <QPainter> + +CenteredIconItemDelegate::CenteredIconItemDelegate(QObject* parent) : + QStyledItemDelegate(parent) +{ +} + +void CenteredIconItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const +{ + if (!index.isValid()) + return; + + QStyleOptionViewItem opt = option; + initStyleOption(&opt, index); + + // disable default icon + opt.icon = QIcon(); + if (opt.features.testFlag(QStyleOptionViewItem::HasDecoration)) + opt.features ^= QStyleOptionViewItem::HasDecoration; + + // draw default item + QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &opt, painter, 0); + + const QRect r = option.rect; + + // get pixmap + QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole)); + QPixmap pix = icon.pixmap(r.size()); + + // draw pixmap at center of item + const QPoint p = QPoint((r.width() - pix.width()) / 2, (r.height() - pix.height()) / 2); + painter->drawPixmap(r.topLeft() + p, pix); +} |
