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