/*************************************************************************** source::worx raDIYo Copyright © 2020-2022 c.holzheuer chris@sourceworx.org This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ***************************************************************************/ #include #include #include #include #include #include SWClockControl::SWClockControl( QWidget* parent, QSettings* settings ) : SWControl( parent, settings ) { setupUi( this ); setAcceptDial( false ); _flipHour->setTransition ( SWFlipDigit::Flip ); _flipMinute->setTransition( SWFlipDigit::Flip ); _flipSecond->setTransition( SWFlipDigit::Flip ); _flipHour->show(); _flipMinute->show(); _flipSecond->show(); QPalette pal = palette(); pal.setColor( QPalette::Window, Qt::black ); setPalette( pal ); _ticker.start( 1000, this ); QTime time = QTime::currentTime(); _flipHour->setValue( time.hour() ); _flipMinute->setValue( time.minute() ); updateTime(); } SWClockControl::~SWClockControl() { } void SWClockControl::updateTime() { QTime now = QTime::currentTime(); _flipHour->flipTo( now.hour() ); _flipMinute->flipTo( now.minute() ); _flipSecond->flipTo( now.second() ); } void SWClockControl::switchTransition( int delta ) { int i = ( _flipHour->transition() + delta + 3) % 3; _flipHour->setTransition( (SWFlipDigit::FlipMode) i ); _flipMinute->setTransition( (SWFlipDigit::FlipMode) i ); updateTime(); } /* void SWClockControl::resizeEvent(QResizeEvent*) { int digitsWidth = width() / 3; int digitsHeight = digitsWidth * 1.2; int y = (double) (height() - digitsHeight) / 1.8; _flipHour->resize( digitsWidth, digitsHeight ); _flipHour->move( 0, y ); _flipMinute->resize( digitsWidth, digitsHeight ); _flipMinute->move( width() / 3, y ); _flipSecond->resize( digitsWidth, digitsHeight ); _flipSecond->move( width() /3 * 2, y ); } */ void SWClockControl::timerEvent( QTimerEvent* event ) { Q_UNUSED( event ) updateTime(); } void SWClockControl::chooseSlide() { _flipHour->setTransition( SWFlipDigit::Slide ); _flipMinute->setTransition( SWFlipDigit::Slide ); _flipSecond->setTransition( SWFlipDigit::Slide ); updateTime(); } void SWClockControl::chooseFlip() { _flipHour->setTransition( SWFlipDigit::Flip ); _flipMinute->setTransition( SWFlipDigit::Flip ); _flipSecond->setTransition( SWFlipDigit::Flip ); updateTime(); } void SWClockControl::chooseRotate() { _flipHour->setTransition( SWFlipDigit::Rotate ); _flipMinute->setTransition( SWFlipDigit::Rotate ); _flipSecond->setTransition( SWFlipDigit::Rotate ); updateTime(); }