2 #include "ui_musiclrcposterwidget.h"
63 QWidget::paintEvent(event);
65 QPainter painter(
this);
66 painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
67 painter.fillRect(rect(), Qt::white);
102 painter->setPen(QColor(0x66, 0x66, 0x66));
103 for(
int i = 0; i <
m_data.count(); ++i)
111 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
132 for(
int i = 0; i <
m_data.count(); ++i)
137 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
148 painter->drawText(8 * ITEM_BORDER, offset - v - 10 * ITEM_BORDER,
ITEM_WIDTH - 16 * ITEM_BORDER, v, Qt::AlignRight | Qt::TextWordWrap, title);
150 painter->setPen(QPen(QColor(0xBB, 0xBB, 0xBB), ITEM_BORDER));
151 painter->drawRect(5 * ITEM_BORDER, 5 * ITEM_BORDER,
ITEM_WIDTH - 10 * ITEM_BORDER, offset - 10 * ITEM_BORDER);
152 setFixedHeight(offset);
153 painter->setPen(QColor(0x66, 0x66, 0x66));
156 for(
int i = 0; i <
m_data.count(); ++i)
159 v = 3 * ITEM_BORDER + v * lineHeight;
160 painter->drawText(8 * ITEM_BORDER, offset,
ITEM_WIDTH - 16 * ITEM_BORDER, v, Qt::TextWordWrap,
m_data[i]);
176 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
183 painter->setPen(QColor(0x66, 0x66, 0x66));
185 for(
int i = 0; i <
m_data.count(); ++i)
196 std::sort(list.begin(), list.end());
198 offset = pix.height() + list.last() + 10 *
ITEM_BORDER;
209 painter->setPen(QColor(0x66, 0x66, 0x66));
213 for(
int i = 0; i <
m_data.count(); ++i)
216 if(offset <= delta || offset <= 2 * delta)
225 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
233 painter->drawText(3 *
ITEM_BORDER, -offset, title);
235 std::sort(list.begin(), list.end());
242 painter->drawPixmap(ITEM_BORDER, offset, pix);
243 offset += ITEM_BORDER + pix.height();
253 painter->setPen(QColor(0x66, 0x66, 0x66));
254 for(
int i = 0; i <
m_data.count(); ++i)
262 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
280 int offset = qMin(pix.width(), pix.height());
281 const int fixedOffset = (pix.width() -
offset) / 2;
290 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
296 painter->drawText(8 *
ITEM_BORDER, -offset, title);
297 painter->setPen(QColor(0x66, 0x66, 0x66));
299 for(
int i = 0; i <
m_data.count(); ++i)
310 std::sort(list.begin(), list.end());
312 offset = pix.height() + list.last() + 10 *
ITEM_BORDER;
322 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
325 for(
int i = 0; i <
m_data.count(); ++i)
329 painter->setPen(QColor(0x66, 0x66, 0x66));
333 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
354 for(
int i = 0; i <
m_data.count(); ++i)
359 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
370 painter->drawText(5 * ITEM_BORDER, offset - v - 10 * ITEM_BORDER,
ITEM_WIDTH - 10 * ITEM_BORDER, v, Qt::AlignRight | Qt::TextWordWrap, title);
372 painter->translate(0, 0);
373 QPixmap borer(
":/lrc/lb_poster_letter_line");
374 for(
int i = 0; i <= std::ceil(
ITEM_WIDTH/borer.width()); ++i)
376 painter->drawPixmap(borer.width() * i, 0, borer.width(), borer.height(), borer);
377 painter->drawPixmap(borer.width() * i, offset - borer.height(), borer.width(), borer.height(), borer);
379 painter->translate(borer.height(), 0);
381 for(
int i = 0; i <= std::ceil(offset/borer.width()); ++i)
383 painter->drawPixmap(borer.width() * i, 0, borer.width(), borer.height(), borer);
384 painter->drawPixmap(borer.width() * i, borer.height() -
ITEM_WIDTH, borer.width(), borer.height(), borer);
387 painter->translate(0, 0);
389 setFixedHeight(offset);
392 for(
int i = 0; i <
m_data.count(); ++i)
395 v = 3 * ITEM_BORDER + v * lineHeight;
396 painter->setPen(QColor(0x66, 0x66, 0x66));
397 painter->drawText(5 * ITEM_BORDER, offset,
ITEM_WIDTH - 10 * ITEM_BORDER, v, Qt::TextWordWrap,
m_data[i]);
400 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
401 painter->drawLine(5 * ITEM_BORDER, offset - ITEM_BORDER,
ITEM_WIDTH - 5 * ITEM_BORDER, offset - ITEM_BORDER);
411 for(
int i = 0; i <
m_data.count(); ++i)
416 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
427 painter->drawText(5 * ITEM_BORDER, offset - v - 10 * ITEM_BORDER,
ITEM_WIDTH - 10 * ITEM_BORDER, v, Qt::AlignRight | Qt::TextWordWrap, title);
429 painter->translate(0, 0);
430 QPixmap borer(
":/lrc/lb_poster_letter_line");
431 for(
int i = 0; i <= std::ceil(
ITEM_WIDTH/borer.width()); ++i)
433 painter->drawPixmap(borer.width() * i, 0, borer.width(), borer.height(), borer);
434 painter->drawPixmap(borer.width() * i, offset - borer.height(), borer.width(), borer.height(), borer);
436 painter->translate(borer.height(), 0);
438 for(
int i = 0; i <= std::ceil(offset/borer.width()); ++i)
440 painter->drawPixmap(borer.width() * i, 0, borer.width(), borer.height(), borer);
441 painter->drawPixmap(borer.width() * i, borer.height() -
ITEM_WIDTH, borer.width(), borer.height(), borer);
444 painter->translate(0, 0);
446 QPixmap background(
":/lrc/lb_poster_letter_background");
447 painter->drawPixmap(
ITEM_WIDTH - background.width() - 2 *
ITEM_BORDER, background.height(), background.width(), background.height(), background);
449 setFixedHeight(offset);
450 painter->setPen(QColor(0x66, 0x66, 0x66));
453 for(
int i = 0; i <
m_data.count(); ++i)
456 v = 3 * ITEM_BORDER + v * lineHeight;
457 painter->drawText(5 * ITEM_BORDER, offset,
ITEM_WIDTH - 10 * ITEM_BORDER, v, Qt::TextWordWrap,
m_data[i]);
466 int offset = qMin(pix.width(), pix.height());
470 const int gWidth = pix.width() * 3 / 4;
471 const int gHeight = pix.height() * 3 / 4;
472 const QRect &gaussRect = QRect((pix.width() - gWidth) / 2, (pix.height() - gHeight) / 2, gWidth, gHeight);
475 blur.
input(gaussRect);
477 const QRect &drawRect = QRect((pix.width() - gWidth) / 2, (pix.height() - gHeight) / 2 + fixedOffset, gWidth, gHeight);
478 painter->drawPixmap(drawRect, blur.
render(pix, 10));
484 for(
int i = 0; i <
m_data.count(); ++i)
488 if(offset + v >= gaussRect.height())
492 painter->setPen(QColor(0x66, 0x66, 0x66));
493 painter->drawText(3 *
ITEM_BORDER + drawRect.x(), offset + drawRect.y(), drawRect.width() - 6 *
ITEM_BORDER, v, Qt::AlignHCenter | Qt::TextWordWrap,
m_data[i]);
504 for(
int i = 0; i <
m_data.count(); ++i)
509 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
516 QPixmap pix(
":/lrc/lb_poster_spring");
517 int h =
TTKStaticCast(
int, pix.height() * width() * 1.0f / pix.width());
522 w =
TTKStaticCast(
int, width() * qMax(1.0f, height() * 1.0f / pix.height()));
537 painter->setPen(QColor(0x66, 0x66, 0x66));
539 for(
int i = 0; i <
m_data.count(); ++i)
554 for(
int i = 0; i <
m_data.count(); ++i)
559 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
566 QPixmap pix(
":/lrc/lb_poster_summer");
567 int h =
TTKStaticCast(
int, pix.height() * width() * 1.0f / pix.width());
572 w =
TTKStaticCast(
int, width() * qMax(1.0f, height() * 1.0f / pix.height()));
587 painter->setPen(QColor(0x66, 0x66, 0x66));
589 for(
int i = 0; i <
m_data.count(); ++i)
604 for(
int i = 0; i <
m_data.count(); ++i)
609 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
616 QPixmap pix(
":/lrc/lb_poster_autumn");
617 int h =
TTKStaticCast(
int, pix.height() * width() * 1.0f / pix.width());
622 w =
TTKStaticCast(
int, width() * qMax(1.0f, height() * 1.0f / pix.height()));
637 painter->setPen(QColor(0x66, 0x66, 0x66));
639 for(
int i = 0; i <
m_data.count(); ++i)
654 for(
int i = 0; i <
m_data.count(); ++i)
659 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
666 QPixmap pix(
":/lrc/lb_poster_winter");
667 int h =
TTKStaticCast(
int, pix.height() * width() * 1.0f / pix.width());
672 w =
TTKStaticCast(
int, width() * qMax(1.0f, height() * 1.0f / pix.height()));
687 painter->setPen(QColor(0x66, 0x66, 0x66));
689 for(
int i = 0; i <
m_data.count(); ++i)
702 int offset = qMin(pix.width(), pix.height());
714 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
718 for(
int i = 0; i <
m_data.count(); ++i)
722 if(offset + v >= pix.height())
726 painter->setPen(QColor(0x66, 0x66, 0x66));
739 for(
int i = 0; i < var.length(); ++i)
741 const QChar &ch = var.at(i);
753 int offset = qMin(pix.width(), pix.height());
765 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
769 for(
int i = 0; i < splData.count(); ++i)
773 if(offset + v >= pix.height())
777 painter->setPen(QColor(0x66, 0x66, 0x66));
791 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
796 painter->drawText(12 *
ITEM_BORDER, lineHeight - offset, title);
797 painter->setPen(QColor(0x66, 0x66, 0x66));
798 for(
int i = 0; i <
m_data.count(); ++i)
809 std::sort(list.begin(), list.end());
815 setFixedHeight(offset);
817 painter->setPen(QPen(QColor(0xFF, 0, 0),
ITEM_BORDER));
819 painter->setPen(QColor(0xFF, 0, 0));
823 while(ofs > 2 * delta)
836 setSelectionMode(QAbstractItemView::ExtendedSelection);
839 QHeaderView *headerView = horizontalHeader();
840 headerView->resizeSection(0, 30);
841 headerView->resizeSection(1, 237);
848 setRowCount(lrcs.count());
850 for(
int i = 0; i < lrcs.count(); ++i)
852 QTableWidgetItem *item =
new QTableWidgetItem;
856 item =
new QTableWidgetItem;
857 item->setText(lrcs[i]);
868 for(
int i = 0; i < rowCount(); ++i)
872 data << item(i, 1)->text();
882 : QListWidget(parent)
884 setIconSize(QSize(40, 40));
885 setFrameShape(QFrame::NoFrame);
886 setViewMode(QListView::IconMode);
887 setMovement(QListView::Static);
888 setFlow(QListView::TopToBottom);
889 setFocusPolicy(Qt::ClickFocus);
890 setSelectionMode(QAbstractItemView::SingleSelection);
891 setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
892 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
893 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
901 QListWidgetItem *item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb1") ,tr(
"Default"),
this);
902 item->setSizeHint(QSize(70, 80));
905 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb2") ,tr(
"Plain"),
this);
906 item->setSizeHint(QSize(70, 80));
909 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb3") ,tr(
"Classical"),
this);
910 item->setSizeHint(QSize(70, 80));
913 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb4") ,tr(
"Quiet"),
this);
914 item->setSizeHint(QSize(70, 80));
917 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb5") ,tr(
"Peaceful"),
this);
918 item->setSizeHint(QSize(70, 80));
921 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb6") ,tr(
"Bright"),
this);
922 item->setSizeHint(QSize(70, 80));
925 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb7") ,tr(
"Notepad"),
this);
926 item->setSizeHint(QSize(70, 80));
929 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb8") ,tr(
"Letter"),
this);
930 item->setSizeHint(QSize(70, 80));
933 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb9") ,tr(
"Envelope"),
this);
934 item->setSizeHint(QSize(70, 80));
937 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb10") ,tr(
"Photo"),
this);
938 item->setSizeHint(QSize(70, 80));
941 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb11") ,tr(
"Spring"),
this);
942 item->setSizeHint(QSize(70, 80));
945 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb12") ,tr(
"Summer"),
this);
946 item->setSizeHint(QSize(70, 80));
949 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb13") ,tr(
"Autumn"),
this);
950 item->setSizeHint(QSize(70, 80));
953 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb14") ,tr(
"Winter"),
this);
954 item->setSizeHint(QSize(70, 80));
957 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb15") ,tr(
"Compile"),
this);
958 item->setSizeHint(QSize(70, 80));
961 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb16") ,tr(
"Slender"),
this);
962 item->setSizeHint(QSize(70, 80));
965 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb17") ,tr(
"Red"),
this);
966 item->setSizeHint(QSize(70, 80));
969 setFixedWidth(70 * count());
979 setFixedSize(
size());
982 m_ui->topTitleCloseButton->setIcon(QIcon(
":/functions/btn_close_hover"));
984 m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
985 m_ui->topTitleCloseButton->setToolTip(tr(
"Close"));
986 connect(
m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
990 connect(
m_ui->lrcArea, SIGNAL(textChanged(QStringList)),
m_itemWidget, SLOT(textChanged(QStringList)));
998 m_ui->openButton->setFocusPolicy(Qt::NoFocus);
999 m_ui->saveButton->setFocusPolicy(Qt::NoFocus);
1016 m_ui->lrcArea->addCellItems(lrcs);
#define TTKStaticCast(x, y)
static const QString ListWidgetStyle02
void drawTheme1(QPainter *painter)
void drawTheme17(QPainter *painter)
TTK_MODULE_EXPORT QString generateSongArtist(const QString &name, const QString &key=TTK_DEFAULT_STR)
void drawTheme4(QPainter *painter)
MusicLrcPosterWidget(QWidget *parent=nullptr)
TTK_MODULE_EXPORT bool isChinese(const QChar &c)
void drawTheme8(QPainter *painter)
static constexpr int ITEM_BORDER
MusicLrcPosterTableWidget(QWidget *parent=nullptr)
TTK_MODULE_EXPORT QString getOpenFileName(QWidget *parent, const QString &filter="Image Files (*.png *.bmp *.jpg)")
TTK_MODULE_EXPORT QString generateSongTitle(const QString &name, const QString &key=TTK_DEFAULT_STR)
#define QtItemSetTextAlignment(p, a)
Item text alignment.
virtual QPixmap render(const QPixmap &pixmap, int value) overridefinal
static constexpr int ITEM_SCROLL_WIDTH
void drawTheme10(QPainter *painter)
void textChanged(const QStringList &data)
void addCellItems(const QStringList &lrcs)
TTK_MODULE_EXPORT QPixmap roundedPixmap(const QPixmap &input, int ratioX, int ratioY)
The class of the lrc art poster maker widget.
void drawTheme6(QPainter *painter)
TTK_MODULE_EXPORT QString getSaveFileName(QWidget *parent, const QString &filter="Image Files (*.png *.bmp *.jpg)")
void drawTheme3(QPainter *painter)
void currentTypeChanged(int type)
The class of the skin backgroud image.
virtual void itemCellClicked(int row, int column) overridefinal
static const QString ScrollBarStyle01
ScrollBar.
MusicLrcPosterItemWidget(QWidget *parent=nullptr)
void drawTheme11(QPainter *painter)
void drawTheme14(QPainter *painter)
The class of the lrc art poster maker item widget.
void drawTheme15(QPainter *painter)
virtual void input(const QRect ®ion)
static const QString PushButtonStyle04
MusicLrcPosterItemWidget * m_itemWidget
void setImagePath(const QString &path)
static QPixmap grabWidget(QWidget *widget, const QRect &rect)
The class of the moving dialog base.
Ui::MusicLrcPosterWidget * m_ui
bool hasScroll() const noexcept
void drawTheme7(QPainter *painter)
void textChanged(const QStringList &data)
void drawTheme12(QPainter *painter)
MusicLrcPosterThemeListWidget * m_themeWidget
void drawTheme13(QPainter *painter)
static const QString ToolButtonStyle04
void drawTheme2(QPainter *painter)
void setCurrentSongName(const QString &name) noexcept
virtual void paintEvent(QPaintEvent *event) overridefinal
void drawTheme9(QPainter *painter)
static constexpr int ITEM_HEIGHT
static constexpr int ITEM_WIDTH
void drawTheme16(QPainter *painter)
void setCurrentLrcs(const QStringList &lrcs, const QString &name)
The class of the gauss blur.
MusicLrcPosterThemeListWidget(QWidget *parent=nullptr)
void drawTheme5(QPainter *painter)
The class of the lrc art poster theme list widget.