Slide picker
This commit is contained in:
@@ -13,9 +13,20 @@
|
||||
#include <QTableView>
|
||||
#include "components/SlideableTableView.h"
|
||||
#include <QPushButton>
|
||||
#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");
|
||||
}
|
||||
|
||||
UserOperationLogForm::UserOperationLogForm(QWidget *parent) {
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
layout = new QVBoxLayout(this);
|
||||
QWidget* header = new QWidget(this);
|
||||
QHBoxLayout* headerLayout = new QHBoxLayout(header);
|
||||
headerLayout->addWidget(new QLabel(tr("Log Date:")));
|
||||
@@ -25,29 +36,59 @@ UserOperationLogForm::UserOperationLogForm(QWidget *parent) {
|
||||
table = new SlideableTableView(this);
|
||||
layout->addWidget(header);
|
||||
layout->addWidget(table);
|
||||
model = new LogFileTableModel(this);
|
||||
//暂时先放构造函数,之后需要移除,等需要时再调用
|
||||
loadUserOperationLog();
|
||||
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);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
UserOperationLogForm::~UserOperationLogForm() {
|
||||
|
||||
}
|
||||
|
||||
QString fileNameToDate(QString fileName)
|
||||
{
|
||||
return fileName.replace("./log/","").replace("-op.log","");
|
||||
}
|
||||
|
||||
void UserOperationLogForm::loadUserOperationLog() {
|
||||
LogFileTableModel* model = new LogFileTableModel(this);
|
||||
|
||||
QString filePath = UserOperationLog::Default()->currentLogFile();
|
||||
model->setFileName(filePath);
|
||||
btn->setText(fileNameToDate(filePath));
|
||||
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);
|
||||
QStringList header;
|
||||
header<<"Operation Date"<<"Operation Time"<<"User"<<"Operation";
|
||||
model->setHeader(header);
|
||||
// UserOperationLog::getHistoryLogFiles();
|
||||
delete table;
|
||||
table = new SlideableTableView(this);
|
||||
layout->addWidget(table);
|
||||
table->setModel(model);
|
||||
|
||||
table->setAlternatingRowColors(true);
|
||||
table->setSelectionMode(QAbstractItemView::NoSelection);
|
||||
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
|
||||
Reference in New Issue
Block a user