#pragma once #include #include "projectcontainer.h" #include "widgets/objectselectorwidget.h" template void loadActionTarget(Ui &ui, const AppliesTo &target) { ui.radioButtonSelf->setChecked(std::holds_alternative(target)); ui.radioButtonOther->setChecked(std::holds_alternative(target)); const auto *object = std::get_if(&target); ui.radioButtonObject->setChecked(object != nullptr); if (object) ui.widgetObject->setObject(object->objectName); else ui.widgetObject->clearObject(); ui.widgetObject->setVisible(object != nullptr); } template bool saveActionTarget(const Ui &ui, AppliesTo &target, QWidget *parent) { if (ui.radioButtonSelf->isChecked()) target = AppliesToSelf{}; else if (ui.radioButtonOther->isChecked()) target = AppliesToOther{}; else if (ui.radioButtonObject->isChecked() && !ui.widgetObject->objectName().isEmpty()) target = AppliesToObject{ui.widgetObject->objectName()}; else { QMessageBox::warning(parent, QObject::tr("Select an object"), QObject::tr("Select an object for this action.")); return false; } return true; }