TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicsettingwidget.cpp
Go to the documentation of this file.
1 #include "musicsettingwidget.h"
2 #include "ui_musicsettingwidget.h"
3 #include "musicnetworkthread.h"
4 #include "musicnetworkproxy.h"
5 #include "musicnetworkoperator.h"
7 #include "musictoastlabel.h"
8 #include "musichotkeymanager.h"
10 #include "musiclrccolorwidget.h"
11 #include "musiclrcdefines.h"
12 #include "musiclrcmanager.h"
15 #include "musiccolordialog.h"
16 #include "musicalgorithmutils.h"
17 #include "musicpluginwidget.h"
18 #include "musicfileutils.h"
19 #include "musicmessagebox.h"
20 #include "musicrulesanalysis.h"
21 #include "ttkversion.h"
22 #include "ttkfileassociation.h"
23 
24 #include <qmmp/qmmpsettings.h>
25 
26 #include <QButtonGroup>
27 #include <QFontDatabase>
28 #include <QAudioDeviceInfo>
29 
30 static constexpr int SCROLL_ITEM_HEIGHT = 370;
31 
33  : MusicAbstractTableWidget(parent),
34  m_listIndex(0)
35 {
36  QHeaderView *headerView = horizontalHeader();
37  headerView->resizeSection(0, 20);
38  headerView->resizeSection(1, 20);
39  headerView->resizeSection(2, 85);
40 
41  setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
42 
43  setRowCount(3);
44 }
45 
46 void MusicFunctionTableWidget::addCellItems(int index, const MusicFunctionItemList &items)
47 {
48  m_listIndex = index;
49  for(int i = 0; i < items.count(); ++i)
50  {
51  const MusicFunctionItem &v = items[i];
52 
53  QTableWidgetItem *item = nullptr;
54  setItem(i, 0, item = new QTableWidgetItem);
55 
56  item = new QTableWidgetItem(QIcon(v.m_icon), {});
57  QtItemSetTextAlignment(item, Qt::AlignCenter);
58  setItem(i, 1, item);
59 
60  item = new QTableWidgetItem(v.m_name);
61  item->setForeground(QColor(TTK::UI::Color02));
62  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
63  setItem(i, 2, item);
64 
65  setRowHeight(i, 28);
66  }
67 }
68 
70 {
71  Q_UNUSED(column);
72  Q_EMIT currentIndexChanged(row + m_listIndex);
73  selectRow(row);
74 }
75 
76 
78  : MusicAbstractMoveDialog(parent),
79  m_ui(new Ui::MusicSettingWidget)
80 {
81  m_ui->setupUi(this);
82  setFixedSize(size());
83  setBackgroundLabel(m_ui->background);
84 
85  m_ui->topTitleCloseButton->setIcon(QIcon(":/functions/btn_close_hover"));
86  m_ui->topTitleCloseButton->setStyleSheet(TTK::UI::ToolButtonStyle04);
87  m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
88  m_ui->topTitleCloseButton->setToolTip(tr("Close"));
89  connect(m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
90 
91  MusicFunctionItemList items;
92  items << MusicFunctionItem(":/contextMenu/btn_setting", tr("Normal"))
93  << MusicFunctionItem(":/contextMenu/btn_keyboard", tr("Hotkey"))
94  << MusicFunctionItem(":/contextMenu/btn_download", tr("Dwonload"))
95  << MusicFunctionItem(":/contextMenu/btn_spectrum", tr("Ripple"))
96  << MusicFunctionItem(":/tiny/btn_more_normal", tr("Other"));
97  m_ui->normalFunTableWidget->setRowCount(items.count());
98  m_ui->normalFunTableWidget->addCellItems(0, items);
99 
100  items.clear();
101  items << MusicFunctionItem(":/contextMenu/btn_desktop_lrc", tr("Desktop"))
102  << MusicFunctionItem(":/contextMenu/btn_lrc", tr("Interior"));
103  m_ui->lrcFunTableWidget->setRowCount(items.count());
104  m_ui->lrcFunTableWidget->addCellItems(m_ui->normalFunTableWidget->rowCount(), items);
105 
106  items.clear();
107  items << MusicFunctionItem(":/contextMenu/btn_equalizer", tr("Equalizer"))
108  << MusicFunctionItem(":/contextMenu/btn_kmicro", tr("Audio"))
109  << MusicFunctionItem(":/contextMenu/btn_network", tr("NetWork"));
110  m_ui->supperFunTableWidget->setRowCount(items.count());
111  m_ui->supperFunTableWidget->addCellItems(m_ui->normalFunTableWidget->rowCount() + m_ui->lrcFunTableWidget->rowCount(), items);
112 
113  m_ui->confirmButton->setStyleSheet(TTK::UI::PushButtonStyle04);
114  m_ui->cancelButton->setStyleSheet(TTK::UI::PushButtonStyle04);
115  m_ui->confirmButton->setCursor(QCursor(Qt::PointingHandCursor));
116  m_ui->cancelButton->setCursor(QCursor(Qt::PointingHandCursor));
117 #ifdef Q_OS_UNIX
118  m_ui->confirmButton->setFocusPolicy(Qt::NoFocus);
119  m_ui->cancelButton->setFocusPolicy(Qt::NoFocus);
120 #endif
121  connect(m_ui->normalFunTableWidget, SIGNAL(currentIndexChanged(int)), SLOT(setScrollWidgetPageIndex(int)));
122  connect(m_ui->normalFunTableWidget, SIGNAL(currentIndexChanged(int)), SLOT(clearFunctionTableSelection()));
123  connect(m_ui->lrcFunTableWidget, SIGNAL(currentIndexChanged(int)), SLOT(setScrollWidgetPageIndex(int)));
124  connect(m_ui->lrcFunTableWidget, SIGNAL(currentIndexChanged(int)), SLOT(clearFunctionTableSelection()));
125  connect(m_ui->supperFunTableWidget, SIGNAL(currentIndexChanged(int)), SLOT(setScrollWidgetPageIndex(int)));
126  connect(m_ui->supperFunTableWidget, SIGNAL(currentIndexChanged(int)), SLOT(clearFunctionTableSelection()));
127  connect(m_ui->confirmButton, SIGNAL(clicked()), SLOT(saveParameterSettings()));
128  connect(m_ui->cancelButton, SIGNAL(clicked()), SLOT(close()));
129 
131 }
132 
134 {
135  delete m_ui;
136 }
137 
139 {
140  m_ui->autoStartCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::StartUpMode).toBool());
141  m_ui->autoPlayCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::StartUpPlayMode).toBool());
142  m_ui->lastPlayCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::LastPlayIndex).toStringList().front().toInt());
143 
145  {
146  m_ui->minimumRadioBox->setChecked(true);
147  }
148  else
149  {
150  m_ui->quitRadioBox->setChecked(true);
151  }
152 
154  {
155  m_ui->quitOpacityRadioBox->setChecked(true);
156  }
157  else
158  {
159  m_ui->quitWindowRadioBox->setChecked(true);
160  }
161  m_ui->languageComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::LanguageIndex).toInt());
162 
163  //
164  QStringList hotkeys = G_SETTING_PTR->value(MusicSettingManager::HotkeyValue).toString().split(TTK_SPLITER);
165  if(hotkeys.count() != G_HOTKEY_PTR->count())
166  {
167  hotkeys = G_HOTKEY_PTR->defaultKeys();
168  }
169 
170  m_ui->item_S01->setText(hotkeys[0]);
171  m_ui->item_S02->setText(hotkeys[1]);
172  m_ui->item_S03->setText(hotkeys[2]);
173  m_ui->item_S04->setText(hotkeys[3]);
174  m_ui->item_S05->setText(hotkeys[4]);
175  m_ui->item_S06->setText(hotkeys[5]);
176  m_ui->item_S07->setText(hotkeys[6]);
177  m_ui->item_S08->setText(hotkeys[7]);
178  m_ui->globalHotkeyBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::HotkeyEnable).toBool());
179  globalHotkeyBoxChanged(m_ui->globalHotkeyBox->isChecked());
180 
181  //
182  m_ui->rippleVersionValue->setText(QString("V") + TTK_VERSION_STR);
183  m_ui->rippleVersionUpdateValue->setText(TTK_VERSION_TIME_STR);
184  m_ui->rippleVersionFileValue->setText(TTK::Algorithm::sha1(TTK_VERSION_STR).toHex());
185  m_ui->rippleLowPowerModeBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::RippleLowPowerMode).toBool());
186  m_ui->rippleSpectrumEnableBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumEnable).toBool());
187  m_ui->rippleSpectrumColorButton->setColors(TTK::readColorConfig(G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumColor).toString()));
188 
189  rippleSpectrumOpacityEnableClicked(m_ui->rippleSpectrumEnableBox->isChecked());
190 
191  if(m_ui->rippleLowPowerModeBox->isChecked())
192  {
194  }
195 
196  //
197  m_ui->otherCheckUpdateBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherCheckUpdateEnable).toBool());
198  m_ui->otherReadAlbumCoverCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherReadAlbumCover).toBool());
199  m_ui->otherReadInfoCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherReadFileInfo).toBool());
200  m_ui->otherWriteAlbumCoverCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherWriteAlbumCover).toBool());
201  m_ui->otherWriteInfoCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherWriteFileInfo).toBool());
202  m_ui->otherSideByCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherSideByMode).toBool());
203  m_ui->otherLrcKTVCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherLrcKTVMode).toBool());
204  m_ui->otherScreenSaverCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherScreenSaverEnable).toBool());
205  m_ui->otherPlaylistAutoSaveCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherPlaylistAutoSaveEnable).toBool());
206  m_ui->otherRandomModeCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::OtherRandomShuffleMode).toBool());
207  m_ui->otherHighDpiScalingCheckBox->setCheckState(TTKStaticCast(Qt::CheckState, G_SETTING_PTR->value(MusicSettingManager::OtherHighDpiScalingEnable).toInt()));
208 
209  //
210  m_ui->downloadDirEdit->setText(G_SETTING_PTR->value(MusicSettingManager::DownloadMusicDirPath).toString());
211  m_ui->downloadLrcDirEdit->setText(G_SETTING_PTR->value(MusicSettingManager::DownloadLrcDirPath).toString());
212  m_ui->downloadRuleEdit->setText(G_SETTING_PTR->value(MusicSettingManager::DownloadFileNameRule).toString());
213  m_ui->downloadSpinBox->setValue(G_SETTING_PTR->value(MusicSettingManager::DownloadCacheSize).toInt());
214  G_SETTING_PTR->value(MusicSettingManager::DownloadCacheEnable).toInt() == 1 ? m_ui->downloadCacheAutoRadioBox->click() : m_ui->downloadCacheManRadioBox->click();
215 
218  G_SETTING_PTR->value(MusicSettingManager::DownloadLimitEnable).toInt() == 1 ? m_ui->downloadFullRadioBox->click() : m_ui->downloadLimitRadioBox->click();
219 
220  //
221  m_ui->fontComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::LrcFamily).toInt());
222  m_ui->fontSizeComboBox->setCurrentIndex(MusicLrcDefines().findInteriorLrcIndex(G_SETTING_PTR->value(MusicSettingManager::LrcSize).toInt()));
223  m_ui->fontTypeComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::LrcType).toInt());
224  m_ui->fontDefaultColorComboBox->setCurrentIndex(TTK_NORMAL_LEVEL);
225 
226  if(G_SETTING_PTR->value(MusicSettingManager::LrcColor).toInt() != -1)
227  {
228  m_ui->fontDefaultColorComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::LrcColor).toInt());
229  }
230  else
231  {
232  m_ui->playedPushButton->setColors(TTK::readColorConfig(G_SETTING_PTR->value(MusicSettingManager::LrcFrontgroundColor).toString()));
233  m_ui->noPlayedPushButton->setColors(TTK::readColorConfig(G_SETTING_PTR->value(MusicSettingManager::LrcBackgroundColor).toString()));
235  }
236  m_ui->transparentSlider->setValue(G_SETTING_PTR->value(MusicSettingManager::LrcColorTransparent).toInt());
237 
238  //
239  m_ui->showDesktopCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::ShowDesktopLrc).toBool());
240  m_ui->DSingleLineCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::DLrcSingleLineMode).toBool());
241  m_ui->DfontComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::DLrcFamily).toInt());
242  m_ui->DfontSizeComboBox->setCurrentIndex(MusicLrcDefines().findDesktopLrcIndex(G_SETTING_PTR->value(MusicSettingManager::DLrcSize).toInt()));
243  m_ui->DfontTypeComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::DLrcType).toInt());
244  m_ui->DfontDefaultColorComboBox->setCurrentIndex(TTK_NORMAL_LEVEL);
245 
246  if(G_SETTING_PTR->value(MusicSettingManager::DLrcColor).toInt() != -1)
247  {
248  m_ui->DfontDefaultColorComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::DLrcColor).toInt() - LRC_COLOR_OFFSET);
249  }
250  else
251  {
252  m_ui->DplayedPushButton->setColors(TTK::readColorConfig(G_SETTING_PTR->value(MusicSettingManager::DLrcFrontgroundColor).toString()));
253  m_ui->DnoPlayedPushButton->setColors(TTK::readColorConfig(G_SETTING_PTR->value(MusicSettingManager::DLrcBackgroundColor).toString()));
255  }
256  m_ui->DtransparentSlider->setValue(G_SETTING_PTR->value(MusicSettingManager::DLrcColorTransparent).toInt());
257 
258  //
259  QmmpSettings *qmmpSettings = QmmpSettings::instance();
260  //replay gain
261  m_ui->clippingCheckBox->setChecked(qmmpSettings->replayGainPreventClipping());
262  m_ui->replayGainModeComboBox->setCurrentIndex(m_ui->replayGainModeComboBox->findData(qmmpSettings->replayGainMode()));
263  m_ui->preampSpinBox->setValue(qmmpSettings->replayGainPreamp());
264  m_ui->defaultGainSpinBox->setValue(qmmpSettings->replayGainDefaultGain());
265  //audio
266  m_ui->volumeStepSpinBox->setValue(qmmpSettings->volumeStep());
267  m_ui->softVolumeCheckBox->setChecked(qmmpSettings->useSoftVolume());
268  m_ui->bitDepthComboBox->setCurrentIndex(m_ui->bitDepthComboBox->findData(qmmpSettings->outputFormat()));
269  m_ui->ditheringCheckBox->setChecked(qmmpSettings->useDithering());
270  m_ui->bufferSizeSpinBox->setValue(qmmpSettings->bufferSize());
271 
272  //
273  m_ui->fadeInSpinBox->setValue(G_SETTING_PTR->value(MusicSettingManager::EnhancedFadeInValue).toInt());
274  m_ui->fadeOutSpinBox->setValue(G_SETTING_PTR->value(MusicSettingManager::EnhancedFadeOutValue).toInt());
275 
277  {
278  m_ui->fadeInAndOutCheckBox->click();
279  }
280 
281  //
282  m_ui->downloadServerComboBox->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::DownloadServerIndex).toInt());
283  m_ui->closeNetWorkCheckBox->setChecked(G_SETTING_PTR->value(MusicSettingManager::CloseNetWorkMode).toInt());
284 #ifdef Q_OS_WIN
286  {
287  m_ui->setDefaultPlayerCheckBox->setChecked(true);
288  }
289  else
290  {
291  m_ui->setDefaultPlayerCheckBox->setChecked(false);
293  }
294  m_ui->defaultPlayerSettingButton->setVisible(m_ui->setDefaultPlayerCheckBox->isChecked());
295 #else
296  m_ui->autoStartCheckBox->setEnabled(false);
297  m_ui->autoStartCheckBox->setChecked(false);
298  m_ui->defaultPlayerSettingButton->setVisible(false);
300 
301  m_ui->setDefaultPlayerCheckBox->setEnabled(false);
302  m_ui->setDefaultPlayerCheckBox->setChecked(false);
304 #endif
305 }
306 
308 {
309  setVisible(false);
310 }
311 
313 {
314  m_ui->normalFunTableWidget->clearSelection();
315  m_ui->lrcFunTableWidget->clearSelection();
316  m_ui->supperFunTableWidget->clearSelection();
317 }
318 
320 {
322 }
323 
325 {
326  m_ui->item_S01->setHotKeyEnabled(state);
327  m_ui->item_S02->setHotKeyEnabled(state);
328  m_ui->item_S03->setHotKeyEnabled(state);
329  m_ui->item_S04->setHotKeyEnabled(state);
330  m_ui->item_S05->setHotKeyEnabled(state);
331  m_ui->item_S06->setHotKeyEnabled(state);
332  m_ui->item_S07->setHotKeyEnabled(state);
333  m_ui->item_S08->setHotKeyEnabled(state);
334 }
335 
337 {
338  MusicMessageBox message;
339  message.setText(tr("Are you sure to clean?"));
340  if(!message.exec())
341  {
342  return;
343  }
344 
346 
347  QDir dir;
348  dir.mkpath(ART_DIR_FULL);
349  dir.mkpath(CACHE_DIR_FULL);
350  dir.mkpath(BACKGROUND_DIR_FULL);
351 
352  MusicToastLabel::popup(tr("Cache is cleaned"));
353 }
354 
356 {
357  const QString &rule = MusicRulesAnalysis::rule(action->data().toInt());
358  if(!rule.isEmpty())
359  {
360  m_ui->downloadRuleEdit->setText(m_ui->downloadRuleEdit->text() + rule);
361  }
362 }
363 
365 {
366  m_ui->downloadSpinBox->setEnabled(index);
367 }
368 
370 {
371  m_ui->downloadLimitSpeedComboBox->setEnabled(index);
372  m_ui->uploadLimitSpeedComboBox->setEnabled(index);
373 }
374 
376 {
377  const QString &path = TTK::File::getExistingDirectory(this);
378  if(!path.isEmpty())
379  {
380  index == 0 ? m_ui->downloadDirEdit->setText(path) : m_ui->downloadLrcDirEdit->setText(path);
381  }
382 }
383 
385 {
387 }
388 
390 {
391  MusicColorDialog dialog(m_ui->rippleSpectrumColorButton->color(), this);
392  if(dialog.exec())
393  {
394  m_ui->rippleSpectrumColorButton->setColors({dialog.color()});
395  }
396 }
397 
399 {
400  m_ui->rippleSpectrumColorButton->setEnabled(state);
401 }
402 
404 {
405  m_ui->rippleSpectrumEnableBox->setEnabled(!state);
406  rippleSpectrumOpacityEnableClicked(m_ui->rippleSpectrumEnableBox->isEnabled() && m_ui->rippleSpectrumEnableBox->isChecked());
407 }
408 
410 {
412 }
413 
415 {
417  setScrollWidgetPageIndex(SettingType::DesktopLrc);
418 }
419 
421 {
423  setScrollWidgetPageIndex(SettingType::InteriorLrc);
424 }
425 
427 {
430 }
431 
433 {
434  lcrColorValue(Lrc::Interior, "LRCFRONTGROUNDGCOLOR", m_ui->playedPushButton);
435 }
436 
438 {
439  lcrColorValue(Lrc::Interior, "LRCBACKGROUNDCOLOR", m_ui->noPlayedPushButton);
440 }
441 
443 {
445 }
446 
448 {
450  m_ui->fontTransValueLabel->setText(QString::number(value) + "%");
451 }
452 
454 {
456  item.m_family = m_ui->fontComboBox->currentText();
457  item.m_size = m_ui->fontSizeComboBox->currentText().toInt();
458  item.m_type = m_ui->fontTypeComboBox->currentIndex();
459  item.m_frontground = m_ui->playedPushButton->colors();
460  item.m_background = m_ui->noPlayedPushButton->colors();
461  m_ui->showLabel->setLinearGradient(item);
462  m_ui->showLabel->update();
463 }
464 
466 {
467  m_ui->fontComboBox->setCurrentIndex(0);
468  m_ui->fontSizeComboBox->setCurrentIndex(0);
469  m_ui->fontTypeComboBox->setCurrentIndex(0);
470  m_ui->fontDefaultColorComboBox->setCurrentIndex(0);
471  m_ui->transparentSlider->setValue(100);
472 }
473 
475 {
476  lcrColorValue(Lrc::Desktop, "DLRCFRONTGROUNDGCOLOR", m_ui->DplayedPushButton);
477 }
478 
480 {
481  lcrColorValue(Lrc::Desktop, "DLRCBACKGROUNDCOLOR", m_ui->DnoPlayedPushButton);
482 }
483 
485 {
487 }
488 
490 {
492  m_ui->DfontTransValueLabel->setText(QString::number(value) + "%");
493 }
494 
496 {
498  item.m_family = m_ui->DfontComboBox->currentText();
499  item.m_size = m_ui->DfontSizeComboBox->currentText().toInt();
500  item.m_type = m_ui->DfontTypeComboBox->currentIndex();
501  item.m_frontground = m_ui->DplayedPushButton->colors();
502  item.m_background = m_ui->DnoPlayedPushButton->colors();
503  m_ui->DshowLabel->setLinearGradient(item);
504  m_ui->DshowLabel->update();
505 }
506 
508 {
509  m_ui->DfontComboBox->setCurrentIndex(0);
510  m_ui->DfontSizeComboBox->setCurrentIndex(0);
511  m_ui->DfontTypeComboBox->setCurrentIndex(0);
512  m_ui->DfontDefaultColorComboBox->setCurrentIndex(0);
513  m_ui->DtransparentSlider->setValue(100);
514 }
515 
517 {
518  m_ui->proxyTypeTestButton->setEnabled(enable != 2);
519  m_ui->proxyIpEdit->setEnabled(enable != 2);
520  m_ui->proxyPortEdit->setEnabled(enable != 2);
521  m_ui->proxyUsernameEdit->setEnabled(enable != 2);
522  m_ui->proxyPwdEdit->setEnabled(enable != 2);
523  m_ui->proxyAreaEdit->setEnabled(enable != 2);
524 }
525 
527 {
529 }
530 
532 {
533  MusicToastLabel::popup(state ? tr("Test successed") : tr("Test failed"));
534 }
535 
537 {
539  connect(d, SIGNAL(queryNetworkOperatorFinished(QString)), SLOT(testNetworkConnectionStateChanged(QString)));
540  d->startToRequest();
541 }
542 
544 {
546 }
547 
549 {
550  m_ui->netConnectionTypeValue->setText(!name.isEmpty() ? name : tr("Unknown"));
551  m_ui->netConnectionWayValue->setText(!name.isEmpty() ? "TCP" : tr("Unknown"));
552 }
553 
555 {
556  m_ui->fadeInSpinBox->setEnabled(state);
557  m_ui->fadeOutSpinBox->setEnabled(state);
558 }
559 
561 {
562  const bool hotkeyEnabled = m_ui->globalHotkeyBox->isChecked();
563  const bool languageChanged = G_SETTING_PTR->value(MusicSettingManager::LanguageIndex).toInt() != m_ui->languageComboBox->currentIndex();
564  const bool highDpiScalingChanged = G_SETTING_PTR->value(MusicSettingManager::OtherHighDpiScalingEnable).toInt() != m_ui->otherHighDpiScalingCheckBox->checkState();
565 
566  QStringList lastPlayIndex = G_SETTING_PTR->value(MusicSettingManager::LastPlayIndex).toStringList();
567  lastPlayIndex[0] = QString::number(m_ui->lastPlayCheckBox->isChecked());
568 
569  G_SETTING_PTR->setValue(MusicSettingManager::LanguageIndex, m_ui->languageComboBox->currentIndex());
570  G_SETTING_PTR->setValue(MusicSettingManager::StartUpMode, m_ui->autoStartCheckBox->isChecked());
571  G_SETTING_PTR->setValue(MusicSettingManager::StartUpPlayMode, m_ui->autoPlayCheckBox->isChecked());
572  G_SETTING_PTR->setValue(MusicSettingManager::LastPlayIndex, lastPlayIndex);
573  G_SETTING_PTR->setValue(MusicSettingManager::CloseEventMode, m_ui->quitRadioBox->isChecked());
574  G_SETTING_PTR->setValue(MusicSettingManager::WindowQuitMode, m_ui->quitWindowRadioBox->isChecked());
575  G_NETWORK_PTR->setBlockNetwork(m_ui->closeNetWorkCheckBox->isChecked());
576  G_SETTING_PTR->setValue(MusicSettingManager::FileAssociationMode, m_ui->setDefaultPlayerCheckBox->isChecked());
577 
578  G_SETTING_PTR->setValue(MusicSettingManager::HotkeyEnable, hotkeyEnabled);
579  if(hotkeyEnabled)
580  {
581  G_HOTKEY_PTR->setHotKey(0, m_ui->item_S01->text());
582  G_HOTKEY_PTR->setHotKey(1, m_ui->item_S02->text());
583  G_HOTKEY_PTR->setHotKey(2, m_ui->item_S03->text());
584  G_HOTKEY_PTR->setHotKey(3, m_ui->item_S04->text());
585  G_HOTKEY_PTR->setHotKey(4, m_ui->item_S05->text());
586  G_HOTKEY_PTR->setHotKey(5, m_ui->item_S06->text());
587  G_HOTKEY_PTR->setHotKey(6, m_ui->item_S07->text());
588  G_HOTKEY_PTR->setHotKey(7, m_ui->item_S08->text());
589 
590  G_HOTKEY_PTR->setEnabled(true);
592  }
593  else
594  {
595  G_HOTKEY_PTR->unsetShortcut();
596  }
597 
598  G_SETTING_PTR->setValue(MusicSettingManager::RippleLowPowerMode, m_ui->rippleLowPowerModeBox->isChecked());
599  G_SETTING_PTR->setValue(MusicSettingManager::RippleSpectrumEnable, m_ui->rippleSpectrumEnableBox->isChecked());
600  G_SETTING_PTR->setValue(MusicSettingManager::RippleSpectrumColor, TTK::writeColorConfig(m_ui->rippleSpectrumColorButton->colors()));
601 
602  G_SETTING_PTR->setValue(MusicSettingManager::OtherCheckUpdateEnable, m_ui->otherCheckUpdateBox->isChecked());
603  G_SETTING_PTR->setValue(MusicSettingManager::OtherReadAlbumCover, m_ui->otherReadAlbumCoverCheckBox->isChecked());
604  G_SETTING_PTR->setValue(MusicSettingManager::OtherReadFileInfo, m_ui->otherReadInfoCheckBox->isChecked());
605  G_SETTING_PTR->setValue(MusicSettingManager::OtherWriteAlbumCover, m_ui->otherWriteAlbumCoverCheckBox->isChecked());
606  G_SETTING_PTR->setValue(MusicSettingManager::OtherWriteFileInfo, m_ui->otherWriteInfoCheckBox->isChecked());
607  G_SETTING_PTR->setValue(MusicSettingManager::OtherSideByMode, m_ui->otherSideByCheckBox->isChecked());
608  G_SETTING_PTR->setValue(MusicSettingManager::OtherLrcKTVMode, m_ui->otherLrcKTVCheckBox->isChecked());
609  G_SETTING_PTR->setValue(MusicSettingManager::OtherScreenSaverEnable, m_ui->otherScreenSaverCheckBox->isChecked());
610  G_SETTING_PTR->setValue(MusicSettingManager::OtherPlaylistAutoSaveEnable, m_ui->otherPlaylistAutoSaveCheckBox->isChecked());
611  G_SETTING_PTR->setValue(MusicSettingManager::OtherRandomShuffleMode, m_ui->otherRandomModeCheckBox->isChecked());
612  G_SETTING_PTR->setValue(MusicSettingManager::OtherHighDpiScalingEnable, m_ui->otherHighDpiScalingCheckBox->checkState());
613 
614  G_SETTING_PTR->setValue(MusicSettingManager::LrcColor, m_ui->fontDefaultColorComboBox->currentIndex());
615  G_SETTING_PTR->setValue(MusicSettingManager::LrcFamily, m_ui->fontComboBox->currentIndex());
616  G_SETTING_PTR->setValue(MusicSettingManager::LrcSize, m_ui->fontSizeComboBox->currentText());
617  G_SETTING_PTR->setValue(MusicSettingManager::LrcType, m_ui->fontTypeComboBox->currentIndex());
618  G_SETTING_PTR->setValue(MusicSettingManager::LrcColorTransparent, m_ui->transparentSlider->value());
619  G_SETTING_PTR->setValue(MusicSettingManager::LrcFrontgroundColor, TTK::writeColorConfig(m_ui->playedPushButton->colors()));
620  G_SETTING_PTR->setValue(MusicSettingManager::LrcBackgroundColor, TTK::writeColorConfig(m_ui->noPlayedPushButton->colors()));
621 
622  G_SETTING_PTR->setValue(MusicSettingManager::ShowDesktopLrc, m_ui->showDesktopCheckBox->isChecked());
623  G_SETTING_PTR->setValue(MusicSettingManager::DLrcSingleLineMode, m_ui->DSingleLineCheckBox->isChecked());
624  G_SETTING_PTR->setValue(MusicSettingManager::DLrcColor, m_ui->DfontDefaultColorComboBox->currentIndex() != -1 ? m_ui->DfontDefaultColorComboBox->currentIndex() + LRC_COLOR_OFFSET : -1);
625  G_SETTING_PTR->setValue(MusicSettingManager::DLrcFamily, m_ui->DfontComboBox->currentIndex());
626  G_SETTING_PTR->setValue(MusicSettingManager::DLrcSize, m_ui->DfontSizeComboBox->currentText());
627  G_SETTING_PTR->setValue(MusicSettingManager::DLrcType, m_ui->DfontTypeComboBox->currentIndex());
628  G_SETTING_PTR->setValue(MusicSettingManager::DLrcColorTransparent, m_ui->DtransparentSlider->value());
629  G_SETTING_PTR->setValue(MusicSettingManager::DLrcFrontgroundColor, TTK::writeColorConfig(m_ui->DplayedPushButton->colors()));
630  G_SETTING_PTR->setValue(MusicSettingManager::DLrcBackgroundColor, TTK::writeColorConfig(m_ui->DnoPlayedPushButton->colors()));
631 
632  G_SETTING_PTR->setValue(MusicSettingManager::DownloadMusicDirPath, m_ui->downloadDirEdit->text());
633  G_SETTING_PTR->setValue(MusicSettingManager::DownloadLrcDirPath, m_ui->downloadLrcDirEdit->text());
634  G_SETTING_PTR->setValue(MusicSettingManager::DownloadFileNameRule, m_ui->downloadRuleEdit->text());
635  G_SETTING_PTR->setValue(MusicSettingManager::DownloadCacheEnable, m_ui->downloadCacheAutoRadioBox->isChecked());
636  G_SETTING_PTR->setValue(MusicSettingManager::DownloadCacheSize, m_ui->downloadSpinBox->value());
637  G_SETTING_PTR->setValue(MusicSettingManager::DownloadLimitEnable, m_ui->downloadFullRadioBox->isChecked());
638  G_SETTING_PTR->setValue(MusicSettingManager::DownloadServerIndex, m_ui->downloadServerComboBox->currentIndex());
639  G_SETTING_PTR->setValue(MusicSettingManager::DownloadDownloadLimitSize, m_ui->downloadLimitSpeedComboBox->currentText());
640  G_SETTING_PTR->setValue(MusicSettingManager::DownloadUploadLimitSize, m_ui->uploadLimitSpeedComboBox->currentText());
641 
642  QmmpSettings *qmmpSettings = QmmpSettings::instance();
643  int index = m_ui->replayGainModeComboBox->currentIndex();
644  qmmpSettings->setReplayGainSettings(TTKStaticCast(QmmpSettings::ReplayGainMode, m_ui->replayGainModeComboBox->itemData(index).toInt()),
645  m_ui->preampSpinBox->value(),
646  m_ui->defaultGainSpinBox->value(),
647  m_ui->clippingCheckBox->isChecked());
648  index = m_ui->bitDepthComboBox->currentIndex();
649  qmmpSettings->setAudioSettings(m_ui->softVolumeCheckBox->isChecked(),
650  TTKStaticCast(Qmmp::AudioFormat, m_ui->bitDepthComboBox->itemData(index).toInt()),
651  m_ui->ditheringCheckBox->isChecked());
652  qmmpSettings->setBufferSize(m_ui->bufferSizeSpinBox->value());
653  qmmpSettings->setVolumeStep(m_ui->volumeStepSpinBox->value());
654 
655  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedFadeInValue, m_ui->fadeInSpinBox->value());
656  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedFadeOutValue, m_ui->fadeOutSpinBox->value());
657  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedFadeEnable, m_ui->fadeInAndOutCheckBox->isChecked());
658 
659  if(m_ui->proxyTypeComboBox->currentIndex() != 2 && !setNetworkProxyByType(Proxy::Apply))
660  {
661  return;
662  }
663 
664  Q_EMIT parameterSettingChanged();
665  close();
666 
667  // show something tips for user
668  QString showTips;
669  if(languageChanged)
670  {
671  showTips = tr("Language changed, you need to restart to take effect");
672  }
673  else if(highDpiScalingChanged)
674  {
675  showTips = tr("High DPI scaling changed, you need to restart to take effect");
676 #ifdef Q_OS_WIN
677  QFile file(TTK::applicationPath() + TTK_QT_CONFIG);
678  file.open(QFile::ReadWrite);
679 
680  if(!(m_ui->otherHighDpiScalingCheckBox->isChecked() ? (file.write("[Platforms]\nWindowsArguments = dpiawareness=0\n") != -1) : file.remove()))
681  {
682  m_ui->otherHighDpiScalingCheckBox->setCheckState(Qt::PartiallyChecked);
683  G_SETTING_PTR->setValue(MusicSettingManager::OtherHighDpiScalingEnable, Qt::PartiallyChecked);
684  }
685  file.close();
686 #endif
687  }
688 
689  if(!showTips.isEmpty())
690  {
691  MusicMessageBox message;
692  message.setText(showTips);
693  message.exec();
694  }
695 }
696 
698 {
699  m_ui->scrollAreaWidget->verticalScrollBar()->setValue(index * SCROLL_ITEM_HEIGHT);
700 }
701 
703 {
704  const int index = value / SCROLL_ITEM_HEIGHT;
705  if(index < 5)
706  {
707  selectFunctionTableIndex(0, index);
708  }
709  else if(index < 7)
710  {
711  selectFunctionTableIndex(1, index - 5);
712  }
713  else if(index < 10)
714  {
715  selectFunctionTableIndex(2, index - 7);
716  }
717 }
718 
720 {
730  //
731  QVBoxLayout *scrollAreaWidgetAreaLayout = new QVBoxLayout(m_ui->scrollAreaWidgetArea);
732  scrollAreaWidgetAreaLayout->setSpacing(0);
733  scrollAreaWidgetAreaLayout->setContentsMargins(0, 0, 0, 0);
734  m_ui->scrollAreaWidgetArea->setLayout(scrollAreaWidgetAreaLayout);
735  m_ui->scrollAreaWidget->setMovedScrollBar();
736  connect(m_ui->scrollAreaWidget->verticalScrollBar(), SIGNAL(valueChanged(int)), SLOT(scrollWidgetValueChanged(int)));
737  //
738  scrollAreaWidgetAreaLayout->addWidget(m_ui->first);
739  scrollAreaWidgetAreaLayout->addWidget(m_ui->second);
740  scrollAreaWidgetAreaLayout->addWidget(m_ui->third);
741  scrollAreaWidgetAreaLayout->addWidget(m_ui->four);
742  scrollAreaWidgetAreaLayout->addWidget(m_ui->five);
743  scrollAreaWidgetAreaLayout->addWidget(m_ui->six);
744  scrollAreaWidgetAreaLayout->addWidget(m_ui->seven);
745  scrollAreaWidgetAreaLayout->addWidget(m_ui->eight);
746  scrollAreaWidgetAreaLayout->addWidget(m_ui->nine);
747  scrollAreaWidgetAreaLayout->addWidget(m_ui->ten);
748  //
749  m_ui->stackedWidget->hide();
750  m_ui->first->show();
751  m_ui->second->show();
752  m_ui->third->show();
753  m_ui->four->show();
754  m_ui->five->show();
755  m_ui->six->show();
756  m_ui->seven->show();
757  m_ui->eight->show();
758  m_ui->nine->show();
759  m_ui->ten->show();
760  //
761  m_ui->scrollAreaWidgetArea->setFixedHeight(scrollAreaWidgetAreaLayout->count() * SCROLL_ITEM_HEIGHT);
762  m_ui->scrollAreaWidget->raise();
764 }
765 
767 {
768  m_ui->autoPlayCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
769  m_ui->lastPlayCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
770  m_ui->minimumRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
771  m_ui->quitRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
772  m_ui->quitOpacityRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
773  m_ui->quitWindowRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
774  m_ui->setDefaultPlayerCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
775  m_ui->autoStartCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
776  m_ui->closeNetWorkCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
777 
778  m_ui->defaultPlayerSettingButton->hide();
779  m_ui->defaultPlayerSettingButton->setCursor(QCursor(Qt::PointingHandCursor));
780  m_ui->defaultPlayerSettingButton->setStyleSheet(TTK::UI::PushButtonStyle02);
781 
782  m_ui->globalHotkeyBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
783 
784  QButtonGroup *buttonGroup1 = new QButtonGroup(this);
785  buttonGroup1->addButton(m_ui->minimumRadioBox, 0);
786  buttonGroup1->addButton(m_ui->quitRadioBox, 1);
787 
788  QButtonGroup *buttonGroup2 = new QButtonGroup(this);
789  buttonGroup2->addButton(m_ui->quitOpacityRadioBox, 0);
790  buttonGroup2->addButton(m_ui->quitWindowRadioBox, 1);
791 
792 #ifdef Q_OS_UNIX
793  m_ui->autoPlayCheckBox->setFocusPolicy(Qt::NoFocus);
794  m_ui->lastPlayCheckBox->setFocusPolicy(Qt::NoFocus);
795  m_ui->minimumRadioBox->setFocusPolicy(Qt::NoFocus);
796  m_ui->quitRadioBox->setFocusPolicy(Qt::NoFocus);
797  m_ui->quitOpacityRadioBox->setFocusPolicy(Qt::NoFocus);
798  m_ui->quitWindowRadioBox->setFocusPolicy(Qt::NoFocus);
799  m_ui->setDefaultPlayerCheckBox->setFocusPolicy(Qt::NoFocus);
800  m_ui->autoStartCheckBox->setFocusPolicy(Qt::NoFocus);
801  m_ui->closeNetWorkCheckBox->setFocusPolicy(Qt::NoFocus);
802  m_ui->globalHotkeyBox->setFocusPolicy(Qt::NoFocus);
803 
804  m_ui->quitWindowRadioBox->setEnabled(false);
805 #endif
806  TTK::Widget::generateComboBoxFormat(m_ui->languageComboBox);
807  m_ui->languageComboBox->addItems({tr("0"), tr("1"), tr("2")});
808 
809  connect(m_ui->globalHotkeyBox, SIGNAL(clicked(bool)), SLOT(globalHotkeyBoxChanged(bool)));
810  connect(m_ui->defaultPlayerSettingButton, SIGNAL(clicked()), SLOT(fileAssociationChanged()));
811  connect(m_ui->setDefaultPlayerCheckBox, SIGNAL(clicked(bool)), m_ui->defaultPlayerSettingButton, SLOT(setVisible(bool)));
812 }
813 
815 {
816  m_ui->downloadDirEdit->setStyleSheet(TTK::UI::LineEditStyle01);
817  m_ui->downloadLrcDirEdit->setStyleSheet(TTK::UI::LineEditStyle01);
818  m_ui->downloadRuleEdit->setStyleSheet(TTK::UI::LineEditStyle01);
819 
820  m_ui->downloadDirButton->setStyleSheet(TTK::UI::PushButtonStyle04);
821  m_ui->downloadLrcDirButton->setStyleSheet(TTK::UI::PushButtonStyle04);
822  m_ui->downloadCacheCleanButton->setStyleSheet(TTK::UI::PushButtonStyle04);
823  m_ui->downloadRuleButton->setStyleSheet(TTK::UI::PushButtonStyle04);
824  m_ui->downloadDirButton->setCursor(QCursor(Qt::PointingHandCursor));
825  m_ui->downloadLrcDirButton->setCursor(QCursor(Qt::PointingHandCursor));
826  m_ui->downloadCacheCleanButton->setCursor(QCursor(Qt::PointingHandCursor));
827  m_ui->downloadRuleButton->setCursor(QCursor(Qt::PointingHandCursor));
828  m_ui->downloadCacheAutoRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
829  m_ui->downloadCacheManRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
830  m_ui->downloadFullRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
831  m_ui->downloadLimitRadioBox->setStyleSheet(TTK::UI::RadioButtonStyle01);
832 #ifdef Q_OS_UNIX
833  m_ui->downloadDirButton->setFocusPolicy(Qt::NoFocus);
834  m_ui->downloadLrcDirButton->setFocusPolicy(Qt::NoFocus);
835  m_ui->downloadCacheCleanButton->setFocusPolicy(Qt::NoFocus);
836  m_ui->downloadRuleButton->setFocusPolicy(Qt::NoFocus);
837  m_ui->downloadCacheAutoRadioBox->setFocusPolicy(Qt::NoFocus);
838  m_ui->downloadCacheManRadioBox->setFocusPolicy(Qt::NoFocus);
839  m_ui->downloadFullRadioBox->setFocusPolicy(Qt::NoFocus);
840  m_ui->downloadLimitRadioBox->setFocusPolicy(Qt::NoFocus);
841 #endif
842  TTK::Widget::generateComboBoxFormat(m_ui->downloadServerComboBox);
843  TTK::Widget::generateComboBoxFormat(m_ui->downloadLimitSpeedComboBox);
844  TTK::Widget::generateComboBoxFormat(m_ui->uploadLimitSpeedComboBox);
845 
846  m_ui->downloadSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
847  m_ui->downloadSpinBox->setRange(1024, 5 * 1024);
848  m_ui->downloadDirEdit->setText(MUSIC_DIR_FULL);
849  m_ui->downloadLrcDirEdit->setText(LRC_DIR_FULL);
850 
851  const QStringList downloadSpeed{"100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "1100", "1200"};
852  m_ui->downloadLimitSpeedComboBox->addItems(downloadSpeed);
853  m_ui->uploadLimitSpeedComboBox->addItems(downloadSpeed);
854 
855  m_ui->downloadServerComboBox->addItem(QIcon(":/server/lb_wangyiyun"), tr("WangYi Music"));
856  m_ui->downloadServerComboBox->addItem(QIcon(":/server/lb_kuwo"), tr("KuWo Music"));
857  m_ui->downloadServerComboBox->addItem(QIcon(":/server/lb_kugou"), tr("KuGou Music"));
858 
859  const QStringList &rules = MusicRulesAnalysis::rules();
860  QMenu *menu = new QMenu(m_ui->downloadRuleButton);
861  menu->setStyleSheet(TTK::UI::MenuStyle02);
862  m_ui->downloadRuleButton->setMenu(menu);
863 
864  for(int i = 0; i < rules.count(); ++i)
865  {
866  menu->addAction(rules[i])->setData(i);
867  }
868 
869  connect(m_ui->downloadCacheCleanButton, SIGNAL(clicked()), SLOT(downloadCacheClean()));
870  connect(m_ui->downloadRuleButton->menu(), SIGNAL(triggered(QAction*)), SLOT(downloadFileNameRuleChanged(QAction*)));
871  //
872  QButtonGroup *buttonGroup1 = new QButtonGroup(this);
873  buttonGroup1->addButton(m_ui->downloadCacheAutoRadioBox, 0);
874  buttonGroup1->addButton(m_ui->downloadCacheManRadioBox, 1);
875  QtButtonGroupConnect(buttonGroup1, this, downloadGroupCached, TTK_SLOT);
876 
877  QButtonGroup *buttonGroup2 = new QButtonGroup(this);
878  buttonGroup2->addButton(m_ui->downloadFullRadioBox, 0);
879  buttonGroup2->addButton(m_ui->downloadLimitRadioBox, 1);
881 
882  QButtonGroup *buttonGroup3 = new QButtonGroup(this);
883  buttonGroup3->addButton(m_ui->downloadDirButton, 0);
884  buttonGroup3->addButton(m_ui->downloadLrcDirButton, 1);
885  QtButtonGroupConnect(buttonGroup3, this, downloadDirChanged, TTK_SLOT);
886 
887  m_ui->downloadCacheAutoRadioBox->click();
888  m_ui->downloadFullRadioBox->click();
889 }
890 
892 {
893  m_ui->rippleLowPowerModeBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
894  m_ui->rippleSpectrumEnableBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
895 
896  m_ui->rippleSpectrumColorButton->setText(tr("Effect"));
897  connect(m_ui->rippleSpectrumColorButton, SIGNAL(clicked()), SLOT(rippleSpectrumColorChanged()));
898  connect(m_ui->rippleLowPowerModeBox, SIGNAL(clicked(bool)), SLOT(rippleLowPowerEnableBoxClicked(bool)));
899  connect(m_ui->rippleSpectrumEnableBox, SIGNAL(clicked(bool)), SLOT(rippleSpectrumOpacityEnableClicked(bool)));
900 
901  m_ui->rippleVersionUpdateButton->setStyleSheet(TTK::UI::PushButtonStyle04);
902  m_ui->rippleVersionUpdateButton->setCursor(QCursor(Qt::PointingHandCursor));
903  connect(m_ui->rippleVersionUpdateButton, SIGNAL(clicked()), SLOT(rippleVersionUpdateChanged()));
904 #ifdef Q_OS_UNIX
905  m_ui->rippleLowPowerModeBox->setFocusPolicy(Qt::NoFocus);
906  m_ui->rippleSpectrumEnableBox->setFocusPolicy(Qt::NoFocus);
907  m_ui->rippleVersionUpdateButton->setFocusPolicy(Qt::NoFocus);
908 #endif
909 }
910 
912 {
913  m_ui->otherCheckUpdateBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
914  m_ui->otherReadAlbumCoverCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
915  m_ui->otherReadInfoCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
916  m_ui->otherWriteAlbumCoverCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
917  m_ui->otherWriteInfoCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
918  m_ui->otherSideByCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
919  m_ui->otherLrcKTVCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
920  m_ui->otherScreenSaverCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
921  m_ui->otherPlaylistAutoSaveCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
922  m_ui->otherRandomModeCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
923  m_ui->otherHighDpiScalingCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
924 
925  m_ui->otherPluginManagerButton->setStyleSheet(TTK::UI::PushButtonStyle04);
926  m_ui->otherPluginManagerButton->setCursor(QCursor(Qt::PointingHandCursor));
927  connect(m_ui->otherPluginManagerButton, SIGNAL(clicked()), SLOT(otherPluginManagerChanged()));
928 #ifdef Q_OS_UNIX
929  m_ui->otherCheckUpdateBox->setFocusPolicy(Qt::NoFocus);
930  m_ui->otherReadAlbumCoverCheckBox->setFocusPolicy(Qt::NoFocus);
931  m_ui->otherReadInfoCheckBox->setFocusPolicy(Qt::NoFocus);
932  m_ui->otherWriteAlbumCoverCheckBox->setFocusPolicy(Qt::NoFocus);
933  m_ui->otherWriteInfoCheckBox->setFocusPolicy(Qt::NoFocus);
934  m_ui->otherSideByCheckBox->setFocusPolicy(Qt::NoFocus);
935  m_ui->otherLrcKTVCheckBox->setFocusPolicy(Qt::NoFocus);
936  m_ui->otherScreenSaverCheckBox->setFocusPolicy(Qt::NoFocus);
937  m_ui->otherPlaylistAutoSaveCheckBox->setFocusPolicy(Qt::NoFocus);
938  m_ui->otherRandomModeCheckBox->setFocusPolicy(Qt::NoFocus);
939  m_ui->otherHighDpiScalingCheckBox->setFocusPolicy(Qt::NoFocus);
940  m_ui->otherPluginManagerButton->setFocusPolicy(Qt::NoFocus);
941 #endif
942 }
943 
945 {
946  m_ui->showDesktopCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
947  m_ui->DSingleLineCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
948 
950  TTK::Widget::generateComboBoxFormat(m_ui->DfontSizeComboBox);
951  TTK::Widget::generateComboBoxFormat(m_ui->DfontTypeComboBox);
952  TTK::Widget::generateComboBoxFormat(m_ui->DfontDefaultColorComboBox);
953 
954  m_ui->DfontComboBox->addItems(QFontDatabase().families(QFontDatabase::Any));
955  m_ui->DfontSizeComboBox->addItems(MusicLrcDefines().desktopLrcSize());
956  m_ui->DfontTypeComboBox->addItems({"1", "2", "3", "4"});
957  m_ui->DfontDefaultColorComboBox->addItems({tr("DWhite"), tr("DBlue"), tr("DRed"), tr("DBlack"), tr("DYellow"), tr("DPurple"), tr("DGreen")});
958 
959  connect(m_ui->DfontComboBox, SIGNAL(currentIndexChanged(int)), SLOT(showDesktopLrcDemo()));
960  connect(m_ui->DfontSizeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(showDesktopLrcDemo()));
961  connect(m_ui->DfontTypeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(showDesktopLrcDemo()));
962  connect(m_ui->DfontDefaultColorComboBox, SIGNAL(currentIndexChanged(int)), SLOT(defaultDesktopLrcColorChanged(int)));
963 
964  m_ui->DtransparentSlider->setStyleSheet(TTK::UI::SliderStyle06);
965  m_ui->DnoPlayedPushButton->setText(tr("No"));
966  m_ui->DplayedPushButton->setText(tr("Yes"));
967  connect(m_ui->DnoPlayedPushButton, SIGNAL(clicked()), SLOT(desktopBackgroundChanged()));
968  connect(m_ui->DplayedPushButton, SIGNAL(clicked()), SLOT(desktopFrontgroundChanged()));
969  connect(m_ui->DtransparentSlider, SIGNAL(valueChanged(int)), SLOT(desktopLrcTransChanged(int)));
970 
971  m_ui->DresetPushButton->setStyleSheet(TTK::UI::PushButtonStyle04);
972  m_ui->DresetPushButton->setCursor(QCursor(Qt::PointingHandCursor));
973  connect(m_ui->DresetPushButton, SIGNAL(clicked()), SLOT(resetDesktopParameter()));
974 #ifdef Q_OS_UNIX
975  m_ui->showDesktopCheckBox->setFocusPolicy(Qt::NoFocus);
976  m_ui->DSingleLineCheckBox->setFocusPolicy(Qt::NoFocus);
977  m_ui->DresetPushButton->setFocusPolicy(Qt::NoFocus);
978 #endif
979 
981 }
982 
984 {
986  TTK::Widget::generateComboBoxFormat(m_ui->fontSizeComboBox);
987  TTK::Widget::generateComboBoxFormat(m_ui->fontTypeComboBox);
988  TTK::Widget::generateComboBoxFormat(m_ui->fontDefaultColorComboBox);
989 
990  m_ui->fontComboBox->addItems(QFontDatabase().families(QFontDatabase::Any));
991  m_ui->fontSizeComboBox->addItems(MusicLrcDefines().interiorLrcSize());
992  m_ui->fontTypeComboBox->addItems({"1", "2", "3", "4"});
993  m_ui->fontDefaultColorComboBox->addItems({tr("Yellow"), tr("Blue"), tr("Gray"), tr("Pink"), tr("Green"), tr("Red"), tr("Purple"), tr("Orange"), tr("Indigo")});
994 
995  connect(m_ui->fontComboBox, SIGNAL(currentIndexChanged(int)), SLOT(showInteriorLrcDemo()));
996  connect(m_ui->fontSizeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(showInteriorLrcDemo()));
997  connect(m_ui->fontTypeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(showInteriorLrcDemo()));
998  connect(m_ui->fontDefaultColorComboBox, SIGNAL(currentIndexChanged(int)), SLOT(defaultLrcColorChanged(int)));
999 
1000  m_ui->transparentSlider->setStyleSheet(TTK::UI::SliderStyle06);
1001  m_ui->noPlayedPushButton->setText(tr("No"));
1002  m_ui->playedPushButton->setText(tr("Yes"));
1003  connect(m_ui->noPlayedPushButton, SIGNAL(clicked()), SLOT(interiorLrcBackgroundChanged()));
1004  connect(m_ui->playedPushButton, SIGNAL(clicked()), SLOT(interiorLrcFrontgroundChanged()));
1005  connect(m_ui->transparentSlider, SIGNAL(valueChanged(int)), SLOT(interiorLrcTransChanged(int)));
1006 
1007  m_ui->resetPushButton->setStyleSheet(TTK::UI::PushButtonStyle04);
1008  m_ui->resetPushButton->setCursor(QCursor(Qt::PointingHandCursor));
1009  connect(m_ui->resetPushButton, SIGNAL(clicked()), SLOT(resetInteriorParameter()));
1010 #ifdef Q_OS_UNIX
1011  m_ui->resetPushButton->setFocusPolicy(Qt::NoFocus);
1012 #endif
1013 
1015 }
1016 
1018 {
1019  TTK::Widget::generateComboBoxFormat(m_ui->outputTypeComboBox);
1020  for(const QAudioDeviceInfo &info : QAudioDeviceInfo::availableDevices(QAudio::AudioOutput))
1021  {
1022  m_ui->outputTypeComboBox->addItem(info.deviceName());
1023  }
1024 
1025  m_ui->fadeInAndOutCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
1026  m_ui->fadeInAndOutCheckBox->setEnabled(false);
1027 
1028  m_ui->fadeInSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
1029  m_ui->fadeInSpinBox->setRange(1, 10 * TTK_DN_S2MS);
1030  m_ui->fadeInSpinBox->setValue(600);
1031  m_ui->fadeInSpinBox->setEnabled(false);
1032 
1033  m_ui->fadeOutSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
1034  m_ui->fadeOutSpinBox->setRange(1, 10 * TTK_DN_S2MS);
1035  m_ui->fadeOutSpinBox->setValue(600);
1036  m_ui->fadeOutSpinBox->setEnabled(false);
1037 
1038  m_ui->equalizerButton->setStyleSheet(TTK::UI::PushButtonStyle04);
1039  m_ui->equalizerPluginsButton->setStyleSheet(TTK::UI::PushButtonStyle04);
1040  m_ui->equalizerButton->setCursor(QCursor(Qt::PointingHandCursor));
1041  m_ui->equalizerPluginsButton->setCursor(QCursor(Qt::PointingHandCursor));
1042 
1043 #ifdef Q_OS_UNIX
1044  m_ui->fadeInAndOutCheckBox->setFocusPolicy(Qt::NoFocus);
1045  m_ui->equalizerButton->setFocusPolicy(Qt::NoFocus);
1046  m_ui->equalizerPluginsButton->setFocusPolicy(Qt::NoFocus);
1047 #endif
1048 
1049  connect(m_ui->equalizerButton, SIGNAL(clicked()), MusicApplicationModule::instance(), SLOT(showEqualizerWidget()));
1050  connect(m_ui->equalizerPluginsButton, SIGNAL(clicked()), MusicApplicationModule::instance(), SLOT(showSoundEffectWidget()));
1051  connect(m_ui->fadeInAndOutCheckBox, SIGNAL(clicked(bool)), SLOT(fadeInAndOutClicked(bool)));
1052 }
1053 
1055 {
1056  TTK::Widget::generateComboBoxFormat(m_ui->replayGainModeComboBox);
1057  TTK::Widget::generateComboBoxFormat(m_ui->bitDepthComboBox);
1058 
1059  m_ui->preampSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
1060  m_ui->defaultGainSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
1061  m_ui->volumeStepSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
1062  m_ui->bufferSizeSpinBox->setStyleSheet(TTK::UI::SpinBoxStyle01);
1063 
1064  m_ui->clippingCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
1065  m_ui->softVolumeCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
1066  m_ui->ditheringCheckBox->setStyleSheet(TTK::UI::CheckBoxStyle01);
1067 #ifdef Q_OS_UNIX
1068  m_ui->clippingCheckBox->setFocusPolicy(Qt::NoFocus);
1069  m_ui->softVolumeCheckBox->setFocusPolicy(Qt::NoFocus);
1070  m_ui->ditheringCheckBox->setFocusPolicy(Qt::NoFocus);
1071 #endif
1072 
1073  m_ui->replayGainModeComboBox->addItem(tr("Track"), QmmpSettings::REPLAYGAIN_TRACK);
1074  m_ui->replayGainModeComboBox->addItem(tr("Album"), QmmpSettings::REPLAYGAIN_ALBUM);
1075  m_ui->replayGainModeComboBox->addItem(tr("Disabled"), QmmpSettings::REPLAYGAIN_DISABLED);
1076  m_ui->bitDepthComboBox->addItem("16", Qmmp::PCM_S16LE);
1077  m_ui->bitDepthComboBox->addItem("24", Qmmp::PCM_S24LE);
1078  m_ui->bitDepthComboBox->addItem("32", Qmmp::PCM_S32LE);
1079 }
1080 
1082 {
1083  m_ui->proxyIpEdit->setStyleSheet(TTK::UI::LineEditStyle01);
1084  m_ui->proxyPortEdit->setStyleSheet(TTK::UI::LineEditStyle01);
1085  m_ui->proxyPwdEdit->setStyleSheet(TTK::UI::LineEditStyle01);
1086  m_ui->proxyUsernameEdit->setStyleSheet(TTK::UI::LineEditStyle01);
1087  m_ui->proxyAreaEdit->setStyleSheet(TTK::UI::LineEditStyle01);
1088 
1089  TTK::Widget::generateComboBoxFormat(m_ui->proxyTypeComboBox);
1090 
1091  m_ui->proxyTypeTestButton->setStyleSheet(TTK::UI::PushButtonStyle04);
1092  m_ui->proxyTypeTestButton->setCursor(QCursor(Qt::PointingHandCursor));
1093  m_ui->netConnectionTypeButton->setStyleSheet(TTK::UI::PushButtonStyle04);
1094  m_ui->netConnectionTypeButton->setCursor(QCursor(Qt::PointingHandCursor));
1095  m_ui->netCheckTypeButton->setStyleSheet(TTK::UI::PushButtonStyle04);
1096  m_ui->netCheckTypeButton->setCursor(QCursor(Qt::PointingHandCursor));
1097 #ifdef Q_OS_UNIX
1098  m_ui->proxyTypeTestButton->setFocusPolicy(Qt::NoFocus);
1099  m_ui->netConnectionTypeButton->setFocusPolicy(Qt::NoFocus);
1100  m_ui->netCheckTypeButton->setFocusPolicy(Qt::NoFocus);
1101 #endif
1102 
1103  m_ui->proxyTypeComboBox->addItems({tr("DefaultProxy"), tr("Socks5Proxy"), tr("NoProxy"), tr("HttpProxy"), tr("HttpCachingProxy"), tr("FtpCachingProxy")});
1104 
1105  connect(m_ui->proxyTypeTestButton, SIGNAL(clicked()), SLOT(testNetworkProxy()));
1106  connect(m_ui->netConnectionTypeButton, SIGNAL(clicked()), SLOT(testNetworkConnection()));
1107  connect(m_ui->netCheckTypeButton, SIGNAL(clicked()), SLOT(checkNetworkConnection()));
1108  connect(m_ui->proxyTypeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setNetworkProxyControl(int)));
1110  m_ui->proxyTypeComboBox->setCurrentIndex(2);
1111 }
1112 
1114 {
1116  switch(row)
1117  {
1118  case 0: m_ui->normalFunTableWidget->selectRow(column); break;
1119  case 1: m_ui->lrcFunTableWidget->selectRow(column); break;
1120  case 2: m_ui->supperFunTableWidget->selectRow(column); break;
1121  default: break;
1122  }
1123 }
1124 
1125 void MusicSettingWidget::lcrColorValue(Lrc key, const QString &type, QLabel *obj)
1126 {
1127  key == Lrc::Interior ? m_ui->fontDefaultColorComboBox->setCurrentIndex(TTK_NORMAL_LEVEL) : m_ui->DfontDefaultColorComboBox->setCurrentIndex(TTK_NORMAL_LEVEL);
1128 
1129  MusicLrcColorWidget dialog(this);
1130  if(type == "DLRCFRONTGROUNDGCOLOR") dialog.setColors(m_ui->DplayedPushButton->colors());
1131  else if(type == "DLRCBACKGROUNDCOLOR") dialog.setColors(m_ui->DnoPlayedPushButton->colors());
1132  else if(type == "LRCFRONTGROUNDGCOLOR") dialog.setColors(m_ui->playedPushButton->colors());
1133  else if(type == "LRCBACKGROUNDCOLOR") dialog.setColors(m_ui->noPlayedPushButton->colors());
1134 
1135  if(dialog.exec())
1136  {
1137  const QList<QColor> &colors = dialog.colors();
1138  TTKObjectCast(MusicColorPreviewLabel*, obj)->setColors(colors);
1139  }
1141 }
1142 
1144 {
1145  if(index == -1)
1146  {
1147  return;
1148  }
1149 
1150  if(key == Lrc::Interior)
1151  {
1153  m_ui->playedPushButton->setColors(cl.m_frontColor);
1154  m_ui->noPlayedPushButton->setColors(cl.m_backColor);
1156  }
1157  else
1158  {
1160  m_ui->DplayedPushButton->setColors(cl.m_frontColor);
1161  m_ui->DnoPlayedPushButton->setColors(cl.m_backColor);
1163  }
1164 }
1165 
1167 {
1168  MusicPreviewLabel* label;
1169  if(key == Lrc::Interior)
1170  {
1171  label = m_ui->showLabel;
1172  label->setTransparent(2.55 * value);
1173  label->setLinearGradient(m_ui->playedPushButton->colors(), m_ui->noPlayedPushButton->colors());
1174  }
1175  else
1176  {
1177  label = m_ui->DshowLabel;
1178  label->setTransparent(2.55 * value);
1179  label->setLinearGradient(m_ui->DplayedPushButton->colors(), m_ui->DnoPlayedPushButton->colors());
1180  }
1181  label->update();
1182 }
1183 
1185 {
1186  MusicNetworkProxy proxy;
1187  connect(&proxy, SIGNAL(testProxyStateChanged(bool)), SLOT(testProxyStateChanged(bool)));
1188  proxy.setType(m_ui->proxyTypeComboBox->currentIndex());
1189 
1190  QString value = m_ui->proxyIpEdit->text().trimmed();
1191  if(value.isEmpty())
1192  {
1193  MusicToastLabel::popup(tr("Proxy hostname is empty"));
1194  return false;
1195  }
1196  proxy.setHostName(value);
1197 
1198  value = m_ui->proxyPortEdit->text().trimmed();
1199  if(value.isEmpty())
1200  {
1201  MusicToastLabel::popup(tr("Proxy port is empty"));
1202  return false;
1203  }
1204 
1205  proxy.setPort(value.toInt());
1206  proxy.setUser(m_ui->proxyUsernameEdit->text().trimmed());
1207  proxy.setPassword(m_ui->proxyPwdEdit->text().trimmed());
1208 
1209  switch(type)
1210  {
1211  case Proxy::Test: proxy.testProxy(); break;
1212  case Proxy::Apply: proxy.applyProxy(); break;
1213  default: break;
1214  }
1215  return true;
1216 }
void defaultDesktopLrcColorChanged(int value)
The class of the file association widget.
TTK_MODULE_EXPORT QString getExistingDirectory(QWidget *parent)
void scrollWidgetValueChanged(int value)
#define TTKStaticCast(x, y)
Definition: ttkglobal.h:159
void setBackgroundLabel(QLabel *label)
QList< QColor > m_background
void testProxyStateChanged(bool state)
QList< QColor > colors() const
void setReplayGainSettings(ReplayGainMode mode, double preamp, double default_gain, bool clip)
static QStringList rules()
The class of the lrc color.
#define CACHE_DIR_FULL
Definition: musicobject.h:130
The class of the label previewed.
void setText(const QString &text) const
void setAudioSettings(bool soft_volume, Qmmp::AudioFormat format, bool use_dithering)
void currentIndexChanged(int index)
void setBufferSize(int msec)
void defaultLrcColorChanged(int value)
#define ART_DIR_FULL
Definition: musicobject.h:128
#define G_HOTKEY_PTR
The class of the table widget base.
Ui::MusicSettingWidget * m_ui
static constexpr wchar_t key[]
void testNetworkConnectionStateChanged(const QString &name)
static const QString CheckBoxStyle01
CheckBox.
static const QString SliderStyle06
The QmmpSettings class provides access to global settings.
Definition: qmmpsettings.h:35
The class of the function tool item.
#define TTK_SPLITER
Definition: ttkglobal.h:199
bool replayGainPreventClipping() const
The class of the lrc color preview label.
voidpf void uLong size
Definition: ioapi.h:136
The class of the plugin manager widget.
#define TTK_QT_CONFIG
The class of the lrc setting preview label.
void globalHotkeyBoxChanged(bool state)
int bufferSize() const
The class of the messagebox widget.
void interiorLrcTransChanged(int value)
#define QtItemSetTextAlignment(p, a)
Item text alignment.
Definition: ttkqtcompat.h:45
TTK_MODULE_EXPORT void setComboBoxText(QComboBox *widget, const QString &text)
static constexpr unsigned int Color02
Definition: musicuiobject.h:34
#define TTKGenerateSingleWidget(...)
QString writeColorConfig(const QList< QColor > &colors)
int volumeStep() const
void selectFunctionTableIndex(int row, int column)
static constexpr int LRC_COLOR_OFFSET
virtual void itemCellClicked(int row, int column) overridefinal
static const QString PushButtonStyle02
static void popup(const QString &text)
QList< QColor > m_frontground
void addCellItems(int index, const MusicFunctionItemList &items)
void setScrollWidgetPageIndex(int index)
QList< QColor > m_backColor
void parameterSettingChanged()
MusicSettingWidget(QWidget *parent=nullptr)
#define APPCACHE_DIR_FULL
Definition: musicobject.h:121
const char * name
Definition: http_parser.c:458
void rippleLowPowerEnableBoxClicked(bool state)
static const QString SpinBoxStyle01
SpinBox.
The class of the music network proxy.
bool useDithering() const
#define TTK_NORMAL_LEVEL
Definition: ttkglobal.h:254
void setHostName(const QString &name)
void downloadGroupSpeedLimit(int index)
Qmmp::AudioFormat outputFormat() const
The class of the network connection test widget.
static const QString PushButtonStyle04
void downloadFileNameRuleChanged(QAction *action)
The class of the lrc color picker widget.
#define MUSIC_DIR_FULL
Definition: musicobject.h:125
#define BACKGROUND_DIR_FULL
Definition: musicobject.h:129
#define TTK_VERSION_TIME_STR
Definition: ttkversion.h:172
bool useSoftVolume() const
TTK_MODULE_EXPORT QByteArray sha1(const QByteArray &data)
#define TTK_SLOT
Definition: ttkqtglobal.h:165
void lcrColorValue(Lrc key, const QString &type, QLabel *obj)
The class of the setting parameters widget.
bool setNetworkProxyByType(Proxy type)
#define TTK_VERSION_STR
Definition: ttkversion.h:171
The class of the moving dialog base.
void setVolumeStep(int step)
#define QtButtonGroupConnect(p, q, f, s)
Button group connect.
Definition: ttkqtcompat.h:101
static const QString MenuStyle02
TTK_MODULE_EXPORT void generateComboBoxFormat(QComboBox *widget, const QString &style={})
double replayGainPreamp() const
void downloadDirChanged(int index)
void setUser(const QString &user)
#define TTK_DN_S2MS
Definition: ttkglobal.h:276
double replayGainDefaultGain() const
The class of the lrc defines.
static const QString LineEditStyle01
LineEdit.
void lrcColorByDefault(Lrc key, int index)
#define G_NETWORK_PTR
void setType(int type)
void setPassword(const QString &pwd)
static MusicApplicationModule * instance()
QmmpSettings::ReplayGainMode replayGainMode() const
void downloadGroupCached(int index)
#define LRC_DIR_FULL
Definition: musicobject.h:124
MusicFunctionTableWidget(QWidget *parent=nullptr)
void desktopLrcTransChanged(int value)
static QString applicationPath()
Definition: ttkqtobject.h:44
static const QString ToolButtonStyle04
static QmmpSettings * instance()
void setLinearGradient(const MusicPreviewLabelItem &item)
MusicLrcColor mapIndexToColor(MusicLrcColor::Color index)
The class of the get color table widget.
The class of the music network operator.
static QString rule(int index)
QList< QColor > m_frontColor
static const QString RadioButtonStyle01
RadioButton.
AudioFormat
Definition: qmmp.h:129
void setPort(int port)
void setColors(const QList< QColor > &colors)
QList< QColor > readColorConfig(const QString &value)
static constexpr int SCROLL_ITEM_HEIGHT
void fadeInAndOutClicked(bool state)
TTK_MODULE_EXPORT bool removeRecursively(const QString &dir, bool self=true)
void setNetworkProxyControl(int enable)
state
Definition: http_parser.c:279
void setTransparent(int trans)
The class of the application upgrade widget.
#define G_SETTING_PTR
#define TTKObjectCast(x, y)
Definition: ttkqtglobal.h:60
void lrcTransparentValue(Lrc key, int value) const
void rippleSpectrumOpacityEnableClicked(bool state)