From 7d87509aa10bed83ca84e34a0b459b2d65607ed4 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Fri, 31 Jul 2026 06:16:44 +0200 Subject: [PATCH] add private to bookmark default open setting --- .../presentation/screens/bookmark_list.dart | 14 +++++++++----- .../presentation/screens/browsing_settings.dart | 9 +++++++++ .../user/data/models/general_settings.dart | 2 +- .../user/data/models/general_settings.g.dart | 1 + 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/apps/weblibre/lib/features/geckoview/features/bookmarks/presentation/screens/bookmark_list.dart b/apps/weblibre/lib/features/geckoview/features/bookmarks/presentation/screens/bookmark_list.dart index 7585f2a3..a1496b96 100644 --- a/apps/weblibre/lib/features/geckoview/features/bookmarks/presentation/screens/bookmark_list.dart +++ b/apps/weblibre/lib/features/geckoview/features/bookmarks/presentation/screens/bookmark_list.dart @@ -1032,18 +1032,22 @@ class BookmarkListScreen extends HookConsumerWidget { const BrowserRoute().go(context); } case BookmarkOpenSetting.regular: + case BookmarkOpenSetting.private: case BookmarkOpenSetting.isolated: - final isolated = - settings.effectiveBookmarkOpenSetting == - BookmarkOpenSetting.isolated; + final effective = settings.effectiveBookmarkOpenSetting; + final tabMode = switch (effective) { + BookmarkOpenSetting.private => TabMode.private, + BookmarkOpenSetting.isolated => TabMode.newIsolated(), + _ => TabMode.regular, + }; await ref .read(tabRepositoryProvider.notifier) .addTab( url: url, - tabMode: isolated ? TabMode.newIsolated() : TabMode.regular, + tabMode: tabMode, selectTab: true, - containerSelection: isolated + containerSelection: effective == BookmarkOpenSetting.isolated ? const TabContainerSelection.unassigned() : const TabContainerSelection.useSelected(), ); diff --git a/apps/weblibre/lib/features/settings/presentation/screens/browsing_settings.dart b/apps/weblibre/lib/features/settings/presentation/screens/browsing_settings.dart index dac9b94c..78ff84bf 100644 --- a/apps/weblibre/lib/features/settings/presentation/screens/browsing_settings.dart +++ b/apps/weblibre/lib/features/settings/presentation/screens/browsing_settings.dart @@ -479,6 +479,15 @@ class _BookmarkOpenBehaviorSection extends HookConsumerWidget { subtitle: Text('Open the bookmark in a regular tab'), secondary: Icon(MdiIcons.tab), ), + RadioListTile.adaptive( + value: BookmarkOpenSetting.private, + title: const Text('Private'), + subtitle: const Text('Open the bookmark in a private tab'), + secondary: Icon( + MdiIcons.dominoMask, + color: AppColors.of(context).privateTabPurple, + ), + ), const RadioListTile.adaptive( value: BookmarkOpenSetting.customTab, title: Text('Custom Tab'), diff --git a/apps/weblibre/lib/features/user/data/models/general_settings.dart b/apps/weblibre/lib/features/user/data/models/general_settings.dart index c5011f1b..5e5e2b01 100644 --- a/apps/weblibre/lib/features/user/data/models/general_settings.dart +++ b/apps/weblibre/lib/features/user/data/models/general_settings.dart @@ -92,7 +92,7 @@ enum TabIntentOpenSetting { regular, private, isolated, ask } /// Determines what happens when a bookmark is tapped in the bookmark list. /// [ask] shows the "open in..." sheet (today's behavior, and the default); /// the other values open the bookmark directly with no intermediate prompt. -enum BookmarkOpenSetting { regular, isolated, customTab, ask } +enum BookmarkOpenSetting { regular, private, isolated, customTab, ask } enum TabDirection { newestFirst, oldestFirst } diff --git a/apps/weblibre/lib/features/user/data/models/general_settings.g.dart b/apps/weblibre/lib/features/user/data/models/general_settings.g.dart index 94e9f373..c0ff576b 100644 --- a/apps/weblibre/lib/features/user/data/models/general_settings.g.dart +++ b/apps/weblibre/lib/features/user/data/models/general_settings.g.dart @@ -1352,6 +1352,7 @@ const _$TabIntentOpenSettingEnumMap = { const _$BookmarkOpenSettingEnumMap = { BookmarkOpenSetting.regular: 'regular', + BookmarkOpenSetting.private: 'private', BookmarkOpenSetting.isolated: 'isolated', BookmarkOpenSetting.customTab: 'customTab', BookmarkOpenSetting.ask: 'ask',