2021-11-23 13:22:00 +08:00
|
|
|
//
|
|
|
|
|
// Created by Krad on 2021/11/23.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "UserOperationLogForm.h"
|
|
|
|
|
#include <QVBoxLayout>
|
2021-11-23 16:53:36 +08:00
|
|
|
#include <QHBoxLayout>
|
2021-11-23 13:22:00 +08:00
|
|
|
#include <QAbstractListModel>
|
|
|
|
|
#include "log/UserOperationLog.h"
|
|
|
|
|
#include "log/LogFileTableModel.h"
|
|
|
|
|
#include <QHeaderView>
|
2021-11-23 16:53:36 +08:00
|
|
|
#include <QLabel>
|
|
|
|
|
#include <QTableView>
|
|
|
|
|
#include "components/SlideableTableView.h"
|
|
|
|
|
#include <QPushButton>
|
2021-11-26 10:49:09 +08:00
|
|
|
#include "LogDateSelectDialog.h"
|
|
|
|
|
#include "mainwindow.h"
|
|
|
|
|
|
|
|
|
|
QString fileNameToDate(QString fileName)
|
|
|
|
|
{
|
|
|
|
|
return fileName.split("log/")[1].replace("-op.log","");
|
|
|
|
|
}
|
|
|
|
|
QString dateToFileName(QString date)
|
|
|
|
|
{
|
|
|
|
|
return QString("./log/") + date + QString("-op.log");
|
|
|
|
|
}
|
2021-11-23 13:22:00 +08:00
|
|
|
|
|
|
|
|
UserOperationLogForm::UserOperationLogForm(QWidget *parent) {
|
2021-11-26 10:49:09 +08:00
|
|
|
layout = new QVBoxLayout(this);
|
2021-11-23 13:22:00 +08:00
|
|
|
QWidget* header = new QWidget(this);
|
2021-11-23 16:53:36 +08:00
|
|
|
QHBoxLayout* headerLayout = new QHBoxLayout(header);
|
|
|
|
|
headerLayout->addWidget(new QLabel(tr("Log Date:")));
|
|
|
|
|
btn = new QPushButton(header);
|
|
|
|
|
headerLayout->addWidget(btn, 0, Qt::AlignLeft);
|
|
|
|
|
headerLayout->addSpacerItem(new QSpacerItem(20,20,QSizePolicy::Expanding));
|
|
|
|
|
table = new SlideableTableView(this);
|
2021-11-23 13:22:00 +08:00
|
|
|
layout->addWidget(header);
|
|
|
|
|
layout->addWidget(table);
|
2021-11-26 10:49:09 +08:00
|
|
|
model = new LogFileTableModel(this);
|
2021-11-23 13:22:00 +08:00
|
|
|
//暂时先放构造函数,之后需要移除,等需要时再调用
|
|
|
|
|
loadUserOperationLog();
|
2021-11-26 10:49:09 +08:00
|
|
|
connect(btn,&QPushButton::clicked,[=](){
|
|
|
|
|
auto files = UserOperationLog::getHistoryLogFiles();
|
|
|
|
|
QStringList dates;
|
|
|
|
|
for (auto f :files)
|
|
|
|
|
{
|
|
|
|
|
dates<<fileNameToDate(f);
|
|
|
|
|
}
|
|
|
|
|
if(!dialog){
|
|
|
|
|
dialog = new LogDateSelectDialog(this);
|
|
|
|
|
dialog->setWindowModality(Qt::WindowModal);
|
|
|
|
|
}
|
|
|
|
|
dialog->setAvailableDates(dates);
|
|
|
|
|
if (!selectedDateStr.isEmpty()) dialog->setSelectedValue(selectedDateStr);
|
|
|
|
|
if (dialog->exec() == QDialog::Accepted)
|
|
|
|
|
{
|
|
|
|
|
QString date = dialog->getSelectedValue();
|
|
|
|
|
QString f = dateToFileName(date);
|
|
|
|
|
this->loadUserOperationLog(f,date);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2021-11-23 13:22:00 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UserOperationLogForm::~UserOperationLogForm() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-23 16:53:36 +08:00
|
|
|
|
2021-11-23 13:22:00 +08:00
|
|
|
void UserOperationLogForm::loadUserOperationLog() {
|
2021-11-26 10:49:09 +08:00
|
|
|
|
2021-11-23 13:22:00 +08:00
|
|
|
QString filePath = UserOperationLog::Default()->currentLogFile();
|
|
|
|
|
model->setFileName(filePath);
|
2021-11-23 16:53:36 +08:00
|
|
|
btn->setText(fileNameToDate(filePath));
|
2021-11-26 10:49:09 +08:00
|
|
|
loadUserOperationLog(filePath, fileNameToDate(filePath));
|
|
|
|
|
selectedDateStr = fileNameToDate(filePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UserOperationLogForm::loadUserOperationLog(const QString& fileName, const QString& date) {
|
|
|
|
|
selectedDateStr = date;
|
|
|
|
|
model->setFileName(dateToFileName(date));
|
|
|
|
|
btn->setText(date);
|
2021-11-23 13:22:00 +08:00
|
|
|
QStringList header;
|
|
|
|
|
header<<"Operation Date"<<"Operation Time"<<"User"<<"Operation";
|
|
|
|
|
model->setHeader(header);
|
|
|
|
|
// UserOperationLog::getHistoryLogFiles();
|
2021-11-26 10:49:09 +08:00
|
|
|
delete table;
|
|
|
|
|
table = new SlideableTableView(this);
|
|
|
|
|
layout->addWidget(table);
|
2021-11-23 13:22:00 +08:00
|
|
|
table->setModel(model);
|
2021-11-26 10:49:09 +08:00
|
|
|
|
2021-11-23 13:22:00 +08:00
|
|
|
table->setAlternatingRowColors(true);
|
2021-11-23 16:53:36 +08:00
|
|
|
table->setSelectionMode(QAbstractItemView::NoSelection);
|
2021-11-23 13:22:00 +08:00
|
|
|
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
|
|
|
table->verticalHeader()->setDefaultSectionSize(38);
|
|
|
|
|
table->horizontalHeader()->setStretchLastSection(true);
|
|
|
|
|
table->setColumnWidth(0,250);
|
|
|
|
|
table->setColumnWidth(1,250);
|
|
|
|
|
}
|