Skip to content

Commit 6a5d9da

Browse files
committed
Nicely round corners for welcome page images
1 parent 13e1959 commit 6a5d9da

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/app/qgswelcomepageitemsmodel.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include <QPixmap>
1919
#include <QFile>
20+
#include <QPainter>
2021

2122
QgsWelcomePageItemsModel::QgsWelcomePageItemsModel( QObject* parent )
2223
: QAbstractListModel( parent )
@@ -48,9 +49,23 @@ QVariant QgsWelcomePageItemsModel::data( const QModelIndex& index, int role ) co
4849

4950
case Qt::DecorationRole:
5051
{
51-
QPixmap previewImage;
52-
previewImage.load( mRecentProjects.at( index.row() ).previewImagePath );
53-
return previewImage;
52+
QImage thumbnail( mRecentProjects.at( index.row() ).previewImagePath );
53+
if ( thumbnail.isNull() )
54+
return QVariant();
55+
56+
//nicely round corners so users don't get paper cuts
57+
QImage previewImage( thumbnail.size(), QImage::Format_ARGB32 );
58+
previewImage.fill( Qt::transparent );
59+
QPainter previewPainter( &previewImage );
60+
previewPainter.setRenderHint( QPainter::Antialiasing, true );
61+
previewPainter.setPen( Qt::NoPen );
62+
previewPainter.setBrush( Qt::black );
63+
previewPainter.drawRoundedRect( 0, 0, previewImage.width(), previewImage.height(), 8, 8 );
64+
previewPainter.setCompositionMode( QPainter::CompositionMode_SourceIn );
65+
previewPainter.drawImage( 0, 0, thumbnail );
66+
previewPainter.end();
67+
68+
return QPixmap::fromImage( previewImage );
5469
break;
5570
}
5671

0 commit comments

Comments
 (0)