From 08c2152145d210c5c037c16d531af8620b41c994 Mon Sep 17 00:00:00 2001 From: Yannick Mauray Date: Wed, 27 Oct 2021 21:37:17 +0200 Subject: [PATCH] Target directory can be changed. --- lib/src/pages/downloader.dart | 4 +++- lib/src/pages/main_page.dart | 25 +++++++++++++++++++++---- pubspec.yaml | 1 + 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/lib/src/pages/downloader.dart b/lib/src/pages/downloader.dart index 92da195..c416d67 100644 --- a/lib/src/pages/downloader.dart +++ b/lib/src/pages/downloader.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:quickgui/src/globals.dart'; import 'package:quickgui/src/model/operating_system.dart'; import 'package:quickgui/src/model/option.dart'; import 'package:quickgui/src/model/version.dart'; @@ -32,6 +33,7 @@ class _DownloaderState extends State { @override void initState() { + Directory.current = gCurrentDirectoy; _progressStream = progressStream(); super.initState(); } @@ -127,7 +129,7 @@ class _DownloaderState extends State { ), Padding( padding: const EdgeInsets.only(top: 32), - child: Text("Target folder : ${Directory.current}"), + child: Text("Target folder : $gCurrentDirectoy"), ), ], ); diff --git a/lib/src/pages/main_page.dart b/lib/src/pages/main_page.dart index b9cf62b..f082224 100644 --- a/lib/src/pages/main_page.dart +++ b/lib/src/pages/main_page.dart @@ -1,13 +1,20 @@ import 'dart:io'; +import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; +import 'package:quickgui/src/globals.dart'; import 'package:quickgui/src/widgets/home_page_buttons.dart'; -class MainPage extends StatelessWidget { +class MainPage extends StatefulWidget { const MainPage({Key? key, required this.title}) : super(key: key); final String title; + @override + State createState() => _MainPageState(); +} + +class _MainPageState extends State { @override Widget build(BuildContext context) { //Directory.current = '/home/yannick'; @@ -50,9 +57,19 @@ class MainPage extends StatelessWidget { ), ], ), - Text( - "Working directory : ${Directory.current.absolute.path}", - style: Theme.of(context).textTheme.subtitle1!.copyWith(color: Colors.white), + InkWell( + onTap: () async { + var folder = await FilePicker.platform.getDirectoryPath(dialogTitle: "Pick a folder"); + if (folder != null) { + setState(() { + gCurrentDirectoy = Directory(folder); + }); + } + }, + child: Text( + "Working directory : ${gCurrentDirectoy.path}", + style: Theme.of(context).textTheme.subtitle1!.copyWith(color: Colors.white), + ), ), ], ), diff --git a/pubspec.yaml b/pubspec.yaml index 6a19a83..a462eb6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -40,6 +40,7 @@ dependencies: path: plugins/window_size quiver: ^3.0.1+1 tuple: ^2.0.0 + file_picker: ^4.1.6 dev_dependencies: flutter_test: