Files
GUI/src/forms/settings/SettingFormWidget.cpp

121 lines
4.0 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)
, mListWidget(new QListWidget(ui->contentWidget))
{
QHBoxLayout* layout = new QHBoxLayout(ui->contentWidget);
// layout->setMargin(0);
layout->setContentsMargins(0, 0, 0, 0);
ui->contentWidget->setObjectName("settingContentWidget");
mListWidget = new QListWidget(ui->contentWidget);
mListWidget->setObjectName("LeftBtnBar");
mListWidget->setFixedWidth(250);
QStringList menus;
menus << tr("System Correction") << tr("Network Settings") << tr("General") << tr("Operation Log") << tr("Account") << tr("About") << tr("Help");
mListWidget->addItems(menus);
mListWidget->setSpacing(3);
for (int i = 0; i < menus.count(); ++i)
{
mListWidget->item(i)->setTextAlignment(Qt::AlignCenter);
}
layout->addWidget(mListWidget);
//reset visible for AnonymousMode
mListWidget->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);
mListWidget->setCurrentRow(0);
connect(mListWidget, &QListWidget::currentRowChanged, [=](int rowindex)
{
if(rowindex < 0)
{
return;
}
if(mListWidget->item(rowindex)->text() == tr("Help") && stackedWidget->widget(rowindex) == nullptr)
{
stackedWidget->addWidget(new HelpForm(ui->commandWidget));
}
stackedWidget->setCurrentIndex(rowindex);
});
connect(EventCenter::Default(), &EventCenter::AnonymousModeChanged, [=]()
{
mListWidget->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") ;
mListWidget->clear();
mListWidget->addItems(menus);
for (int i = 0; i < menus.count(); ++i)
{
mListWidget->item(i)->setTextAlignment(Qt::AlignCenter);
}
});
}
SettingFormWidget::~SettingFormWidget()
{
}
void SettingFormWidget::hideAdminArea()
{
mListWidget->setCurrentRow(0);
mListWidget->item(1)->setHidden(true);
mListWidget->item(4)->setHidden(true);
}
void SettingFormWidget::showAdminArea()
{
mListWidget->setCurrentRow(0);
mListWidget->item(1)->setHidden(false);
mListWidget->item(4)->setHidden(false);
}