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_timePositionOffset(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"));
217 layout->removeItem(layout->itemAt(layout->count() - 1));
221 layout->addStretch(1);
227 switch(action->data().toInt())
241 switch(action->data().toInt())
286 QClipboard *clipBoard = QApplication::clipboard();
375 menu.addAction(tr(
"Lrc Poster"),
this, SLOT(
showLrcPosterWidget()))->setEnabled(hasLrcContainer);
381 QMenu *colorMenu = menu.addMenu(tr(
"Color"));
382 QMenu *lrcSizeMenu = menu.addMenu(tr(
"Lrc Size"));
383 QMenu *lrcTimeFastMenu = menu.addMenu(tr(
"Time After"));
384 QMenu *lrcTimeSlowMenu = menu.addMenu(tr(
"Time Before"));
385 lrcTimeFastMenu->setEnabled(hasLrcContainer);
386 lrcTimeSlowMenu->setEnabled(hasLrcContainer);
388 menu.addAction(tr(
"Revert Mode"),
this, SLOT(
revertTimePosition()))->setEnabled(hasLrcContainer);
389 menu.addAction(tr(
"Save Mode"),
this, SLOT(
saveLrcTimeChanged()))->setEnabled(hasLrcContainer);
392 QActionGroup *actions =
new QActionGroup(
this);
393 actions->addAction(lrcSizeMenu->addAction(tr(
"Smaller")))->setData(0);
394 actions->addAction(lrcSizeMenu->addAction(tr(
"Small")))->setData(1);
395 actions->addAction(lrcSizeMenu->addAction(tr(
"Middle")))->setData(2);
396 actions->addAction(lrcSizeMenu->addAction(tr(
"Big")))->setData(3);
397 actions->addAction(lrcSizeMenu->addAction(tr(
"Bigger")))->setData(4);
402 case 14: index = 0;
break;
403 case 18: index = 1;
break;
404 case 26: index = 2;
break;
405 case 36: index = 3;
break;
406 case 72: index = 4;
break;
410 if(index > -1 && index < actions->actions().count())
412 actions->actions()[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
414 connect(actions, SIGNAL(triggered(QAction*)), SLOT(
lrcSizeChanged(QAction*)));
416 lrcSizeMenu->addSeparator();
420 QActionGroup *lrcTimeFastActions =
new QActionGroup(
this);
421 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 0.5s")))->setData(0);
422 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 1.0s")))->setData(1);
423 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 2.0s")))->setData(2);
424 lrcTimeFastActions->addAction(lrcTimeFastMenu->addAction(tr(
"After 5.0s")))->setData(3);
428 QActionGroup *lrcTimeSlowActions =
new QActionGroup(
this);
429 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 0.5s")))->setData(4);
430 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 1.0s")))->setData(5);
431 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 2.0s")))->setData(6);
432 lrcTimeSlowActions->addAction(lrcTimeSlowMenu->addAction(tr(
"Before 5.0s")))->setData(7);
439 m_linkLocalLrc ? showLrc->setText(tr(
"Lrc Turn Off")) : showLrc->setText(tr(
"Lrc Turn On"));
444 const bool fileCheck = !filePath.isEmpty() && QFile::exists(filePath);
446 QMenu *lrcLinkMenu = menu.addMenu(tr(
"Lrc Link"));
448 QAction *lrcLinkAc = lrcLinkMenu->addAction(tr(
"Link Off"),
this, SLOT(
linkLrcStateChanged()));
449 m_linkLocalLrc ? lrcLinkAc->setText(tr(
"Link Off")) : lrcLinkAc->setText(tr(
"Link On"));
452 menu.addAction(tr(
"Copy To Clip"),
this, SLOT(
lrcCopyClipboard()))->setEnabled(fileCheck);
453 menu.addAction(tr(
"Open Lrc File"),
this, SLOT(
lrcOpenFileDir()))->setEnabled(fileCheck);
459 menu.exec(QCursor::pos());
464 if(event->button() == Qt::LeftButton)
477 setCursor(Qt::CrossCursor);
536 if(event->button() == Qt::LeftButton)
538 setCursor(Qt::ArrowCursor);
571 QLinearGradient linearGradient(0, 0, width(), 0);
572 linearGradient.setColorAt(0.0, QColor(255, 254, 161));
573 linearGradient.setColorAt(0.3, Qt::transparent);
574 linearGradient.setColorAt(0.7, Qt::transparent);
575 linearGradient.setColorAt(1.0, QColor(255, 254, 161));
578 QPainter painter(
this);
579 painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
580 painter.setPen(QPen(linearGradient, 1));
604 functionLayout->setContentsMargins(0, 0, 0, 0);
613 transButton->setFocusPolicy(Qt::NoFocus);
614 movieButton->setFocusPolicy(Qt::NoFocus);
615 messageButton->setFocusPolicy(Qt::NoFocus);
616 photoButton->setFocusPolicy(Qt::NoFocus);
620 transButton->setFixedSize(30, 30);
621 movieButton->setFixedSize(30, 30);
622 messageButton->setFixedSize(30, 30);
623 photoButton->setFixedSize(30, 30);
630 transButton->setCursor(Qt::PointingHandCursor);
631 movieButton->setCursor(Qt::PointingHandCursor);
632 messageButton->setCursor(Qt::PointingHandCursor);
633 photoButton->setCursor(Qt::PointingHandCursor);
635 transButton->setToolTip(tr(
"Translation"));
636 movieButton->setToolTip(tr(
"Movie"));
637 messageButton->setToolTip(tr(
"Message"));
638 photoButton->setToolTip(tr(
"Photo"));
643 connect(photoButton, SIGNAL(clicked()),
m_lrcFloatWidget, SLOT(showArtistPhotoWidget()));
645 functionLayout->addStretch(1);
646 functionLayout->addWidget(transButton);
648 functionLayout->addWidget(movieButton);
649 functionLayout->addWidget(messageButton);
650 functionLayout->addWidget(photoButton);
651 functionLayout->addStretch(1);
659 QActionGroup *actions =
new QActionGroup(
this);
660 actions->addAction(menu->addAction(tr(
"Yellow")))->setData(0);
661 actions->addAction(menu->addAction(tr(
"Blue")))->setData(1);
662 actions->addAction(menu->addAction(tr(
"Gray")))->setData(2);
663 actions->addAction(menu->addAction(tr(
"Pink")))->setData(3);
664 actions->addAction(menu->addAction(tr(
"Green")))->setData(4);
665 actions->addAction(menu->addAction(tr(
"Red")))->setData(5);
666 actions->addAction(menu->addAction(tr(
"Purple")))->setData(6);
667 actions->addAction(menu->addAction(tr(
"Orange")))->setData(7);
668 actions->addAction(menu->addAction(tr(
"Indigo")))->setData(8);
670 menu->addSeparator();
674 if(index > -1 && index < actions->actions().count())
676 actions->actions()[index]->setIcon(QIcon(
":/contextMenu/btn_selected"));
702 message = tr(
"Restore");
746 if(i == 0 || i == 10)
750 else if(i == 1 || i == 9)
754 else if(i == 2 || i == 8)
758 else if(i == 3 || i == 7)
762 else if(i == 4 || i == 6)
780 else if(i == 1 || i == 7)
784 else if(i == 2 || i == 6)
788 else if(i == 3 || i == 5)
806 else if(i == 1 || i == 5)
810 else if(i == 2 || i == 4)
828 else if(i == 1 || i == 3)
859 int value =
G_SETTING_PTR->value(
"LrcColorTransparent").toInt() - transparent;
882 else if(14 < size && size <= 18)
886 else if(18 < size && size <= 26)
890 else if(26 < size && size <= 36)
894 else if(36 < size && size <= 72)
916 for(
int i = 0; i < length; ++i)
#define TTKStaticCast(x, y)
MusicLrcFloatPlayWidget * m_floatPlayWidget
#define QtGlobalPositionY(p)
The class of the lrc manager base.
static constexpr int LRC_TIME_LABEL_POSITION
MusicLrcAnalysis * m_lrcAnalysis
void showSongMovieWidget()
MusicVoicePopWidget * m_mufflerButton
static QString message(const TTK::Attribute attr)
void revertTimePosition()
void setTimePosition(qint64 pos)
void createNoLrcCurrentInfo()
void showSongCommentsWidget()
void setFontTransparent(int t) noexcept
MusicVLayoutAnimationWidget * m_layoutWidget
#define QtGlobalPosition(p)
void createFunctionLabel()
static constexpr const char * InteriorTranslation
void createFloatPlayWidget()
virtual void applyParameter() overridefinal
QStringList dataList() const
void setFontSize(int size) noexcept
virtual void start() overridefinal
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
QString m_currentSongName
The class of the label widget that can click.
void linkLrcStateChanged()
~MusicLrcContainerForInterior()
qint64 m_timePositionOffset
static const QString ColorStyle12
int maximum() const noexcept
The class of the lrc art poster maker widget.
void showLrcPosterWidget()
void setTimePosition(qint64 pos)
void setCurrentIndex(int index) noexcept
static void popup(const QString &text)
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)
virtual void stop() overridefinal
void resizeWidth(int w, int h)
static constexpr const char * InteriorMovie
int mapLrcSizeProperty(int size)
virtual void mouseMoveEvent(QMouseEvent *event) overridefinal
The class of the interior lrc manager.
QString text(int index) const
void showNoLrcCurrentInfo()
virtual void applyParameter()
bool m_showArtistBackground
virtual void paintEvent(QPaintEvent *event) overridefinal
void setMaximum(int max) noexcept
qint64 findTimePosition(qint64 time)
qint64 findTimePosition(qint64 time)
void showLrcMakedWidget()
qint64 findTime(int index) const
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 lrcTimePositionChanged(QAction *action)
void changeCurrentLrcColor(QAction *action)
QString filePath() const noexcept
MusicLrcContainerForInterior(QWidget *parent=nullptr)
QString dataString() const
void setLrcSize(int size)
void lrcWidgetShowFullScreen()
virtual void mouseDoubleClickEvent(QMouseEvent *event) overridefinal
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
MusicLrcTranslatedWidget * m_translatedWidget
int count() const noexcept
#define WINDOW_HEIGHT_MIN
static qint64 formatDuration(const QString &time) noexcept
void updateAnimationLrc()
#define TTKObjectCast(x, y)
int middle() const noexcept
void createColorMenu(QMenu *menu)
#define LEFT_SIDE_WIDTH_MIN