8 #define ROOT_PATH APPBACKUP_DIR_FULL + "playlist/"
15 QHeaderView *headerView = horizontalHeader();
16 headerView->resizeSection(0, 372);
17 headerView->resizeSection(1, 45);
19 connect(
this, SIGNAL(cellDoubleClicked(
int,
int)), SLOT(
itemDoubleClicked(
int,
int)));
22 G_CONNECTION_PTR->connect(className(), MusicSongsContainerWidget::className());
33 setRowCount(songs.count());
35 QHeaderView *headerView = horizontalHeader();
36 for(
int i = 0; i < songs.count(); ++i)
40 QTableWidgetItem *item =
new QTableWidgetItem;
41 item->setToolTip(v.
name());
47 item =
new QTableWidgetItem(v.
duration());
64 const QString &path =
m_songs->at(currentRow()).path();
65 Q_EMIT
addSongToPlaylist(QFile::exists(path) ? QStringList(path) : QStringList());
70 MusicAbstractSongsListTableWidget::contextMenuEvent(event);
74 menu.addAction(QIcon(
":/contextMenu/btn_play"), tr(
"Play"),
this, SLOT(
playClicked()));
81 menu.addAction(QIcon(
":/contextMenu/btn_local_file"), tr(
"Open File Dir"),
this, SLOT(
openFileDir()))->setEnabled(status);
82 menu.addAction(QIcon(
":/contextMenu/btn_ablum"), tr(
"Ablum"),
this, SLOT(
showAlbumQueryWidget()));
85 menu.exec(QCursor::pos());
95 QVBoxLayout *layout =
new QVBoxLayout(
this);
96 layout->setSpacing(0);
97 layout->setContentsMargins(0, 0, 0, 0);
99 QWidget *mainWidget =
new QWidget(
this);
100 QVBoxLayout *mainLayout =
new QVBoxLayout(mainWidget);
101 mainLayout->setSpacing(0);
102 mainLayout->setContentsMargins(0, 0, 0, 0);
103 mainWidget->setLayout(mainLayout);
104 layout->addWidget(mainWidget);
107 QWidget *topWidget =
new QWidget(mainWidget);
108 topWidget->setFixedHeight(60);
109 QHBoxLayout *topWidgetLayout =
new QHBoxLayout(topWidget);
110 topWidgetLayout->setContentsMargins(15, 10, 20, 10);
112 QLabel *pLabel =
new QLabel(tr(
"Playlist Backup"), topWidget);
113 QFont pLabelFont = pLabel->font();
114 pLabelFont.setPixelSize(20);
115 pLabel->setFont(pLabelFont);
118 QLabel *iLabel =
new QLabel(tr(
"Automatically backup your music"), topWidget);
119 QFont iLabelFont = iLabel->font();
120 iLabelFont.setPixelSize(15);
121 iLabel->setFont(iLabelFont);
132 topWidgetLayout->addWidget(pLabel);
133 topWidgetLayout->addWidget(iLabel);
134 topWidgetLayout->addStretch(1);
137 topWidget->setLayout(topWidgetLayout);
138 mainLayout->addWidget(topWidget);
140 QFrame *frame =
new QFrame(mainWidget);
141 frame->setFixedHeight(1);
142 frame->setFrameShape(QFrame::HLine);
143 frame->setFrameShadow(QFrame::Plain);
145 mainLayout->addWidget(frame);
147 QWidget *functionWidget =
new QWidget(mainWidget);
148 QHBoxLayout *functionWidgetLayout =
new QHBoxLayout(functionWidget);
149 functionWidgetLayout->setContentsMargins(10, 0, 10, 0);
150 functionWidget->setLayout(functionWidgetLayout);
151 mainLayout->addWidget(functionWidget);
153 QWidget *listWidget =
new QWidget(functionWidget);
154 listWidget->setFixedWidth(200);
155 QHBoxLayout *listWidgetLayout =
new QHBoxLayout(listWidget);
156 listWidgetLayout->setContentsMargins(0, 10, 0, 10);
157 listWidget->setLayout(listWidgetLayout);
162 m_listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
165 QFrame *hFrame =
new QFrame(functionWidget);
166 hFrame->setFixedWidth(1);
167 hFrame->setFrameShape(QFrame::VLine);
168 hFrame->setFrameShadow(QFrame::Plain);
171 QWidget *containerWidget =
new QWidget(functionWidget);
172 QVBoxLayout *containerWidgetLayout =
new QVBoxLayout(containerWidget);
173 containerWidgetLayout->setContentsMargins(10, 10, 10, 10);
174 containerWidget->setLayout(containerWidgetLayout);
176 functionWidgetLayout->addWidget(listWidget);
177 functionWidgetLayout->addWidget(hFrame);
178 functionWidgetLayout->addWidget(containerWidget);
180 QWidget *containerTopWidget =
new QWidget(containerWidget);
181 containerTopWidget->setFixedHeight(30);
184 containerWidgetLayout->addWidget(containerTopWidget);
187 QHBoxLayout *containerTopWidgetLayout =
new QHBoxLayout(containerTopWidget);
188 containerTopWidgetLayout->setContentsMargins(0, 0, 0, 0);
189 containerTopWidget->setLayout(containerTopWidgetLayout);
191 QFrame *blueFrame =
new QFrame(containerTopWidget);
192 blueFrame->setFixedWidth(3);
193 blueFrame->setFrameShape(QFrame::VLine);
194 blueFrame->setFrameShadow(QFrame::Plain);
199 pLabelFont.setPixelSize(16);
202 QPushButton *button =
new QPushButton(tr(
"Restore"), containerTopWidget);
204 button->setCursor(QCursor(Qt::PointingHandCursor));
205 button->setFixedSize(84, 26);
207 button->setFocusPolicy(Qt::NoFocus);
210 containerTopWidgetLayout->addWidget(blueFrame);
212 containerTopWidgetLayout->addStretch(1);
213 containerTopWidgetLayout->addWidget(button);
237 headerView->resizeSection(0, 372 + offset);
249 message.
setText(tr(
"Do I want to restore the original list after the restoration is overwritten?"));
263 for(
const QFileInfo &fin : dir.entryInfoList(QDir::Files, QDir::Time | QDir::Reversed))
273 if(index < 0 || index >=
m_timeBox->count())
294 const QString &text = QString(
"%1[%2]").arg(item.m_itemName).arg(item.m_songs.count());
295 QListWidgetItem *it =
new QListWidgetItem(
m_listWidget);
296 it->setToolTip(text);
306 if(index < 0 || index >=
m_items.count())
315 const QString &text = QString(
"%1[%2]").arg(item.
m_itemName).arg(item.
m_songs.count());
323 if(dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed).isEmpty())
329 m_dateBox->addItems(dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed));
#define TTKStaticCast(x, y)
static const QString ListWidgetStyle02
void setText(const QString &text) const
bool fromFile(const QString &name)
The class of the messagebox widget.
#define QtItemSetTextAlignment(p, a)
Item text alignment.
static const QString ColorStyle05
virtual bool readBuffer(MusicSongItemList &items) overridefinal
static const QString ScrollBarStyle03
static const QString ColorStyle01
Color.
static const QString ColorStyle02
static const QString PushButtonStyle03
The class of the playlist backup module.
virtual void runBackup() overridefinal
#define TTK_LOG_STREAM(msg)
static const QString ColorStyle08
QString duration() const noexcept
static const QString BackgroundStyle10
QString name() const noexcept
static const QString MenuStyle02
static const QString ColorStyle03
The class of the music song item.
The class of the tkpl config manager.
static constexpr unsigned int Color01
Color QRgb.
The class of the music song info.
static QString format(const QString &time, const QString &format)
TTK_MODULE_EXPORT bool isNetworkUrl(const QString &path)