TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicvideobarragestylepopwidget.cpp
Go to the documentation of this file.
2 #include "musicvideouiobject.h"
3 #include "musicwidgetheaders.h"
4 
5 #include <QButtonGroup>
6 
8  : MusicToolMenuWidget(parent),
9  m_barrageSize(15),
10  m_barrageColor(255, 255, 255)
11 {
12  initialize();
13 }
14 
16 {
17  delete m_sizeGroup;
18  delete m_colorGroup;
19 }
20 
22 {
23  return m_barrageSize;
24 }
25 
27 {
28  return m_barrageColor;
29 }
30 
32 {
33  const QList<QAbstractButton*> &buttons = m_sizeGroup->buttons();
34  if(buttons.count() >= 3)
35  {
36  buttons[0]->setStyleSheet(TTK::UI::VideoBtnSmall);
37  buttons[1]->setStyleSheet(TTK::UI::VideoBtnMiddle);
38  buttons[2]->setStyleSheet(TTK::UI::VideoBtnBig);
39  }
40 
41  switch(index)
42  {
43  case 0:
44  {
45  m_barrageSize = 15;
46  buttons[0]->setStyleSheet(TTK::UI::VideoBtnSmallOn);
47  break;
48  }
49  case 1:
50  {
51  m_barrageSize = 20;
52  buttons[1]->setStyleSheet(TTK::UI::VideoBtnMiddleOn);
53  break;
54  }
55  case 2:
56  {
57  m_barrageSize = 30;
58  buttons[2]->setStyleSheet(TTK::UI::VideoBtnBigOn);
59  break;
60  }
61  default: break;
62  }
63 }
64 
66 {
67  const QList<QAbstractButton*> &buttons = m_colorGroup->buttons();
68  if(buttons.count() >= 7)
69  {
70  buttons[0]->setStyleSheet(TTK::UI::VideoBtnWhite);
71  buttons[1]->setStyleSheet(TTK::UI::VideoBtnRed);
72  buttons[2]->setStyleSheet(TTK::UI::VideoBtnOrange);
73  buttons[3]->setStyleSheet(TTK::UI::VideoBtnYellow);
74  buttons[4]->setStyleSheet(TTK::UI::VideoBtnGreen);
75  buttons[5]->setStyleSheet(TTK::UI::VideoBtnBlue);
76  buttons[6]->setStyleSheet(TTK::UI::VideoBtnPurple);
77  }
78 
79  switch(index)
80  {
81  case 0:
82  {
83  m_barrageColor = QColor(255, 255, 255);
84  buttons[0]->setStyleSheet(TTK::UI::VideoBtnWhiteOn);
85  break;
86  }
87  case 1:
88  {
89  m_barrageColor = QColor(255, 0, 0);
90  buttons[1]->setStyleSheet(TTK::UI::VideoBtnRedOn);
91  break;
92  }
93  case 2:
94  {
95  m_barrageColor = QColor(255, 165, 0);
96  buttons[2]->setStyleSheet(TTK::UI::VideoBtnOrangeOn);
97  break;
98  }
99  case 3:
100  {
101  m_barrageColor = QColor(255, 255, 0);
102  buttons[3]->setStyleSheet(TTK::UI::VideoBtnYellowOn);
103  break;
104  }
105  case 4:
106  {
107  m_barrageColor = QColor(0, 255, 0);
108  buttons[4]->setStyleSheet(TTK::UI::VideoBtnGreenOn);
109  break;
110  }
111  case 5:
112  {
113  m_barrageColor = QColor(0, 0, 255);
114  buttons[5]->setStyleSheet(TTK::UI::VideoBtnBlueOn);
115  break;
116  }
117  case 6:
118  {
119  m_barrageColor = QColor(160, 32, 240);
120  buttons[6]->setStyleSheet(TTK::UI::VideoBtnPurpleOn);
121  break;
122  }
123  default: break;
124  }
125 }
126 
128 {
130  m_containWidget->setFixedSize(200, 85);
131  QVBoxLayout *containLayout = new QVBoxLayout(m_containWidget);
132  //
133  QWidget *sizeWidget = new QWidget(m_containWidget);
134  QHBoxLayout *sizeLayout = new QHBoxLayout(sizeWidget);
135  sizeLayout->setContentsMargins(0, 0, 0, 0);
136  QLabel *sizeLabel= new QLabel(tr("Size"), sizeWidget);
137  QPushButton *smallButton = new QPushButton(sizeWidget);
138  QPushButton *middleButton = new QPushButton(sizeWidget);
139  QPushButton *bigButton = new QPushButton(sizeWidget);
140 
141 #ifdef Q_OS_UNIX
142  smallButton->setFocusPolicy(Qt::NoFocus);
143  middleButton->setFocusPolicy(Qt::NoFocus);
144  bigButton->setFocusPolicy(Qt::NoFocus);
145 #endif
146 
147  smallButton->setFixedSize(16, 16);
148  middleButton->setFixedSize(16, 16);
149  bigButton->setFixedSize(16, 16);
150 
151  smallButton->setStyleSheet(TTK::UI::VideoBtnSmallOn);
152  middleButton->setStyleSheet(TTK::UI::VideoBtnMiddle);
153  bigButton->setStyleSheet(TTK::UI::VideoBtnBig);
154 
155  m_sizeGroup = new QButtonGroup(sizeWidget);
156  m_sizeGroup->addButton(smallButton, 0);
157  m_sizeGroup->addButton(middleButton, 1);
158  m_sizeGroup->addButton(bigButton, 2);
160 
161  sizeLayout->addWidget(sizeLabel, 1, Qt::AlignCenter);
162  sizeLayout->addWidget(smallButton);
163  sizeLayout->addStretch(1);
164  sizeLayout->addWidget(middleButton);
165  sizeLayout->addStretch(1);
166  sizeLayout->addWidget(bigButton);
167  sizeLayout->addStretch(1);
168  sizeWidget->setLayout(sizeLayout);
169  //
170  QWidget *colorWidget = new QWidget(m_containWidget);
171  QHBoxLayout *colorLayout = new QHBoxLayout(colorWidget);
172  colorLayout->setContentsMargins(0, 0, 0, 0);
173  colorLayout->setSpacing(2);
174  QLabel *colorLabel= new QLabel(tr("Color"), colorWidget);
175  QPushButton *whiteButton = new QPushButton(colorWidget);
176  QPushButton *redButton = new QPushButton(colorWidget);
177  QPushButton *orangeButton = new QPushButton(colorWidget);
178  QPushButton *yellowButton = new QPushButton(colorWidget);
179  QPushButton *greenButton = new QPushButton(colorWidget);
180  QPushButton *blueButton = new QPushButton(colorWidget);
181  QPushButton *purpleButton = new QPushButton(colorWidget);
182 #ifdef Q_OS_UNIX
183  whiteButton->setFocusPolicy(Qt::NoFocus);
184  redButton->setFocusPolicy(Qt::NoFocus);
185  orangeButton->setFocusPolicy(Qt::NoFocus);
186  yellowButton->setFocusPolicy(Qt::NoFocus);
187  greenButton->setFocusPolicy(Qt::NoFocus);
188  blueButton->setFocusPolicy(Qt::NoFocus);
189  purpleButton->setFocusPolicy(Qt::NoFocus);
190 #endif
191 
192  colorLabel->setFixedSize(40, 15);
193  whiteButton->setFixedSize(19, 26);
194  redButton->setFixedSize(19, 26);
195  orangeButton->setFixedSize(19, 26);
196  yellowButton->setFixedSize(19, 26);
197  greenButton->setFixedSize(19, 26);
198  blueButton->setFixedSize(19, 26);
199  purpleButton->setFixedSize(19, 26);
200 
201  whiteButton->setStyleSheet(TTK::UI::VideoBtnWhiteOn);
202  redButton->setStyleSheet(TTK::UI::VideoBtnRed);
203  orangeButton->setStyleSheet(TTK::UI::VideoBtnOrange);
204  yellowButton->setStyleSheet(TTK::UI::VideoBtnYellow);
205  greenButton->setStyleSheet(TTK::UI::VideoBtnGreen);
206  blueButton->setStyleSheet(TTK::UI::VideoBtnBlue);
207  purpleButton->setStyleSheet(TTK::UI::VideoBtnPurple);
208 
209  m_colorGroup = new QButtonGroup(this);
210  m_colorGroup->addButton(whiteButton, 0);
211  m_colorGroup->addButton(redButton, 1);
212  m_colorGroup->addButton(orangeButton, 2);
213  m_colorGroup->addButton(yellowButton, 3);
214  m_colorGroup->addButton(greenButton, 4);
215  m_colorGroup->addButton(blueButton, 5);
216  m_colorGroup->addButton(purpleButton, 6);
218 
219  colorLayout->addWidget(colorLabel, 0, Qt::AlignCenter);
220  colorLayout->addWidget(whiteButton);
221  colorLayout->addWidget(redButton);
222  colorLayout->addWidget(orangeButton);
223  colorLayout->addWidget(yellowButton);
224  colorLayout->addWidget(greenButton);
225  colorLayout->addWidget(blueButton);
226  colorLayout->addWidget(purpleButton);
227  colorWidget->setLayout(colorLayout);
228  //
229  containLayout->addWidget(sizeWidget);
230  containLayout->addWidget(colorWidget);
231  m_containWidget->setLayout(containLayout);
232 }
static constexpr const char * VideoBtnSmallOn
The class of the tool menu base widget.
static constexpr const char * VideoBtnMiddleOn
static constexpr const char * VideoBtnWhite
static constexpr const char * VideoBtnWhiteOn
static constexpr const char * VideoBtnBlueOn
static constexpr const char * VideoBtnBlue
static constexpr const char * VideoBtnPurpleOn
static constexpr const char * VideoBtnBig
static constexpr const char * VideoBtnRedOn
#define TTK_SLOT
Definition: ttkqtglobal.h:165
static constexpr const char * VideoBtnPurple
#define QtButtonGroupConnect(p, q, f, s)
Button group connect.
Definition: ttkqtcompat.h:101
static constexpr const char * VideoBtnGreenOn
static constexpr const char * VideoBtnYellowOn
static constexpr const char * VideoBtnOrange
static constexpr const char * VideoBtnYellow
static constexpr const char * VideoBtnGreen
static constexpr const char * VideoBtnOrangeOn
static constexpr const char * VideoBtnMiddle
static constexpr const char * VideoBtnBigOn
MusicVideoBarrageStylePopWidget(QWidget *MusicToolMenuWidget=nullptr)
static constexpr const char * VideoBtnSmall
static constexpr const char * VideoBtnRed