2022-05-03 10:25:52 +00:00
|
|
|
|
#include "dialog_logmanager.h"
|
|
|
|
|
#include "ui_dialog_logmanager.h"
|
|
|
|
|
#include "base/HGUtility.h"
|
2024-08-08 08:41:37 +00:00
|
|
|
|
#include "log/log.h"
|
2022-05-03 10:25:52 +00:00
|
|
|
|
#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];
|
2024-08-08 08:41:37 +00:00
|
|
|
|
GetLogFileDir("", "", logFilePath, 512);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
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);
|
2024-08-08 08:41:37 +00:00
|
|
|
|
ui->listWidget->setSelectionMode(QListWidget::SingleSelection);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
|
|
|
|
ui->btn_directory->setEnabled(false);
|
|
|
|
|
ui->cbox_fileType->setEnabled(false);
|
|
|
|
|
|
2024-08-08 08:41:37 +00:00
|
|
|
|
char **moduleList = GetLogFileModuleList("", "");
|
|
|
|
|
if (moduleList != nullptr)
|
|
|
|
|
{
|
|
|
|
|
char **p = moduleList;
|
|
|
|
|
while (*p != nullptr)
|
|
|
|
|
{
|
|
|
|
|
ui->listWidget->addItem(QString::fromUtf8(*p));
|
|
|
|
|
p++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ReleaseStringList(moduleList);
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-03 10:25:52 +00:00
|
|
|
|
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;
|
|
|
|
|
}
|
2024-08-08 08:41:37 +00:00
|
|
|
|
|
|
|
|
|
QString fileName = QFileDialog::getSaveFileName(this, tr("Select log file path"), ".", tr("(*.log)"));
|
|
|
|
|
if (!fileName.isEmpty())
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2024-08-08 08:41:37 +00:00
|
|
|
|
QList<QListWidgetItem*> modules = ui->listWidget->selectedItems();
|
|
|
|
|
for(int i = 0; i < modules.size(); i++)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2024-08-08 08:41:37 +00:00
|
|
|
|
ExportLogFile("", "", modules[i]->text().toStdString().c_str(), fileName.toStdString().c_str());
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
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)
|
|
|
|
|
{
|
2024-08-08 08:41:37 +00:00
|
|
|
|
char **moduleList = GetLogFileModuleList("", "");
|
|
|
|
|
if (moduleList != nullptr)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2024-08-08 08:41:37 +00:00
|
|
|
|
char **p = moduleList;
|
|
|
|
|
while (*p != nullptr)
|
|
|
|
|
{
|
|
|
|
|
DeleteLogFile("", "", *p);
|
|
|
|
|
p++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ReleaseStringList(moduleList);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
{
|
2024-08-08 08:41:37 +00:00
|
|
|
|
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);
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|