Skip to content

Commit 6be5919

Browse files
committed
Ensured only available Macros are shown in the UI
1 parent 3768787 commit 6be5919

9 files changed

+29
-20
lines changed

lib/domain/moonraker/gcode_macro.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class GCodeMacro extends StampedEntity {
1313
this.visible = true,
1414
this.showWhilePrinting = true})
1515
: uuid = uuid ?? Uuid().v4(),
16-
super(created ?? DateTime.now(), lastModified ?? DateTime.now());
16+
super(created, lastModified ?? DateTime.now());
1717

1818
@JsonKey(required: true)
1919
String name;

lib/domain/moonraker/machine_settings.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ part 'machine_settings.g.dart';
99
@JsonSerializable()
1010
class MachineSettings extends StampedEntity {
1111
MachineSettings(
12-
{required DateTime created,
13-
required DateTime lastModified,
12+
{DateTime? created,
13+
DateTime? lastModified,
1414
this.temperaturePresets = const [],
1515
this.inverts = const [false, false, false],
1616
this.speedXY = 100,
@@ -20,7 +20,7 @@ class MachineSettings extends StampedEntity {
2020
this.babySteps = const [0.005, 0.01, 0.05, 0.1],
2121
this.extrudeSteps = const [1, 10, 25, 50],
2222
this.macroGroups = const []})
23-
: super(created, lastModified);
23+
: super(created, lastModified ?? DateTime.now());
2424

2525
MachineSettings.fallback()
2626
: this(created: DateTime.now(), lastModified: DateTime.now());

lib/domain/moonraker/macro_group.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class MacroGroup extends StampedEntity {
1515
String? uuid,
1616
this.macros = const [],
1717
}) : uuid = uuid ?? Uuid().v4(),
18-
super(created ?? DateTime.now(), lastModified ?? DateTime.now());
18+
super(created, lastModified ?? DateTime.now());
1919

2020
String name;
2121
final String uuid;

lib/domain/moonraker/stamped_entity.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class StampedEntity {
2-
StampedEntity(this.created, this.lastModified);
2+
StampedEntity(DateTime? created, this.lastModified)
3+
: created = created ?? DateTime.now();
34

45
final DateTime created;
56
DateTime lastModified;
@@ -14,6 +15,4 @@ class StampedEntity {
1415

1516
@override
1617
int get hashCode => created.hashCode ^ lastModified.hashCode;
17-
18-
1918
}

lib/domain/moonraker/temperature_preset.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class TemperaturePreset extends StampedEntity {
1515
this.bedTemp = 60,
1616
this.extruderTemp = 170,
1717
}) : uuid = uuid ?? Uuid().v4(),
18-
super(created ?? DateTime.now(), lastModified ?? DateTime.now());
18+
super(created, lastModified ?? DateTime.now());
1919

2020
String name;
2121
final String uuid;

lib/service/machine_service.dart

+6-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import 'package:hive/hive.dart';
44
import 'package:mobileraker/app/app_setup.locator.dart';
55
import 'package:mobileraker/app/app_setup.logger.dart';
66
import 'package:mobileraker/datasource/moonraker_database_client.dart';
7-
import 'package:mobileraker/domain/hive/gcode_macro.dart';
87
import 'package:mobileraker/domain/hive/machine.dart';
9-
import 'package:mobileraker/domain/hive/macro_group.dart';
8+
import 'package:mobileraker/domain/moonraker/gcode_macro.dart';
109
import 'package:mobileraker/domain/moonraker/machine_settings.dart';
10+
import 'package:mobileraker/domain/moonraker/macro_group.dart';
1111
import 'package:mobileraker/repository/machine_hive_repository.dart';
1212
import 'package:mobileraker/repository/machine_settings_moonraker_repository.dart';
1313
import 'package:mobileraker/service/selected_machine_service.dart';
@@ -156,11 +156,12 @@ class MachineService {
156156
return i;
157157
}
158158

159-
updateSettingMacros(Machine machine, List<String> macros) {
159+
updateMacrosInSettings(Machine machine, List<String> macros) async {
160160
_logger.i("Updating Default Macros!");
161+
MachineSettings machineSettings = await fetchSettings(machine);
161162
List<String> filteredMacros =
162163
macros.where((element) => !element.startsWith('_')).toList();
163-
List<MacroGroup> macroGroups = machine.macroGroups;
164+
List<MacroGroup> macroGroups = machineSettings.macroGroups;
164165
for (MacroGroup grp in macroGroups) {
165166
for (GCodeMacro macro in grp.macros) {
166167
filteredMacros.remove(macro.name);
@@ -174,7 +175,7 @@ class MachineService {
174175
return group;
175176
});
176177

177-
defaultGroup.macros.addAll(filteredMacros.map((e) => GCodeMacro(e)));
178+
defaultGroup.macros.addAll(filteredMacros.map((e) => GCodeMacro(name: e)));
178179
}
179180

180181
dispose() {

lib/service/moonraker/printer_service.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ class PrinterService {
286286
});
287287
printer.queryableObjects = qObjects;
288288
printer.gcodeMacros = gCodeMacros;
289-
_machineService.updateSettingMacros(_owner, gCodeMacros);
289+
_machineService.updateMacrosInSettings(_owner, gCodeMacros);
290290
_queryPrinterObjects(printer);
291291
}
292292

lib/ui/views/dashboard/tabs/control_tab.dart

+7-4
Original file line numberDiff line numberDiff line change
@@ -360,10 +360,13 @@ class GcodeMacroCard extends ViewModelWidget<ControlTabViewModel> {
360360
GCodeMacro macro = macros[index];
361361
bool disabled = (!model.canUsePrinter ||
362362
(model.isPrinting && !macro.showWhilePrinting));
363-
return ActionChip(
364-
label: Text(macro.beautifiedName),
365-
backgroundColor: disabled ? themeData.disabledColor : bgColActive,
366-
onPressed: () => disabled ? null : model.onMacroPressed(macro),
363+
return Visibility(
364+
visible: model.printer.gcodeMacros.contains(macro.name) && macro.visible,
365+
child: ActionChip(
366+
label: Text(macro.beautifiedName),
367+
backgroundColor: disabled ? themeData.disabledColor : bgColActive,
368+
onPressed: () => disabled ? null : model.onMacroPressed(macro),
369+
),
367370
);
368371
},
369372
).toList();

lib/ui/views/printers/edit/printers_edit_viewmodel.dart

+7-1
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ class PrinterEditViewModel extends MultipleFutureViewModel {
447447
// printerApiKey = resu;
448448
}
449449

450+
450451
_buildMacroGroups() {
451452
_macroGroups.addAll(machineSettings.macroGroups);
452453
MacroGroup defaultGroup = _defaultGroup;
@@ -472,7 +473,10 @@ class PrinterEditViewModel extends MultipleFutureViewModel {
472473
_saveMacroGroup(MacroGroup toSave) {
473474
_fbKey.currentState?.save();
474475
var name = _fbKey.currentState!.value['${toSave.uuid}-macroName'];
475-
if (name != null) toSave.name = name;
476+
if (name != null)
477+
toSave
478+
..name = name
479+
..lastModified = DateTime.now();
476480
}
477481

478482
_saveAllCams() {
@@ -510,6 +514,8 @@ class PrinterEditViewModel extends MultipleFutureViewModel {
510514
if (name != null) toSave.name = name;
511515
if (extruderTemp != null) toSave.extruderTemp = extruderTemp;
512516
if (bedTemp != null) toSave.bedTemp = bedTemp;
517+
if ((bedTemp ?? extruderTemp ?? name ?? extruderTemp) != null)
518+
toSave.lastModified = DateTime.now();
513519
}
514520

515521
_saveAllGroupStuff() {

0 commit comments

Comments
 (0)