Enable change id only when connected

This commit is contained in:
rustdesk 2023-06-26 22:05:27 +08:00
parent fe1d8b7c83
commit 0d658963e4
3 changed files with 7 additions and 2 deletions

View File

@ -519,7 +519,9 @@ class _SafetyState extends State<_Safety> with AutomaticKeepAliveClientMixin {
} }
Widget changeId() { Widget changeId() {
return _Button('Change ID', changeIdDialog, enabled: !locked); final serverModel = Provider.of<ServerModel>(context);
return _Button('Change ID', changeIdDialog,
enabled: !locked && serverModel.connectStatus > 0);
} }
Widget permissions(context) { Widget permissions(context) {

View File

@ -25,8 +25,10 @@ class ServerPage extends StatefulWidget implements PageShape {
PopupMenuButton<String>( PopupMenuButton<String>(
icon: const Icon(Icons.more_vert), icon: const Icon(Icons.more_vert),
itemBuilder: (context) { itemBuilder: (context) {
final serverModel = Provider.of<ServerModel>(context);
return [ return [
PopupMenuItem( PopupMenuItem(
enabled: serverModel.connectStatus > 0,
padding: const EdgeInsets.symmetric(horizontal: 16.0), padding: const EdgeInsets.symmetric(horizontal: 16.0),
value: "changeID", value: "changeID",
child: Text(translate("Change ID")), child: Text(translate("Change ID")),

View File

@ -316,7 +316,7 @@ class MyIdMenu: Reactor.Component {
{username ? {username ?
<li #logout>{translate('Logout')} ({username})</li> : <li #logout>{translate('Logout')} ({username})</li> :
<li #login>{translate('Login')}</li>} <li #login>{translate('Login')}</li>}
{handler.is_ok_change_id() && key_confirmed ? <li #change-id>{translate('Change ID')}</li> : ""} {handler.is_ok_change_id() && key_confirmed && connect_status > 0 ? <li #change-id>{translate('Change ID')}</li> : ""}
<div .separator /> <div .separator />
<li #allow-darktheme><span>{svg_checkmark}</span>{translate('Dark Theme')}</li> <li #allow-darktheme><span>{svg_checkmark}</span>{translate('Dark Theme')}</li>
<Languages /> <Languages />
@ -1117,6 +1117,7 @@ function checkConnectStatus() {
if (tmp[0] != connect_status) { if (tmp[0] != connect_status) {
connect_status = tmp[0]; connect_status = tmp[0];
app.connect_status.update(); app.connect_status.update();
myIdMenu.update();
} }
if (tmp[1] != key_confirmed) { if (tmp[1] != key_confirmed) {
key_confirmed = tmp[1]; key_confirmed = tmp[1];