QVariant TimezoneModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); if (role == Qt::DisplayRole) { const QTimeZone tz(m_ids.at(index.row())); switch (index.column()) { case TimezoneModelColumns::IanaIdColumn: return tz.id(); case TimezoneModelColumns::CountryColumn: return QLocale::countryToString(tz.country()); case TimezoneModelColumns::StandardDisplayNameColumn: return tz.displayName(QTimeZone::StandardTime); case TimezoneModelColumns::DSTColumn: return tz.hasDaylightTime(); case TimezoneModelColumns::WindowsIdColumn: return QTimeZone::ianaIdToWindowsId(tz.id()); } } else if (role == Qt::ToolTipRole && index.column() == 0) { const QTimeZone tz(m_ids.at(index.row())); return tz.comment(); } else if (role == TimezoneModelRoles::LocalZoneRole && index.column() == 0) { if (m_ids.at(index.row()) == QTimeZone::systemTimeZoneId()) return true; return QVariant(); } return QVariant(); }
void TimeDateModule::updateFields() { if ( m_timeDate->canNtp() ) ui->isNtpEnabledCheckBox->setChecked( m_timeDate->isNtpEnabled() ); else { ui->isNtpEnabledCheckBox->setChecked( false ); ui->isNtpEnabledCheckBox->setEnabled( false ); } ui->isRtcLocalCheckBox->setChecked( m_timeDate->isRtcInLocalTimeZone() ); QTimeZone timeZone = QTimeZone( m_timeZone.toLatin1() ); if ( timeZone.isValid() ) { ui->timeZoneLabel_2->setText( m_timeZone ); ui->countryLabel_2->setText( QLocale::countryToString( timeZone.country() ) ); QIcon yesIcon = QIcon(); yesIcon.addFile( ":/images/yes.svg", QSize( 16, 16 ) ); QIcon noIcon = QIcon(); noIcon.addFile( ":/images/no.svg", QSize( 16, 16 ) ); if ( timeZone.hasDaylightTime() ) ui->hasDaylightTimeIcon->setPixmap( yesIcon.pixmap( QSize( 16, 16 ) ) ); else ui->hasDaylightTimeIcon->setPixmap( noIcon.pixmap( QSize( 16, 16 ) ) ); if ( timeZone.isDaylightTime( QDateTime::currentDateTime() ) ) ui->isDaylightTimeIcon->setPixmap( yesIcon.pixmap( QSize( 16, 16 ) ) ); else ui->isDaylightTimeIcon->setPixmap( noIcon.pixmap( QSize( 16, 16 ) ) ); if ( timeZone.hasTransitions() ) ui->hasTransitionsIcon->setPixmap( yesIcon.pixmap( QSize( 16, 16 ) ) ); else ui->hasTransitionsIcon->setPixmap( noIcon.pixmap( QSize( 16, 16 ) ) ); QTimeZone::OffsetData offset = timeZone.nextTransition( QDateTime::currentDateTime() ); if ( offset.atUtc != QDateTime() ) { ui->nextTransitionLabel->setEnabled( true ); ui->nextTransitionTimeLabel->setEnabled( true ); ui->nextTransitionTimeLabel->setText( offset.atUtc.toString( "dddd yyyy-MM-dd HH:mm:ss" ) ); } else { ui->nextTransitionLabel->setEnabled( false ); ui->nextTransitionTimeLabel->setEnabled( false ); ui->nextTransitionTimeLabel->setText( tr( "none" ) ); } } }