From dd569e9f61a3b28eeca6ed09ce93bf97d0283d2a Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Thu, 8 Aug 2024 16:41:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD=EF=BC=8C=E8=B0=83=E6=95=B4=E6=B8=85?= =?UTF-8?q?=E7=A9=BA=E3=80=81=E6=89=93=E5=BC=80=E3=80=81=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E7=AD=89=E5=8A=9F=E8=83=BD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scanner2/dialog_logmanager.cpp | 75 ++++++++++++++++++------------ 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/app/scanner2/dialog_logmanager.cpp b/app/scanner2/dialog_logmanager.cpp index daf5df1b..67336bc6 100644 --- a/app/scanner2/dialog_logmanager.cpp +++ b/app/scanner2/dialog_logmanager.cpp @@ -1,6 +1,7 @@ #include "dialog_logmanager.h" #include "ui_dialog_logmanager.h" #include "base/HGUtility.h" +#include "log/log.h" #include #include #include @@ -15,28 +16,31 @@ Dialog_LogManager::Dialog_LogManager(QWidget *parent) : ui->setupUi(this); HGChar logFilePath[512]; - HGBase_GetLogFilePath(logFilePath, 512); + GetLogFileDir("", "", 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->listWidget->setSelectionMode(QListWidget::SingleSelection); 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); + char **moduleList = GetLogFileModuleList("", ""); + if (moduleList != nullptr) + { + char **p = moduleList; + while (*p != nullptr) + { + ui->listWidget->addItem(QString::fromUtf8(*p)); + p++; + } + + ReleaseStringList(moduleList); + } + if(ui->listWidget->count() == 0) ui->btn_export->setEnabled(false); } @@ -53,13 +57,14 @@ void Dialog_LogManager::on_btn_export_clicked() 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()) + + QString fileName = QFileDialog::getSaveFileName(this, tr("Select log file path"), ".", tr("(*.log)")); + if (!fileName.isEmpty()) { - QList files = ui->listWidget->selectedItems(); - for(int i = 0; i < files.size(); i++) + QList modules = ui->listWidget->selectedItems(); + for(int i = 0; i < modules.size(); i++) { - QFile::copy(m_directory + "/" + files.at(i)->text(), directory + "/" + files.at(i)->text()); + ExportLogFile("", "", modules[i]->text().toStdString().c_str(), fileName.toStdString().c_str()); } QMessageBox::information(this, tr("Information"), tr("Log files export finished.")); } @@ -75,20 +80,19 @@ 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) + char **moduleList = GetLogFileModuleList("", ""); + if (moduleList != nullptr) { - QFile file(info.absoluteFilePath()); - file.remove(); + char **p = moduleList; + while (*p != nullptr) + { + DeleteLogFile("", "", *p); + p++; + } + + ReleaseStringList(moduleList); } - //清空列表显示 ui->listWidget->clear(); ui->btn_export->setEnabled(false); QMessageBox::information(this, tr("Information"), tr("All log files cleared.")); @@ -97,6 +101,17 @@ void Dialog_LogManager::on_btn_clear_clicked() void Dialog_LogManager::on_listWidget_itemDoubleClicked(QListWidgetItem *item) { - QString filename = m_directory + "/" + item->text(); - QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + QString moduleName = item->text(); + char **fileNameList = GetLogFileNameList("", "", moduleName.toStdString().c_str()); + if (fileNameList != nullptr) + { + char **p = fileNameList; + while (*p != nullptr) + { + QDesktopServices::openUrl(QUrl::fromLocalFile(*p)); + p++; + } + + ReleaseStringList(fileNameList); + } }