103 lines
3.1 KiB
C++
103 lines
3.1 KiB
C++
|
#include "dialog_logmanager.h"
|
|||
|
#include "ui_dialog_logmanager.h"
|
|||
|
#include "base/HGUtility.h"
|
|||
|
#include <QDir>
|
|||
|
#include <QFile>
|
|||
|
#include <QFileInfo>
|
|||
|
#include <QFileDialog>
|
|||
|
#include <QMessageBox>
|
|||
|
#include <QDesktopServices>
|
|||
|
|
|||
|
Dialog_LogManager::Dialog_LogManager(QWidget *parent) :
|
|||
|
QDialog(parent),
|
|||
|
ui(new Ui::Dialog_LogManager)
|
|||
|
{
|
|||
|
ui->setupUi(this);
|
|||
|
|
|||
|
HGChar logFilePath[512];
|
|||
|
HGBase_GetLogFilePath(logFilePath, 512);
|
|||
|
m_directory = logFilePath;
|
|||
|
|
|||
|
ui->lineEdit_directory->setText(m_directory);
|
|||
|
m_suffix = "log";
|
|||
|
ui->cbox_fileType->setItemText(6, m_suffix + "(*." + m_suffix + ")");
|
|||
|
ui->cbox_fileType->setCurrentIndex(6);
|
|||
|
ui->listWidget->setSelectionMode(QListWidget::ExtendedSelection);
|
|||
|
|
|||
|
ui->btn_directory->setEnabled(false);
|
|||
|
ui->cbox_fileType->setEnabled(false);
|
|||
|
|
|||
|
//Get the list of m_suffix files in the m_directory folder
|
|||
|
QDir dir(m_directory);
|
|||
|
QStringList filter;
|
|||
|
filter << "*." + m_suffix;
|
|||
|
QFileInfoList log_list;
|
|||
|
log_list = dir.entryInfoList(filter, QDir::Files);
|
|||
|
QStringList filename_list;
|
|||
|
foreach(QFileInfo info, log_list)
|
|||
|
filename_list.append(info.fileName());
|
|||
|
ui->listWidget->addItems(filename_list);
|
|||
|
if(ui->listWidget->count() == 0)
|
|||
|
ui->btn_export->setEnabled(false);
|
|||
|
}
|
|||
|
|
|||
|
Dialog_LogManager::~Dialog_LogManager()
|
|||
|
{
|
|||
|
delete ui;
|
|||
|
}
|
|||
|
|
|||
|
void Dialog_LogManager::on_btn_export_clicked()
|
|||
|
{
|
|||
|
if(ui->listWidget->selectedItems().isEmpty())
|
|||
|
{
|
|||
|
QMessageBox::warning(this, tr("Warning"), tr("Please select file in the list."));
|
|||
|
return;
|
|||
|
}
|
|||
|
QString directory = QFileDialog::getExistingDirectory(nullptr, tr("Choose saving path"), "", QFileDialog::ShowDirsOnly);
|
|||
|
if (!directory.isEmpty())
|
|||
|
{
|
|||
|
QList<QListWidgetItem*> files = ui->listWidget->selectedItems();
|
|||
|
for(int i = 0; i < files.size(); i++)
|
|||
|
{
|
|||
|
QFile::copy(m_directory + "/" + files.at(i)->text(), directory + "/" + files.at(i)->text());
|
|||
|
}
|
|||
|
QMessageBox::information(this, tr("Information"), tr("Log files export finished."));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void Dialog_LogManager::on_btn_cancel_clicked()
|
|||
|
{
|
|||
|
close();
|
|||
|
}
|
|||
|
|
|||
|
void Dialog_LogManager::on_btn_clear_clicked()
|
|||
|
{
|
|||
|
int ret = QMessageBox::question(this, tr("Question"), tr("All log files will be cleared.\nContinue to clear?"));
|
|||
|
if (ret == QMessageBox::Yes)
|
|||
|
{
|
|||
|
//获取LOG_PATH文件夹下的Log文件列表
|
|||
|
QDir dir(m_directory);
|
|||
|
QStringList filter;
|
|||
|
filter << "*." + m_suffix;
|
|||
|
QFileInfoList log_list;
|
|||
|
log_list = dir.entryInfoList(filter, QDir::Files);
|
|||
|
|
|||
|
foreach(QFileInfo info, log_list)
|
|||
|
{
|
|||
|
QFile file(info.absoluteFilePath());
|
|||
|
file.remove();
|
|||
|
}
|
|||
|
|
|||
|
//清空列表显示
|
|||
|
ui->listWidget->clear();
|
|||
|
ui->btn_export->setEnabled(false);
|
|||
|
QMessageBox::information(this, tr("Information"), tr("All log files cleared."));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void Dialog_LogManager::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
|
|||
|
{
|
|||
|
QString filename = m_directory + "/" + item->text();
|
|||
|
QDesktopServices::openUrl(QUrl::fromLocalFile(filename));
|
|||
|
}
|