[license] Refactor LicenseWidget
- Move all the widget code into its own file
This commit is contained in:
parent
35f23c86c6
commit
1235207ead
@ -22,6 +22,7 @@
|
|||||||
#include "LicensePage.h"
|
#include "LicensePage.h"
|
||||||
|
|
||||||
#include "ui_LicensePage.h"
|
#include "ui_LicensePage.h"
|
||||||
|
#include "LicenseWidget.h"
|
||||||
|
|
||||||
#include "JobQueue.h"
|
#include "JobQueue.h"
|
||||||
#include "GlobalStorage.h"
|
#include "GlobalStorage.h"
|
||||||
@ -156,73 +157,7 @@ LicensePage::setEntries( const QList< LicenseEntry >& entriesList )
|
|||||||
|
|
||||||
for ( const LicenseEntry& entry : entriesList )
|
for ( const LicenseEntry& entry : entriesList )
|
||||||
{
|
{
|
||||||
QWidget* widget = new QWidget( this );
|
ui->licenseEntriesLayout->addWidget( new LicenseWidget( entry ) );
|
||||||
QPalette pal( palette() );
|
|
||||||
pal.setColor( QPalette::Background, palette().background().color().lighter( 108 ) );
|
|
||||||
widget->setAutoFillBackground( true );
|
|
||||||
widget->setPalette( pal );
|
|
||||||
widget->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
|
|
||||||
widget->setContentsMargins( 4, 4, 4, 4 );
|
|
||||||
|
|
||||||
QHBoxLayout* wiLayout = new QHBoxLayout;
|
|
||||||
widget->setLayout( wiLayout );
|
|
||||||
QLabel* label = new QLabel( widget );
|
|
||||||
label->setWordWrap( true );
|
|
||||||
wiLayout->addWidget( label );
|
|
||||||
label->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum );
|
|
||||||
|
|
||||||
QString productDescription;
|
|
||||||
switch ( entry.m_type )
|
|
||||||
{
|
|
||||||
case LicenseEntry::Type::Driver:
|
|
||||||
//: %1 is an untranslatable product name, example: Creative Audigy driver
|
|
||||||
productDescription = tr( "<strong>%1 driver</strong><br/>"
|
|
||||||
"by %2" )
|
|
||||||
.arg( entry.m_prettyName )
|
|
||||||
.arg( entry.m_prettyVendor );
|
|
||||||
break;
|
|
||||||
case LicenseEntry::Type::GpuDriver:
|
|
||||||
//: %1 is usually a vendor name, example: Nvidia graphics driver
|
|
||||||
productDescription = tr( "<strong>%1 graphics driver</strong><br/>"
|
|
||||||
"<font color=\"Grey\">by %2</font>" )
|
|
||||||
.arg( entry.m_prettyName )
|
|
||||||
.arg( entry.m_prettyVendor );
|
|
||||||
break;
|
|
||||||
case LicenseEntry::Type::BrowserPlugin:
|
|
||||||
productDescription = tr( "<strong>%1 browser plugin</strong><br/>"
|
|
||||||
"<font color=\"Grey\">by %2</font>" )
|
|
||||||
.arg( entry.m_prettyName )
|
|
||||||
.arg( entry.m_prettyVendor );
|
|
||||||
break;
|
|
||||||
case LicenseEntry::Type::Codec:
|
|
||||||
productDescription = tr( "<strong>%1 codec</strong><br/>"
|
|
||||||
"<font color=\"Grey\">by %2</font>" )
|
|
||||||
.arg( entry.m_prettyName )
|
|
||||||
.arg( entry.m_prettyVendor );
|
|
||||||
break;
|
|
||||||
case LicenseEntry::Type::Package:
|
|
||||||
productDescription = tr( "<strong>%1 package</strong><br/>"
|
|
||||||
"<font color=\"Grey\">by %2</font>" )
|
|
||||||
.arg( entry.m_prettyName )
|
|
||||||
.arg( entry.m_prettyVendor );
|
|
||||||
break;
|
|
||||||
case LicenseEntry::Type::Software:
|
|
||||||
productDescription = tr( "<strong>%1</strong><br/>"
|
|
||||||
"<font color=\"Grey\">by %2</font>" )
|
|
||||||
.arg( entry.m_prettyName )
|
|
||||||
.arg( entry.m_prettyVendor );
|
|
||||||
}
|
|
||||||
label->setText( productDescription );
|
|
||||||
|
|
||||||
QLabel* viewLicenseLabel = new QLabel( widget );
|
|
||||||
wiLayout->addWidget( viewLicenseLabel );
|
|
||||||
viewLicenseLabel->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );
|
|
||||||
viewLicenseLabel->setOpenExternalLinks( true );
|
|
||||||
viewLicenseLabel->setAlignment( Qt::AlignVCenter | Qt::AlignRight );
|
|
||||||
viewLicenseLabel->setText( tr( "<a href=\"%1\">view license agreement</a>" )
|
|
||||||
.arg( entry.m_url.toString() ) );
|
|
||||||
|
|
||||||
ui->licenseEntriesLayout->addWidget( widget );
|
|
||||||
}
|
}
|
||||||
ui->licenseEntriesLayout->addStretch();
|
ui->licenseEntriesLayout->addStretch();
|
||||||
}
|
}
|
||||||
|
@ -20,3 +20,82 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "LicenseWidget.h"
|
#include "LicenseWidget.h"
|
||||||
|
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
|
||||||
|
LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent )
|
||||||
|
: QWidget( parent )
|
||||||
|
, m_entry( std::move( entry ) )
|
||||||
|
{
|
||||||
|
QPalette pal( palette() );
|
||||||
|
pal.setColor( QPalette::Background, palette().background().color().lighter( 108 ) );
|
||||||
|
|
||||||
|
setAutoFillBackground( true );
|
||||||
|
setPalette( pal );
|
||||||
|
setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum );
|
||||||
|
setContentsMargins( 4, 4, 4, 4 );
|
||||||
|
|
||||||
|
QHBoxLayout* wiLayout = new QHBoxLayout;
|
||||||
|
setLayout( wiLayout );
|
||||||
|
QLabel* label = new QLabel( this );
|
||||||
|
label->setWordWrap( true );
|
||||||
|
wiLayout->addWidget( label );
|
||||||
|
label->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Minimum );
|
||||||
|
|
||||||
|
QString productDescription;
|
||||||
|
switch ( entry.m_type )
|
||||||
|
{
|
||||||
|
case LicenseEntry::Type::Driver:
|
||||||
|
//: %1 is an untranslatable product name, example: Creative Audigy driver
|
||||||
|
productDescription = tr( "<strong>%1 driver</strong><br/>"
|
||||||
|
"by %2" )
|
||||||
|
.arg( entry.m_prettyName )
|
||||||
|
.arg( entry.m_prettyVendor );
|
||||||
|
break;
|
||||||
|
case LicenseEntry::Type::GpuDriver:
|
||||||
|
//: %1 is usually a vendor name, example: Nvidia graphics driver
|
||||||
|
productDescription = tr( "<strong>%1 graphics driver</strong><br/>"
|
||||||
|
"<font color=\"Grey\">by %2</font>" )
|
||||||
|
.arg( entry.m_prettyName )
|
||||||
|
.arg( entry.m_prettyVendor );
|
||||||
|
break;
|
||||||
|
case LicenseEntry::Type::BrowserPlugin:
|
||||||
|
productDescription = tr( "<strong>%1 browser plugin</strong><br/>"
|
||||||
|
"<font color=\"Grey\">by %2</font>" )
|
||||||
|
.arg( entry.m_prettyName )
|
||||||
|
.arg( entry.m_prettyVendor );
|
||||||
|
break;
|
||||||
|
case LicenseEntry::Type::Codec:
|
||||||
|
productDescription = tr( "<strong>%1 codec</strong><br/>"
|
||||||
|
"<font color=\"Grey\">by %2</font>" )
|
||||||
|
.arg( entry.m_prettyName )
|
||||||
|
.arg( entry.m_prettyVendor );
|
||||||
|
break;
|
||||||
|
case LicenseEntry::Type::Package:
|
||||||
|
productDescription = tr( "<strong>%1 package</strong><br/>"
|
||||||
|
"<font color=\"Grey\">by %2</font>" )
|
||||||
|
.arg( entry.m_prettyName )
|
||||||
|
.arg( entry.m_prettyVendor );
|
||||||
|
break;
|
||||||
|
case LicenseEntry::Type::Software:
|
||||||
|
productDescription = tr( "<strong>%1</strong><br/>"
|
||||||
|
"<font color=\"Grey\">by %2</font>" )
|
||||||
|
.arg( entry.m_prettyName )
|
||||||
|
.arg( entry.m_prettyVendor );
|
||||||
|
}
|
||||||
|
label->setText( productDescription );
|
||||||
|
|
||||||
|
QLabel* viewLicenseLabel = new QLabel( this );
|
||||||
|
wiLayout->addWidget( viewLicenseLabel );
|
||||||
|
viewLicenseLabel->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );
|
||||||
|
viewLicenseLabel->setOpenExternalLinks( true );
|
||||||
|
viewLicenseLabel->setAlignment( Qt::AlignVCenter | Qt::AlignRight );
|
||||||
|
viewLicenseLabel->setText( tr( "<a href=\"%1\">view license agreement</a>" )
|
||||||
|
.arg( entry.m_url.toString() ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
LicenseWidget::~LicenseWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
@ -22,4 +22,18 @@
|
|||||||
#ifndef LICENSE_LICENSEWIDGET_H
|
#ifndef LICENSE_LICENSEWIDGET_H
|
||||||
#define LICENSE_LICENSEWIDGET_H
|
#define LICENSE_LICENSEWIDGET_H
|
||||||
|
|
||||||
|
#include "LicensePage.h"
|
||||||
|
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class LicenseWidget : public QWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LicenseWidget( LicenseEntry e, QWidget* parent = nullptr );
|
||||||
|
virtual ~LicenseWidget() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
LicenseEntry m_entry;
|
||||||
|
} ;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user