[locale] Remove old Location information
- all the TZ location information now lives in the Calamares locale service and the TZ list - replace the Location class that was local to the timezone widget by the TZZone class - chase a bunch of small API changes that this needs
This commit is contained in:
parent
4945408911
commit
242b79e2e1
@ -133,19 +133,6 @@ LocalePage::updateLocaleLabels()
|
||||
m_formatsLabel->setText( labels.second );
|
||||
}
|
||||
|
||||
static inline bool
|
||||
containsLocation( const QList< LocaleGlobal::Location >& locations, const QString& zone )
|
||||
{
|
||||
for ( const LocaleGlobal::Location& location : locations )
|
||||
{
|
||||
if ( location.zone == zone )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
LocalePage::init( const QString& initialRegion, const QString& initialZone, const QString& localeGenPath )
|
||||
{
|
||||
@ -163,7 +150,6 @@ LocalePage::init( const QString& initialRegion, const QString& initialZone, cons
|
||||
{
|
||||
m_tzWidget->setCurrentLocation( "America", "New_York" );
|
||||
}
|
||||
emit m_tzWidget->locationChanged( m_tzWidget->getCurrentLocation() );
|
||||
|
||||
// Some distros come with a meaningfully commented and easy to parse locale.gen,
|
||||
// and others ship a separate file /usr/share/i18n/SUPPORTED with a clean list of
|
||||
@ -298,9 +284,9 @@ Calamares::JobList
|
||||
LocalePage::createJobs()
|
||||
{
|
||||
QList< Calamares::job_ptr > list;
|
||||
LocaleGlobal::Location location = m_tzWidget->getCurrentLocation();
|
||||
const CalamaresUtils::Locale::TZZone* location = m_tzWidget->currentLocation();
|
||||
|
||||
Calamares::Job* j = new SetTimezoneJob( location.region, location.zone );
|
||||
Calamares::Job* j = new SetTimezoneJob( location->region(), location->zone() );
|
||||
list.append( Calamares::job_ptr( j ) );
|
||||
|
||||
return list;
|
||||
@ -333,7 +319,7 @@ LocaleConfiguration
|
||||
LocalePage::guessLocaleConfiguration() const
|
||||
{
|
||||
return LocaleConfiguration::fromLanguageAndLocation(
|
||||
QLocale().name(), m_localeGenLines, m_tzWidget->getCurrentLocation().country );
|
||||
QLocale().name(), m_localeGenLines, m_tzWidget->currentLocation()->country() );
|
||||
}
|
||||
|
||||
|
||||
@ -351,12 +337,12 @@ LocalePage::updateGlobalStorage()
|
||||
{
|
||||
auto* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||
|
||||
LocaleGlobal::Location location = m_tzWidget->getCurrentLocation();
|
||||
bool locationChanged
|
||||
= ( location.region != gs->value( "locationRegion" ) ) || ( location.zone != gs->value( "locationZone" ) );
|
||||
const auto* location = m_tzWidget->currentLocation();
|
||||
bool locationChanged = ( location->region() != gs->value( "locationRegion" ) )
|
||||
|| ( location->zone() != gs->value( "locationZone" ) );
|
||||
|
||||
gs->insert( "locationRegion", location.region );
|
||||
gs->insert( "locationZone", location.zone );
|
||||
gs->insert( "locationRegion", location->region() );
|
||||
gs->insert( "locationZone", location->zone() );
|
||||
|
||||
updateGlobalLocale();
|
||||
|
||||
@ -366,7 +352,7 @@ LocalePage::updateGlobalStorage()
|
||||
if ( locationChanged && Calamares::Settings::instance()->doChroot() )
|
||||
{
|
||||
QProcess::execute( "timedatectl", // depends on systemd
|
||||
{ "set-timezone", location.region + '/' + location.zone } );
|
||||
{ "set-timezone", location->region() + '/' + location->zone() } );
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -427,12 +413,12 @@ LocalePage::zoneChanged( int currentIndex )
|
||||
}
|
||||
|
||||
void
|
||||
LocalePage::locationChanged( LocaleGlobal::Location location )
|
||||
LocalePage::locationChanged( const CalamaresUtils::Locale::TZZone* location )
|
||||
{
|
||||
m_blockTzWidgetSet = true;
|
||||
|
||||
// Set region index
|
||||
int index = m_regionCombo->findData( location.region );
|
||||
int index = m_regionCombo->findData( location->region() );
|
||||
if ( index < 0 )
|
||||
{
|
||||
return;
|
||||
@ -441,7 +427,7 @@ LocalePage::locationChanged( LocaleGlobal::Location location )
|
||||
m_regionCombo->setCurrentIndex( index );
|
||||
|
||||
// Set zone index
|
||||
index = m_zoneCombo->findData( location.zone );
|
||||
index = m_zoneCombo->findData( location->zone() );
|
||||
if ( index < 0 )
|
||||
{
|
||||
return;
|
||||
|
@ -70,7 +70,7 @@ private:
|
||||
|
||||
void regionChanged( int currentIndex );
|
||||
void zoneChanged( int currentIndex );
|
||||
void locationChanged( LocaleGlobal::Location location );
|
||||
void locationChanged( const CalamaresUtils::Locale::TZZone* location );
|
||||
void changeLocale();
|
||||
void changeFormats();
|
||||
|
||||
|
@ -38,32 +38,6 @@ QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > LocaleGlobal::
|
||||
//###
|
||||
|
||||
|
||||
QString
|
||||
LocaleGlobal::Location::pretty( const QString& s )
|
||||
{
|
||||
return QString( s ).replace( '_', ' ' ).simplified();
|
||||
}
|
||||
|
||||
|
||||
QString
|
||||
LocaleGlobal::Location::comment() const
|
||||
{
|
||||
QTimeZone qtz = QTimeZone( QString( "%1/%2" ).arg( region ).arg( zone ).toLatin1() );
|
||||
return qtz.comment();
|
||||
}
|
||||
|
||||
LocaleGlobal::Location&
|
||||
LocaleGlobal::Location::operator=( const CalamaresUtils::Locale::TZZone& location )
|
||||
{
|
||||
region = location.region();
|
||||
zone = location.key();
|
||||
country = location.country();
|
||||
latitude = location.latitude();
|
||||
longitude = location.longitude();
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
LocaleGlobal::init()
|
||||
{
|
||||
|
@ -51,16 +51,6 @@ public:
|
||||
QString description, locale;
|
||||
};
|
||||
|
||||
struct Location
|
||||
{
|
||||
QString region, zone, country;
|
||||
double latitude, longitude;
|
||||
static QString pretty( const QString& s );
|
||||
QString comment() const;
|
||||
|
||||
Location& operator=( const CalamaresUtils::Locale::TZZone& );
|
||||
};
|
||||
|
||||
static void init();
|
||||
static QHash< QString, QHash< QString, QList< LocaleGlobal::Locale > > > getLocales();
|
||||
|
||||
@ -70,10 +60,4 @@ private:
|
||||
static void initLocales();
|
||||
};
|
||||
|
||||
inline QDebug&
|
||||
operator<<( QDebug& s, const LocaleGlobal::Location& l )
|
||||
{
|
||||
return s << l.region << '/' << l.zone << '(' << l.country << ") @N" << l.latitude << 'E' << l.longitude;
|
||||
}
|
||||
|
||||
#endif // LOCALEGLOBAL_H
|
||||
|
@ -105,10 +105,10 @@ TimeZoneWidget::setCurrentLocation( QString regionName, QString zoneName )
|
||||
void
|
||||
TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* location )
|
||||
{
|
||||
currentLocation = *location;
|
||||
m_currentLocation = location;
|
||||
|
||||
// Set zone
|
||||
QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
|
||||
QPoint pos = getLocationPosition( location );
|
||||
|
||||
#ifdef DEBUG_TIMEZONES
|
||||
cDebug() << "Setting location" << location->region() << *location;
|
||||
@ -147,6 +147,7 @@ TimeZoneWidget::setCurrentLocation( const CalamaresUtils::Locale::TZZone* locati
|
||||
|
||||
// Repaint widget
|
||||
repaint();
|
||||
emit locationChanged( m_currentLocation );
|
||||
}
|
||||
|
||||
|
||||
@ -265,12 +266,12 @@ TimeZoneWidget::paintEvent( QPaintEvent* )
|
||||
painter.drawPoint( point );
|
||||
#else
|
||||
// Draw pin at current location
|
||||
QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
|
||||
QPoint point = getLocationPosition( m_currentLocation );
|
||||
|
||||
painter.drawImage( point.x() - pin.width() / 2, point.y() - pin.height() / 2, pin );
|
||||
|
||||
// Draw text and box
|
||||
const int textWidth = fontMetrics.horizontalAdvance( LocaleGlobal::Location::pretty( currentLocation.zone ) );
|
||||
const int textWidth = fontMetrics.horizontalAdvance( m_currentLocation ? m_currentLocation->tr() : QString() );
|
||||
const int textHeight = fontMetrics.height();
|
||||
|
||||
QRect rect = QRect( point.x() - textWidth / 2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2 );
|
||||
@ -296,7 +297,7 @@ TimeZoneWidget::paintEvent( QPaintEvent* )
|
||||
painter.setBrush( QColor( 40, 40, 40 ) );
|
||||
painter.drawRoundedRect( rect, 3, 3 );
|
||||
painter.setPen( Qt::white );
|
||||
painter.drawText( rect.x() + 5, rect.bottom() - 4, LocaleGlobal::Location::pretty( currentLocation.zone ) );
|
||||
painter.drawText( rect.x() + 5, rect.bottom() - 4, m_currentLocation ? m_currentLocation->tr() : QString() );
|
||||
#endif
|
||||
|
||||
painter.end();
|
||||
@ -345,6 +346,6 @@ TimeZoneWidget::mousePressEvent( QMouseEvent* event )
|
||||
// Set zone image and repaint widget
|
||||
setCurrentLocation( closest );
|
||||
// Emit signal
|
||||
emit locationChanged( currentLocation );
|
||||
emit locationChanged( m_currentLocation );
|
||||
}
|
||||
}
|
||||
|
@ -43,25 +43,25 @@ class TimeZoneWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
using TZZone = CalamaresUtils::Locale::TZZone;
|
||||
|
||||
explicit TimeZoneWidget( QWidget* parent = nullptr );
|
||||
|
||||
LocaleGlobal::Location getCurrentLocation() { return currentLocation; }
|
||||
void setCurrentLocation( QString region, QString zone );
|
||||
void setCurrentLocation( const CalamaresUtils::Locale::TZZone* location );
|
||||
void setCurrentLocation( const TZZone* location );
|
||||
const TZZone* currentLocation() { return m_currentLocation; }
|
||||
|
||||
|
||||
signals:
|
||||
void locationChanged( LocaleGlobal::Location location );
|
||||
void locationChanged( const TZZone* location );
|
||||
|
||||
private:
|
||||
QFont font;
|
||||
QImage background, pin, currentZoneImage;
|
||||
QList< QImage > timeZoneImages;
|
||||
LocaleGlobal::Location currentLocation;
|
||||
const TZZone* m_currentLocation = nullptr; // Not owned by me
|
||||
|
||||
QPoint getLocationPosition( const LocaleGlobal::Location& l )
|
||||
{
|
||||
return getLocationPosition( l.longitude, l.latitude );
|
||||
}
|
||||
QPoint getLocationPosition( const TZZone* l ) { return getLocationPosition( l->longitude(), l->latitude() ); }
|
||||
QPoint getLocationPosition( double longitude, double latitude );
|
||||
|
||||
void paintEvent( QPaintEvent* event );
|
||||
|
Loading…
Reference in New Issue
Block a user