[plasmalnf] Fallback for image-not-found
- calculate a hash of the filename, and use that - makes it possible to distinguish different screenshots even when the image file is missing / badly configured - most colors will be dreadful
This commit is contained in:
parent
2db485bb33
commit
3f258d4bd9
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
#include "ThemeInfo.h"
|
#include "ThemeInfo.h"
|
||||||
|
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QRadioButton>
|
#include <QRadioButton>
|
||||||
@ -33,7 +35,25 @@ ThemeWidget::ThemeWidget(const ThemeInfo& info, QWidget* parent)
|
|||||||
this->setLayout( layout );
|
this->setLayout( layout );
|
||||||
|
|
||||||
layout->addWidget( m_check, 1 );
|
layout->addWidget( m_check, 1 );
|
||||||
layout->addWidget( new QLabel( "Image", this ), 1 );
|
|
||||||
|
constexpr QSize image_size{240, 160};
|
||||||
|
|
||||||
|
QPixmap image( info.imagePath );
|
||||||
|
if ( image.isNull() )
|
||||||
|
{
|
||||||
|
// Not found or not specified, so convert the name into some (horrible, likely)
|
||||||
|
// color instead.
|
||||||
|
image = QPixmap( image_size );
|
||||||
|
uint hash_color = qHash( info.imagePath );
|
||||||
|
cDebug() << "Theme image" << info.imagePath << "not found, hash" << hash_color;
|
||||||
|
image.fill( QColor( QRgb( hash_color ) ) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
image.scaled( image_size );
|
||||||
|
|
||||||
|
QLabel* image_label = new QLabel( this );
|
||||||
|
image_label->setPixmap( image );
|
||||||
|
layout->addWidget( image_label, 1 );
|
||||||
layout->addWidget( new QLabel( info.description, this ), 3 );
|
layout->addWidget( new QLabel( info.description, this ), 3 );
|
||||||
|
|
||||||
connect( m_check, &QRadioButton::clicked, this, &ThemeWidget::clicked );
|
connect( m_check, &QRadioButton::clicked, this, &ThemeWidget::clicked );
|
||||||
|
Loading…
Reference in New Issue
Block a user