#include "dialog_logmanager.h" #include "ui_dialog_logmanager.h" #include "base/HGUtility.h" #include "log/log.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]; 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::SingleSelection); 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); } 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()) { QList modules = ui->listWidget->selectedItems(); for(int i = 0; i < modules.size(); i++) { ExportLogFile("", "", modules[i]->text().toStdString().c_str(), fileName.toStdString().c_str()); } 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) { 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.")); } } 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); } }