File indexing completed on 2024-04-14 03:48:09
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2010 Harshit Jain <hjain.itbhu@gmail.com> 0004 // 0005 0006 // Own 0007 #include "TimeControlWidget.h" 0008 #include "ui_TimeControlWidget.h" 0009 0010 // Qt 0011 #include <QPushButton> 0012 #include <QShowEvent> 0013 0014 // Marble 0015 #include "MarbleClock.h" 0016 #include "MarbleDebug.h" 0017 0018 using namespace Marble; 0019 /* TRANSLATOR Marble::TimeControlWidget */ 0020 0021 TimeControlWidget::TimeControlWidget( MarbleClock* clock, QWidget* parent ) 0022 : QDialog( parent ), 0023 m_uiWidget( new Ui::TimeControlWidget ), 0024 m_clock( clock ), 0025 m_lastDateTime() 0026 { 0027 m_uiWidget->setupUi( this ); 0028 0029 connect( m_uiWidget->speedSlider, SIGNAL(valueChanged(int)), this, SLOT(updateSpeedLabel(int)) ); 0030 connect( m_uiWidget->nowToolButton, SIGNAL(clicked()), this, SLOT(nowClicked()) ); 0031 connect( m_uiWidget->buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply()) ); 0032 connect( m_uiWidget->buttonBox, SIGNAL(rejected()), this, SLOT(reject()) ); 0033 connect( m_uiWidget->buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(apply()) ); 0034 connect( m_uiWidget->buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(accept()) ); 0035 connect( m_clock, SIGNAL(timeChanged()), this, SLOT(updateDateTime()) ); 0036 connect( m_clock, SIGNAL(updateIntervalChanged(int)), this, SLOT(updateRefreshRate(int)) ); 0037 0038 setModal( false ); 0039 0040 } 0041 0042 TimeControlWidget::~TimeControlWidget() 0043 { 0044 delete m_uiWidget; 0045 } 0046 0047 void TimeControlWidget::updateSpeedLabel( int speed ) 0048 { 0049 m_uiWidget->speedLabel->setText( QString( "%1x" ).arg( speed ) ); 0050 } 0051 0052 void TimeControlWidget::updateRefreshRate( int seconds ) 0053 { 0054 m_uiWidget->refreshIntervalSpinBox->setValue( seconds ); 0055 } 0056 0057 void TimeControlWidget::updateDateTime() 0058 { 0059 m_uiWidget->currentDateTimeEdit->setDateTime( m_clock->dateTime().addSecs( m_clock->timezone() ) ); 0060 } 0061 0062 void TimeControlWidget::nowClicked() 0063 { 0064 m_uiWidget->newDateTimeEdit->setDateTime( QDateTime::currentDateTime().toUTC().addSecs( m_clock->timezone() ) ); 0065 } 0066 0067 void TimeControlWidget::apply() 0068 { 0069 if( m_lastDateTime != m_uiWidget->newDateTimeEdit->dateTime() ) 0070 { 0071 m_lastDateTime = m_uiWidget->newDateTimeEdit->dateTime(); 0072 m_clock->setDateTime( m_lastDateTime.toUTC() ); 0073 } 0074 m_clock->setUpdateInterval( m_uiWidget->refreshIntervalSpinBox->value() ); 0075 m_clock->setSpeed( m_uiWidget->speedSlider->value() ); 0076 } 0077 0078 void TimeControlWidget::showEvent(QShowEvent* event) 0079 { 0080 if( !event->spontaneous() ) 0081 { 0082 // Loading all options 0083 m_uiWidget->refreshIntervalSpinBox->setValue( m_clock->updateInterval() ); 0084 m_uiWidget->speedSlider->setValue( m_clock->speed() ); 0085 m_uiWidget->speedLabel->setText( QString( "%1x" ).arg( m_clock->speed() ) ); 0086 updateDateTime(); 0087 m_lastDateTime = m_clock->dateTime(); 0088 m_uiWidget->newDateTimeEdit->setDateTime( m_lastDateTime.addSecs( m_clock->timezone() ) ); 0089 } 0090 } 0091 0092 #include "moc_TimeControlWidget.cpp"