[pve-devel] [PATCH pve_flutter_frontend 1/1] refactor: ui: add new settings page and use existing ssl toggle widget

Shan Shaji s.shaji at proxmox.com
Fri Aug 1 12:00:50 CEST 2025


The settings page UI was previously implemented in
proxmox_login_manager. A new screen has now been created  with an added
route and removed the settings page from `proxmox_login_manager`.
This screen reuses the SSL toggle form from the
`proxmox_login_manager` package.

Signed-off-by: Shan Shaji <s.shaji at proxmox.com>
---
 lib/main.dart                    |  8 ++++++++
 lib/pages/pve_settings_page.dart | 23 +++++++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 lib/pages/pve_settings_page.dart

diff --git a/lib/main.dart b/lib/main.dart
index 6a7c5a9..0ffcae7 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,6 +1,7 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
+import 'package:pve_flutter_frontend/pages/pve_settings_page.dart';
 import 'package:pve_flutter_frontend/widgets/pve_first_welcome_screen.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:proxmox_login_manager/proxmox_login_manager.dart';
@@ -227,6 +228,13 @@ class MyApp extends StatelessWidget {
             );
           }
 
+          if (context.name == PveSettingsPage.routePath) {
+            return MaterialPageRoute(
+              settings: context,
+              builder: (context) => PveSettingsPage(),
+            );
+          }
+
           if (authbloc!.state.value is Unauthenticated ||
               context.name == '/login') {
             return MaterialPageRoute(
diff --git a/lib/pages/pve_settings_page.dart b/lib/pages/pve_settings_page.dart
new file mode 100644
index 0000000..0d405c1
--- /dev/null
+++ b/lib/pages/pve_settings_page.dart
@@ -0,0 +1,23 @@
+import 'package:flutter/material.dart';
+import 'package:proxmox_login_manager/proxmox_general_settings_form.dart';
+import 'package:pve_flutter_frontend/widgets/pve_app_bar.dart';
+
+class PveSettingsPage extends StatelessWidget {
+  static final routePath = '/settings';
+
+  const PveSettingsPage({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      appBar: PveAppBar(),
+      body: SingleChildScrollView(
+        child: Column(
+          children: [
+            ProxmoxGeneralSettingsForm(),
+          ],
+        ),
+      ),
+    );
+  }
+}
-- 
2.39.5





More information about the pve-devel mailing list