Skip to content

Commit a81cd41

Browse files
committed
Add tab blinking
1 parent d614538 commit a81cd41

File tree

7 files changed

+120
-1
lines changed

7 files changed

+120
-1
lines changed

SmartTimer/alertwidget.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ void alertwidget::onTickCheck()
126126
player->play();
127127
ui->stopButton->show();
128128
ui->stopButton->setEnabled(true);
129+
130+
emit blinkInfo("Alarms",true);
129131
}
130132

131133
void alertwidget::blink()
@@ -174,6 +176,7 @@ void alertwidget::closeAlarm()
174176

175177

176178
emit del(this);
179+
emit blinkInfo("Alarms",false);
177180

178181
this->close();
179182
}

SmartTimer/alertwidget.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public slots:
4444

4545
void customContextMenuRequested(const QPoint &);
4646

47+
void blinkInfo(const QString &tabName, bool enable);
48+
4749
private:
4850
Ui::alertwidget *ui;
4951

SmartTimer/mainwindow.cpp

Lines changed: 86 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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(blikInfo(const QString&, bool)), this, SLOT(tabBlinking(const QString&,bool)));
94+
8595

8696
timersList.append(newTimer);
8797
}
@@ -118,6 +128,81 @@ 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(blikInfo(QString, bool)), this, SLOT(tabBlinking(QString,bool)));
132+
121133

122134
alarmsList.append(newAlarm);
123135
}
136+
137+
void MainWindow::tabBlinking(const QString &tabName, bool enable)
138+
{
139+
if (enable)
140+
{
141+
if (tabName=="Timers")
142+
{
143+
timersBlink++;
144+
}
145+
if (tabName=="Alarms")
146+
{
147+
alarmsBlink++;
148+
}
149+
}
150+
else
151+
{
152+
if (tabName=="Timers")
153+
{
154+
timersBlink--;
155+
}
156+
if (tabName=="Alarms")
157+
{
158+
alarmsBlink--;
159+
}
160+
}
161+
if (timersBlink && !timersBlinking)
162+
{
163+
timersBlinkTimer->start(400);
164+
}
165+
if (alarmsBlink && !alarmsBlinking)
166+
{
167+
alarmsBlinkTimer->start(400);
168+
}
169+
170+
if (!timersBlink)
171+
{
172+
timersBlinkTimer->stop();
173+
174+
ui->Timers->setProperty("blinky", false);
175+
this->style()->unpolish(ui->Timers);
176+
this->style()->polish(ui->Timers);
177+
}
178+
179+
if (!alarmsBlink)
180+
{
181+
alarmsBlinkTimer->stop();
182+
183+
ui->Alarms->setProperty("blinky", !alarmsBlinky);
184+
this->style()->unpolish(ui->Alarms);
185+
this->style()->polish(ui->Alarms);
186+
187+
alarmsBlinky = !alarmsBlinky;
188+
}
189+
190+
}
191+
192+
void MainWindow::alarmsTabBlink()
193+
{
194+
ui->Alarms->setProperty("blinky", !alarmsBlinky);
195+
this->style()->unpolish(ui->Alarms);
196+
this->style()->polish(ui->Alarms);
197+
198+
alarmsBlinky = !alarmsBlinky;
199+
}
200+
201+
void MainWindow::timersTabBlink()
202+
{
203+
ui->Timers->setProperty("blinky", !timersBlinky);
204+
this->style()->unpolish(ui->Timers);
205+
this->style()->polish(ui->Timers);
206+
207+
timersBlinky = !timersBlinky;
208+
}

SmartTimer/mainwindow.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public slots:
3030
void onTimerFinished();
3131
void onAlarmTimeRecieved(int msecs, const QString& _name, bool turnedOn);
3232

33+
void tabBlinking(const QString &tabName, bool enable);
34+
void alarmsTabBlink();
35+
void timersTabBlink();
36+
3337
signals:
3438
void del(QList<TimerWidget*> timers,QList<alertwidget*> alarms);
3539
private:
@@ -42,6 +46,19 @@ public slots:
4246

4347
QWidget *timerScrollWidget;
4448
QWidget *alarmScrollWidget;
49+
50+
int alarmsBlink = 0;
51+
int timersBlink = 0;
52+
53+
bool alarmsBlinking = false;
54+
bool timersBlinking = false;
55+
56+
bool alarmsBlinky = false;
57+
bool timersBlinky = false;
58+
59+
QTimer *alarmsBlinkTimer;
60+
QTimer *timersBlinkTimer;
61+
4562
};
4663

4764
#endif // MAINWINDOW_H

SmartTimer/stylesheet.qss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ QTabBar::tab:!selected {
5353
margin-top: 5px; /* make non-selected tabs look smaller */
5454
}
5555

56+
QTabBar::tab[blink=true]
57+
{
58+
background: rgb(0,0,0);
59+
}
60+
5661

5762

5863

SmartTimer/timerwidget.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ void TimerWidget::timerExecuted()
135135
ui->timeLeft->setText(QString::fromStdString(secondsToTimeString(0)));
136136

137137
emit timerFinished();
138+
emit blinkInfo("Timers",true);
138139
}
139140

140141
void TimerWidget::updateLeftTime()
@@ -179,6 +180,7 @@ void TimerWidget::closeTimer()
179180
blinkTimer->stop();
180181

181182
emit del(this);
183+
emit blinkInfo("Timers",false);
182184

183185
this->close();
184186
}

SmartTimer/timerwidget.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public slots:
5050

5151
void timerFinished();
5252

53+
void addBlink();
54+
void deleteBlink();
55+
56+
void blinkInfo(const QString &tabName,bool enable);
57+
5358
private:
5459
static int MAXID;
5560

0 commit comments

Comments
 (0)