file manager redesign implementation

This commit is contained in:
NicKoehler 2023-02-22 22:13:21 +01:00
parent c831a38c83
commit 325077435c
No known key found for this signature in database
GPG Key ID: BAE01394EB51AC58
7 changed files with 652 additions and 431 deletions

View File

@ -152,7 +152,7 @@ class MyTheme {
static const Color canvasColor = Color(0xFF212121); static const Color canvasColor = Color(0xFF212121);
static const Color border = Color(0xFFCCCCCC); static const Color border = Color(0xFFCCCCCC);
static const Color idColor = Color(0xFF00B6F0); static const Color idColor = Color(0xFF00B6F0);
static const Color darkGray = Color(0xFFB9BABC); static const Color darkGray = Color.fromARGB(255, 148, 148, 148);
static const Color cmIdColor = Color(0xFF21790B); static const Color cmIdColor = Color(0xFF21790B);
static const Color dark = Colors.black87; static const Color dark = Colors.black87;
static const Color button = Color(0xFF2C8CFF); static const Color button = Color(0xFF2C8CFF);
@ -160,8 +160,9 @@ class MyTheme {
static ThemeData lightTheme = ThemeData( static ThemeData lightTheme = ThemeData(
brightness: Brightness.light, brightness: Brightness.light,
backgroundColor: Color(0xFFFFFFFF), backgroundColor: Color(0xFFEEEEEE),
scaffoldBackgroundColor: Color(0xFFEEEEEE), hoverColor: Color.fromARGB(255, 224, 224, 224),
scaffoldBackgroundColor: Color(0xFFFFFFFF),
textTheme: const TextTheme( textTheme: const TextTheme(
titleLarge: TextStyle(fontSize: 19, color: Colors.black87), titleLarge: TextStyle(fontSize: 19, color: Colors.black87),
titleSmall: TextStyle(fontSize: 14, color: Colors.black87), titleSmall: TextStyle(fontSize: 14, color: Colors.black87),
@ -169,6 +170,7 @@ class MyTheme {
bodyMedium: bodyMedium:
TextStyle(fontSize: 14, color: Colors.black87, height: 1.25), TextStyle(fontSize: 14, color: Colors.black87, height: 1.25),
labelLarge: TextStyle(fontSize: 16.0, color: MyTheme.accent80)), labelLarge: TextStyle(fontSize: 16.0, color: MyTheme.accent80)),
cardColor: Color(0xFFEEEEEE),
hintColor: Color(0xFFAAAAAA), hintColor: Color(0xFFAAAAAA),
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity, visualDensity: VisualDensity.adaptivePlatformDensity,
@ -191,8 +193,9 @@ class MyTheme {
); );
static ThemeData darkTheme = ThemeData( static ThemeData darkTheme = ThemeData(
brightness: Brightness.dark, brightness: Brightness.dark,
backgroundColor: Color(0xFF252525), backgroundColor: Color(0xFF24252B),
scaffoldBackgroundColor: Color(0xFF141414), hoverColor: Color.fromARGB(255, 45, 46, 53),
scaffoldBackgroundColor: Color(0xFF18191E),
textTheme: const TextTheme( textTheme: const TextTheme(
titleLarge: TextStyle(fontSize: 19), titleLarge: TextStyle(fontSize: 19),
titleSmall: TextStyle(fontSize: 14), titleSmall: TextStyle(fontSize: 14),
@ -200,7 +203,7 @@ class MyTheme {
bodyMedium: TextStyle(fontSize: 14, height: 1.25), bodyMedium: TextStyle(fontSize: 14, height: 1.25),
labelLarge: TextStyle( labelLarge: TextStyle(
fontSize: 16.0, fontWeight: FontWeight.bold, color: accent80)), fontSize: 16.0, fontWeight: FontWeight.bold, color: accent80)),
cardColor: Color(0xFF252525), cardColor: Color(0xFF24252B),
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity, visualDensity: VisualDensity.adaptivePlatformDensity,
tabBarTheme: const TabBarTheme( tabBarTheme: const TabBarTheme(
@ -217,9 +220,8 @@ class MyTheme {
style: ButtonStyle(splashFactory: NoSplash.splashFactory), style: ButtonStyle(splashFactory: NoSplash.splashFactory),
) )
: null, : null,
checkboxTheme: const CheckboxThemeData( checkboxTheme:
checkColor: MaterialStatePropertyAll(dark) const CheckboxThemeData(checkColor: MaterialStatePropertyAll(dark)),
),
).copyWith( ).copyWith(
extensions: <ThemeExtension<dynamic>>[ extensions: <ThemeExtension<dynamic>>[
ColorThemeExtension.dark, ColorThemeExtension.dark,

View File

@ -52,7 +52,7 @@ const int kDesktopMaxDisplayHeight = 1080;
const double kDesktopFileTransferNameColWidth = 200; const double kDesktopFileTransferNameColWidth = 200;
const double kDesktopFileTransferModifiedColWidth = 120; const double kDesktopFileTransferModifiedColWidth = 120;
const double kDesktopFileTransferRowHeight = 25.0; const double kDesktopFileTransferRowHeight = 30.0;
const double kDesktopFileTransferHeaderHeight = 25.0; const double kDesktopFileTransferHeaderHeight = 25.0;
// https://en.wikipedia.org/wiki/Non-breaking_space // https://en.wikipedia.org/wiki/Non-breaking_space

File diff suppressed because it is too large Load Diff

View File

@ -86,18 +86,14 @@ class _FileManagerTabPageState extends State<FileManagerTabPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final tabWidget = Container( final tabWidget = Scaffold(
decoration: BoxDecoration( backgroundColor: Theme.of(context).cardColor,
border: Border.all(color: MyTheme.color(context).border!)), body: DesktopTab(
child: Scaffold( controller: tabController,
backgroundColor: Theme.of(context).backgroundColor, onWindowCloseButton: handleWindowCloseButton,
body: DesktopTab( tail: const AddButton().paddingOnly(left: 10),
controller: tabController, labelGetter: DesktopTab.labelGetterAlias,
onWindowCloseButton: handleWindowCloseButton, ));
tail: const AddButton().paddingOnly(left: 10),
labelGetter: DesktopTab.labelGetterAlias,
)),
);
return Platform.isMacOS return Platform.isMacOS
? tabWidget ? tabWidget
: SubWindowDragToResizeArea( : SubWindowDragToResizeArea(

View File

@ -27,6 +27,7 @@ class MenuButton extends StatefulWidget {
class _MenuButtonState extends State<MenuButton> { class _MenuButtonState extends State<MenuButton> {
bool _isHover = false; bool _isHover = false;
final double _borderRadius = 8.0;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -38,16 +39,17 @@ class _MenuButtonState extends State<MenuButton> {
type: MaterialType.transparency, type: MaterialType.transparency,
child: Ink( child: Ink(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5), borderRadius: BorderRadius.circular(_borderRadius),
color: _isHover ? widget.hoverColor : widget.color, color: _isHover ? widget.hoverColor : widget.color,
), ),
child: InkWell( child: InkWell(
hoverColor: widget.hoverColor,
onHover: (val) { onHover: (val) {
setState(() { setState(() {
_isHover = val; _isHover = val;
}); });
}, },
borderRadius: BorderRadius.circular(5), borderRadius: BorderRadius.circular(_borderRadius),
splashColor: widget.splashColor, splashColor: widget.splashColor,
enableFeedback: widget.enableFeedback, enableFeedback: widget.enableFeedback,
onTap: widget.onPressed, onTap: widget.onPressed,

View File

@ -970,6 +970,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.11.1" version: "1.11.1"
percent_indicator:
dependency: "direct main"
description:
name: percent_indicator
sha256: cec41f67181fbd5322aa68b355621d1a4eea827426b8eeb613f6cbe195ff7b4a
url: "https://pub.dev"
source: hosted
version: "4.2.2"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
@ -1547,5 +1555,5 @@ packages:
source: hosted source: hosted
version: "0.1.1" version: "0.1.1"
sdks: sdks:
dart: ">=2.18.0 <4.0.0" dart: ">=2.18.0 <3.0.0"
flutter: ">=3.3.0" flutter: ">=3.3.0"

View File

@ -92,6 +92,7 @@ dependencies:
password_strength: ^0.2.0 password_strength: ^0.2.0
flutter_launcher_icons: ^0.11.0 flutter_launcher_icons: ^0.11.0
flutter_keyboard_visibility: ^5.4.0 flutter_keyboard_visibility: ^5.4.0
percent_indicator: ^4.2.2
dev_dependencies: dev_dependencies: