new gesture/toolbar actions
This commit is contained in:
+1
-1
@@ -45,7 +45,7 @@ final class HomeTargetControllerProvider
|
||||
}
|
||||
|
||||
String _$homeTargetControllerHash() =>
|
||||
r'1bb3a879ee569261b1dfcc4c0d8b28ef0cb7f7d3';
|
||||
r'db486c85ce71b99a67fde8ca142da43aef402973';
|
||||
|
||||
/// Applies the configured [HomeTarget] when the browser has nothing to show.
|
||||
|
||||
|
||||
+2
@@ -21,6 +21,7 @@
|
||||
enum ToolbarButtonId {
|
||||
back,
|
||||
forward,
|
||||
home,
|
||||
history,
|
||||
bookmarks,
|
||||
bookmarkToggle,
|
||||
@@ -44,5 +45,6 @@ enum ToolbarButtonId {
|
||||
font,
|
||||
extensionShortcut,
|
||||
toggleGestures,
|
||||
hideTabBar,
|
||||
quit,
|
||||
}
|
||||
|
||||
+13
@@ -46,6 +46,11 @@ const forwardToolbarButtonSpec = ToolbarButtonSpec(
|
||||
defaultFallback: ToolbarButtonId.share,
|
||||
);
|
||||
|
||||
const homeToolbarButtonSpec = ToolbarButtonSpec(
|
||||
id: ToolbarButtonId.home,
|
||||
defaultVisible: false,
|
||||
);
|
||||
|
||||
const historyToolbarButtonSpec = ToolbarButtonSpec(
|
||||
id: ToolbarButtonId.history,
|
||||
defaultVisible: false,
|
||||
@@ -174,9 +179,16 @@ const toggleGesturesToolbarButtonSpec = ToolbarButtonSpec(
|
||||
defaultVisible: false,
|
||||
);
|
||||
|
||||
const hideTabBarToolbarButtonSpec = ToolbarButtonSpec(
|
||||
id: ToolbarButtonId.hideTabBar,
|
||||
defaultVisible: false,
|
||||
canBeFallbackTarget: false,
|
||||
);
|
||||
|
||||
const toolbarButtonSpecs = [
|
||||
backToolbarButtonSpec,
|
||||
forwardToolbarButtonSpec,
|
||||
homeToolbarButtonSpec,
|
||||
historyToolbarButtonSpec,
|
||||
bookmarksToolbarButtonSpec,
|
||||
bookmarkToggleToolbarButtonSpec,
|
||||
@@ -200,6 +212,7 @@ const toolbarButtonSpecs = [
|
||||
fontToolbarButtonSpec,
|
||||
extensionShortcutToolbarButtonSpec,
|
||||
toggleGesturesToolbarButtonSpec,
|
||||
hideTabBarToolbarButtonSpec,
|
||||
quitToolbarButtonSpec,
|
||||
];
|
||||
|
||||
|
||||
+42
@@ -40,6 +40,7 @@ import 'package:weblibre/features/geckoview/features/browser/features/contextual
|
||||
import 'package:weblibre/features/geckoview/features/browser/features/contextual_toolbar/domain/entities/toolbar_config_location.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/features/contextual_toolbar/presentation/models/contextual_toolbar_scope.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/features/contextual_toolbar/presentation/widgets/contextual_bar_buttons.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/presentation/controllers/toolbar_visibility.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/presentation/utils/tab_close_confirmation.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/presentation/widgets/extension_shortcut_menu.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/presentation/widgets/font_size_bottom_sheet.dart';
|
||||
@@ -49,6 +50,7 @@ import 'package:weblibre/features/geckoview/features/browser/presentation/widget
|
||||
import 'package:weblibre/features/geckoview/features/find_in_page/presentation/controllers/find_in_page.dart';
|
||||
import 'package:weblibre/features/geckoview/features/readerview/presentation/controllers/readerable.dart';
|
||||
import 'package:weblibre/features/geckoview/features/tabs/data/entities/tab_mode.dart';
|
||||
import 'package:weblibre/features/geckoview/features/tabs/domain/providers/selected_container.dart';
|
||||
import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/tab.dart';
|
||||
import 'package:weblibre/features/gestures/data/models/gesture_settings.dart';
|
||||
import 'package:weblibre/features/gestures/domain/repositories/gesture_settings.dart';
|
||||
@@ -146,6 +148,22 @@ final List<ToolbarButtonDefinition> toolbarButtonRegistry = [
|
||||
return NavigateForwardButton(selectedTabId: scope.selectedTabId);
|
||||
},
|
||||
),
|
||||
ToolbarButtonDefinition(
|
||||
spec: homeToolbarButtonSpec,
|
||||
label: 'Home',
|
||||
icon: Icons.home_outlined,
|
||||
builder: (scope, context, ref) {
|
||||
return IconButton(
|
||||
tooltip: 'Home',
|
||||
onPressed: scope.isPreview
|
||||
? () {}
|
||||
: () {
|
||||
ref.read(forceBrowserHomeProvider.notifier).request();
|
||||
},
|
||||
icon: const Icon(Icons.home_outlined),
|
||||
);
|
||||
},
|
||||
),
|
||||
ToolbarButtonDefinition(
|
||||
spec: historyToolbarButtonSpec,
|
||||
label: 'History',
|
||||
@@ -450,6 +468,30 @@ final List<ToolbarButtonDefinition> toolbarButtonRegistry = [
|
||||
);
|
||||
},
|
||||
),
|
||||
ToolbarButtonDefinition(
|
||||
spec: hideTabBarToolbarButtonSpec,
|
||||
label: 'Hide Tab Bar',
|
||||
icon: MdiIcons.dockBottom,
|
||||
builder: (scope, context, ref) {
|
||||
return IconButton(
|
||||
tooltip: 'Hide tab bar',
|
||||
// Same dismissal the swipe on the bar performs; the dock FAB brings it
|
||||
// back afterwards, since this button goes away with the bar.
|
||||
onPressed: scope.isPreview
|
||||
? () {}
|
||||
: () {
|
||||
ref
|
||||
.read(
|
||||
toolbarVisibilityControllerProvider(
|
||||
scope.selectedTabId,
|
||||
).notifier,
|
||||
)
|
||||
.dismiss();
|
||||
},
|
||||
icon: const Icon(MdiIcons.dockBottom),
|
||||
);
|
||||
},
|
||||
),
|
||||
ToolbarButtonDefinition(
|
||||
spec: pageUpToolbarButtonSpec,
|
||||
label: 'Page Up',
|
||||
|
||||
Reference in New Issue
Block a user