From 596d06b67cd11ee60054699c37e09dc4327d9609 Mon Sep 17 00:00:00 2001 From: sunwen Date: Fri, 24 May 2024 13:51:58 +0800 Subject: [PATCH] fix: Hide network settings and user account page when normal user login. --- src/forms/settings/SettingFormWidget.cpp | 43 +++++++++++++++--------- src/forms/settings/SettingFormWidget.h | 7 ++++ 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/forms/settings/SettingFormWidget.cpp b/src/forms/settings/SettingFormWidget.cpp index 88410fe..5383d6b 100644 --- a/src/forms/settings/SettingFormWidget.cpp +++ b/src/forms/settings/SettingFormWidget.cpp @@ -20,25 +20,26 @@ 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"); - QListWidget* widget = new QListWidget(ui->contentWidget); - widget->setObjectName("LeftBtnBar"); - widget->setFixedWidth(250); + 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"); - widget->addItems(menus); - widget->setSpacing(3); + mListWidget->addItems(menus); + mListWidget->setSpacing(3); for (int i = 0; i < menus.count(); ++i) { - widget->item(i)->setTextAlignment(Qt::AlignCenter); + mListWidget->item(i)->setTextAlignment(Qt::AlignCenter); } - layout->addWidget(widget); + layout->addWidget(mListWidget); //reset visible for AnonymousMode - widget->item(3)->setHidden(JsonObject::Instance()->getAnonymousMode()); + mListWidget->item(3)->setHidden(JsonObject::Instance()->getAnonymousMode()); QStackedWidget* stackedWidget = new QStackedWidget(ui->contentWidget); QWidget* spacerLine = new QWidget(this); @@ -68,15 +69,15 @@ SettingFormWidget::SettingFormWidget(QWidget* aParent, Qt::WindowFlags f) //HelpForm* help = new HelpForm(ui->commandWidget); //stackedWidget->addWidget(help); - widget->setCurrentRow(0); - connect(widget, &QListWidget::currentRowChanged, [=](int rowindex) + mListWidget->setCurrentRow(0); + connect(mListWidget, &QListWidget::currentRowChanged, [=](int rowindex) { if(rowindex < 0) { return; } - if(widget->item(rowindex)->text() == tr("Help") && stackedWidget->widget(rowindex) == nullptr) + if(mListWidget->item(rowindex)->text() == tr("Help") && stackedWidget->widget(rowindex) == nullptr) { stackedWidget->addWidget(new HelpForm(ui->commandWidget)); } @@ -84,17 +85,17 @@ SettingFormWidget::SettingFormWidget(QWidget* aParent, Qt::WindowFlags f) }); connect(EventCenter::Default(), &EventCenter::AnonymousModeChanged, [=]() { - widget->item(3)->setHidden(JsonObject::Instance()->getAnonymousMode()); + 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") ; - widget->clear(); - widget->addItems(menus); + mListWidget->clear(); + mListWidget->addItems(menus); for (int i = 0; i < menus.count(); ++i) { - widget->item(i)->setTextAlignment(Qt::AlignCenter); + mListWidget->item(i)->setTextAlignment(Qt::AlignCenter); } }); } @@ -103,3 +104,15 @@ SettingFormWidget::~SettingFormWidget() { } + +void SettingFormWidget::hideAdminArea() +{ + mListWidget->item(1)->setHidden(true); + mListWidget->item(4)->setHidden(true); +} + +void SettingFormWidget::showAdminArea() +{ + mListWidget->item(1)->setHidden(false); + mListWidget->item(4)->setHidden(false); +} diff --git a/src/forms/settings/SettingFormWidget.h b/src/forms/settings/SettingFormWidget.h index fa55347..ce085e4 100644 --- a/src/forms/settings/SettingFormWidget.h +++ b/src/forms/settings/SettingFormWidget.h @@ -3,13 +3,20 @@ #include "forms/TabFormWidget.h" +class QListWidget; + class SettingFormWidget : public TabFormWidget { Q_OBJECT public: explicit SettingFormWidget(QWidget* aParent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + void hideAdminArea(); + void showAdminArea(); ~SettingFormWidget(); + +private: + QListWidget* mListWidget; };