TTKMusicPlayer  4.1.3.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 
71  m_actionGroup = new QActionGroup(this);
72  connect(m_actionGroup, SIGNAL(triggered(QAction*)), SLOT(movieQualityChoiced(QAction*)));
73 
74  m_containWidget->setFixedSize(60, 125);
75  m_menu->setStyleSheet(TTK::UI::MenuStyle03);
76  m_menu->removeAction(m_menu->actions().front());
77 
78  m_actionGroup->addAction(m_menu->addAction(tr("ST")))->setData(TTKStaticCast(int, TTK::QueryQuality::Standard));
79  m_actionGroup->addAction(m_menu->addAction(tr("SD")))->setData(TTKStaticCast(int, TTK::QueryQuality::High));
80  m_actionGroup->addAction(m_menu->addAction(tr("HD")))->setData(TTKStaticCast(int, TTK::QueryQuality::Super));
81  m_actionGroup->addAction(m_menu->addAction(tr("SQ")))->setData(TTKStaticCast(int, TTK::QueryQuality::Lossless));
82 
84 }
85 
87 {
88  TTK::MusicSongPropertyList props;
89  Q_EMIT queryMediaProps(props);
90 
91  for(const TTK::MusicSongProperty &prop : qAsConst(props))
92  {
93  if(prop.m_bitrate == bitrate)
94  {
95  return prop.m_url;
96  }
97  }
98  return {};
99 }
100 
102 {
103  TTK::MusicSongPropertyList props;
104  Q_EMIT queryMediaProps(props);
105 
106  for(const TTK::MusicSongProperty &prop : qAsConst(props))
107  {
108  const QString &aurl = prop.m_url;
109  if(aurl == url)
110  {
111  return prop.m_bitrate;
112  }
113  }
114  return 0;
115 }
116 
118 {
119  TTK::MusicSongPropertyList props;
120  Q_EMIT queryMediaProps(props);
121 
122  for(const TTK::MusicSongProperty &prop : qAsConst(props))
123  {
124  if(prop.m_bitrate == bitrate)
125  {
126  return true;
127  }
128  }
129  return false;
130 }
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:225
MusicToolMenu * m_menu
#define TTK_BN_1000
Definition: ttkglobal.h:359
void queryMediaProps(TTK::MusicSongPropertyList &props)
#define G_CONNECTION_PTR
#define TTK_BN_250
Definition: ttkglobal.h:355
MusicVideoQualityPopWidget(QWidget *parent=nullptr)
#define TTK_BN_500
Definition: ttkglobal.h:357
#define qAsConst
Definition: ttkqtglobal.h:51
QueryQuality
Definition: musicobject.h:193
static const QString MenuStyle03
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:358