aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/dialogs/newdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/dialogs/newdialog.cpp')
-rw-r--r--src/plugins/coreplugin/dialogs/newdialog.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp
index f38a43e73b..80f8eb8d4d 100644
--- a/src/plugins/coreplugin/dialogs/newdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/newdialog.cpp
@@ -79,7 +79,7 @@ public:
invalidateFilter();
}
- bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
+ bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override
{
if (!sourceParent.isValid())
return true;
@@ -91,6 +91,21 @@ public:
return true;
}
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
+ {
+ if (role == Qt::DecorationRole) {
+ // scale too small icons to have one size for all
+ QIcon icon = qvariant_cast<QIcon>(QSortFilterProxyModel::data(index, role));
+ if (!icon.isNull()) {
+ QPixmap pixmap(icon.pixmap(ICON_SIZE, ICON_SIZE));
+ if (pixmap.size() != QSize(ICON_SIZE, ICON_SIZE))
+ return pixmap.scaled(ICON_SIZE, ICON_SIZE, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ }
+ }
+
+ return QSortFilterProxyModel::data(index, role);
+ }
+
private:
Core::Id m_platform;
};
@@ -101,18 +116,18 @@ class TwoLevelProxyModel : public QAbstractProxyModel
public:
TwoLevelProxyModel(QObject *parent = 0): QAbstractProxyModel(parent) {}
- QModelIndex index(int row, int column, const QModelIndex &parent) const
+ QModelIndex index(int row, int column, const QModelIndex &parent) const override
{
QModelIndex ourModelIndex = sourceModel()->index(row, column, mapToSource(parent));
return createIndex(row, column, ourModelIndex.internalPointer());
}
- QModelIndex parent(const QModelIndex &index) const
+ QModelIndex parent(const QModelIndex &index) const override
{
return mapFromSource(mapToSource(index).parent());
}
- int rowCount(const QModelIndex &index) const
+ int rowCount(const QModelIndex &index) const override
{
if (index.isValid() && index.parent().isValid() && !index.parent().parent().isValid())
return 0;
@@ -120,19 +135,19 @@ public:
return sourceModel()->rowCount(mapToSource(index));
}
- int columnCount(const QModelIndex &index) const
+ int columnCount(const QModelIndex &index) const override
{
return sourceModel()->columnCount(mapToSource(index));
}
- QModelIndex mapFromSource (const QModelIndex &index) const
+ QModelIndex mapFromSource (const QModelIndex &index) const override
{
if (!index.isValid())
return QModelIndex();
return createIndex(index.row(), index.column(), index.internalPointer());
}
- QModelIndex mapToSource (const QModelIndex &index) const
+ QModelIndex mapToSource (const QModelIndex &index) const override
{
if (!index.isValid())
return QModelIndex();
@@ -148,7 +163,7 @@ public:
FancyTopLevelDelegate(QObject *parent = 0)
: QItemDelegate(parent) {}
- void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const
+ void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const override
{
QStyleOptionViewItem newoption = option;
if (!(option.state & QStyle::State_Enabled)) {
@@ -168,11 +183,10 @@ public:
QItemDelegate::drawDisplay(painter, newoption, rect, text);
}
- QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
+ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
{
QSize size = QItemDelegate::sizeHint(option, index);
-
size = size.expandedTo(QSize(0, ROW_HEIGHT));
return size;