mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-04-02 20:21:27 +03:00
Revert "fix: mobile remove "Scale custom" (#13323)"
This reverts commit 265d08fc3b.
This commit is contained in:
@@ -364,12 +364,11 @@ Future<List<TRadioMenu<String>>> toolbarViewStyle(
|
|||||||
value: kRemoteViewStyleAdaptive,
|
value: kRemoteViewStyleAdaptive,
|
||||||
groupValue: groupValue,
|
groupValue: groupValue,
|
||||||
onChanged: onChanged),
|
onChanged: onChanged),
|
||||||
if (isDesktop || isWebDesktop)
|
TRadioMenu<String>(
|
||||||
TRadioMenu<String>(
|
child: Text(translate('Scale custom')),
|
||||||
child: Text(translate('Scale custom')),
|
value: kRemoteViewStyleCustom,
|
||||||
value: kRemoteViewStyleCustom,
|
groupValue: groupValue,
|
||||||
groupValue: groupValue,
|
onChanged: onChanged)
|
||||||
onChanged: onChanged)
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -153,6 +153,135 @@ class _ToolbarTheme {
|
|||||||
typedef DismissFunc = void Function();
|
typedef DismissFunc = void Function();
|
||||||
|
|
||||||
class RemoteMenuEntry {
|
class RemoteMenuEntry {
|
||||||
|
static MenuEntryRadios<String> viewStyle(
|
||||||
|
String remoteId,
|
||||||
|
FFI ffi,
|
||||||
|
EdgeInsets padding, {
|
||||||
|
DismissFunc? dismissFunc,
|
||||||
|
DismissCallback? dismissCallback,
|
||||||
|
RxString? rxViewStyle,
|
||||||
|
}) {
|
||||||
|
return MenuEntryRadios<String>(
|
||||||
|
text: translate('Ratio'),
|
||||||
|
optionsGetter: () => [
|
||||||
|
MenuEntryRadioOption(
|
||||||
|
text: translate('Scale original'),
|
||||||
|
value: kRemoteViewStyleOriginal,
|
||||||
|
dismissOnClicked: true,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
),
|
||||||
|
MenuEntryRadioOption(
|
||||||
|
text: translate('Scale adaptive'),
|
||||||
|
value: kRemoteViewStyleAdaptive,
|
||||||
|
dismissOnClicked: true,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
),
|
||||||
|
MenuEntryRadioOption(
|
||||||
|
text: translate('Scale custom'),
|
||||||
|
value: kRemoteViewStyleCustom,
|
||||||
|
dismissOnClicked: true,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
curOptionGetter: () async {
|
||||||
|
// null means peer id is not found, which there's no need to care about
|
||||||
|
final viewStyle =
|
||||||
|
await bind.sessionGetViewStyle(sessionId: ffi.sessionId) ?? '';
|
||||||
|
if (rxViewStyle != null) {
|
||||||
|
rxViewStyle.value = viewStyle;
|
||||||
|
}
|
||||||
|
return viewStyle;
|
||||||
|
},
|
||||||
|
optionSetter: (String oldValue, String newValue) async {
|
||||||
|
await bind.sessionSetViewStyle(
|
||||||
|
sessionId: ffi.sessionId, value: newValue);
|
||||||
|
if (rxViewStyle != null) {
|
||||||
|
rxViewStyle.value = newValue;
|
||||||
|
}
|
||||||
|
ffi.canvasModel.updateViewStyle();
|
||||||
|
if (dismissFunc != null) {
|
||||||
|
dismissFunc();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
padding: padding,
|
||||||
|
dismissOnClicked: true,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static MenuEntrySwitch2<String> showRemoteCursor(
|
||||||
|
String remoteId,
|
||||||
|
SessionID sessionId,
|
||||||
|
EdgeInsets padding, {
|
||||||
|
DismissFunc? dismissFunc,
|
||||||
|
DismissCallback? dismissCallback,
|
||||||
|
}) {
|
||||||
|
final state = ShowRemoteCursorState.find(remoteId);
|
||||||
|
final optKey = 'show-remote-cursor';
|
||||||
|
return MenuEntrySwitch2<String>(
|
||||||
|
switchType: SwitchType.scheckbox,
|
||||||
|
text: translate('Show remote cursor'),
|
||||||
|
getter: () {
|
||||||
|
return state;
|
||||||
|
},
|
||||||
|
setter: (bool v) async {
|
||||||
|
await bind.sessionToggleOption(sessionId: sessionId, value: optKey);
|
||||||
|
state.value =
|
||||||
|
bind.sessionGetToggleOptionSync(sessionId: sessionId, arg: optKey);
|
||||||
|
if (dismissFunc != null) {
|
||||||
|
dismissFunc();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
padding: padding,
|
||||||
|
dismissOnClicked: true,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static MenuEntrySwitch<String> disableClipboard(
|
||||||
|
SessionID sessionId,
|
||||||
|
EdgeInsets? padding, {
|
||||||
|
DismissFunc? dismissFunc,
|
||||||
|
DismissCallback? dismissCallback,
|
||||||
|
}) {
|
||||||
|
return createSwitchMenuEntry(
|
||||||
|
sessionId,
|
||||||
|
'Disable clipboard',
|
||||||
|
'disable-clipboard',
|
||||||
|
padding,
|
||||||
|
true,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static MenuEntrySwitch<String> createSwitchMenuEntry(
|
||||||
|
SessionID sessionId,
|
||||||
|
String text,
|
||||||
|
String option,
|
||||||
|
EdgeInsets? padding,
|
||||||
|
bool dismissOnClicked, {
|
||||||
|
DismissFunc? dismissFunc,
|
||||||
|
DismissCallback? dismissCallback,
|
||||||
|
}) {
|
||||||
|
return MenuEntrySwitch<String>(
|
||||||
|
switchType: SwitchType.scheckbox,
|
||||||
|
text: translate(text),
|
||||||
|
getter: () async {
|
||||||
|
return bind.sessionGetToggleOptionSync(
|
||||||
|
sessionId: sessionId, arg: option);
|
||||||
|
},
|
||||||
|
setter: (bool v) async {
|
||||||
|
await bind.sessionToggleOption(sessionId: sessionId, value: option);
|
||||||
|
if (dismissFunc != null) {
|
||||||
|
dismissFunc();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
padding: padding,
|
||||||
|
dismissOnClicked: dismissOnClicked,
|
||||||
|
dismissCallback: dismissCallback,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
static MenuEntryButton<String> insertLock(
|
static MenuEntryButton<String> insertLock(
|
||||||
SessionID sessionId,
|
SessionID sessionId,
|
||||||
EdgeInsets? padding, {
|
EdgeInsets? padding, {
|
||||||
|
|||||||
Reference in New Issue
Block a user