TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musiclrctranslatedwidget.cpp
Go to the documentation of this file.
3 #include "musicwidgetutils.h"
5 #include "musiclrcanalysis.h"
6 #include "musicgiflabelwidget.h"
7 
9  : QLabel(parent),
10  m_lrcAnalysis(nullptr)
11 {
12  setObjectName(MusicLrcTranslatedWidget::metaObject()->className());
13  setStyleSheet(QString("#%1{ %2 }").arg(objectName(), TTK::UI::BackgroundStyle07));
14 
15  QVBoxLayout *mainLayout = new QVBoxLayout(this);
16  mainLayout->setContentsMargins(10, 0, 10, 0);
17  mainLayout->setSpacing(0);
18 
19  QWidget *topWidget = new QWidget(this);
20  topWidget->setFixedHeight(40);
21  QHBoxLayout *topWidgetLayout = new QHBoxLayout(topWidget);
22  topWidgetLayout->setContentsMargins(0, 0, 10, 0);
23 
24  m_titleName = new QLabel(topWidget);
25  m_titleName->setAlignment(Qt::AlignCenter);
27  topWidgetLayout->addWidget(m_titleName);
28 
29  QPushButton *closeButton = new QPushButton(this);
30  closeButton->setFixedSize(14, 14);
31  closeButton->setStyleSheet(TTK::UI::BtnPClose);
32  closeButton->setCursor(QCursor(Qt::PointingHandCursor));
33 #ifdef Q_OS_UNIX
34  closeButton->setFocusPolicy(Qt::NoFocus);
35 #endif
36  connect(closeButton, SIGNAL(clicked()), SLOT(close()));
37 
38  topWidgetLayout->addWidget(closeButton);
39  topWidget->setLayout(topWidgetLayout);
40 
41  m_plainText = new QLabel(this);
42  m_plainText->setWordWrap(true);
43 
44  QScrollArea *scrollArea = new QScrollArea(this);
46 
47  m_plainText->setObjectName("ContentsWidget");
48  m_plainText->setStyleSheet(QString("#%1{ %2 %3 %4 }").arg(m_plainText->objectName(), TTK::UI::BackgroundStyle01, TTK::UI::ColorStyle12, TTK::UI::FontStyle03));
49 
50  QWidget *view = scrollArea->viewport();
51  view->setObjectName("Viewport");
52  view->setStyleSheet(QString("#%1{ %2 }").arg(view->objectName(), TTK::UI::BackgroundStyle01));
53 
54  mainLayout->addWidget(topWidget);
55  mainLayout->addWidget(scrollArea);
56  setLayout(mainLayout);
57 
59 }
60 
62 {
63  delete m_titleName;
64  delete m_plainText;
65  delete m_loadingLabel;
66 }
67 
69 {
70  m_titleName->setText(name);
71  m_loadingLabel->execute(true);
72 
74  connect(req, SIGNAL(downloadDataChanged(QString)), SLOT(downloadDataFinished(QString)));
75  req->setHeader("data", m_lrcAnalysis->dataString());
76  req->setHeader("name", m_lrcAnalysis->filePath());
77  req->startToRequest();
78 }
79 
81 {
82  QString text;
83  m_loadingLabel->execute(false);
84 
85  if(bytes.startsWith(TTK_AUTHOR_NAME))
86  {
87  // The original and translated lrc have been merged
88  text = bytes;
89  text.remove(0, strlen(TTK_AUTHOR_NAME));
90  }
91  else
92  {
93  const QStringList &orts = m_lrcAnalysis->dataList();
94  const QStringList &trts = bytes.split(TTK_LINEFEED);
95 
96  if(orts.count() > trts.count())
97  {
98  return;
99  }
100 
101  for(int i = 0; i < orts.count(); ++i)
102  {
103  text += QString("<font color=#AAAAAA>%1</font><br/>").arg(orts[i].trimmed());
104  text += QString("<font color=#FFFFFF>%1</font><br/>").arg(trts[i].trimmed());
105  }
106  }
107 
108  m_plainText->setText(text);
109 }
110 
111 void MusicLrcTranslatedWidget::resizeEvent(QResizeEvent *event)
112 {
113  QLabel::resizeEvent(event);
114  m_loadingLabel->move((width() - m_loadingLabel->width()) / 2, (height() - m_loadingLabel->height()) / 2);
115 }
116 
118 {
119  Q_UNUSED(event);
120 }
121 
123 {
124  Q_UNUSED(event);
125 }
126 
128 {
129  Q_UNUSED(event);
130 }
131 
132 void MusicLrcTranslatedWidget::wheelEvent(QWheelEvent *event)
133 {
134  Q_UNUSED(event);
135 }
MusicLrcTranslatedWidget(QWidget *parent=nullptr)
#define TTK_AUTHOR_NAME
static const QString FontStyle03
QStringList dataList() const
static constexpr const char * BtnPClose
void setCurrentSongName(const QString &name)
void setHeader(const QString &key, const QVariant &value) noexcept
static const QString FontStyle01
Font.
static const QString ColorStyle12
Definition: musicuiobject.h:70
const char * name
Definition: http_parser.c:458
virtual void mouseReleaseEvent(QMouseEvent *event) overridefinal
The class of the translation words manager request.
static const QString FontStyle05
virtual void mouseMoveEvent(QMouseEvent *event) overridefinal
virtual void resizeEvent(QResizeEvent *event) overridefinal
virtual void wheelEvent(QWheelEvent *event) overridefinal
static const QString BackgroundStyle01
Background.
Definition: musicuiobject.h:77
TTK_MODULE_EXPORT void generateVScrollAreaStyle(QWidget *widget, QWidget *parent, bool background=true)
static const QString ColorStyle03
Definition: musicuiobject.h:43
static const QString BackgroundStyle07
The class of the float gif label widget.
QString filePath() const noexcept
QString dataString() const
#define TTK_LINEFEED
Definition: ttkglobal.h:271
virtual void mousePressEvent(QMouseEvent *event) overridefinal
MusicGifLabelWidget * m_loadingLabel
void downloadDataFinished(const QString &bytes)