Files
gdmp/medialist.cpp
2025-09-25 16:56:53 +08:00

78 lines
2.2 KiB
C++

#include <QContextMenuEvent>
#include <QFileDialog>
#include "medialist.h"
#include "urldialog.h"
#include "easylogging++.h"
//#include <QDebug>
//#define LOG(INFO) qDebug()
#pragma execution_character_set("utf-8")
MediaList::MediaList(QWidget *parent)
: QListWidget(parent),
menu_(this),
m_stActAddFile(this),
m_stActAddUrl(this),
m_stActRemove(this),
m_stActClearList(this)
{
}
MediaList::~MediaList()
{
}
bool MediaList::Init()
{
m_stActAddFile.setText("添加文件");
menu_.addAction(&m_stActAddFile);
m_stActAddUrl.setText("添加地址");
menu_.addAction(&m_stActAddUrl);
m_stActRemove.setText("移除");
menu_.addAction(&m_stActRemove);
m_stActClearList.setText("清空列表");
menu_.addAction(&m_stActClearList);
connect(&m_stActAddFile, &QAction::triggered, this, &MediaList::AddFile);
connect(&m_stActAddUrl, &QAction::triggered, this, &MediaList::AddUrl);
connect(&m_stActRemove, &QAction::triggered, this, &MediaList::RemoveFile);
connect(&m_stActClearList, &QAction::triggered, this, &QListWidget::clear);
return true;
}
void MediaList::contextMenuEvent(QContextMenuEvent* event)
{
menu_.exec(event->globalPos());
}
void MediaList::AddFile()
{
QStringList listFileName = QFileDialog::getOpenFileNames(this, "打开文件", QDir::homePath(),
"视频文件(*.ts *.mkv *.rmvb *.mp4 *.avi *.flv *.wmv *.3gp *.wav *.mp3 *.aac)");
for (QString strFileName : listFileName) {
emit SigAddFile(strFileName);
}
}
void MediaList::AddUrl()
{
UrlDialog urlDialog(this);
int nResult = urlDialog.exec();
if(nResult == QDialog::Accepted) {
//
QString url = urlDialog.GetUrl();
LOG(INFO) << "Add url ok, url: " << url.toStdString();
if(!url.isEmpty()) {
LOG(INFO) << "SigAddFile url: " << url.toStdString();
emit SigAddFile(url);
} else {
LOG(ERROR) << "Add url no";
}
} else {
LOG(WARNING) << "Add url Rejected";
}
}
void MediaList::RemoveFile()
{
takeItem(currentRow());
}