feat: Add top and bottom button in UserOperationLog page.
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include "src/dialogs/SelectDialog.h"
|
||||
#include "windows/MainWindow.h"
|
||||
#include "event/EventCenter.h"
|
||||
|
||||
QString fileNameToDate(QString fileName)
|
||||
{
|
||||
return fileName.split("log/UserOperationLog/")[1].replace("-op.log", "");
|
||||
@@ -25,51 +26,59 @@ QString dateToFileName(QString date)
|
||||
UserOperationLogForm::UserOperationLogForm(QWidget* parent)
|
||||
: QWidget (parent)
|
||||
{
|
||||
layout = new QVBoxLayout(this);
|
||||
mLayout = new QVBoxLayout(this);
|
||||
QWidget* header = new QWidget(this);
|
||||
QHBoxLayout* headerLayout = new QHBoxLayout(header);
|
||||
QLabel* logdate = new QLabel(tr("Log Date:"));
|
||||
headerLayout->addWidget(logdate);
|
||||
btn = new QPushButton(header);
|
||||
headerLayout->addWidget(btn, 0, Qt::AlignLeft);
|
||||
mDateButton = new QPushButton(header);
|
||||
headerLayout->addWidget(mDateButton, 0, Qt::AlignLeft);
|
||||
mTopButton = new QPushButton(header);
|
||||
mTopButton->setFixedWidth(150);
|
||||
mTopButton->setText(tr("Top"));
|
||||
mBottomButton = new QPushButton(header);
|
||||
mBottomButton->setFixedWidth(150);
|
||||
mBottomButton->setText(tr("Bottom"));
|
||||
headerLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
|
||||
headerLayout->addWidget(mTopButton, 0, Qt::AlignLeft);
|
||||
headerLayout->addWidget(mBottomButton, 0, Qt::AlignLeft);
|
||||
|
||||
model = new LogFileTableModel(this);
|
||||
model->setHeader(QStringList()<< tr("Operation Date") << tr("Operation Time") << tr("User") << tr("Operation"));
|
||||
mModel = new LogFileTableModel(this);
|
||||
mModel->setHeader(QStringList()<< tr("Operation Date") << tr("Operation Time") << tr("User") << tr("Operation"));
|
||||
loadUserOperationLog();
|
||||
table = new SlideTableView(this);
|
||||
layout->addWidget(header);
|
||||
layout->addWidget(table);
|
||||
table->setModel(model);
|
||||
table->setAlternatingRowColors(true);
|
||||
table->setSelectionMode(QAbstractItemView::NoSelection);
|
||||
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
table->verticalHeader()->setDefaultSectionSize(38);
|
||||
table->horizontalHeader()->setStretchLastSection(true);
|
||||
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
|
||||
table->setColumnWidth(0, 250);
|
||||
table->setColumnWidth(1, 250);
|
||||
table->setColumnWidth(2, 200);
|
||||
table->verticalScrollBar()->setStyleSheet("QScrollBar:vertical { width: 40px; }");;
|
||||
mLogTable = new SlideTableView(this);
|
||||
mLayout->addWidget(header);
|
||||
mLayout->addWidget(mLogTable);
|
||||
mLogTable->setModel(mModel);
|
||||
mLogTable->setAlternatingRowColors(true);
|
||||
mLogTable->setSelectionMode(QAbstractItemView::NoSelection);
|
||||
mLogTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
mLogTable->verticalHeader()->setDefaultSectionSize(38);
|
||||
mLogTable->horizontalHeader()->setStretchLastSection(true);
|
||||
mLogTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
|
||||
mLogTable->setColumnWidth(0, 250);
|
||||
mLogTable->setColumnWidth(1, 250);
|
||||
mLogTable->setColumnWidth(2, 200);
|
||||
mLogTable->verticalScrollBar()->setStyleSheet("QScrollBar:vertical { width: 40px; }");;
|
||||
|
||||
//暂时先放构造函数,之后需要移除,等需要时再调用
|
||||
|
||||
connect(btn, &QPushButton::clicked, [=]() {
|
||||
connect(mDateButton, &QPushButton::clicked, [=]() {
|
||||
auto files = UserOperationLog::getHistoryLogFiles();
|
||||
QStringList dates;
|
||||
for (auto f : files)
|
||||
{
|
||||
dates << fileNameToDate(f);
|
||||
}
|
||||
if (!dialog) {
|
||||
dialog = new SelectDialog(this);
|
||||
dialog->setWindowModality(Qt::WindowModal);
|
||||
if (!mSelectDateDialog) {
|
||||
mSelectDateDialog = new SelectDialog(this);
|
||||
mSelectDateDialog->setWindowModality(Qt::WindowModal);
|
||||
}
|
||||
dialog->setValues(dates);
|
||||
if (!selectedDateStr.isEmpty()) dialog->setSelectedValue(selectedDateStr);
|
||||
if (dialog->exec() == QDialog::Accepted)
|
||||
mSelectDateDialog->setValues(dates);
|
||||
if (!mSelectedDateStr.isEmpty()) mSelectDateDialog->setSelectedValue(mSelectedDateStr);
|
||||
if (mSelectDateDialog->exec() == QDialog::Accepted)
|
||||
{
|
||||
QString date = dialog->getSelectedValue();
|
||||
QString date = mSelectDateDialog->getSelectedValue();
|
||||
QString f = dateToFileName(date);
|
||||
this->loadUserOperationLog(f, date);
|
||||
}
|
||||
@@ -77,9 +86,12 @@ UserOperationLogForm::UserOperationLogForm(QWidget* parent)
|
||||
|
||||
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
|
||||
logdate->setText(tr("Log Date:"));
|
||||
model->setHeader(QStringList()<< tr("Operation Date") << tr("Operation Time") << tr("User") << tr("Operation"));
|
||||
mModel->setHeader(QStringList()<< tr("Operation Date") << tr("Operation Time") << tr("User") << tr("Operation"));
|
||||
});
|
||||
|
||||
connect(mTopButton, &QPushButton::clicked, mLogTable, &SlideTableView::scrollToTop);
|
||||
connect(mBottomButton, &QPushButton::clicked, mLogTable, &SlideTableView::scrollToBottom);
|
||||
|
||||
}
|
||||
|
||||
UserOperationLogForm::~UserOperationLogForm() {
|
||||
@@ -90,19 +102,19 @@ UserOperationLogForm::~UserOperationLogForm() {
|
||||
void UserOperationLogForm::loadUserOperationLog() {
|
||||
|
||||
QString filePath = UserOperationLog::Default()->currentLogFile();
|
||||
btn->setText(fileNameToDate(filePath));
|
||||
mDateButton->setText(fileNameToDate(filePath));
|
||||
loadUserOperationLog(filePath, fileNameToDate(filePath));
|
||||
selectedDateStr = fileNameToDate(filePath);
|
||||
mSelectedDateStr = fileNameToDate(filePath);
|
||||
}
|
||||
|
||||
void UserOperationLogForm::loadUserOperationLog(const QString& fileName, const QString& date) {
|
||||
selectedDateStr = date;
|
||||
model->setFileName(dateToFileName(date));
|
||||
btn->setText(date);
|
||||
mSelectedDateStr = date;
|
||||
mModel->setFileName(dateToFileName(date));
|
||||
mDateButton->setText(date);
|
||||
}
|
||||
|
||||
void UserOperationLogForm::showEvent(QShowEvent *aEvent)
|
||||
{
|
||||
loadUserOperationLog("", selectedDateStr);
|
||||
loadUserOperationLog("", mSelectedDateStr);
|
||||
QWidget::showEvent(aEvent);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user