2 #include "ui_musiclrcmakerwidget.h"
15 #include <QPropertyAnimation>
16 #include <QSequentialAnimationGroup>
112 QLabel::setText(
string);
113 const int len =
string.isEmpty() ? 1 :
string.length();
131 QPainter painter(
this);
132 painter.setPen(QColor(0, 0, 0));
133 painter.drawText(
m_intervalCount, -10, w, 60, Qt::AlignLeft | Qt::AlignVCenter, text());
135 painter.setPen(QColor(144, 184, 214));
148 setFixedSize(
size());
149 setAttribute(Qt::WA_DeleteOnClose);
152 m_ui->stackedWidget->setFocusPolicy(Qt::StrongFocus);
153 m_ui->topTitleCloseButton->setIcon(QIcon(
":/functions/btn_close_hover"));
155 m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
156 m_ui->topTitleCloseButton->setToolTip(tr(
"Close"));
157 connect(
m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
194 m_ui->timeSlider_F->blockSignals(
true);
195 m_ui->timeSlider_S->blockSignals(
true);
196 m_ui->timeSlider_T->blockSignals(
true);
198 m_ui->timeSlider_F->setValue(position);
199 m_ui->timeSlider_S->setValue(position);
200 m_ui->timeSlider_T->setValue(position);
202 m_ui->timeSlider_F->blockSignals(
false);
203 m_ui->timeSlider_S->blockSignals(
false);
204 m_ui->timeSlider_T->blockSignals(
false);
208 m_ui->labelTime_F->setText(t);
209 m_ui->labelTime_S->setText(t);
210 m_ui->labelTime_T->setText(t);
212 if(
m_ui->stackedWidget->currentIndex() == 3)
219 QString currentLrc, laterLrc;
232 m_ui->timeSlider_F->setRange(0, position);
233 m_ui->timeSlider_S->setRange(0, position);
234 m_ui->timeSlider_T->setRange(0, position);
262 message.
setText(tr(
"Are you sure that you want to remake lyrics?"));
273 message.
setText(tr(
"Go back and lyrics will be lost"));
283 const QString &text = (
m_ui->stateButton_F->text() == tr(
"Play")) ? tr(
"Pause") : tr(
"Play");
284 m_ui->stateButton_F->setText(text);
285 m_ui->stateButton_T->setText(text);
292 const bool state =
m_ui->stateButton_T->text() == tr(
"Play");
293 const QString &text = state ? tr(
"Pause") : tr(
"Play");
294 m_ui->stateButton_F->setText(text);
295 m_ui->stateButton_T->setText(text);
305 m_ui->lrcViewer->stop();
311 m_ui->stackedWidget->setCurrentIndex(0);
316 m_ui->stackedWidget->setCurrentIndex(1);
342 QTextCursor cursor =
m_ui->makeTextEdit->textCursor();
345 QTextBlockFormat textBlockFormat = cursor.blockFormat();
346 textBlockFormat.setBottomMargin(18);
347 cursor.setBlockFormat(textBlockFormat);
348 cursor.movePosition(QTextCursor::NextBlock);
350 cursor.movePosition(QTextCursor::Start);
351 m_ui->makeTextEdit->setTextCursor(cursor);
352 m_ui->makeTextEdit->setCurrentCharFormat(QTextCharFormat());
355 m_ui->stackedWidget->setCurrentIndex(2);
360 if(
m_ui->stackedWidget->currentIndex() == 2 &&
m_plainText.count() >
m_ui->makeTextEdit->textCursor().blockNumber())
367 m_ui->stackedWidget->setCurrentIndex(3);
372 for(
int i = 0; i <
m_times.count(); ++i)
415 MusicAbstractMoveWidget::keyPressEvent(event);
420 MusicAbstractMoveWidget::keyReleaseEvent(event);
423 if(event->key() == Qt::Key_Space)
431 QTextCursor cursor =
m_ui->makeTextEdit->textCursor();
444 cursor.movePosition(QTextCursor::PreviousBlock, QTextCursor::KeepAnchor);
468 cursor.movePosition(QTextCursor::NextBlock, QTextCursor::KeepAnchor);
489 m_ui->makeTextEdit->setTextCursor(cursor);
497 m_ui->nextButton_M->setFocusPolicy(Qt::NoFocus);
498 m_ui->cancelButton_M->setFocusPolicy(Qt::NoFocus);
500 connect(
m_ui->cancelButton_M, SIGNAL(clicked()), SLOT(close()));
503 QPropertyAnimation *anim1 =
new QPropertyAnimation(
m_ui->label_M5,
"geometry",
this);
504 anim1->setDuration(1500);
505 anim1->setStartValue(QRect(630, 280, 0, 30));
506 anim1->setEndValue(QRect(400, 280, 230, 30));
507 anim1->setEasingCurve(QEasingCurve::Linear);
509 QPropertyAnimation *anim2 =
new QPropertyAnimation(
m_ui->label_M6,
"geometry",
this);
510 anim2->setDuration(1500);
511 anim2->setStartValue(QRect(630, 315, 0, 30));
512 anim2->setEndValue(QRect(400, 315, 230, 30));
513 anim2->setEasingCurve(QEasingCurve::Linear);
515 QPropertyAnimation *anim3 =
new QPropertyAnimation(
m_ui->label_M7,
"geometry",
this);
516 anim3->setDuration(1500);
517 anim3->setStartValue(QRect(630, 350, 0, 30));
518 anim3->setEndValue(QRect(400, 350, 230, 30));
519 anim3->setEasingCurve(QEasingCurve::Linear);
521 QPropertyAnimation *anim4 =
new QPropertyAnimation(
m_ui->label_M8,
"geometry",
this);
522 anim4->setDuration(1500);
523 anim4->setStartValue(QRect(630, 385, 0, 30));
524 anim4->setEndValue(QRect(400, 385, 230, 30));
525 anim4->setEasingCurve(QEasingCurve::Linear);
527 QPropertyAnimation *anim5 =
new QPropertyAnimation(
m_ui->label_M9,
"geometry",
this);
528 anim5->setDuration(1500);
529 anim5->setStartValue(QRect(630, 420, 0, 30));
530 anim5->setEndValue(QRect(400, 420, 230, 30));
531 anim5->setEasingCurve(QEasingCurve::Linear);
533 QSequentialAnimationGroup *group =
new QSequentialAnimationGroup(
this);
534 group->addAnimation(anim1);
535 group->addAnimation(anim2);
536 group->addAnimation(anim3);
537 group->addAnimation(anim4);
538 group->addAnimation(anim5);
550 m_ui->lrcTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
551 m_ui->lrcTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
553 m_ui->lrcTextEdit->setAcceptRichText(
false);
554 m_ui->lrcTextEdit->setLineWrapMode(QTextEdit::NoWrap);
556 QTextBlockFormat fmt;
557 fmt.setLineHeight(30, QTextBlockFormat::FixedHeight);
558 QTextCursor cur =
m_ui->lrcTextEdit->textCursor();
559 cur.setBlockFormat(fmt);
560 m_ui->lrcTextEdit->setTextCursor(cur);
562 m_ui->timeSlider_F->setFocusPolicy(Qt::NoFocus);
570 m_ui->stateButton_F->setFocusPolicy(Qt::NoFocus);
571 m_ui->previousButton_F->setFocusPolicy(Qt::NoFocus);
572 m_ui->nextButton_F->setFocusPolicy(Qt::NoFocus);
573 m_ui->cancelButton_F->setFocusPolicy(Qt::NoFocus);
578 connect(
m_ui->cancelButton_F, SIGNAL(clicked()), SLOT(close()));
588 m_ui->makeTextEdit->setReadOnly(
true);
589 m_ui->makeTextEdit->setLineWrapMode(QTextEdit::NoWrap);
590 m_ui->makeTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
591 m_ui->makeTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
593 m_ui->makeTextEdit->setAcceptRichText(
false);
594 m_ui->makeTextEdit->setAutoFormatting(QTextEdit::AutoNone);
595 m_ui->makeTextEdit->setEnabled(
false);
597 QFont font =
m_ui->makeTextEdit->font();
598 font.setPointSize(15);
599 m_ui->makeTextEdit->setFont(font);
601 m_ui->timeSlider_S->setFocusPolicy(Qt::NoFocus);
608 m_ui->previousButton_S->setFocusPolicy(Qt::NoFocus);
609 m_ui->nextButton_S->setFocusPolicy(Qt::NoFocus);
610 m_ui->cancelButton_S->setFocusPolicy(Qt::NoFocus);
614 connect(
m_ui->cancelButton_S, SIGNAL(clicked()), SLOT(close()));
623 m_ui->lrcViewer->connectTo(
this);
629 m_ui->lrcViewer->addWidget(w);
634 m_ui->timeSlider_T->setFocusPolicy(Qt::NoFocus);
635 m_ui->lrc_make_up_T->setToolTip(tr(
"Before 1.0s"));
636 m_ui->lrc_make_down_T->setToolTip(tr(
"After 1.0s"));
651 m_ui->stateButton_T->setFocusPolicy(Qt::NoFocus);
652 m_ui->remakeButton_T->setFocusPolicy(Qt::NoFocus);
653 m_ui->uploadButton_T->setFocusPolicy(Qt::NoFocus);
654 m_ui->saveButton_T->setFocusPolicy(Qt::NoFocus);
655 m_ui->previousButton_T->setFocusPolicy(Qt::NoFocus);
656 m_ui->cancelButton_T->setFocusPolicy(Qt::NoFocus);
663 connect(
m_ui->cancelButton_T, SIGNAL(clicked()), SLOT(close()));
671 if(
m_ui->artNameEdit->text().isEmpty())
674 msg = tr(
"Art name is empty");
677 if(
m_ui->songNameEdit->text().isEmpty())
680 msg = tr(
"Song name is empty");
683 if(
m_ui->lrcTextEdit->toPlainText().isEmpty())
686 msg = tr(
"Lrc text is empty");
699 m_ui->artNameEdit->setEnabled(enabled);
700 m_ui->songNameEdit->setEnabled(enabled);
701 m_ui->authorNameEdit->setEnabled(enabled);
702 m_ui->lrcTextEdit->setEnabled(enabled);
703 m_ui->introductionTextEdit->setEnabled(enabled);
709 return QString(
"[%1.%2]").arg(t.
toString(
"mm:ss"), QString::number(t.
millionSecond()).rightJustified(3,
'0'));
731 m_ui->lrcViewer->start();
#define TTKStaticCast(x, y)
TTK_MODULE_EXPORT QString generateSongArtist(const QString &name, const QString &key=TTK_DEFAULT_STR)
static constexpr const char * InteriorMakeUp
void revertTime(qint64 pos)
static MusicApplication * instance()
void setText(const QString &text) const
void setCurrentIndex(int index)
TTK::PlayMode playMode() const
void setLrcPerWidth(int width)
static constexpr wchar_t key[]
State setData(const QByteArray &data)
The class of the app main widget.
The class of the messagebox widget.
TTK_MODULE_EXPORT QString generateSongTitle(const QString &name, const QString &key=TTK_DEFAULT_STR)
int millionSecond() const noexcept
void playAnyTimeAt(int time)
static void popup(const QString &text)
static constexpr const char * InteriorMakeDown
static const QString TextEditStyle01
TextEdit.
static const QString ScrollBarStyle01
ScrollBar.
static const QString SliderStyle09
bool findText(qint64 current, qint64 total, QString &pre, QString &last, qint64 &interval) const
void setFontSize(int size)
The class of the core lrc analysis.
#define TTKRemoveSingleWidget(name)
QMap< qint64, QString > TTKIntStringMap
#define TTK_SIGNLE_SHOT(...)
The class of the interior lrc manager.
QString text(int index) const
void setCurrentFilePath(const QString &name)
TTK_MODULE_EXPORT QString lrcDirPrefix()
static const QString PushButtonStyle04
qint64 setSongTimeSpeed(qint64 time)
void setTransparent(int tran)
static const QString BackgroundStyle10
The class of the ttk time object.
static const QString LineEditStyle01
LineEdit.
static const QString BorderStyle02
static const QString ToolButtonStyle04
MusicLrcColor mapIndexToColor(MusicLrcColor::Color index)
void setLinearGradientColor(const MusicLrcColor &color)
static QString toString(qint64 time, const QString &format) noexcept
QList< QColor > readColorConfig(const QString &value)
void setFontTransparent(int t)
static qint64 formatDuration(const QString &time) noexcept