|
- #pragma once
-
- #include "domain/control_logic_model.h"
-
- #include <QDialog>
-
- #include <memory>
-
- class QComboBox;
- class QSpinBox;
-
- namespace Ui {
- class LogicInstructionDialog;
- }
-
- class LogicInstructionDialog final : public QDialog
- {
- Q_OBJECT
-
- public:
- explicit LogicInstructionDialog(
- const LogicNodeConfig &config,
- QWidget *parent = nullptr);
- ~LogicInstructionDialog() override;
-
- LogicNodeConfig config() const;
-
- private:
- void configureCounter(const CounterNodeConfig &config);
- void configureMove(const MoveNodeConfig &config);
- void configureArithmetic(const ArithmeticNodeConfig &config);
- void updateOperandRanges();
- static void setOperand(
- QComboBox *kind_combo,
- QSpinBox *value_spin,
- const WordOperand &operand);
- static WordOperand operandFrom(
- const QComboBox *kind_combo,
- const QSpinBox *value_spin);
-
- std::unique_ptr<Ui::LogicInstructionDialog> ui_;
- LogicNodeConfig original_config_;
- };
|