This commit is contained in:
rustdesk 2022-03-24 20:57:30 +08:00
parent 763234221e
commit 61722f5b8e
4 changed files with 146 additions and 13 deletions

View File

@ -19,10 +19,6 @@ class PlatformFFI {
return js.context.callMethod('getRgba'); return js.context.callMethod('getRgba');
} }
static Future<String> getVersion() async {
return getByName('version');
}
static String getByName(String name, [String arg = '']) { static String getByName(String name, [String arg = '']) {
return js.context.callMethod('getByName', [name, arg]); return js.context.callMethod('getByName', [name, arg]);
} }
@ -35,6 +31,7 @@ class PlatformFFI {
isWeb = true; isWeb = true;
isDesktop = !js.context.callMethod('isMobile'); isDesktop = !js.context.callMethod('isMobile');
js.context.callMethod('init'); js.context.callMethod('init');
version = getByName('version');
} }
// MouseRegion onHover not work for mouse move when right button down // MouseRegion onHover not work for mouse move when right button down
@ -125,7 +122,8 @@ void handleKey(KeyboardEvent evt, bool down) {
name = evt.code; name = evt.code;
} else { } else {
name = evt.key; name = evt.key;
if (name!=null && name.toLowerCase() != name.toUpperCase() && if (name != null &&
name.toLowerCase() != name.toUpperCase() &&
name == name.toUpperCase()) { name == name.toUpperCase()) {
if (!evt.shiftKey) out['shift'] = 'true'; if (!evt.shiftKey) out['shift'] = 'true';
} }

View File

@ -7,6 +7,7 @@ import '../common.dart';
import '../models/model.dart'; import '../models/model.dart';
import 'home_page.dart'; import 'home_page.dart';
import 'remote_page.dart'; import 'remote_page.dart';
import 'settings_page.dart';
class ConnectionPage extends StatefulWidget implements PageShape { class ConnectionPage extends StatefulWidget implements PageShape {
ConnectionPage({Key? key}) : super(key: key); ConnectionPage({Key? key}) : super(key: key);
@ -18,7 +19,29 @@ class ConnectionPage extends StatefulWidget implements PageShape {
final title = translate("Connection"); final title = translate("Connection");
@override @override
final appBarActions = []; final appBarActions = isWeb
? <Widget>[
PopupMenuButton<String>(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 @override
_ConnectionPageState createState() => _ConnectionPageState(); _ConnectionPageState createState() => _ConnectionPageState();

View File

@ -147,3 +147,40 @@ String? validate(value) {
final res = FFI.getByName('test_if_valid_server', value); final res = FFI.getByName('test_if_valid_server', value);
return res.isEmpty ? null : res; 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;
},
);
});
}

View File

@ -71,6 +71,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" 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: device_info:
dependency: "direct main" dependency: "direct main"
description: description:
@ -85,6 +92,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" 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: external_path:
dependency: "direct main" dependency: "direct main"
description: description:
@ -167,15 +188,20 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" 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: flutter_easyloading:
dependency: "direct main" dependency: "direct main"
description: description:
path: "." name: flutter_easyloading
ref: HEAD url: "https://pub.dartlang.org"
resolved-ref: "663154242c05ccf85d4dde984852095664493e46" source: hosted
url: "git://github.com/open-trade/flutter_easyloading" version: "3.0.3"
source: git
version: "2.2.0"
flutter_launcher_icons: flutter_launcher_icons:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -183,13 +209,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.9.2" 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: flutter_spinkit:
dependency: transitive dependency: transitive
description: description:
name: flutter_spinkit name: flutter_spinkit
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.1.2+1" version: "5.1.0"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -221,6 +254,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.1" version: "3.1.1"
intl:
dependency: transitive
description:
name: intl
url: "https://pub.dartlang.org"
source: hosted
version: "0.17.0"
js: js:
dependency: transitive dependency: transitive
description: description:
@ -319,6 +359,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.0.5"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
@ -361,6 +408,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1+1" 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: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
@ -464,6 +518,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.8" 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: tuple:
dependency: "direct main" dependency: "direct main"
description: description:
@ -534,6 +602,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
uuid:
dependency: transitive
description:
name: uuid
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.6"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description: