Files
GUI/src/forms/settings/SettingFormWidget.cpp
2024-04-26 13:42:41 +08:00

106 lines
3.5 KiB
C++

#include "SettingFormWidget.h"
#include <QHBoxLayout>
#include <QStackedWidget>
#include <QStringListModel>
#include <QListWidgetItem>
#include <QListWidget>
#include "ui_TabFormWidget.h"
#include "UserOperationLogForm.h"
#include "GeneralForm.h"
#include "SystemSettingForm.h"
#include "AccountTableForm.h"
#include "event/EventCenter.h"
#include "json/jsonobject.h"
#include "AboutForm.h"
#include "UserOperationLogForm.h"
#include "SystemCorrectionForm.h"
#include "HelpForm.h"
SettingFormWidget::SettingFormWidget(QWidget* aParent, Qt::WindowFlags f)
: TabFormWidget(aParent)
{
QHBoxLayout* layout = new QHBoxLayout(ui->contentWidget);
// layout->setMargin(0);
layout->setContentsMargins(0, 0, 0, 0);
ui->contentWidget->setObjectName("settingContentWidget");
QListWidget* widget = new QListWidget(ui->contentWidget);
widget->setObjectName("LeftBtnBar");
widget->setFixedWidth(250);
QStringList menus;
menus << tr("System Correction") << tr("Network Settings") << tr("General") << tr("Operation Log") << tr("Account") << tr("About") << tr("Help");
widget->addItems(menus);
widget->setSpacing(3);
for (int i = 0; i < menus.count(); ++i)
{
widget->item(i)->setTextAlignment(Qt::AlignCenter);
}
layout->addWidget(widget);
//reset visible for AnonymousMode
widget->item(3)->setHidden(JsonObject::Instance()->getAnonymousMode());
QStackedWidget* stackedWidget = new QStackedWidget(ui->contentWidget);
QWidget* spacerLine = new QWidget(this);
spacerLine->setObjectName("verSpaceLine");
layout->addWidget(spacerLine);
layout->addWidget(stackedWidget);
ui->commandWidget->hide();
SystemCorrectionForm* systemCorrectionForm = new SystemCorrectionForm(ui->commandWidget);
stackedWidget->addWidget(systemCorrectionForm);
SystemSettingForm* systemSetting = new SystemSettingForm(ui->commandWidget);
stackedWidget->addWidget(systemSetting);
GeneralForm* generalForm = new GeneralForm(ui->commandWidget);
stackedWidget->addWidget(generalForm);
UserOperationLogForm* operationLog = new UserOperationLogForm(ui->commandWidget);
stackedWidget->addWidget(operationLog);
AccountTableForm* acc = new AccountTableForm(ui->commandWidget);
stackedWidget->addWidget(acc);
AboutForm* about = new AboutForm(ui->commandWidget);
stackedWidget->addWidget(about);
//HelpForm* help = new HelpForm(ui->commandWidget);
//stackedWidget->addWidget(help);
widget->setCurrentRow(0);
connect(widget, &QListWidget::currentRowChanged, [=](int rowindex)
{
if(rowindex < 0)
{
return;
}
if(widget->item(rowindex)->text() == tr("Help") && stackedWidget->widget(rowindex) == nullptr)
{
stackedWidget->addWidget(new HelpForm(ui->commandWidget));
}
stackedWidget->setCurrentIndex(rowindex);
});
connect(EventCenter::Default(), &EventCenter::AnonymousModeChanged, [=]()
{
widget->item(3)->setHidden(JsonObject::Instance()->getAnonymousMode());
});
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]()
{
QStringList menus;
menus << tr("System Correction") << tr("Network Settings") << tr("General") << tr("Operation Log") << tr("Account") << tr("About") << tr("Help") ;
widget->clear();
widget->addItems(menus);
for (int i = 0; i < menus.count(); ++i)
{
widget->item(i)->setTextAlignment(Qt::AlignCenter);
}
});
}
SettingFormWidget::~SettingFormWidget()
{
}