aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:57 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:57 -0400
commit65d5f68cc6dc81799c5a5d90400a2c1f0dd02547 (patch)
tree6f245ba901b87ef42fed69965aea22f5eea6b590 /SQLiteStudio3/guiSQLiteStudio/common/centerediconitemdelegate.cpp
parentaeb6bad01630d325a4e768e798a7a6d44e18fdaf (diff)
parent5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (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.cpp35
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);
+}