23 #include <QApplication>
24 #include <QActionGroup>
33 m_mouseLeftPressed(false),
34 m_lrcChangeState(false),
36 m_lrcDisplayAll(false),
37 m_showArtistBackground(true),
38 m_animationFreshTime(0),
39 m_lrcSizeProperty(-1),
40 m_changeSpeedValue(0),
41 m_floatPlayWidget(nullptr),
42 m_commentsWidget(nullptr),
43 m_translatedWidget(nullptr)
45 QVBoxLayout *vBoxLayout =
new QVBoxLayout(
this);
46 vBoxLayout->setContentsMargins(0, 0, 0, 0);
47 setLayout(vBoxLayout);
66 m_lrcManagers[MUSIC_LRC_INTERIOR_MAX_LINE / 2]->setText(tr(
"No song is playing now"));
216 layout->removeItem(layout->itemAt(layout->count() - 1));
220 layout->addStretch(1);
226 switch(action->data().toInt())
240 switch(action->data().toInt())
284 QClipboard *clipBoard = QApplication::clipboard();
332 if(orts.count() > trts.count())
337 for(
int i = 0; i < orts.count(); ++i)
396 QMenu changColorMenu(tr(
"Color"), &menu);
397 QMenu changeLrcSize(tr(
"Lrc Size"), &menu);
398 QMenu changeLrcTimeFast(tr(
"Time After"), &menu);
399 QMenu changeLrcTimeSlow(tr(
"Time Before"), &menu);
400 QMenu changeLrcLinkMenu(tr(
"Lrc Link"), &menu);
408 menu.addAction(tr(
"Lrc Poster"),
this, SLOT(
showLrcPosterWidget()))->setEnabled(hasLrcContainer);
413 menu.addMenu(&changColorMenu);
414 menu.addMenu(&changeLrcSize);
416 menu.addMenu(&changeLrcTimeFast)->setEnabled(hasLrcContainer);
417 menu.addMenu(&changeLrcTimeSlow)->setEnabled(hasLrcContainer);
418 menu.addAction(tr(
"Revert Mode"),
this, SLOT(
revertLrcTimeSpeed()))->setEnabled(hasLrcContainer);
419 menu.addAction(tr(
"Save Mode"),
this, SLOT(
saveLrcTimeChanged()))->setEnabled(hasLrcContainer);
422 QActionGroup *group =
new QActionGroup(
this);
423 group->addAction(changeLrcSize.addAction(tr(
"Smaller")))->setData(0);
424 group->addAction(changeLrcSize.addAction(tr(
"Small")))->setData(1);
425 group->addAction(changeLrcSize.addAction(tr(
"Middle")))->setData(2);
426 group->addAction(changeLrcSize.addAction(tr(
"Big")))->setData(3);
427 group->addAction(changeLrcSize.addAction(tr(
"Bigger")))->setData(4);
432 case 14: index = 0;
break;
433 case 18: index = 1;
break;
434 case 26: index = 2;
break;
435 case 36: index = 3;
break;
436 case 72: index = 4;
break;
440 if(index > -1 && index < group->actions().count())
442 group->actions()[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
444 connect(group, SIGNAL(triggered(QAction*)), SLOT(
lrcSizeChanged(QAction*)));
446 changeLrcSize.addSeparator();
450 QActionGroup *lrcTimeFastGroup =
new QActionGroup(
this);
451 lrcTimeFastGroup->addAction(changeLrcTimeFast.addAction(tr(
"After 0.5s")))->setData(0);
452 lrcTimeFastGroup->addAction(changeLrcTimeFast.addAction(tr(
"After 1.0s")))->setData(1);
453 lrcTimeFastGroup->addAction(changeLrcTimeFast.addAction(tr(
"After 2.0s")))->setData(2);
454 lrcTimeFastGroup->addAction(changeLrcTimeFast.addAction(tr(
"After 5.0s")))->setData(3);
455 connect(lrcTimeFastGroup, SIGNAL(triggered(QAction*)), SLOT(
lrcTimeSpeedChanged(QAction*)));
458 QActionGroup *lrcTimeSlowGroup =
new QActionGroup(
this);
459 lrcTimeSlowGroup->addAction(changeLrcTimeSlow.addAction(tr(
"Before 0.5s")))->setData(4);
460 lrcTimeSlowGroup->addAction(changeLrcTimeSlow.addAction(tr(
"Before 1.0s")))->setData(5);
461 lrcTimeSlowGroup->addAction(changeLrcTimeSlow.addAction(tr(
"Before 2.0s")))->setData(6);
462 lrcTimeSlowGroup->addAction(changeLrcTimeSlow.addAction(tr(
"Before 5.0s")))->setData(7);
463 connect(lrcTimeSlowGroup, SIGNAL(triggered(QAction*)), SLOT(
lrcTimeSpeedChanged(QAction*)));
469 m_linkLocalLrc ? showLrc->setText(tr(
"Lrc Turn Off")) : showLrc->setText(tr(
"Lrc Turn On"));
474 const bool fileCheck = !filePath.isEmpty() && QFile::exists(filePath);
477 QAction *lrcLinkAc = changeLrcLinkMenu.addAction(tr(
"Link Off"),
this, SLOT(
linkLrcStateChanged()));
478 m_linkLocalLrc ? lrcLinkAc->setText(tr(
"Link Off")) : lrcLinkAc->setText(tr(
"Link On"));
480 menu.addMenu(&changeLrcLinkMenu);
482 menu.addAction(tr(
"Copy To Clip"),
this, SLOT(
lrcCopyClipboard()))->setEnabled(fileCheck);
483 menu.addAction(tr(
"Open Lrc File"),
this, SLOT(
lrcOpenFileDir()))->setEnabled(fileCheck);
489 menu.exec(QCursor::pos());
494 if(event->button() == Qt::LeftButton)
507 setCursor(Qt::CrossCursor);
566 if(event->button() == Qt::LeftButton)
568 setCursor(Qt::ArrowCursor);
598 QLinearGradient linearGradient(0, 0, width(), 0);
599 linearGradient.setColorAt(0.0, QColor(255, 254, 161));
600 linearGradient.setColorAt(0.3, Qt::transparent);
601 linearGradient.setColorAt(0.7, Qt::transparent);
602 linearGradient.setColorAt(1.0, QColor(255, 254, 161));
605 QPainter painter(
this);
606 painter.setPen(QPen(linearGradient, 1));
626 MusicLrcContainer::resizeEvent(event);
632 QActionGroup *group =
new QActionGroup(
this);
633 group->addAction(menu.addAction(tr(
"Yellow")))->setData(0);
634 group->addAction(menu.addAction(tr(
"Blue")))->setData(1);
635 group->addAction(menu.addAction(tr(
"Gray")))->setData(2);
636 group->addAction(menu.addAction(tr(
"Pink")))->setData(3);
637 group->addAction(menu.addAction(tr(
"Green")))->setData(4);
638 group->addAction(menu.addAction(tr(
"Red")))->setData(5);
639 group->addAction(menu.addAction(tr(
"Purple")))->setData(6);
640 group->addAction(menu.addAction(tr(
"Orange")))->setData(7);
641 group->addAction(menu.addAction(tr(
"Indigo")))->setData(8);
647 if(index > -1 && index < group->actions().count())
649 group->actions()[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
675 message = tr(
"Restore");
719 functionLayout->setContentsMargins(0, 0, 0, 0);
721 QPushButton *transButton =
new QPushButton(
this);
722 QPushButton *movieButton =
new QPushButton(
this);
723 QPushButton *messageButton =
new QPushButton(
this);
724 QPushButton *photoButton =
new QPushButton(
this);
727 transButton->setFocusPolicy(Qt::NoFocus);
728 movieButton->setFocusPolicy(Qt::NoFocus);
729 messageButton->setFocusPolicy(Qt::NoFocus);
730 photoButton->setFocusPolicy(Qt::NoFocus);
733 transButton->setFixedSize(30, 30);
734 movieButton->setFixedSize(30, 30);
735 messageButton->setFixedSize(30, 30);
736 photoButton->setFixedSize(30, 30);
743 transButton->setCursor(Qt::PointingHandCursor);
744 movieButton->setCursor(Qt::PointingHandCursor);
745 messageButton->setCursor(Qt::PointingHandCursor);
746 photoButton->setCursor(Qt::PointingHandCursor);
748 transButton->setToolTip(tr(
"Translation"));
749 movieButton->setToolTip(tr(
"Movie"));
750 messageButton->setToolTip(tr(
"Message"));
751 photoButton->setToolTip(tr(
"Photo"));
756 connect(photoButton, SIGNAL(clicked()),
m_lrcFloatWidget, SLOT(showArtistPhotoWidget()));
758 functionLayout->addStretch(1);
759 functionLayout->addWidget(transButton);
760 functionLayout->addWidget(movieButton);
761 functionLayout->addWidget(messageButton);
762 functionLayout->addWidget(photoButton);
763 functionLayout->addStretch(1);
776 if(i == 0 || i == 10)
780 else if(i == 1 || i == 9)
784 else if(i == 2 || i == 8)
788 else if(i == 3 || i == 7)
792 else if(i == 4 || i == 6)
810 else if(i == 1 || i == 7)
814 else if(i == 2 || i == 6)
818 else if(i == 3 || i == 5)
836 else if(i == 1 || i == 5)
840 else if(i == 2 || i == 4)
858 else if(i == 1 || i == 3)
889 int value =
G_SETTING_PTR->value(
"LrcColorTransparent").toInt() - transparent;
912 else if(14 < size && size <= 18)
916 else if(18 < size && size <= 26)
920 else if(26 < size && size <= 36)
924 else if(36 < size && size <= 72)
946 for(
int i = 0; i < length; ++i)
#define TTKStaticCast(x, y)
MusicLrcFloatPlayWidget * m_floatPlayWidget
The class of the lrc manager base.
static constexpr int LRC_TIME_LABEL_POSITION
MusicLrcAnalysis * m_lrcAnalysis
void createColorMenu(QMenu &menu)
void revertTime(qint64 pos)
void createNoLrcCurrentInfo()
void setCurrentIndex(int index)
#define QtMouseGlobalY(p)
void queryTranslatedLrcFinished(const QString &bytes)
void showSongCommentsWidget()
MusicVLayoutAnimationWidget * m_layoutWidget
void revertTimeSpeed(qint64 pos)
qint64 setSongTimeSpeed(qint64 time)
static constexpr const char * InteriorTranslation
void lrcTimeSpeedChanged(QAction *action)
void createFloatPlayWidget()
virtual void applyParameter() overridefinal
QStringList dataList() const
void updateCurrentTime(qint64 time)
void artistBackgroundChanged()
TTKClickedLabel * m_noLrcCurrentInfo
void lrcOpenFileDir() const
void initCurrentLrc(const QString &str)
void saveLrcTimeChanged()
static constexpr const char * InteriorMessage
QString m_currentSongName
The class of the label widget that can click.
void linkLrcStateChanged()
~MusicLrcContainerForInterior()
static const QString ColorStyle12
The class of the lrc art poster maker widget.
void showLrcPosterWidget()
static void popup(const QString &text)
#define QtMouseGlobalPos(p)
The class of the lrc container base.
static constexpr const char * InteriorPhoto
virtual void mousePressEvent(QMouseEvent *event) overridefinal
virtual void mouseReleaseEvent(QMouseEvent *event) overridefinal
void lrcSizeChanged(QAction *action)
void resizeWidth(int w, int h)
static constexpr const char * InteriorMovie
The class of the translation words manager request.
void setFontSize(int size)
int mapLrcSizeProperty(int size)
virtual void mouseMoveEvent(QMouseEvent *event) overridefinal
The class of the interior lrc manager.
void showSongMovieClicked()
QString text(int index) const
void showNoLrcCurrentInfo()
void revertLrcTimeSpeed()
virtual void applyParameter()
bool m_showArtistBackground
virtual void paintEvent(QPaintEvent *event) overridefinal
QString currentFilePath() const
virtual void startDrawLrc() overridefinal
qint64 setSongTimeSpeed(qint64 time)
void showLrcMakedWidget()
qint64 findTime(int index) const
void setTransparent(int tran)
QWidget * m_functionLabel
TTK_MODULE_EXPORT bool openUrl(const QString &path, bool local=true)
MusicLrcFloatWidget * m_lrcFloatWidget
static constexpr int MUSIC_LRC_INTERIOR_MAX_LINE
void setText(const QString &str)
void lrcCopyClipboard() const
void updateCurrentLrc(qint64 time)
static const QString MenuStyle02
void setHeader(const QString &key, const QVariant &value)
static constexpr int LRC_CHANGED_OFFSET_LIMIT
void setLrcSizeProperty(int property)
void clearAllMusicLRCManager()
void changeCurrentLrcColor(QAction *action)
MusicLrcContainerForInterior(QWidget *parent=nullptr)
QString dataString() const
void setLrcSize(int size)
virtual void stopDrawLrc() overridefinal
void lrcWidgetShowFullScreen()
virtual void mouseDoubleClickEvent(QMouseEvent *event) overridefinal
qint64 m_changeSpeedValue
QList< MusicLrcManager * > m_lrcManagers
void showLocalLinkWidget()
MusicLrcCommentsWidget * m_commentsWidget
void setCurrentLrcs(const QStringList &lrcs, const QString &name)
void setLinearGradientColor(MusicLrcColor::Color color)
QList< QColor > readColorConfig(const QString &value)
virtual void contextMenuEvent(QContextMenuEvent *event) overridefinal
static constexpr const char * LRC_INTERIOR_TPYE
virtual void resizeEvent(QResizeEvent *event) overridefinal
MusicLrcTranslatedWidget * m_translatedWidget
#define WINDOW_HEIGHT_MIN
void setFontTransparent(int t)
static qint64 formatDuration(const QString &time) noexcept
void updateAnimationLrc()
#define TTKObjectCast(x, y)
#define LEFT_SIDE_WIDTH_MIN