#include "dialog_logmanager.h" #include "ui_dialog_logmanager.h" #include "base/HGUtility.h" #include "base/HGInfo.h" #include #include #include #include #include #include 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 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); HGBase_DisableInfo(); foreach(QFileInfo info, log_list) { QFile file(info.absoluteFilePath()); file.remove(); } HGBase_EnableInfo(); //清空列表显示 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)); }