mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-16 01:18:50 +00:00
add QOL when on setup
This commit is contained in:
parent
8773d34b71
commit
eab73445d1
@ -19,6 +19,7 @@ class BabyloniaLauncher extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
ErrorReporter.listenAllRustError(navigatorKey);
|
||||
gameStateProvider.updateSetup();
|
||||
return MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider(
|
||||
@ -38,7 +39,7 @@ class BabyloniaLauncher extends StatelessWidget {
|
||||
themeMode: ThemeMode.system,
|
||||
highContrastTheme: yaruHighContrastLight,
|
||||
highContrastDarkTheme: yaruHighContrastDark,
|
||||
home: Provider.of<GameStateProvider>(context).hasToSetup()
|
||||
home: Provider.of<GameStateProvider>(context).haveToSetup
|
||||
? const SetupScreen()
|
||||
: const Menu(),
|
||||
),
|
||||
|
||||
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
class GameStateProvider with ChangeNotifier {
|
||||
States? _gameState;
|
||||
bool isUpdating = false;
|
||||
bool haveToSetup = false;
|
||||
|
||||
get gameState {
|
||||
return _gameState;
|
||||
@ -24,7 +25,12 @@ class GameStateProvider with ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
bool hasToSetup() {
|
||||
void updateSetup() {
|
||||
haveToSetup = needToSetup();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
bool needToSetup() {
|
||||
return _gameState == States.ProtonNotInstalled ||
|
||||
_gameState == States.DXVKNotInstalled ||
|
||||
_gameState == States.FontNotInstalled ||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:yaru/yaru.dart';
|
||||
|
||||
import './../../messages/game_state.pb.dart';
|
||||
import './../../providers/providers.dart';
|
||||
@ -31,6 +32,9 @@ class StepsScreen extends StatelessWidget {
|
||||
case States.DependecieNotInstalled:
|
||||
controller.updateSection(3);
|
||||
break;
|
||||
default:
|
||||
controller.updateSection(null);
|
||||
break;
|
||||
}
|
||||
|
||||
return Center(
|
||||
@ -64,8 +68,9 @@ class StepsScreen extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 12.0),
|
||||
child: SimpleButton(
|
||||
onPressed:
|
||||
true ? null : () => gameStateProvider.updateGameState(),
|
||||
onPressed: !gameStateProvider.needToSetup()
|
||||
? () => gameStateProvider.updateSetup()
|
||||
: null,
|
||||
child: const Text('next'),
|
||||
),
|
||||
),
|
||||
|
||||
@ -8,12 +8,12 @@ import 'package:yaru/constants.dart';
|
||||
import 'package:yaru/widgets.dart';
|
||||
|
||||
class SectionController extends ChangeNotifier {
|
||||
int selectedItem = 0;
|
||||
int? selectedItem;
|
||||
Function()? onChange;
|
||||
|
||||
SectionController({required this.selectedItem});
|
||||
|
||||
void updateSection(int newSelectedItem) {
|
||||
void updateSection(int? newSelectedItem) {
|
||||
selectedItem = newSelectedItem;
|
||||
notifyListeners();
|
||||
if (onChange != null) {
|
||||
@ -77,9 +77,15 @@ class _SelectableYaruExpansionPanelState
|
||||
super.initState();
|
||||
widget.controller.onChange = widget.collapseOnExpand
|
||||
? () {
|
||||
_expandedStore[widget.controller.selectedItem];
|
||||
for (var n = 0; n < _expandedStore.length; n++) {
|
||||
if (_expandedStore[n]) {
|
||||
if (widget.controller.selectedItem != null) {
|
||||
_expandedStore[widget.controller.selectedItem!];
|
||||
for (var n = 0; n < _expandedStore.length; n++) {
|
||||
if (_expandedStore[n]) {
|
||||
setState(() => _expandedStore[n] = false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var n = 0; n < _expandedStore.length; n++) {
|
||||
setState(() => _expandedStore[n] = false);
|
||||
}
|
||||
}
|
||||
@ -93,7 +99,9 @@ class _SelectableYaruExpansionPanelState
|
||||
Widget build(BuildContext context) {
|
||||
assert(widget.children.length == widget.headers.length);
|
||||
|
||||
_expandedStore[widget.controller.selectedItem] = true;
|
||||
if (widget.controller.selectedItem != null) {
|
||||
_expandedStore[widget.controller.selectedItem!] = true;
|
||||
}
|
||||
|
||||
return YaruBorderContainer(
|
||||
border: widget.border,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user