mirror of
https://github.com/parchlinux/calamares.git
synced 2025-06-28 18:05:36 -04:00
[welcome] Introduce a delegate for drawing the languages list
- Show the native name left, English name right
This commit is contained in:
parent
0b833b1e75
commit
81acc496dc
4 changed files with 30 additions and 8 deletions
|
@ -16,9 +16,9 @@ include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
|
||||||
|
|
||||||
set( CHECKER_SOURCES
|
set( CHECKER_SOURCES
|
||||||
checker/CheckerContainer.cpp
|
checker/CheckerContainer.cpp
|
||||||
|
checker/GeneralRequirements.cpp
|
||||||
checker/ResultWidget.cpp
|
checker/ResultWidget.cpp
|
||||||
checker/ResultsListWidget.cpp
|
checker/ResultsListWidget.cpp
|
||||||
checker/GeneralRequirements.cpp
|
|
||||||
${PARTMAN_SRC}
|
${PARTMAN_SRC}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -41,18 +41,18 @@ LocaleModel::rowCount( const QModelIndex& ) const
|
||||||
QVariant
|
QVariant
|
||||||
LocaleModel::data( const QModelIndex& index, int role ) const
|
LocaleModel::data( const QModelIndex& index, int role ) const
|
||||||
{
|
{
|
||||||
if ( role != Qt::DisplayRole )
|
if ( ( role != LabelRole ) && ( role != EnglishLabelRole ) )
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|
||||||
if ( !index.isValid() )
|
if ( !index.isValid() )
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|
||||||
const auto& locale = m_locales.at( index.row() );
|
const auto& locale = m_locales.at( index.row() );
|
||||||
switch ( index.column() )
|
switch ( role )
|
||||||
{
|
{
|
||||||
case 0:
|
case LabelRole:
|
||||||
return locale.label();
|
return locale.label();
|
||||||
case 1:
|
case EnglishLabelRole:
|
||||||
return locale.englishLabel();
|
return locale.englishLabel();
|
||||||
default:
|
default:
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
@ -100,3 +100,10 @@ LocaleModel::find( const QLocale& locale ) const
|
||||||
return locale == l.locale();
|
return locale == l.locale();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LocaleTwoColumnDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||||
|
{
|
||||||
|
QStyledItemDelegate::paint( painter, option, index );
|
||||||
|
option.widget->style()->drawItemText( painter, option.rect, Qt::AlignRight | Qt::AlignVCenter, option.palette, false, index.data( LocaleModel::EnglishLabelRole ).toString() );
|
||||||
|
}
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
#define WELCOME_LOCALEMODEL_H
|
#define WELCOME_LOCALEMODEL_H
|
||||||
|
|
||||||
#include <QAbstractListModel>
|
#include <QAbstractListModel>
|
||||||
|
#include <QStyledItemDelegate>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
|
||||||
|
|
||||||
#include "utils/LocaleLabel.h"
|
#include "utils/LocaleLabel.h"
|
||||||
|
|
||||||
class LocaleModel : public QAbstractListModel
|
class LocaleModel : public QAbstractListModel
|
||||||
|
@ -30,6 +30,12 @@ class LocaleModel : public QAbstractListModel
|
||||||
public:
|
public:
|
||||||
using LocaleLabel = CalamaresUtils::LocaleLabel;
|
using LocaleLabel = CalamaresUtils::LocaleLabel;
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
LabelRole = Qt::DisplayRole,
|
||||||
|
EnglishLabelRole = Qt::UserRole + 1
|
||||||
|
};
|
||||||
|
|
||||||
LocaleModel( const QStringList& locales, QObject* parent = nullptr );
|
LocaleModel( const QStringList& locales, QObject* parent = nullptr );
|
||||||
virtual ~LocaleModel() override;
|
virtual ~LocaleModel() override;
|
||||||
|
|
||||||
|
@ -56,4 +62,12 @@ private:
|
||||||
QVector< LocaleLabel > m_locales;
|
QVector< LocaleLabel > m_locales;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
class LocaleTwoColumnDelegate : public QStyledItemDelegate
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using QStyledItemDelegate::QStyledItemDelegate;
|
||||||
|
|
||||||
|
void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const override;
|
||||||
|
} ;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -36,10 +36,10 @@
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
|
#include <QComboBox>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QFocusEvent>
|
#include <QFocusEvent>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QComboBox>
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
|
||||||
WelcomePage::WelcomePage( QWidget* parent )
|
WelcomePage::WelcomePage( QWidget* parent )
|
||||||
|
@ -133,6 +133,7 @@ WelcomePage::initLanguages()
|
||||||
|
|
||||||
m_languages = new LocaleModel( QString( CALAMARES_TRANSLATION_LANGUAGES ).split( ';') );
|
m_languages = new LocaleModel( QString( CALAMARES_TRANSLATION_LANGUAGES ).split( ';') );
|
||||||
ui->languageWidget->setModel( m_languages );
|
ui->languageWidget->setModel( m_languages );
|
||||||
|
ui->languageWidget->setItemDelegate( new LocaleTwoColumnDelegate( ui->languageWidget ) );
|
||||||
|
|
||||||
// Find the best initial translation
|
// Find the best initial translation
|
||||||
QLocale defaultLocale = QLocale( QLocale::system().name() );
|
QLocale defaultLocale = QLocale( QLocale::system().name() );
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue