更新日志管理功能,调整清空、打开、导出日志等功能;
This commit is contained in:
parent
6015d763e2
commit
dd569e9f61
|
@ -1,6 +1,7 @@
|
||||||
#include "dialog_logmanager.h"
|
#include "dialog_logmanager.h"
|
||||||
#include "ui_dialog_logmanager.h"
|
#include "ui_dialog_logmanager.h"
|
||||||
#include "base/HGUtility.h"
|
#include "base/HGUtility.h"
|
||||||
|
#include "log/log.h"
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
@ -15,28 +16,31 @@ Dialog_LogManager::Dialog_LogManager(QWidget *parent) :
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
HGChar logFilePath[512];
|
HGChar logFilePath[512];
|
||||||
HGBase_GetLogFilePath(logFilePath, 512);
|
GetLogFileDir("", "", logFilePath, 512);
|
||||||
m_directory = logFilePath;
|
m_directory = logFilePath;
|
||||||
|
|
||||||
ui->lineEdit_directory->setText(m_directory);
|
ui->lineEdit_directory->setText(m_directory);
|
||||||
m_suffix = "log";
|
m_suffix = "log";
|
||||||
ui->cbox_fileType->setItemText(6, m_suffix + "(*." + m_suffix + ")");
|
ui->cbox_fileType->setItemText(6, m_suffix + "(*." + m_suffix + ")");
|
||||||
ui->cbox_fileType->setCurrentIndex(6);
|
ui->cbox_fileType->setCurrentIndex(6);
|
||||||
ui->listWidget->setSelectionMode(QListWidget::ExtendedSelection);
|
ui->listWidget->setSelectionMode(QListWidget::SingleSelection);
|
||||||
|
|
||||||
ui->btn_directory->setEnabled(false);
|
ui->btn_directory->setEnabled(false);
|
||||||
ui->cbox_fileType->setEnabled(false);
|
ui->cbox_fileType->setEnabled(false);
|
||||||
|
|
||||||
//Get the list of m_suffix files in the m_directory folder
|
char **moduleList = GetLogFileModuleList("", "");
|
||||||
QDir dir(m_directory);
|
if (moduleList != nullptr)
|
||||||
QStringList filter;
|
{
|
||||||
filter << "*." + m_suffix;
|
char **p = moduleList;
|
||||||
QFileInfoList log_list;
|
while (*p != nullptr)
|
||||||
log_list = dir.entryInfoList(filter, QDir::Files);
|
{
|
||||||
QStringList filename_list;
|
ui->listWidget->addItem(QString::fromUtf8(*p));
|
||||||
foreach(QFileInfo info, log_list)
|
p++;
|
||||||
filename_list.append(info.fileName());
|
}
|
||||||
ui->listWidget->addItems(filename_list);
|
|
||||||
|
ReleaseStringList(moduleList);
|
||||||
|
}
|
||||||
|
|
||||||
if(ui->listWidget->count() == 0)
|
if(ui->listWidget->count() == 0)
|
||||||
ui->btn_export->setEnabled(false);
|
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."));
|
QMessageBox::warning(this, tr("Warning"), tr("Please select file in the list."));
|
||||||
return;
|
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<QListWidgetItem*> files = ui->listWidget->selectedItems();
|
QList<QListWidgetItem*> modules = ui->listWidget->selectedItems();
|
||||||
for(int i = 0; i < files.size(); i++)
|
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."));
|
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?"));
|
int ret = QMessageBox::question(this, tr("Question"), tr("All log files will be cleared.\nContinue to clear?"));
|
||||||
if (ret == QMessageBox::Yes)
|
if (ret == QMessageBox::Yes)
|
||||||
{
|
{
|
||||||
//获取LOG_PATH文件夹下的Log文件列表
|
char **moduleList = GetLogFileModuleList("", "");
|
||||||
QDir dir(m_directory);
|
if (moduleList != nullptr)
|
||||||
QStringList filter;
|
|
||||||
filter << "*." + m_suffix;
|
|
||||||
QFileInfoList log_list;
|
|
||||||
log_list = dir.entryInfoList(filter, QDir::Files);
|
|
||||||
|
|
||||||
foreach(QFileInfo info, log_list)
|
|
||||||
{
|
{
|
||||||
QFile file(info.absoluteFilePath());
|
char **p = moduleList;
|
||||||
file.remove();
|
while (*p != nullptr)
|
||||||
|
{
|
||||||
|
DeleteLogFile("", "", *p);
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReleaseStringList(moduleList);
|
||||||
}
|
}
|
||||||
|
|
||||||
//清空列表显示
|
|
||||||
ui->listWidget->clear();
|
ui->listWidget->clear();
|
||||||
ui->btn_export->setEnabled(false);
|
ui->btn_export->setEnabled(false);
|
||||||
QMessageBox::information(this, tr("Information"), tr("All log files cleared."));
|
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)
|
void Dialog_LogManager::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
|
||||||
{
|
{
|
||||||
QString filename = m_directory + "/" + item->text();
|
QString moduleName = item->text();
|
||||||
QDesktopServices::openUrl(QUrl::fromLocalFile(filename));
|
char **fileNameList = GetLogFileNameList("", "", moduleName.toStdString().c_str());
|
||||||
|
if (fileNameList != nullptr)
|
||||||
|
{
|
||||||
|
char **p = fileNameList;
|
||||||
|
while (*p != nullptr)
|
||||||
|
{
|
||||||
|
QDesktopServices::openUrl(QUrl::fromLocalFile(*p));
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ReleaseStringList(fileNameList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue