2 #include "ui_musiclrcposterwidget.h"
64 QWidget::paintEvent(event);
66 QPainter painter(
this);
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.back() + 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.back() + 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 <= 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 <= 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 <= 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 <= 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));
792 painter->setPen(QColor(0xBB, 0xBB, 0xBB));
797 painter->drawText(12 *
ITEM_BORDER, lineHeight - offset, title);
798 painter->setPen(QColor(0x66, 0x66, 0x66));
799 for(
int i = 0; i <
m_data.count(); ++i)
810 std::sort(list.begin(), list.end());
816 setFixedHeight(offset);
818 painter->setPen(QPen(QColor(0xFF, 0, 0),
ITEM_BORDER));
820 painter->setPen(QColor(0xFF, 0, 0));
824 while(ofs > 2 * delta)
837 setSelectionMode(QAbstractItemView::ExtendedSelection);
840 QHeaderView *headerView = horizontalHeader();
841 headerView->resizeSection(0, 30);
842 headerView->resizeSection(1, 237);
849 setRowCount(lrcs.count());
851 for(
int i = 0; i < lrcs.count(); ++i)
853 QTableWidgetItem *item =
new QTableWidgetItem;
857 item =
new QTableWidgetItem;
858 item->setText(lrcs[i]);
869 for(
int i = 0; i < rowCount(); ++i)
873 data << item(i, 1)->text();
883 : QListWidget(parent)
885 setIconSize(QSize(40, 40));
886 setFrameShape(QFrame::NoFrame);
887 setViewMode(QListView::IconMode);
888 setMovement(QListView::Static);
889 setFlow(QListView::TopToBottom);
890 setFocusPolicy(Qt::ClickFocus);
891 setSelectionMode(QAbstractItemView::SingleSelection);
892 setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
893 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
894 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
902 QListWidgetItem *item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb1") ,tr(
"Default"),
this);
903 item->setSizeHint(QSize(70, 80));
906 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb2") ,tr(
"Plain"),
this);
907 item->setSizeHint(QSize(70, 80));
910 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb3") ,tr(
"Classical"),
this);
911 item->setSizeHint(QSize(70, 80));
914 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb4") ,tr(
"Quiet"),
this);
915 item->setSizeHint(QSize(70, 80));
918 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb5") ,tr(
"Peaceful"),
this);
919 item->setSizeHint(QSize(70, 80));
922 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb6") ,tr(
"Bright"),
this);
923 item->setSizeHint(QSize(70, 80));
926 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb7") ,tr(
"Notepad"),
this);
927 item->setSizeHint(QSize(70, 80));
930 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb8") ,tr(
"Letter"),
this);
931 item->setSizeHint(QSize(70, 80));
934 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb9") ,tr(
"Envelope"),
this);
935 item->setSizeHint(QSize(70, 80));
938 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb10") ,tr(
"Photo"),
this);
939 item->setSizeHint(QSize(70, 80));
942 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb11") ,tr(
"Spring"),
this);
943 item->setSizeHint(QSize(70, 80));
946 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb12") ,tr(
"Summer"),
this);
947 item->setSizeHint(QSize(70, 80));
950 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb13") ,tr(
"Autumn"),
this);
951 item->setSizeHint(QSize(70, 80));
954 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb14") ,tr(
"Winter"),
this);
955 item->setSizeHint(QSize(70, 80));
958 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb15") ,tr(
"Compile"),
this);
959 item->setSizeHint(QSize(70, 80));
962 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb16") ,tr(
"Slender"),
this);
963 item->setSizeHint(QSize(70, 80));
966 item =
new QListWidgetItem(QIcon(
":/lrc/lb_poster_thumb17") ,tr(
"Red"),
this);
967 item->setSizeHint(QSize(70, 80));
970 setFixedWidth(70 * count());
980 setFixedSize(
size());
983 m_ui->topTitleCloseButton->setIcon(QIcon(
":/functions/btn_close_hover"));
985 m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
986 m_ui->topTitleCloseButton->setToolTip(tr(
"Close"));
987 connect(
m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
991 connect(
m_ui->lrcArea, SIGNAL(textChanged(QStringList)),
m_itemWidget, SLOT(textChanged(QStringList)));
999 m_ui->openButton->setFocusPolicy(Qt::NoFocus);
1000 m_ui->saveButton->setFocusPolicy(Qt::NoFocus);
1017 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)
static QPixmap grabWidget(QWidget *widget, const QRect &rect)
void drawTheme4(QPainter *painter)
MusicLrcPosterWidget(QWidget *parent=nullptr)
TTK_MODULE_EXPORT bool isChinese(const QChar &c)
void setCurrentSongName(const QString &name)
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)
The class of the moving dialog base.
Ui::MusicLrcPosterWidget * m_ui
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)
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.