code_app/app/scanner2/dialog_logmanager.cpp

118 lines
3.1 KiB
C++
Raw Normal View History

2022-05-03 10:25:52 +00:00
#include "dialog_logmanager.h"
#include "ui_dialog_logmanager.h"
#include "base/HGUtility.h"
#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];
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);
ui->listWidget->setSelectionMode(QListWidget::SingleSelection);
2022-05-03 10:25:52 +00:00
ui->btn_directory->setEnabled(false);
ui->cbox_fileType->setEnabled(false);
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;
}
QString fileName = QFileDialog::getSaveFileName(this, tr("Select log file path"), ".", tr("(*.log)"));
if (!fileName.isEmpty())
2022-05-03 10:25:52 +00:00
{
QList<QListWidgetItem*> modules = ui->listWidget->selectedItems();
for(int i = 0; i < modules.size(); i++)
2022-05-03 10:25:52 +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)
{
char **moduleList = GetLogFileModuleList("", "");
if (moduleList != nullptr)
2022-05-03 10:25:52 +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)
{
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
}