23 #include <QApplication>
32 m_mouseLeftPressed(false),
33 m_lrcChangeState(false),
35 m_lrcDisplayAll(false),
36 m_showArtistBackground(true),
37 m_animationFreshTime(0),
38 m_lrcSizeProperty(-1),
39 m_changeSpeedValue(0),
40 m_floatPlayWidget(nullptr),
41 m_commentsWidget(nullptr),
42 m_translatedWidget(nullptr)
44 QVBoxLayout *vBoxLayout =
new QVBoxLayout(
this);
45 vBoxLayout->setContentsMargins(0, 0, 0, 0);
46 setLayout(vBoxLayout);
65 m_lrcManagers[MUSIC_LRC_INTERIOR_MAX_LINE / 2]->setText(tr(
"No song is playing now"));
215 layout->removeItem(layout->itemAt(layout->count() - 1));
219 layout->addStretch(1);
225 switch(action->data().toInt())
239 switch(action->data().toInt())
283 QClipboard *clipBoard = QApplication::clipboard();
331 if(orts.count() > trts.count())
336 for(
int i = 0; i < orts.count(); ++i)
401 menu.addAction(tr(
"Lrc Poster"),
this, SLOT(
showLrcPosterWidget()))->setEnabled(hasLrcContainer);
407 QMenu *colorMenu = menu.addMenu(tr(
"Color"));
408 QMenu *lrcSizeMenu = menu.addMenu(tr(
"Lrc Size"));
409 QMenu *lrcTimeFastMenu = menu.addMenu(tr(
"Time After"));
410 QMenu *lrcTimeSlowMenu = menu.addMenu(tr(
"Time Before"));
411 lrcTimeFastMenu->setEnabled(hasLrcContainer);
412 lrcTimeSlowMenu->setEnabled(hasLrcContainer);
414 menu.addAction(tr(
"Revert Mode"),
this, SLOT(
revertLrcTimeSpeed()))->setEnabled(hasLrcContainer);
415 menu.addAction(tr(
"Save Mode"),
this, SLOT(
saveLrcTimeChanged()))->setEnabled(hasLrcContainer);
418 QActionGroup *actions =
new QActionGroup(
this);
419 actions->addAction(lrcSizeMenu->addAction(tr(
"Smaller")))->setData(0);
420 actions->addAction(lrcSizeMenu->addAction(tr(
"Small")))->setData(1);
421 actions->addAction(lrcSizeMenu->addAction(tr(
"Middle")))->setData(2);
422 actions->addAction(lrcSizeMenu->addAction(tr(
"Big")))->setData(3);
423 actions->addAction(lrcSizeMenu->addAction(tr(
"Bigger")))->setData(4);
428 case 14: index = 0;
break;
429 case 18: index = 1;
break;
430 case 26: index = 2;
break;
431 case 36: index = 3;
break;
432 case 72: index = 4;
break;
436 if(index > -1 && index < actions->actions().count())
438 actions->actions()[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
440 connect(actions, SIGNAL(triggered(QAction*)), SLOT(
lrcSizeChanged(QAction*)));
442 lrcSizeMenu->addSeparator();
446 QActionGroup *lrcTimeFastActions =
new QActionGroup(
this);
447 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 0.5s")))->setData(0);
448 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 1.0s")))->setData(1);
449 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 2.0s")))->setData(2);
450 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 5.0s")))->setData(3);
451 connect(lrcTimeFastActions, SIGNAL(triggered(QAction*)), SLOT(
lrcTimeSpeedChanged(QAction*)));
454 QActionGroup *lrcTimeSlowActions =
new QActionGroup(
this);
455 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 0.5s")))->setData(4);
456 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 1.0s")))->setData(5);
457 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 2.0s")))->setData(6);
458 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 5.0s")))->setData(7);
459 connect(lrcTimeSlowActions, SIGNAL(triggered(QAction*)), SLOT(
lrcTimeSpeedChanged(QAction*)));
465 m_linkLocalLrc ? showLrc->setText(tr(
"Lrc Turn Off")) : showLrc->setText(tr(
"Lrc Turn On"));
470 const bool fileCheck = !filePath.isEmpty() && QFile::exists(filePath);
472 QMenu *lrcLinkMenu = menu.addMenu(tr(
"Lrc Link"));
474 QAction *lrcLinkAc = lrcLinkMenu->addAction(tr(
"Link Off"),
this, SLOT(
linkLrcStateChanged()));
475 m_linkLocalLrc ? lrcLinkAc->setText(tr(
"Link Off")) : lrcLinkAc->setText(tr(
"Link On"));
478 menu.addAction(tr(
"Copy To Clip"),
this, SLOT(
lrcCopyClipboard()))->setEnabled(fileCheck);
479 menu.addAction(tr(
"Open Lrc File"),
this, SLOT(
lrcOpenFileDir()))->setEnabled(fileCheck);
485 menu.exec(QCursor::pos());
490 if(event->button() == Qt::LeftButton)
503 setCursor(Qt::CrossCursor);
562 if(event->button() == Qt::LeftButton)
564 setCursor(Qt::ArrowCursor);
594 QLinearGradient linearGradient(0, 0, width(), 0);
595 linearGradient.setColorAt(0.0, QColor(255, 254, 161));
596 linearGradient.setColorAt(0.3, Qt::transparent);
597 linearGradient.setColorAt(0.7, Qt::transparent);
598 linearGradient.setColorAt(1.0, QColor(255, 254, 161));
601 QPainter painter(
this);
602 painter.setPen(QPen(linearGradient, 1));
622 MusicLrcContainer::resizeEvent(event);
628 QActionGroup *actions =
new QActionGroup(
this);
629 actions->addAction(menu->addAction(tr(
"Yellow")))->setData(0);
630 actions->addAction(menu->addAction(tr(
"Blue")))->setData(1);
631 actions->addAction(menu->addAction(tr(
"Gray")))->setData(2);
632 actions->addAction(menu->addAction(tr(
"Pink")))->setData(3);
633 actions->addAction(menu->addAction(tr(
"Green")))->setData(4);
634 actions->addAction(menu->addAction(tr(
"Red")))->setData(5);
635 actions->addAction(menu->addAction(tr(
"Purple")))->setData(6);
636 actions->addAction(menu->addAction(tr(
"Orange")))->setData(7);
637 actions->addAction(menu->addAction(tr(
"Indigo")))->setData(8);
639 menu->addSeparator();
643 if(index > -1 && index < actions->actions().count())
645 actions->actions()[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
671 message = tr(
"Restore");
715 functionLayout->setContentsMargins(0, 0, 0, 0);
717 QPushButton *transButton =
new QPushButton(
this);
718 QPushButton *movieButton =
new QPushButton(
this);
719 QPushButton *messageButton =
new QPushButton(
this);
720 QPushButton *photoButton =
new QPushButton(
this);
723 transButton->setFocusPolicy(Qt::NoFocus);
724 movieButton->setFocusPolicy(Qt::NoFocus);
725 messageButton->setFocusPolicy(Qt::NoFocus);
726 photoButton->setFocusPolicy(Qt::NoFocus);
729 transButton->setFixedSize(30, 30);
730 movieButton->setFixedSize(30, 30);
731 messageButton->setFixedSize(30, 30);
732 photoButton->setFixedSize(30, 30);
739 transButton->setCursor(Qt::PointingHandCursor);
740 movieButton->setCursor(Qt::PointingHandCursor);
741 messageButton->setCursor(Qt::PointingHandCursor);
742 photoButton->setCursor(Qt::PointingHandCursor);
744 transButton->setToolTip(tr(
"Translation"));
745 movieButton->setToolTip(tr(
"Movie"));
746 messageButton->setToolTip(tr(
"Message"));
747 photoButton->setToolTip(tr(
"Photo"));
752 connect(photoButton, SIGNAL(clicked()),
m_lrcFloatWidget, SLOT(showArtistPhotoWidget()));
754 functionLayout->addStretch(1);
755 functionLayout->addWidget(transButton);
756 functionLayout->addWidget(movieButton);
757 functionLayout->addWidget(messageButton);
758 functionLayout->addWidget(photoButton);
759 functionLayout->addStretch(1);
772 if(i == 0 || i == 10)
776 else if(i == 1 || i == 9)
780 else if(i == 2 || i == 8)
784 else if(i == 3 || i == 7)
788 else if(i == 4 || i == 6)
806 else if(i == 1 || i == 7)
810 else if(i == 2 || i == 6)
814 else if(i == 3 || i == 5)
832 else if(i == 1 || i == 5)
836 else if(i == 2 || i == 4)
854 else if(i == 1 || i == 3)
885 int value =
G_SETTING_PTR->value(
"LrcColorTransparent").toInt() - transparent;
908 else if(14 < size && size <= 18)
912 else if(18 < size && size <= 26)
916 else if(26 < size && size <= 36)
920 else if(36 < size && size <= 72)
942 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
QString currentFilePath() const noexcept
MusicLrcAnalysis * m_lrcAnalysis
void revertTime(qint64 pos)
void createNoLrcCurrentInfo()
int lineMax() const noexcept
void setLineMax(int max) noexcept
#define QtMouseGlobalY(p)
void queryTranslatedLrcFinished(const QString &bytes)
void showSongCommentsWidget()
void setFontTransparent(int t) noexcept
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 setFontSize(int size) noexcept
void updateCurrentTime(qint64 time)
void artistBackgroundChanged()
TTKClickedLabel * m_noLrcCurrentInfo
void lrcOpenFileDir() const
int lrcSize() const noexcept
bool isValid() const noexcept
void initCurrentLrc(const QString &str)
void saveLrcTimeChanged()
static constexpr const char * InteriorMessage
void setHeader(const QString &key, const QVariant &value) noexcept
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()
void setCurrentIndex(int index) noexcept
static void popup(const QString &text)
#define QtMouseGlobalPos(p)
The class of the lrc container base.
int currentIndex() const noexcept
static constexpr const char * InteriorPhoto
void setTransparent(int tran) noexcept
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.
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
virtual void startDrawLrc() overridefinal
qint64 setSongTimeSpeed(qint64 time)
void showLrcMakedWidget()
qint64 findTime(int index) const
int lineMiddle() const noexcept
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
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
bool isEmpty() const noexcept
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
int count() const noexcept
#define WINDOW_HEIGHT_MIN
static qint64 formatDuration(const QString &time) noexcept
void updateAnimationLrc()
#define TTKObjectCast(x, y)
void createColorMenu(QMenu *menu)
#define LEFT_SIDE_WIDTH_MIN