add quit button to contextual tab bar
This commit is contained in:
+1
@@ -42,4 +42,5 @@ enum ToolbarButtonId {
|
||||
pageDown,
|
||||
font,
|
||||
extensionShortcut,
|
||||
quit,
|
||||
}
|
||||
|
||||
+7
@@ -158,6 +158,12 @@ const extensionShortcutToolbarButtonSpec = ToolbarButtonSpec(
|
||||
canBeFallbackTarget: false,
|
||||
);
|
||||
|
||||
const quitToolbarButtonSpec = ToolbarButtonSpec(
|
||||
id: ToolbarButtonId.quit,
|
||||
defaultVisible: false,
|
||||
canBeFallbackTarget: false,
|
||||
);
|
||||
|
||||
const toolbarButtonSpecs = [
|
||||
backToolbarButtonSpec,
|
||||
forwardToolbarButtonSpec,
|
||||
@@ -182,6 +188,7 @@ const toolbarButtonSpecs = [
|
||||
pageDownToolbarButtonSpec,
|
||||
fontToolbarButtonSpec,
|
||||
extensionShortcutToolbarButtonSpec,
|
||||
quitToolbarButtonSpec,
|
||||
];
|
||||
|
||||
final Map<String, ToolbarButtonSpec> toolbarButtonSpecsById = {
|
||||
|
||||
+26
@@ -47,8 +47,10 @@ import 'package:weblibre/features/geckoview/features/readerview/presentation/con
|
||||
import 'package:weblibre/features/geckoview/features/tabs/data/entities/tab_mode.dart';
|
||||
import 'package:weblibre/features/settings/presentation/controllers/save_settings.dart';
|
||||
import 'package:weblibre/features/user/data/models/engine_settings.dart';
|
||||
import 'package:weblibre/features/user/domain/presentation/dialogs/quit_browser_dialog.dart';
|
||||
import 'package:weblibre/features/user/domain/repositories/engine_settings.dart';
|
||||
import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
|
||||
import 'package:weblibre/utils/exit_app.dart';
|
||||
import 'package:weblibre/utils/move_to_background.dart';
|
||||
import 'package:weblibre/utils/ui_helper.dart' as ui_helper;
|
||||
|
||||
@@ -477,6 +479,30 @@ final List<ToolbarButtonDefinition> toolbarButtonRegistry = [
|
||||
return const _ExtensionShortcutToolbarButton();
|
||||
},
|
||||
),
|
||||
ToolbarButtonDefinition(
|
||||
spec: quitToolbarButtonSpec,
|
||||
label: 'Quit',
|
||||
icon: MdiIcons.power,
|
||||
longPressActions: ['Quit without confirmation'],
|
||||
builder: (scope, context, ref) {
|
||||
return IconButton(
|
||||
onPressed: scope.isPreview
|
||||
? () {}
|
||||
: () async {
|
||||
final result = await showQuitBrowserDialog(context);
|
||||
if (result == true) {
|
||||
await exitApp(ref.container);
|
||||
}
|
||||
},
|
||||
onLongPress: scope.isPreview
|
||||
? null
|
||||
: () async {
|
||||
await exitApp(ref.container);
|
||||
},
|
||||
icon: const Icon(MdiIcons.power),
|
||||
);
|
||||
},
|
||||
),
|
||||
];
|
||||
|
||||
final Map<String, ToolbarButtonDefinition> toolbarButtonRegistryById = {
|
||||
|
||||
Reference in New Issue
Block a user