diff --git a/lib/models/web_model.dart b/lib/models/web_model.dart index 778db6d97..309eb52ef 100644 --- a/lib/models/web_model.dart +++ b/lib/models/web_model.dart @@ -19,10 +19,6 @@ class PlatformFFI { return js.context.callMethod('getRgba'); } - static Future getVersion() async { - return getByName('version'); - } - static String getByName(String name, [String arg = '']) { return js.context.callMethod('getByName', [name, arg]); } @@ -35,6 +31,7 @@ class PlatformFFI { isWeb = true; isDesktop = !js.context.callMethod('isMobile'); js.context.callMethod('init'); + version = getByName('version'); } // MouseRegion onHover not work for mouse move when right button down @@ -125,7 +122,8 @@ void handleKey(KeyboardEvent evt, bool down) { name = evt.code; } else { name = evt.key; - if (name!=null && name.toLowerCase() != name.toUpperCase() && + if (name != null && + name.toLowerCase() != name.toUpperCase() && name == name.toUpperCase()) { if (!evt.shiftKey) out['shift'] = 'true'; } diff --git a/lib/pages/connection_page.dart b/lib/pages/connection_page.dart index 12a166538..3ed69dabc 100644 --- a/lib/pages/connection_page.dart +++ b/lib/pages/connection_page.dart @@ -7,6 +7,7 @@ import '../common.dart'; import '../models/model.dart'; import 'home_page.dart'; import 'remote_page.dart'; +import 'settings_page.dart'; class ConnectionPage extends StatefulWidget implements PageShape { ConnectionPage({Key? key}) : super(key: key); @@ -18,7 +19,29 @@ class ConnectionPage extends StatefulWidget implements PageShape { final title = translate("Connection"); @override - final appBarActions = []; + final appBarActions = isWeb + ? [ + PopupMenuButton(itemBuilder: (context) { + return [ + PopupMenuItem( + child: Text(translate('ID Server')), + value: "server", + ), + PopupMenuItem( + child: Text(translate('About') + ' RustDesk'), + value: "about", + ) + ]; + }, onSelected: (value) { + if (value == 'server') { + showServer(); + } + if (value == 'about') { + showAbout(); + } + }), + ] + : []; @override _ConnectionPageState createState() => _ConnectionPageState(); diff --git a/lib/pages/settings_page.dart b/lib/pages/settings_page.dart index 4817610b5..0e369c1d1 100644 --- a/lib/pages/settings_page.dart +++ b/lib/pages/settings_page.dart @@ -147,3 +147,40 @@ String? validate(value) { final res = FFI.getByName('test_if_valid_server', value); return res.isEmpty ? null : res; } + +void showAbout() { + DialogManager.show((setState, close) { + return CustomAlertDialog( + title: Text(translate('About') + ' RustDesk'), + content: Wrap(direction: Axis.vertical, spacing: 12, children: [ + Text('Version: $version'), + InkWell( + onTap: () async { + const url = 'https://rustdesk.com/'; + if (await canLaunch(url)) { + await launch(url); + } + }, + child: Padding( + padding: EdgeInsets.symmetric(vertical: 8), + child: Text('Support', + style: TextStyle( + decoration: TextDecoration.underline, + )), + )), + ]), + actions: [ + TextButton( + style: flatButtonStyle, + onPressed: () { + close(); + }, + child: Text(translate('OK')), + ) + ], + onWillPop: () async { + return true; + }, + ); + }); +} diff --git a/pubspec.lock b/pubspec.lock index 7452fac78..bc2a6715e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -71,6 +71,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.4" + dash_chat: + dependency: "direct main" + description: + name: dash_chat + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.16" device_info: dependency: "direct main" description: @@ -85,6 +92,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + draggable_float_widget: + dependency: "direct main" + description: + name: draggable_float_widget + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.2" + event_bus: + dependency: transitive + description: + name: event_bus + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" external_path: dependency: "direct main" description: @@ -167,15 +188,20 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_breadcrumb: + dependency: "direct main" + description: + name: flutter_breadcrumb + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" flutter_easyloading: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: "663154242c05ccf85d4dde984852095664493e46" - url: "git://github.com/open-trade/flutter_easyloading" - source: git - version: "2.2.0" + name: flutter_easyloading + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.3" flutter_launcher_icons: dependency: "direct dev" description: @@ -183,13 +209,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.9.2" + flutter_parsed_text: + dependency: transitive + description: + name: flutter_parsed_text + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" flutter_spinkit: dependency: transitive description: name: flutter_spinkit url: "https://pub.dartlang.org" source: hosted - version: "4.1.2+1" + version: "5.1.0" flutter_test: dependency: "direct dev" description: flutter @@ -221,6 +254,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.1" + intl: + dependency: transitive + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.0" js: dependency: transitive description: @@ -319,6 +359,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.5" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" petitparser: dependency: transitive description: @@ -361,6 +408,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.1+1" + settings_ui: + dependency: "direct main" + description: + name: settings_ui + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" shared_preferences: dependency: "direct main" description: @@ -464,6 +518,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.4.8" + toggle_switch: + dependency: "direct main" + description: + name: toggle_switch + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" + transparent_image: + dependency: transitive + description: + name: transparent_image + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" tuple: dependency: "direct main" description: @@ -534,6 +602,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.2" + uuid: + dependency: transitive + description: + name: uuid + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.6" vector_math: dependency: transitive description: