@@ -27,14 +27,21 @@ MainWindow::MainWindow(QWidget *parent) :
2727
2828
2929 logger = new smartTimerLog (this );
30+ alarmsBlinkTimer = new QTimer (this );
31+ timersBlinkTimer = new QTimer (this );
3032
3133 connect (ui->addTimerButton ,SIGNAL (clicked ()),this ,SLOT (addTimer ()));
3234 connect (ui->addAlarmButton ,SIGNAL (clicked ()),this ,SLOT (addAlarm ()));
33- // TODO : here
35+
3436 connect (logger, SIGNAL (createTimer (int ,QString)), this , SLOT (onTimeRecieved (int ,QString)));
3537 connect (logger, SIGNAL (createAlarm (int ,QString,bool )), this , SLOT (onAlarmTimeRecieved (int ,QString,bool )));
3638
3739
40+ connect (alarmsBlinkTimer,SIGNAL (timeout ()),this ,SLOT (alarmsTabBlink ()));
41+ connect (timersBlinkTimer,SIGNAL (timeout ()),this ,SLOT (timersTabBlink ()));
42+
43+
44+
3845 timerScrollWidget = new QWidget;
3946 timerScrollWidget->setLayout (new QVBoxLayout);
4047 timerScrollWidget->setMaximumWidth (400 );
@@ -63,6 +70,7 @@ void MainWindow::addTimer()
6370 auto *addDial = new addTimerDialog ();
6471 connect (addDial,SIGNAL (sendTimerData (int ,QString)),this , SLOT (onTimeRecieved (int ,QString)));
6572
73+
6674 addDial->exec ();
6775}
6876
@@ -82,6 +90,8 @@ void MainWindow::onTimeRecieved(int msecs, const QString& _name)
8290
8391 connect (newTimer, SIGNAL (del (const TimerWidget*)), this , SLOT (remove (const TimerWidget*)));
8492 connect (newTimer, SIGNAL (timerFinished ()), this , SLOT (onTimerFinished ()));
93+ connect (newTimer, SIGNAL (blinkInfo (QString, bool )), this , SLOT (tabBlinking (QString,bool )));
94+
8595
8696 timersList.append (newTimer);
8797}
@@ -118,6 +128,99 @@ void MainWindow::onAlarmTimeRecieved(int msecs, const QString& _name, bool turne
118128 alarmScrollWidget->layout ()->addWidget (newAlarm);
119129
120130 connect (newAlarm, SIGNAL (del (const alertwidget*)), this , SLOT (remove (const alertwidget*)));
131+ connect (newAlarm, SIGNAL (blinkInfo (QString, bool )), this , SLOT (tabBlinking (QString,bool )));
132+
121133
122134 alarmsList.append (newAlarm);
123135}
136+
137+ void MainWindow::tabBlinking (QString tabName, bool enable)
138+ {
139+ if (enable)
140+ {
141+ if (tabName==" Timers" )
142+ {
143+ blinkingTimers++;
144+ ui->SmartTimerTabs ->setCurrentIndex (0 );
145+ }
146+ if (tabName==" Alarms" )
147+ {
148+ blinkingAlarms++;
149+ ui->SmartTimerTabs ->setCurrentIndex (1 );
150+ }
151+ }
152+ else
153+ {
154+ if (tabName==" Timers" && blinkingTimers)
155+ {
156+ blinkingTimers--;
157+ }
158+ if (tabName==" Alarms" && blinkingAlarms)
159+ {
160+ blinkingAlarms--;
161+ }
162+ }
163+ if (blinkingTimers && !timersBlinking)
164+ {
165+ timersBlinkTimer->start (400 );
166+ timersBlinking = true ;
167+ timersBlinkState = false ;
168+ }
169+ if (blinkingAlarms && !alarmsBlinking)
170+ {
171+ alarmsBlinkTimer->start (400 );
172+ alarmsBlinking = true ;
173+ alarmsBlinkState = false ;
174+ }
175+
176+ if (!blinkingTimers)
177+ {
178+ timersBlinkTimer->stop ();
179+
180+ ui->Timers ->setProperty (" blink" , false );
181+ this ->style ()->unpolish (ui->Timers );
182+ this ->style ()->polish (ui->Timers );
183+
184+ timersBlinkState = false ;
185+
186+ timersBlinking = false ;
187+
188+ }
189+
190+ if (!blinkingAlarms)
191+ {
192+ alarmsBlinkTimer->stop ();
193+
194+ ui->Alarms ->setProperty (" blink" , false );
195+ this ->style ()->unpolish (ui->Alarms );
196+ this ->style ()->polish (ui->Alarms );
197+
198+ alarmsBlinkState = false ;
199+
200+ alarmsBlinking = false ;
201+ }
202+
203+ }
204+
205+ void MainWindow::alarmsTabBlink ()
206+ {
207+ ui->Alarms ->setProperty (" blink" , !alarmsBlinkState);
208+ ui->Alarms ->style ()->unpolish (ui->Alarms );
209+ ui->Alarms ->style ()->polish (ui->Alarms );
210+
211+
212+ alarmsBlinkState = !alarmsBlinkState;
213+ }
214+
215+ void MainWindow::timersTabBlink ()
216+ {
217+
218+ ui->Timers ->setProperty (" blink" , !timersBlinkState);
219+ ui->Timers ->style ()->unpolish (ui->Timers );
220+ ui->Timers ->style ()->polish (ui->Timers );
221+ ui->Timers ->update ();
222+
223+
224+
225+ timersBlinkState = !timersBlinkState;
226+ }
0 commit comments