TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicvideoqualitypopwidget.cpp
Go to the documentation of this file.
2 #include "musicvideouiobject.h"
4 #include "musicconnectionpool.h"
5 
7  : MusicToolMenuWidget(parent)
8 {
9  initialize();
10 
11  setFixedSize(44, 20);
12  setStyleSheet(TTK::UI::VideoBtnSTMode);
13 
14  G_CONNECTION_PTR->setValue(className(), this);
15  G_CONNECTION_PTR->connect(className(), MusicVideoSearchTableWidget::className());
16 }
17 
19 {
20  G_CONNECTION_PTR->removeValue(this);
21  delete m_actionGroup;
22 }
23 
25 {
26  QList<QAction*> actions = m_actionGroup->actions();
27  if(actions.count() >= 4)
28  {
29  actions[0]->setEnabled(bitrateIsValid(TTK_BN_250));
30  actions[1]->setEnabled(bitrateIsValid(TTK_BN_500));
31  actions[2]->setEnabled(bitrateIsValid(TTK_BN_750));
32  actions[3]->setEnabled(bitrateIsValid(TTK_BN_1000));
33  }
34 }
35 
37 {
38  QString style = TTK::UI::VideoBtnSTMode;
39  switch(findBitrateByUrl(url))
40  {
41  case TTK_BN_250: style = TTK::UI::VideoBtnSTMode; break;
42  case TTK_BN_500: style = TTK::UI::VideoBtnSDMode; break;
43  case TTK_BN_750: style = TTK::UI::VideoBtnHDMode; break;
44  case TTK_BN_1000: style = TTK::UI::VideoBtnSQMode; break;
45  default: break;
46  }
47 
48  setStyleSheet(style);
49 }
50 
52 {
53  QString url;
54  switch(TTKStaticCast(TTK::QueryQuality, action->data().toInt()))
55  {
60  default: break;
61  }
62 
63  setQualityText(url);
64  Q_EMIT mediaUrlChanged(url);
65 }
66 
68 {
70  m_actionGroup = new QActionGroup(this);
71  connect(m_actionGroup, SIGNAL(triggered(QAction*)), SLOT(movieQualityChoiced(QAction*)));
72 
73  m_containWidget->setFixedSize(140, 125);
74  m_menu->removeAction(m_menu->actions().front());
75  m_actionGroup->addAction(m_menu->addAction(tr("ST")))->setData(TTKStaticCast(int, TTK::QueryQuality::Standard));
76  m_actionGroup->addAction(m_menu->addAction(tr("SD")))->setData(TTKStaticCast(int, TTK::QueryQuality::High));
77  m_actionGroup->addAction(m_menu->addAction(tr("HD")))->setData(TTKStaticCast(int, TTK::QueryQuality::Super));
78  m_actionGroup->addAction(m_menu->addAction(tr("SQ")))->setData(TTKStaticCast(int, TTK::QueryQuality::Lossless));
79 
81 }
82 
84 {
85  TTK::MusicSongPropertyList props;
86  Q_EMIT queryMediaProps(props);
87 
88  for(const TTK::MusicSongProperty &prop : qAsConst(props))
89  {
90  if(prop.m_bitrate == bitrate)
91  {
92  return prop.m_url;
93  }
94  }
95  return {};
96 }
97 
99 {
100  TTK::MusicSongPropertyList props;
101  Q_EMIT queryMediaProps(props);
102 
103  for(const TTK::MusicSongProperty &prop : qAsConst(props))
104  {
105  const QString &aurl = prop.m_url;
106  if(aurl == url)
107  {
108  return prop.m_bitrate;
109  }
110  }
111  return 0;
112 }
113 
115 {
116  TTK::MusicSongPropertyList props;
117  Q_EMIT queryMediaProps(props);
118 
119  for(const TTK::MusicSongProperty &prop : qAsConst(props))
120  {
121  if(prop.m_bitrate == bitrate)
122  {
123  return true;
124  }
125  }
126  return false;
127 }
static constexpr const char * VideoBtnHDMode
#define TTKStaticCast(x, y)
Definition: ttkglobal.h:159
The class of the tool menu base widget.
int findBitrateByUrl(const QString &url)
static constexpr const char * VideoBtnSTMode
The class of the music song property.
Definition: musicobject.h:223
MusicToolMenu * m_menu
#define TTK_BN_1000
Definition: ttkglobal.h:354
void queryMediaProps(TTK::MusicSongPropertyList &props)
#define G_CONNECTION_PTR
#define TTK_BN_250
Definition: ttkglobal.h:350
MusicVideoQualityPopWidget(QWidget *parent=nullptr)
#define TTK_BN_500
Definition: ttkglobal.h:352
#define qAsConst
Definition: ttkqtglobal.h:53
QueryQuality
Definition: musicobject.h:191
void setQualityText(const QString &url)
static constexpr const char * VideoBtnSDMode
void mediaUrlChanged(const QString &data)
static constexpr const char * VideoBtnSQMode
#define TTK_BN_750
Definition: ttkglobal.h:353