TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicequalizerdialog.cpp
Go to the documentation of this file.
1 #include "musicequalizerdialog.h"
2 #include "ui_musicequalizerdialog.h"
3 #include "musicsettingmanager.h"
5 #include "musicconnectionpool.h"
7 #include "musicplayer.h"
8 #include "ttkclickedgroup.h"
9 
10 static void makeBlockedValue(QSlider *slider, int value)
11 {
12  slider->blockSignals(true);
13  slider->setValue(value);
14  slider->blockSignals(false);
15 }
16 
18  : MusicAbstractMoveDialog(parent),
19  m_ui(new Ui::MusicEqualizerDialog),
20  m_enable(false)
21 {
22  m_ui->setupUi(this);
23  setFixedSize(size());
24  setBackgroundLabel(m_ui->background);
25 
26  m_ui->topTitleCloseButton->setIcon(QIcon(":/functions/btn_close_hover"));
27  m_ui->topTitleCloseButton->setStyleSheet(TTK::UI::ToolButtonStyle04);
28  m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
29  m_ui->topTitleCloseButton->setToolTip(tr("Close"));
30  connect(m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
31 
32  initialize();
33 
35  m_ui->eqChoice->addItems({tr("Custom"), tr("Default"), tr("Classical"), tr("Club"), tr("Dance"), tr("Bass"), tr("Soprano"),
36  tr("BassSoprano"), tr("Headset"), tr("Hall"), tr("Scene"), tr("Pop"), tr("Repaglinide"),
37  tr("Party"), tr("Rock"), tr("Oscar"), tr("Mild"), tr("SoftRock"), tr("Electronics")});
38  connect(m_ui->eqChoice, SIGNAL(currentIndexChanged(int)), SLOT(equlizerTypeChanged(int)));
39 
40  m_ui->showEqButton->setStyleSheet(TTK::UI::EqualizerOff);
41 
42 #ifdef Q_OS_UNIX
43  m_ui->showEqButton->setFocusPolicy(Qt::NoFocus);
44  m_ui->resetButton->setFocusPolicy(Qt::NoFocus);
45 #endif
46 
47  setControlEnabled(false);
50 
51  G_CONNECTION_PTR->setValue(className(), this);
52  G_CONNECTION_PTR->connect(className(), MusicPlayer::className());
53  G_CONNECTION_PTR->connect(className(), MusicSoundEffectsWidget::className());
54 }
55 
57 {
58  G_CONNECTION_PTR->removeValue(this);
60  delete m_ui;
61 }
62 
64 {
65  m_enable = !m_enable;
66  Q_EMIT setEnabledEffect(m_enable);
67  m_ui->showEqButton->setStyleSheet(!m_enable ? TTK::UI::EqualizerOff : TTK::UI::EqualizerOn);
68 
70  if(m_enable)
71  {
73  }
74 }
75 
77 {
78  m_ui->eqChoice->setCurrentIndex(1);
79  makeBlockedValue(m_ui->bwVerticalSlider, 0);
80  makeBlockedValue(m_ui->verticalSlider1, 0);
81  makeBlockedValue(m_ui->verticalSlider2, 0);
82  makeBlockedValue(m_ui->verticalSlider3, 0);
83  makeBlockedValue(m_ui->verticalSlider4, 0);
84  makeBlockedValue(m_ui->verticalSlider5, 0);
85  makeBlockedValue(m_ui->verticalSlider6, 0);
86  makeBlockedValue(m_ui->verticalSlider7, 0);
87  makeBlockedValue(m_ui->verticalSlider8, 0);
88  makeBlockedValue(m_ui->verticalSlider9, 0);
89  makeBlockedValue(m_ui->verticalSlider10, 0);
90 }
91 
93 {
94  m_ui->eqChoice->blockSignals(true);
95  m_ui->eqChoice->setCurrentIndex(0);
96  m_ui->eqChoice->blockSignals(false);
98 }
99 
101 {
102  if(index > 0)
103  {
104  index = (index - 1) * 10;
105  makeBlockedValue(m_ui->verticalSlider1, m_equalizeValue[index + 0]);
106  makeBlockedValue(m_ui->verticalSlider2, m_equalizeValue[index + 1]);
107  makeBlockedValue(m_ui->verticalSlider3, m_equalizeValue[index + 2]);
108  makeBlockedValue(m_ui->verticalSlider4, m_equalizeValue[index + 3]);
109  makeBlockedValue(m_ui->verticalSlider5, m_equalizeValue[index + 4]);
110  makeBlockedValue(m_ui->verticalSlider6, m_equalizeValue[index + 5]);
111  makeBlockedValue(m_ui->verticalSlider7, m_equalizeValue[index + 6]);
112  makeBlockedValue(m_ui->verticalSlider8, m_equalizeValue[index + 7]);
113  makeBlockedValue(m_ui->verticalSlider9, m_equalizeValue[index + 8]);
114  makeBlockedValue(m_ui->verticalSlider10, m_equalizeValue[index + 9]);
115  }
116  parameterSubmit();
117 }
118 
120 {
121  TTKClickedGroup *clickedGroup = new TTKClickedGroup(this);
122  connect(clickedGroup, SIGNAL(clicked(int)), SLOT(sliderValueChanged()));
123 
124  QList<TTKClickedSlider*> sliders;
125  sliders << m_ui->verticalSlider1;
126  sliders << m_ui->verticalSlider2;
127  sliders << m_ui->verticalSlider3;
128  sliders << m_ui->verticalSlider4;
129  sliders << m_ui->verticalSlider5;
130  sliders << m_ui->verticalSlider6;
131  sliders << m_ui->verticalSlider7;
132  sliders << m_ui->verticalSlider8;
133  sliders << m_ui->verticalSlider9;
134  sliders << m_ui->verticalSlider10;
135  sliders << m_ui->bwVerticalSlider;
136 
137  for(int i = 0; i < sliders.count(); ++i)
138  {
139  TTKClickedSlider *slider = sliders[i];
140  slider->setRange(-15, 15);
141  slider->setStyleSheet(TTK::UI::SliderStyle04);
142  clickedGroup->mapped(slider);
143  connect(slider, SIGNAL(valueChanged(int)), SLOT(sliderValueChanged()));
144  }
145 
146  connect(m_ui->showEqButton, SIGNAL(clicked()), SLOT(setEnable()));
147  connect(m_ui->resetButton, SIGNAL(clicked()), SLOT(reset()));
148  m_ui->resetButton->setStyleSheet(TTK::UI::PushButtonStyle04);
149 
150 #ifdef Q_OS_UNIX
151  TTK::Widget::setFontSize(m_ui->showPerArea_21, 9);
152  TTK::Widget::setFontSize(m_ui->showPerArea_22, 9);
153  TTK::Widget::setFontSize(m_ui->showPerArea_23, 9);
154  TTK::Widget::setFontSize(m_ui->showPerArea_24, 9);
155  TTK::Widget::setFontSize(m_ui->showPerArea_25, 9);
156  TTK::Widget::setFontSize(m_ui->showPerArea_26, 9);
157  TTK::Widget::setFontSize(m_ui->showPerArea_27, 9);
158  TTK::Widget::setFontSize(m_ui->showPerArea_28, 9);
159  TTK::Widget::setFontSize(m_ui->showPerArea_29, 9);
160  TTK::Widget::setFontSize(m_ui->showPerArea_30, 9);
161  TTK::Widget::setFontSize(m_ui->showPerArea_31, 9);
162 #endif
163 }
164 
166 {
167  m_ui->bwVerticalSlider->setEnabled(enabled);
168  m_ui->verticalSlider1->setEnabled(enabled);
169  m_ui->verticalSlider2->setEnabled(enabled);
170  m_ui->verticalSlider3->setEnabled(enabled);
171  m_ui->verticalSlider4->setEnabled(enabled);
172  m_ui->verticalSlider5->setEnabled(enabled);
173  m_ui->verticalSlider6->setEnabled(enabled);
174  m_ui->verticalSlider7->setEnabled(enabled);
175  m_ui->verticalSlider8->setEnabled(enabled);
176  m_ui->verticalSlider9->setEnabled(enabled);
177  m_ui->verticalSlider10->setEnabled(enabled);
178  m_ui->eqChoice->setEnabled(enabled);
179  m_ui->resetButton->setEnabled(enabled);
180 }
181 
183 {
185  {
186  m_ui->showEqButton->click();
187  }
188 
189  const QStringList &eqValue = G_SETTING_PTR->value(MusicSettingManager::EqualizerValue).toString().split(",");
190  if(eqValue.count() == 11)
191  {
192  if(G_SETTING_PTR->value(MusicSettingManager::EqualizerIndex).toInt() == 0)
193  {
194  makeBlockedValue(m_ui->bwVerticalSlider, eqValue[0].toInt());
195  makeBlockedValue(m_ui->verticalSlider1, eqValue[1].toInt());
196  makeBlockedValue(m_ui->verticalSlider2, eqValue[2].toInt());
197  makeBlockedValue(m_ui->verticalSlider3, eqValue[3].toInt());
198  makeBlockedValue(m_ui->verticalSlider4, eqValue[4].toInt());
199  makeBlockedValue(m_ui->verticalSlider5, eqValue[5].toInt());
200  makeBlockedValue(m_ui->verticalSlider6, eqValue[6].toInt());
201  makeBlockedValue(m_ui->verticalSlider7, eqValue[7].toInt());
202  makeBlockedValue(m_ui->verticalSlider8, eqValue[8].toInt());
203  makeBlockedValue(m_ui->verticalSlider9, eqValue[9].toInt());
204  makeBlockedValue(m_ui->verticalSlider10, eqValue[10].toInt());
205  }
206  else
207  {
208  m_ui->eqChoice->setCurrentIndex(G_SETTING_PTR->value(MusicSettingManager::EqualizerIndex).toInt());
209  }
210  }
211  else
212  {
213  reset();
214  }
215 }
216 
218 {
220  G_SETTING_PTR->setValue(MusicSettingManager::EqualizerIndex, m_ui->eqChoice->currentIndex());
222  QString("%1,%2,%3,%4,%5,%6,%7,%8,%9,%10,%11").arg(m_ui->bwVerticalSlider->value())
223  .arg(m_ui->verticalSlider1->value()).arg(m_ui->verticalSlider2->value()).arg(m_ui->verticalSlider3->value())
224  .arg(m_ui->verticalSlider4->value()).arg(m_ui->verticalSlider5->value()).arg(m_ui->verticalSlider6->value())
225  .arg(m_ui->verticalSlider7->value()).arg(m_ui->verticalSlider8->value()).arg(m_ui->verticalSlider9->value())
226  .arg(m_ui->verticalSlider10->value()));
227 }
228 
230 {
231  m_equalizeValue.clear();
232  m_equalizeValue << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 //Default
233  << 0 << 0 << 0 << 0 << 0 << 0 <<-4 <<-4 <<-4 <<-6 //Classical
234  << 0 << 0 << 5 << 3 << 3 << 3 << 2 << 0 << 0 << 0 //Club
235  << 6 << 4 << 1 << 0 << 0 <<-3 <<-4 <<-4 << 0 << 0 //Dance
236  <<-6 << 6 << 6 << 3 << 2 <<-2 <<-5 <<-6 <<-8 <<-8 //Bass
237  <<-6 <<-6 <<-6 <<-2 << 1 << 7 <<10 <<10 <<10 <<10 //BassSoprano
238  << 4 << 3 << 0 <<-4 <<-3 << 1 << 5 << 7 << 7 << 7 //Soprano
239  << 3 << 7 << 3 <<-2 <<-1 << 1 << 3 << 6 << 8 << 9 //Headset
240  << 6 << 6 << 3 << 3 << 0 <<-3 <<-3 <<-3 << 0 << 0 //Hall
241  <<-3 << 0 << 2 << 3 << 3 << 3 << 2 << 1 << 1 << 1 //Scene
242  <<-1 << 3 << 4 << 5 << 3 << 0 <<-1 <<-1 <<-1 <<-1 //Pop
243  << 0 << 0 << 0 <<-3 << 0 << 4 << 3 << 0 << 0 << 0 //Repaglinide
244  << 4 << 4 << 0 << 0 << 0 << 0 << 0 << 0 << 4 << 4 //Party
245  << 5 << 3 <<-3 <<-5 <<-2 << 2 << 5 << 7 << 7 << 7 //Rock
246  <<-2 <<-3 <<-2 << 0 << 2 << 3 << 5 << 6 << 7 << 6 //Oscar
247  << 3 << 1 << 0 <<-1 << 0 << 2 << 5 << 6 << 7 << 7 //Mild
248  << 2 << 2 << 1 << 0 <<-2 <<-3 <<-2 << 0 << 2 << 5 //SoftRock
249  << 5 << 3 << 0 <<-3 <<-3 << 0 << 5 << 6 << 6 << 5;//Electronics
250 }
251 
253 {
254  Q_EMIT setEqualizerEffect({m_ui->bwVerticalSlider->value(), m_ui->verticalSlider1->value(), m_ui->verticalSlider2->value(),
255  m_ui->verticalSlider3->value(), m_ui->verticalSlider4->value(), m_ui->verticalSlider5->value(),
256  m_ui->verticalSlider6->value(), m_ui->verticalSlider7->value(), m_ui->verticalSlider8->value(),
257  m_ui->verticalSlider9->value(), m_ui->verticalSlider10->value()});
258 }
void setBackgroundLabel(QLabel *label)
voidpf void uLong size
Definition: ioapi.h:136
void setEnabledEffect(bool enabled)
#define G_CONNECTION_PTR
void mapped(QWidget *widget)
The class of the slider that can clicked any position.
TTK_MODULE_EXPORT void setFontSize(QWidget *widget, int size)
static const QString SliderStyle04
static constexpr const char * EqualizerOff
static constexpr const char * EqualizerOn
MusicEqualizerDialog(QWidget *parent=nullptr)
The class of the equalizer widget.
static const QString PushButtonStyle04
The class of the moving dialog base.
TTK_MODULE_EXPORT void generateComboBoxFormat(QComboBox *widget, const QString &style={})
void setEqualizerEffect(const TTKIntList &effect)
void setControlEnabled(bool enabled) const
Ui::MusicEqualizerDialog * m_ui
static const QString ToolButtonStyle04
static void makeBlockedValue(QSlider *slider, int value)
void equlizerTypeChanged(int index)
The class of the label widget click group mapper.
#define G_SETTING_PTR