From 01fec56428da6b6f4615b04ecf1dab21502ef0bf Mon Sep 17 00:00:00 2001 From: KizKizz <101075148+KizKizz@users.noreply.github.com> Date: Wed, 29 Jun 2022 00:19:48 -0700 Subject: [PATCH] Custom main dir save --- lib/home_page.dart | 2 +- lib/main.dart | 94 +++++++++---- lib/popup_handlers.dart | 278 ++++++++++++++++++++++++++++++++------- lib/state_provider.dart | 14 +- windows/runner/Runner.rc | 4 +- 5 files changed, 312 insertions(+), 80 deletions(-) diff --git a/lib/home_page.dart b/lib/home_page.dart index f9926ed6..b8ca3709 100644 --- a/lib/home_page.dart +++ b/lib/home_page.dart @@ -628,7 +628,7 @@ class _HomePageState extends State with TickerProviderStateMixin { fit: BoxFit.fitWidth, )), title: Text(cateList[index].itemNames[i]), - subtitle: Text('Mods: ${cateList[index].numOfMods[i]} | Files applied: ${cateList[index].numOfApplied[i]}'), + subtitle: Text('Mods: ${cateList[index].numOfMods[i]} | Files Applied: ${cateList[index].numOfApplied[i]}'), trailing: Wrap( children: [ if (cateList[index].allModFiles.indexWhere((element) => element.modName == cateList[index].itemNames[i] && element.isNew == true) != -1) diff --git a/lib/main.dart b/lib/main.dart index 29e3fd5f..df318b89 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -21,6 +21,7 @@ import 'package:path/path.dart' as p; import 'package:window_manager/window_manager.dart'; String binDirPath = ''; +String mainModManDirPath = ''; String mainModDirPath = ''; String modsDirPath = ''; String backupDirPath = ''; @@ -57,7 +58,7 @@ Future main() async { ], child: const RestartWidget(child: MyApp()))); doWhenWindowReady(() { Size initialSize = Size(windowsWidth, windowsHeight); - appWindow.minSize = const Size(1160, 500); + appWindow.minSize = const Size(1280, 500); appWindow.size = initialSize; appWindow.alignment = Alignment.center; appWindow.title = 'PSO2NGS Mod Manager'; @@ -160,12 +161,13 @@ class _MyHomePageState extends State with WindowListener { final prefs = await SharedPreferences.getInstance(); //prefs.clear(); binDirPath = prefs.getString('binDirPath') ?? ''; + mainModManDirPath = prefs.getString('mainModManDirPath') ?? ''; - if (binDirPath.isEmpty) { - getDirPath(); + if (mainModManDirPath.isEmpty) { + getMainModManDirPath(); } else { //Fill in paths - mainModDirPath = '$binDirPath\\PSO2 Mod Manager'; + mainModDirPath = '$mainModManDirPath\\PSO2 Mod Manager'; modsDirPath = '$mainModDirPath\\Mods'; backupDirPath = '$mainModDirPath\\Backups'; checksumDirPath = '$mainModDirPath\\Checksum'; @@ -200,8 +202,9 @@ class _MyHomePageState extends State with WindowListener { if (!File(modSettingsPath).existsSync()) { await File(modSettingsPath).create(recursive: true); } + setState(() { - context.read().mainBinFoundTrue(); + context.read().mainModManPathFoundTrue(); }); //Checksum check @@ -214,10 +217,21 @@ class _MyHomePageState extends State with WindowListener { } } } + if (binDirPath.isEmpty) { + getDirPath(); + } else { + setState(() { + context.read().mainBinFoundTrue(); + }); + } } void getDirPath() { - binDirDialog(context, 'Error', 'pso2_bin folder not found. Select now?', false); + binDirDialog(context, 'Error', 'pso2_bin folder not found. Select it now?\n\'Exit\' will close the app', false); + } + + void getMainModManDirPath() { + mainModManDirDialog(context, 'Mod Manager Folder Not Found', 'Select a path to store your mods?\n\'No\' will create a folder inside \'pso2_bin\'', false); } @override @@ -242,9 +256,12 @@ class _MyHomePageState extends State with WindowListener { height: 25, textStyle: TextStyle(fontSize: 15, color: Theme.of(context).canvasColor), waitDuration: const Duration(seconds: 2), - child: const Text( + child: Text( 'PSO2NGS Mod Manager', - style: TextStyle(fontWeight: FontWeight.w500), + style: TextStyle( + fontWeight: FontWeight.w500, + fontSize: checkSumFilePath == null ? 13 : 15, + ), )), )), ), @@ -261,18 +278,18 @@ class _MyHomePageState extends State with WindowListener { waitDuration: const Duration(seconds: 1), child: MaterialButton( onPressed: Provider.of(context, listen: false).addingBoxState - ? null - :(() async { - RestartWidget.restartApp(context); - }), + ? null + : (() async { + RestartWidget.restartApp(context); + }), child: Row( children: const [ Icon( Icons.refresh, size: 18, ), - SizedBox(width: 5), - Text('Reload App', style: TextStyle(fontWeight: FontWeight.w400)) + SizedBox(width: 2.5), + Text('Reload', style: TextStyle(fontWeight: FontWeight.w400)) ], ), ), @@ -296,16 +313,43 @@ class _MyHomePageState extends State with WindowListener { child: Row( children: const [ Icon( - Icons.folder_outlined, + Icons.folder, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('_bin Reselect', style: TextStyle(fontWeight: FontWeight.w400)) ], ), ), ), + //MM Dir reselect + Tooltip( + message: 'Reselect Path to store Mod Manager Folder', + height: 25, + textStyle: TextStyle(fontSize: 15, color: Theme.of(context).canvasColor), + waitDuration: const Duration(seconds: 1), + child: MaterialButton( + onPressed: (() { + mainModManDirDialog(context, 'Mod Manager Path Reselect', 'Select a new path to store your mods?', false).then((_) { + setState(() { + //setstate + }); + }); + }), + child: Row( + children: const [ + Icon( + Icons.folder_open_outlined, + size: 18, + ), + SizedBox(width: 2.5), + Text('Path Reselect', style: TextStyle(fontWeight: FontWeight.w400)) + ], + ), + ), + ), + //deleted items Tooltip( message: 'Open Deleted Items Folder', @@ -322,7 +366,7 @@ class _MyHomePageState extends State with WindowListener { Icons.delete_rounded, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Deleted Items', style: TextStyle(fontWeight: FontWeight.w400)) ], ), @@ -362,7 +406,7 @@ class _MyHomePageState extends State with WindowListener { Icons.fingerprint, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Checksum', style: TextStyle(fontWeight: FontWeight.w400)) ], ) @@ -373,7 +417,7 @@ class _MyHomePageState extends State with WindowListener { size: 18, color: Colors.red, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Checksum missing. Click!', style: TextStyle(fontWeight: FontWeight.w400, color: Colors.red)) ], ), @@ -397,7 +441,7 @@ class _MyHomePageState extends State with WindowListener { Icons.backup_table, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Backups', style: TextStyle(fontWeight: FontWeight.w400)) ], ), @@ -420,7 +464,7 @@ class _MyHomePageState extends State with WindowListener { Icons.rule_folder_outlined, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Mods', style: TextStyle(fontWeight: FontWeight.w400)) ], ), @@ -452,7 +496,7 @@ class _MyHomePageState extends State with WindowListener { Icons.preview_outlined, size: 18, ), - const SizedBox(width: 5), + const SizedBox(width: 2.5), const Text('Preview: ', style: TextStyle(fontWeight: FontWeight.w400)), if (context.watch().previewWindowVisible) SizedBox( @@ -486,7 +530,7 @@ class _MyHomePageState extends State with WindowListener { Icons.light_mode_outlined, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Light', style: TextStyle(fontWeight: FontWeight.w400)) ], ), @@ -508,7 +552,7 @@ class _MyHomePageState extends State with WindowListener { Icons.dark_mode_outlined, size: 18, ), - SizedBox(width: 5), + SizedBox(width: 2.5), Text('Dark', style: TextStyle(fontWeight: FontWeight.w400)) ], ), @@ -522,7 +566,7 @@ class _MyHomePageState extends State with WindowListener { ), ), ), - context.watch().isMainBinFound + context.watch().isMainBinFound && context.watch().isMainModManPathFound ? const DataLoadingPage() : Column( children: const [ diff --git a/lib/popup_handlers.dart b/lib/popup_handlers.dart index d9774a26..d52b0b16 100644 --- a/lib/popup_handlers.dart +++ b/lib/popup_handlers.dart @@ -11,6 +11,7 @@ import 'package:pso2_mod_manager/state_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:window_manager/window_manager.dart'; import 'package:intl/intl.dart'; +import 'package:path/path.dart' as p; Future binDirDialog(context, String popupTitle, String popupMessage, bool isReselect) async { await showDialog( @@ -19,15 +20,12 @@ Future binDirDialog(context, String popupTitle, String popupMessage, bool isRese builder: (BuildContext context) { return StatefulBuilder(builder: (context, setState) { return AlertDialog( - titlePadding: const EdgeInsets.only(top: 10), + titlePadding: const EdgeInsets.only(top: 10, bottom: 10, left: 16, right: 16), title: Center( child: Text(popupTitle, style: const TextStyle(fontWeight: FontWeight.w700)), ), contentPadding: const EdgeInsets.only(left: 16, right: 16), - content: SizedBox( - //width: 300, - height: 70, - child: Center(child: Text(popupMessage))), + content: SizedBox(width: 350, height: 70, child: Center(child: Text(popupMessage))), actions: [ ElevatedButton( child: const Text('Exit'), @@ -57,42 +55,6 @@ Future binDirDialog(context, String popupTitle, String popupMessage, bool isRese prefs.setString('binDirPath', binDirPath); } if (binDirPath != '') { - //Fill in paths - mainModDirPath = '$binDirPath\\PSO2 Mod Manager'; - modsDirPath = '$mainModDirPath\\Mods'; - backupDirPath = '$mainModDirPath\\Backups'; - checksumDirPath = '$mainModDirPath\\Checksum'; - modSettingsPath = '$mainModDirPath\\PSO2ModManSettings.json'; - deletedItemsPath = '$mainModDirPath\\Deleted Items'; - //Check if exist, create dirs - if (!Directory(mainModDirPath).existsSync()) { - await Directory(mainModDirPath).create(recursive: true); - } - if (!Directory(modsDirPath).existsSync()) { - await Directory(modsDirPath).create(recursive: true); - await Directory('$modsDirPath\\Accessories').create(recursive: true); - await Directory('$modsDirPath\\Basewears').create(recursive: true); - await Directory('$modsDirPath\\Body Paints').create(recursive: true); - await Directory('$modsDirPath\\Emotes').create(recursive: true); - await Directory('$modsDirPath\\Face Paints').create(recursive: true); - await Directory('$modsDirPath\\Innerwears').create(recursive: true); - await Directory('$modsDirPath\\Misc').create(recursive: true); - await Directory('$modsDirPath\\Motions').create(recursive: true); - await Directory('$modsDirPath\\Outerwears').create(recursive: true); - await Directory('$modsDirPath\\Setwears').create(recursive: true); - } - if (!Directory(backupDirPath).existsSync()) { - await Directory(backupDirPath).create(recursive: true); - } - if (!Directory(checksumDirPath).existsSync()) { - await Directory(checksumDirPath).create(recursive: true); - } - if (!File(deletedItemsPath).existsSync()) { - await Directory(deletedItemsPath).create(recursive: true); - } - if (!File(modSettingsPath).existsSync()) { - await File(modSettingsPath).create(recursive: true); - } context.read().mainBinFoundTrue(); } else { binDirTempPath = await FilePicker.platform.getDirectoryPath( @@ -114,8 +76,226 @@ Future binDirDialog(context, String popupTitle, String popupMessage, bool isRese prefs.setString('binDirPath', binDirPath); } if (binDirPath != '') { + // //Fill in paths + // mainModDirPath = '$binDirPath\\PSO2 Mod Manager'; + // modsDirPath = '$mainModDirPath\\Mods'; + // backupDirPath = '$mainModDirPath\\Backups'; + // checksumDirPath = '$mainModDirPath\\Checksum'; + // modSettingsPath = '$mainModDirPath\\PSO2ModManSettings.json'; + // deletedItemsPath = '$mainModDirPath\\Deleted Items'; + // //Check if exist, create dirs + // if (!Directory(mainModDirPath).existsSync()) { + // await Directory(mainModDirPath).create(recursive: true); + // } + // if (!Directory(modsDirPath).existsSync()) { + // await Directory(modsDirPath).create(recursive: true); + // await Directory('$modsDirPath\\Accessories').create(recursive: true); + // await Directory('$modsDirPath\\Basewears').create(recursive: true); + // await Directory('$modsDirPath\\Body Paints').create(recursive: true); + // await Directory('$modsDirPath\\Emotes').create(recursive: true); + // await Directory('$modsDirPath\\Face Paints').create(recursive: true); + // await Directory('$modsDirPath\\Innerwears').create(recursive: true); + // await Directory('$modsDirPath\\Misc').create(recursive: true); + // await Directory('$modsDirPath\\Motions').create(recursive: true); + // await Directory('$modsDirPath\\Outerwears').create(recursive: true); + // await Directory('$modsDirPath\\Setwears').create(recursive: true); + // } + // if (!Directory(backupDirPath).existsSync()) { + // await Directory(backupDirPath).create(recursive: true); + // } + // if (!Directory(checksumDirPath).existsSync()) { + // await Directory(checksumDirPath).create(recursive: true); + // } + // if (!File(deletedItemsPath).existsSync()) { + // await Directory(deletedItemsPath).create(recursive: true); + // } + // if (!File(modSettingsPath).existsSync()) { + // await File(modSettingsPath).create(recursive: true); + // } + context.read().mainBinFoundTrue(); + } else { + binDirTempPath = await FilePicker.platform.getDirectoryPath( + dialogTitle: 'Select \'pso2_bin\' Directory Path', + lockParentWindow: true, + ); + } + } + } + }), + child: const Text('Yes')) + ], + ); + }); + }); +} + +//Main Mod Dir Select +Future mainModManDirDialog(context, String popupTitle, String popupMessage, bool isReselect) async { + await showDialog( + barrierDismissible: false, + context: context, + builder: (BuildContext context) { + return StatefulBuilder(builder: (context, setState) { + return AlertDialog( + titlePadding: const EdgeInsets.only(top: 10, bottom: 10, left: 16, right: 16), + title: Center( + child: Text(popupTitle, style: const TextStyle(fontWeight: FontWeight.w700)), + ), + contentPadding: const EdgeInsets.only(left: 16, right: 16), + content: SizedBox( + //width: 300, + height: 70, + child: Center(child: Text(popupMessage))), + actions: [ + ElevatedButton( + child: const Text('No'), + onPressed: () async { + if (!isReselect) { + Navigator.of(context).pop(); + mainModManDirPath = binDirPath; + final prefs = await SharedPreferences.getInstance(); + prefs.setString('mainModManDirPath', mainModManDirPath); + + //Fill in paths + mainModDirPath = '$mainModManDirPath\\PSO2 Mod Manager'; + modsDirPath = '$mainModDirPath\\Mods'; + backupDirPath = '$mainModDirPath\\Backups'; + checksumDirPath = '$mainModDirPath\\Checksum'; + modSettingsPath = '$mainModDirPath\\PSO2ModManSettings.json'; + deletedItemsPath = '$mainModDirPath\\Deleted Items'; + //Check if exist, create dirs + if (!Directory(mainModDirPath).existsSync()) { + await Directory(mainModDirPath).create(recursive: true); + } + if (!Directory(modsDirPath).existsSync()) { + await Directory(modsDirPath).create(recursive: true); + await Directory('$modsDirPath\\Accessories').create(recursive: true); + await Directory('$modsDirPath\\Basewears').create(recursive: true); + await Directory('$modsDirPath\\Body Paints').create(recursive: true); + await Directory('$modsDirPath\\Emotes').create(recursive: true); + await Directory('$modsDirPath\\Face Paints').create(recursive: true); + await Directory('$modsDirPath\\Innerwears').create(recursive: true); + await Directory('$modsDirPath\\Misc').create(recursive: true); + await Directory('$modsDirPath\\Motions').create(recursive: true); + await Directory('$modsDirPath\\Outerwears').create(recursive: true); + await Directory('$modsDirPath\\Setwears').create(recursive: true); + } + if (!Directory(backupDirPath).existsSync()) { + await Directory(backupDirPath).create(recursive: true); + } + if (!Directory(checksumDirPath).existsSync()) { + await Directory(checksumDirPath).create(recursive: true); + } + if (!File(deletedItemsPath).existsSync()) { + await Directory(deletedItemsPath).create(recursive: true); + } + if (!File(modSettingsPath).existsSync()) { + await File(modSettingsPath).create(recursive: true); + } + + //Checksum check + if (checkSumFilePath == null) { + final filesInCSFolder = Directory(checksumDirPath).listSync().whereType(); + for (var file in filesInCSFolder) { + if (p.extension(file.path) == '') { + checkSumFilePath = file.path; + } + } + } + context.read().mainModManPathFoundTrue(); + } else { + Navigator.of(context).pop(); + } + }), + ElevatedButton( + onPressed: (() async { + String? mainModManDirTempPath; + + if (!isReselect) { + mainModManDirTempPath = await FilePicker.platform.getDirectoryPath( + dialogTitle: 'Select a path to store Mod Manager Folder', + lockParentWindow: true, + ); + + if (mainModManDirTempPath != null) { + if (mainModManDirTempPath.split('\\').last == 'PSO2 Mod Manager') { + List newPathSplit = mainModManDirTempPath.split('\\'); + newPathSplit.removeLast(); + mainModManDirPath = newPathSplit.join('\\'); + } else { + mainModManDirPath = mainModManDirTempPath.toString(); + } + final prefs = await SharedPreferences.getInstance(); + prefs.setString('mainModManDirPath', mainModManDirPath); + + //Fill in paths + mainModDirPath = '$mainModManDirPath\\PSO2 Mod Manager'; + modsDirPath = '$mainModDirPath\\Mods'; + backupDirPath = '$mainModDirPath\\Backups'; + checksumDirPath = '$mainModDirPath\\Checksum'; + modSettingsPath = '$mainModDirPath\\PSO2ModManSettings.json'; + deletedItemsPath = '$mainModDirPath\\Deleted Items'; + //Check if exist, create dirs + if (!Directory(mainModDirPath).existsSync()) { + await Directory(mainModDirPath).create(recursive: true); + } + if (!Directory(modsDirPath).existsSync()) { + await Directory(modsDirPath).create(recursive: true); + await Directory('$modsDirPath\\Accessories').create(recursive: true); + await Directory('$modsDirPath\\Basewears').create(recursive: true); + await Directory('$modsDirPath\\Body Paints').create(recursive: true); + await Directory('$modsDirPath\\Emotes').create(recursive: true); + await Directory('$modsDirPath\\Face Paints').create(recursive: true); + await Directory('$modsDirPath\\Innerwears').create(recursive: true); + await Directory('$modsDirPath\\Misc').create(recursive: true); + await Directory('$modsDirPath\\Motions').create(recursive: true); + await Directory('$modsDirPath\\Outerwears').create(recursive: true); + await Directory('$modsDirPath\\Setwears').create(recursive: true); + } + if (!Directory(backupDirPath).existsSync()) { + await Directory(backupDirPath).create(recursive: true); + } + if (!Directory(checksumDirPath).existsSync()) { + await Directory(checksumDirPath).create(recursive: true); + } + if (!File(deletedItemsPath).existsSync()) { + await Directory(deletedItemsPath).create(recursive: true); + } + if (!File(modSettingsPath).existsSync()) { + await File(modSettingsPath).create(recursive: true); + } + + //Checksum check + if (checkSumFilePath == null) { + final filesInCSFolder = Directory(checksumDirPath).listSync().whereType(); + for (var file in filesInCSFolder) { + if (p.extension(file.path) == '') { + checkSumFilePath = file.path; + } + } + } + context.read().mainModManPathFoundTrue(); + Navigator.of(context).pop(); + } + } else { + mainModManDirTempPath = await FilePicker.platform.getDirectoryPath( + dialogTitle: 'Select a path to store Mod Manager Folder', + lockParentWindow: true, + ); + if (mainModManDirTempPath != null) { + if (mainModManDirPath != '') { + if (mainModManDirTempPath.split('\\').last == 'PSO2 Mod Manager') { + List newPathSplit = mainModManDirTempPath.split('\\'); + newPathSplit.removeLast(); + mainModManDirPath = newPathSplit.join('\\'); + } else { + mainModManDirPath = mainModManDirTempPath.toString(); + } + final prefs = await SharedPreferences.getInstance(); + prefs.setString('mainModManDirPath', mainModManDirPath); + //Fill in paths - mainModDirPath = '$binDirPath\\PSO2 Mod Manager'; + mainModDirPath = '$mainModManDirPath\\PSO2 Mod Manager'; modsDirPath = '$mainModDirPath\\Mods'; backupDirPath = '$mainModDirPath\\Backups'; checksumDirPath = '$mainModDirPath\\Checksum'; @@ -151,11 +331,7 @@ Future binDirDialog(context, String popupTitle, String popupMessage, bool isRese await File(modSettingsPath).create(recursive: true); } context.read().mainBinFoundTrue(); - } else { - binDirTempPath = await FilePicker.platform.getDirectoryPath( - dialogTitle: 'Select \'pso2_bin\' Directory Path', - lockParentWindow: true, - ); + Navigator.of(context).pop(); } } } @@ -176,7 +352,7 @@ categoryDeleteDialog(context, double height, String popupTitle, String popupMess DateTime now = DateTime.now(); String formattedDate = DateFormat('MM-dd-yyyy').format(now); return AlertDialog( - titlePadding: const EdgeInsets.only(top: 10), + titlePadding: const EdgeInsets.only(top: 10, bottom: 10, left: 16, right: 16), title: Center( child: Text(popupTitle, style: const TextStyle(fontWeight: FontWeight.w700)), ), @@ -265,7 +441,7 @@ Future itemDeleteDialog(context, double height, String popupTitle, String popupM DateTime now = DateTime.now(); String formattedDate = DateFormat('MM-dd-yyyy').format(now); return AlertDialog( - titlePadding: const EdgeInsets.only(top: 10), + titlePadding: const EdgeInsets.only(top: 10, bottom: 10, left: 16, right: 16), title: Center( child: Text(popupTitle, style: const TextStyle(fontWeight: FontWeight.w700)), ), @@ -339,7 +515,7 @@ Future modDeleteDialog(context, double height, String popupTitle, String popupMe DateTime now = DateTime.now(); String formattedDate = DateFormat('MM-dd-yyyy').format(now); return AlertDialog( - titlePadding: const EdgeInsets.only(top: 10), + titlePadding: const EdgeInsets.only(top: 10, bottom: 10, left: 16, right: 16), title: Center( child: Text(popupTitle, style: const TextStyle(fontWeight: FontWeight.w700)), ), @@ -430,7 +606,7 @@ Future modDeleteDialog(context, double height, String popupTitle, String popupMe }); } -//Remove Mod Dialog +//Zoom Dialog Future pictureDialog(context, List previewImageSliders) async { CarouselController imgSliderController = CarouselController(); int currentImg = 0; diff --git a/lib/state_provider.dart b/lib/state_provider.dart index cf9dcb12..6373e336 100644 --- a/lib/state_provider.dart +++ b/lib/state_provider.dart @@ -3,6 +3,7 @@ import 'package:flutter/cupertino.dart'; class stateProvider with ChangeNotifier { bool _isMainBinFound = false; + bool _isMainModManPathFound = false; bool _previewWindowVisible = false; bool _addingBoxState = false; String _newItemDropDisplay = ''; @@ -10,12 +11,23 @@ class stateProvider with ChangeNotifier { String _newModDropDisplay = ''; bool get isMainBinFound => _isMainBinFound; + bool get isMainModManPathFound => _isMainModManPathFound; bool get previewWindowVisible => _previewWindowVisible; bool get addingBoxState => _addingBoxState; String get newItemDropDisplay => _newItemDropDisplay; String get newSingleItemDropDisplay => _newSingleItemDropDisplay; String get newModDropDisplay => _newModDropDisplay; + void mainModManPathFoundTrue() { + _isMainModManPathFound = true; + notifyListeners(); + } + + void mainModManPathFoundFalse() { + _isMainModManPathFound = false; + notifyListeners(); + } + void addingBoxStateTrue() { _addingBoxState = true; notifyListeners(); @@ -25,7 +37,7 @@ class stateProvider with ChangeNotifier { _addingBoxState = false; notifyListeners(); } - + void mainBinFoundTrue() { _isMainBinFound = true; notifyListeners(); diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index 566cca00..f4d4a7d1 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -63,13 +63,13 @@ IDI_APP_ICON ICON "resources\\app_icon.ico" #ifdef FLUTTER_BUILD_NUMBER #define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER #else -#define VERSION_AS_NUMBER 1,1,5 +#define VERSION_AS_NUMBER 1,2,0 #endif #ifdef FLUTTER_BUILD_NAME #define VERSION_AS_STRING #FLUTTER_BUILD_NAME #else -#define VERSION_AS_STRING "1.1.5" +#define VERSION_AS_STRING "1.2.0" #endif VS_VERSION_INFO VERSIONINFO