mirror of
https://github.com/parchlinux/calamares.git
synced 2025-06-25 08:28:22 -04:00
[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
1 changed files with 21 additions and 1 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue