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');
}
static Future<String> 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';
}

View File

@@ -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
? <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
_ConnectionPageState createState() => _ConnectionPageState();

View File

@@ -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;
},
);
});
}