TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musictimerwidget.cpp
Go to the documentation of this file.
1 #include "musictimerwidget.h"
2 #include "ui_musictimerwidget.h"
3 #include "musicsettingmanager.h"
6 
7 #include <QButtonGroup>
8 
10  : MusicAbstractMoveDialog(parent),
11  m_ui(new Ui::MusicTimerWidget)
12 {
13  m_ui->setupUi(this);
14  setFixedSize(size());
15  setBackgroundLabel(m_ui->background);
16 
17  m_ui->topTitleCloseButton->setIcon(QIcon(":/functions/btn_close_hover"));
18  m_ui->topTitleCloseButton->setStyleSheet(TTK::UI::ToolButtonStyle04);
19  m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
20  m_ui->topTitleCloseButton->setToolTip(tr("Close"));
21  connect(m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
22 
23  m_ui->timerToPlay->setStyleSheet(TTK::UI::TimeToPlay);
24  m_ui->timerToStop->setStyleSheet(TTK::UI::TimeToStop);
25  m_ui->timerToShutdown->setStyleSheet(TTK::UI::TimeToDown);
26  m_ui->confirm->setStyleSheet(TTK::UI::PushButtonStyle04);
27  m_ui->cancel->setStyleSheet(TTK::UI::PushButtonStyle04);
28  m_ui->timerToPlay->setCursor(QCursor(Qt::PointingHandCursor));
29  m_ui->timerToStop->setCursor(QCursor(Qt::PointingHandCursor));
30  m_ui->timerToShutdown->setCursor(QCursor(Qt::PointingHandCursor));
31  m_ui->confirm->setCursor(QCursor(Qt::PointingHandCursor));
32  m_ui->cancel->setCursor(QCursor(Qt::PointingHandCursor));
33 
34  connect(m_ui->confirm, SIGNAL(clicked()), SLOT(saveParameterSettings()));
35  connect(m_ui->cancel, SIGNAL(clicked()), SLOT(close()));
36 
37 #ifdef Q_OS_UNIX
38  m_ui->timerToPlay->setFocusPolicy(Qt::NoFocus);
39  m_ui->timerToStop->setFocusPolicy(Qt::NoFocus);
40  m_ui->timerToShutdown->setFocusPolicy(Qt::NoFocus);
41  m_ui->confirm->setFocusPolicy(Qt::NoFocus);
42  m_ui->cancel->setFocusPolicy(Qt::NoFocus);
43 #endif
44 
49  initParemeter();
50 
51  QButtonGroup *buttonGroup0 = new QButtonGroup(this);
52  buttonGroup0->addButton(m_ui->timerToPlay, 0);
53  buttonGroup0->addButton(m_ui->timerToStop, 1);
54  buttonGroup0->addButton(m_ui->timerToShutdown, 2);
55  QtButtonGroupConnect(buttonGroup0, this, changeWidgetIndex, TTK_SLOT);
56 
57  QButtonGroup *buttonGroup1 = new QButtonGroup(this);
58  buttonGroup1->addButton(m_ui->noSetRadioButton1, 0);
59  buttonGroup1->addButton(m_ui->setRadioButton1, 1);
60  QtButtonGroupConnect(buttonGroup1, this, buttonClicked, TTK_SLOT);
61 
62  QButtonGroup *buttonGroup2 = new QButtonGroup(this);
63  buttonGroup2->addButton(m_ui->noSetRadioButton2, 2);
64  buttonGroup2->addButton(m_ui->setRadioButton2, 3);
65  QtButtonGroupConnect(buttonGroup2, this, buttonClicked, TTK_SLOT);
66 
67  QButtonGroup *buttonGroup3 = new QButtonGroup(this);
68  buttonGroup3->addButton(m_ui->noSetRadioButton3, 4);
69  buttonGroup3->addButton(m_ui->setRadioButton3, 5);
70  QtButtonGroupConnect(buttonGroup3, this, buttonClicked, TTK_SLOT);
71 
73 }
74 
76 {
77  delete m_ui;
78 }
79 
81 {
83  {
84  m_ui->noSetRadioButton1->setChecked(true);
86  }
87  else
88  {
89  m_ui->setRadioButton1->setChecked(true);
90  }
91 
92  m_ui->hourComboBox1->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayHour).toInt());
93  m_ui->secComboBox1->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlaySecond).toInt());
94  m_ui->repeatComboBox1->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayRepeat).toInt());
95  m_ui->plistComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayItemIndex).toInt());
96 
98  {
99  m_ui->noSetRadioButton2->setChecked(true);
101  }
102  else
103  {
104  m_ui->setRadioButton2->setChecked(true);
105  }
106 
107  m_ui->hourComboBox2->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopHour).toInt());
108  m_ui->secComboBox2->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopSecond).toInt());
109  m_ui->repeatComboBox2->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopRepeat).toInt());
110 
112  {
113  m_ui->noSetRadioButton3->setChecked(true);
114  setEnabledThreeControl(false);
115  }
116  else
117  {
118  m_ui->setRadioButton3->setChecked(true);
119  }
120 
121  m_ui->hourComboBox3->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownHour).toInt());
122  m_ui->secComboBox3->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownSecond).toInt());
123  m_ui->repeatComboBox3->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownRepeat).toInt());
124 }
125 
127 {
128  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoIndex, m_ui->stackedWidget->currentIndex());
129  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayMode, m_ui->noSetRadioButton1->isChecked() ? 1 : 0);
130  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayHour, m_ui->hourComboBox1->currentIndex());
131  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlaySecond, m_ui->secComboBox1->currentIndex());
132  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayRepeat, m_ui->repeatComboBox1->currentIndex());
133  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayItemIndex, m_ui->plistComboBox->currentIndex());
134  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlaySongIndex, m_ui->psongComboBox->currentIndex());
135  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopMode, m_ui->noSetRadioButton2->isChecked() ? 1 : 0);
136  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopHour, m_ui->hourComboBox2->currentIndex());
137  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopSecond, m_ui->secComboBox2->currentIndex());
138  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopRepeat, m_ui->repeatComboBox2->currentIndex());
139  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownMode, m_ui->noSetRadioButton3->isChecked() ? 1 : 0);
140  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownHour, m_ui->hourComboBox3->currentIndex());
141  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownSecond, m_ui->secComboBox3->currentIndex());
142  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownRepeat, m_ui->repeatComboBox3->currentIndex());
143 }
144 
145 void MusicTimerWidget::setSongStringList(const QStringList &list)
146 {
147  m_ui->psongComboBox->addItems(list);
148  m_ui->psongComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlaySongIndex).toInt());
149 }
150 
152 {
153  for(int i = 0; i < TTK_DN_D2H; ++i)
154  {
155  m_hour << tr("%1H").arg(i).rightJustified(3, '0');
156  }
157 
158  for(int i = 0; i < TTK_DN_H2M; ++i)
159  {
160  m_second << tr("%1S").arg(i).rightJustified(3, '0');
161  }
162  m_repeat << tr("Once") << tr("Month") << tr("Week") << tr("Day");
163 }
164 
166 {
167  m_ui->timerToPlay->setStyleSheet(TTK::UI::TimeToPlay);
168  m_ui->timerToStop->setStyleSheet(TTK::UI::TimeToStop);
169  m_ui->timerToShutdown->setStyleSheet(TTK::UI::TimeToDown);
170 
171  switch(index)
172  {
173  case 0: m_ui->timerToPlay->setStyleSheet(TTK::UI::TimeToPlayClicked); break;
174  case 1: m_ui->timerToStop->setStyleSheet(TTK::UI::TimeToStopClicked); break;
175  case 2: m_ui->timerToShutdown->setStyleSheet(TTK::UI::TimeToDownClicked); break;
176  default: break;
177  }
178 
179  m_ui->stackedWidget->setCurrentIndex(index);
180 }
181 
183 {
184  m_ui->hourComboBox1->addItems(m_hour);
185  m_ui->secComboBox1->addItems(m_second);
186  m_ui->repeatComboBox1->addItems(m_repeat);
187  m_ui->plistComboBox->addItem(tr("Defualt"));
188  m_ui->noSetRadioButton1->setStyleSheet(TTK::UI::RadioButtonStyle01);
189  m_ui->setRadioButton1->setStyleSheet(TTK::UI::RadioButtonStyle01);
190 
193  TTK::Widget::generateComboBoxFormat(m_ui->repeatComboBox1);
196 #ifdef Q_OS_UNIX
197  m_ui->noSetRadioButton1->setFocusPolicy(Qt::NoFocus);
198  m_ui->setRadioButton1->setFocusPolicy(Qt::NoFocus);
199 #endif
200 }
201 
203 {
204  m_ui->hourComboBox2->addItems(m_hour);
205  m_ui->secComboBox2->addItems(m_second);
206  m_ui->repeatComboBox2->addItems(m_repeat);
207  m_ui->noSetRadioButton2->setStyleSheet(TTK::UI::RadioButtonStyle01);
208  m_ui->setRadioButton2->setStyleSheet(TTK::UI::RadioButtonStyle01);
209 
212  TTK::Widget::generateComboBoxFormat(m_ui->repeatComboBox2);
213 #ifdef Q_OS_UNIX
214  m_ui->noSetRadioButton2->setFocusPolicy(Qt::NoFocus);
215  m_ui->setRadioButton2->setFocusPolicy(Qt::NoFocus);
216 #endif
217 }
218 
220 {
221  m_ui->hourComboBox3->addItems(m_hour);
222  m_ui->secComboBox3->addItems(m_second);
223  m_ui->repeatComboBox3->addItems(m_repeat);
224  m_ui->noSetRadioButton3->setStyleSheet(TTK::UI::RadioButtonStyle01);
225  m_ui->setRadioButton3->setStyleSheet(TTK::UI::RadioButtonStyle01);
226 
229  TTK::Widget::generateComboBoxFormat(m_ui->repeatComboBox3);
230 #ifdef Q_OS_UNIX
231  m_ui->noSetRadioButton3->setFocusPolicy(Qt::NoFocus);
232  m_ui->setRadioButton3->setFocusPolicy(Qt::NoFocus);
233 #endif
234 }
235 
237 {
238  writeParemeter();
240  close();
241 }
242 
244 {
245  switch(index)
246  {
247  case 0: setEnabledFirstControl(false); break;
248  case 1: setEnabledFirstControl(true); break;
249  case 2: setEnabledSecondControl(false); break;
250  case 3: setEnabledSecondControl(true); break;
251  case 4: setEnabledThreeControl(false); break;
252  case 5: setEnabledThreeControl(true); break;
253  default: break;
254  }
255 }
256 
258 {
259  m_ui->hourComboBox1->setEnabled(enabled);
260  m_ui->secComboBox1->setEnabled(enabled);
261  m_ui->repeatComboBox1->setEnabled(enabled);
262  m_ui->plistComboBox->setEnabled(enabled);
263  m_ui->psongComboBox->setEnabled(enabled);
264 }
265 
267 {
268  m_ui->hourComboBox2->setEnabled(enabled);
269  m_ui->secComboBox2->setEnabled(enabled);
270  m_ui->repeatComboBox2->setEnabled(enabled);
271 }
272 
274 {
275  m_ui->hourComboBox3->setEnabled(enabled);
276  m_ui->secComboBox3->setEnabled(enabled);
277  m_ui->repeatComboBox3->setEnabled(enabled);
278 }
void setBackgroundLabel(QLabel *label)
MusicTimerWidget(QWidget *parent=nullptr)
voidpf void uLong size
Definition: ioapi.h:136
void setEnabledSecondControl(bool enabled)
#define TTK_DN_D2H
Definition: ttkglobal.h:294
QStringList m_repeat
void setEnabledThreeControl(bool enabled)
static constexpr const char * TimeToPlayClicked
#define TTK_DN_H2M
Definition: ttkglobal.h:287
void setEnabledFirstControl(bool enabled)
void changeWidgetIndex(int index)
static const QString PushButtonStyle04
static constexpr const char * TimeToStopClicked
#define TTK_SLOT
Definition: ttkqtglobal.h:165
Ui::MusicTimerWidget * m_ui
static constexpr const char * TimeToPlay
The class of the moving dialog base.
#define QtButtonGroupConnect(p, q, f, s)
Button group connect.
Definition: ttkqtcompat.h:101
TTK_MODULE_EXPORT void generateComboBoxFormat(QComboBox *widget, const QString &style={})
QStringList m_second
static constexpr const char * TimeToStop
static MusicApplicationModule * instance()
static const QString ToolButtonStyle04
void setSongStringList(const QStringList &list)
static const QString RadioButtonStyle01
RadioButton.
void writeParemeter() const
void buttonClicked(int index)
The class of the timer widget.
static constexpr const char * TimeToDown
#define G_SETTING_PTR
static constexpr const char * TimeToDownClicked