feature: cycle monitors on toolbar

This commit is contained in:
Bryan Gerlach
2024-12-10 17:10:58 -06:00
parent 0312f7ea0d
commit 827d9edb4f
4 changed files with 65 additions and 1 deletions

View File

@@ -352,6 +352,65 @@ jobs:
run: |
sed -i -e '/if !key.is_empty() && !token.is_empty() {/,/}/d' ./src/client.rs
- name: add cycle monitors to toolbar
continue-on-error: true
if: fromJson(inputs.extras).cycleMonitor == 'true'
shell: bash
run: |
#add cycle monitor button to ./flutter/lib/desktop/widgets/remote_toolbar.dart
new_code="class _CycleMonitorMenu extends StatelessWidget {
final String id;
final FFI ffi;
const _CycleMonitorMenu({
Key? key,
required this.id,
required this.ffi,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final pi = ffi.ffiModel.pi;
//for (int i = 0; i < pi.displays.length; i++) {
return TextButton(
onPressed: () {
RxInt display = CurrentDisplayState.find(id);
display.value = display.value + 1;
if (display.value >= pi.displays.length) {
display.value = 0;
}
openMonitorInTheSameTab(display.value, ffi, pi);
pi.currentDisplay = display.value;
},
child: Stack(children: [
Container(
child: Align(
alignment: Alignment.center,
child: const Icon(
Icons.personal_video,
color: _ToolbarTheme.blueColor,
size: 20.0,
))),
Container(
child: Align(
alignment: Alignment(0.0, -0.4),
child: Text(
' ${CurrentDisplayState.find(id).value + 1}/${pi.displays.length}',
style: const TextStyle(
color: _ToolbarTheme.blueColor, fontSize: 8),
))),
]),
);
}
}"
echo $new_code >> ./flutter/lib/desktop/widgets/remote_toolbar.dart
sed -i '/_buildDraggable(context),/a\\ \ \ \ \ \ \ \ _CycleMonitorMenu(id: widget.id, ffi: widget.ffi),' ./flutter/lib/desktop/widgets/remote_toolbar.dart
sed -i '/dragging: _dragging,/a\\ \ \ \ \ \ \ \ \ \ \ \ \ \ ffi: widget.ffi,' ./flutter/lib/desktop/widgets/remote_toolbar.dart
sed -i '/final SessionID sessionId;/a\\ \ final FFI ffi;' ./flutter/lib/desktop/widgets/remote_toolbar.dart
sed -i '/required this.sessionId,/a\\ \ \ \ required this.ffi,' ./flutter/lib/desktop/widgets/remote_toolbar.dart
- name: run as admin
continue-on-error: true
if: ${{ fromJson(inputs.extras).runasadmin == 'true' }}

View File

@@ -66,3 +66,5 @@ class GenerateForm(forms.Form):
defaultManual = forms.CharField(widget=forms.Textarea, required=False)
overrideManual = forms.CharField(widget=forms.Textarea, required=False)
cycleMonitor = forms.BooleanField(initial=False, required=False)

View File

@@ -214,6 +214,7 @@
{{ form.defaultManual }}<br><br>
<label for="{{ form.overrideManual.id_for_label }}">Override settings</label><br>
{{ form.overrideManual }}<br><br>
<label for="{{ form.cycleMonitor.id_for_label }}">{{ form.cycleMonitor }} Add a button to cycle through available monitors to the minimized toolbar.</label>
</div>
</div>
<div class="platform">

View File

@@ -23,6 +23,7 @@ def generator_view(request):
platform = form.cleaned_data['platform']
version = form.cleaned_data['version']
delayFix = form.cleaned_data['delayFix']
cycleMonitor = form.cleaned_data['cycleMonitor']
server = form.cleaned_data['serverIP']
key = form.cleaned_data['key']
apiServer = form.cleaned_data['apiServer']
@@ -155,6 +156,7 @@ def generator_view(request):
extras['delayFix'] = 'true' if delayFix else 'false'
extras['version'] = version
extras['rdgen'] = 'true'
extras['cycleMonitor'] = 'true' if cycleMonitor else 'false'
extra_input = json.dumps(extras)
####from here run the github action, we need user, repo, access token.