54 Q_PROPERTY(
int rows READ rows WRITE setRows NOTIFY appearanceChanged)
55 Q_PROPERTY(
int columns READ columns WRITE setColumns NOTIFY appearanceChanged)
56 Q_PROPERTY(
int tileCount READ tileCount NOTIFY appearanceChanged)
57 Q_PROPERTY(AnnunciatorSequence sequence READ sequence WRITE setSequence NOTIFY appearanceChanged)
58 Q_PROPERTY(
bool lampTestActive READ isLampTestActive WRITE setLampTest NOTIFY appearanceChanged)
59 Q_PROPERTY(
bool audibleHornActive READ isAudibleHornActive NOTIFY audibleHornChanged)
60 Q_PROPERTY(
int activeAlarmsCount READ activeAlarmsCount NOTIFY activeAlarmsCountChanged)
61 Q_PROPERTY(
int unacknowledgedCount READ unacknowledgedCount NOTIFY unacknowledgedCountChanged)
62 Q_PROPERTY(QColor frameColor READ frameColor WRITE setFrameColor NOTIFY appearanceChanged)
63 Q_PROPERTY(QColor gridColor READ gridColor WRITE setGridColor NOTIFY appearanceChanged)
64 Q_PROPERTY(QColor criticalColor READ criticalColor WRITE setCriticalColor NOTIFY appearanceChanged)
65 Q_PROPERTY(QColor warningColor READ warningColor WRITE setWarningColor NOTIFY appearanceChanged)
66 Q_PROPERTY(QColor advisoryColor READ advisoryColor WRITE setAdvisoryColor NOTIFY appearanceChanged)
67 Q_PROPERTY(QColor textColor READ textColor WRITE setTextColor NOTIFY appearanceChanged)
79 enum class AlarmState {
88 enum class AnnunciatorSequence {
89 SequenceA_AutomaticReset,
92 Q_ENUM(AnnunciatorSequence)
97 Severity severity{Severity::Critical};
98 AlarmState state{AlarmState::Normal};
99 bool alarmActive{
false};
117 [[nodiscard]]
int rows()
const;
119 [[nodiscard]]
int columns()
const;
121 [[nodiscard]]
int tileCount()
const;
123 [[nodiscard]] AnnunciatorSequence sequence()
const;
125 [[nodiscard]]
bool isLampTestActive()
const;
127 [[nodiscard]]
bool isAudibleHornActive()
const;
129 [[nodiscard]]
int activeAlarmsCount()
const;
131 [[nodiscard]]
int unacknowledgedCount()
const;
134 [[nodiscard]] QString tileText(
int index)
const;
136 [[nodiscard]] Severity tileSeverity(
int index)
const;
138 [[nodiscard]] AlarmState tileState(
int index)
const;
140 [[nodiscard]]
bool isAlarmActive(
int index)
const;
143 [[nodiscard]] QColor frameColor()
const;
145 [[nodiscard]] QColor gridColor()
const;
147 [[nodiscard]] QColor criticalColor()
const;
149 [[nodiscard]] QColor warningColor()
const;
151 [[nodiscard]] QColor advisoryColor()
const;
153 [[nodiscard]] QColor textColor()
const;
155 [[nodiscard]] QSize sizeHint()
const override;
156 [[nodiscard]] QSize minimumSizeHint()
const override;
160 void setRows(
int rows);
162 void setColumns(
int cols);
164 void setGridSize(
int rows,
int cols);
166 void setSequence(AnnunciatorSequence sequence);
169 void setTileText(
int index,
const QString &text);
171 void setTileText(
int row,
int col,
const QString &text);
173 void setTileSeverity(
int index, Severity severity);
175 void setTileSeverity(
int row,
int col, Severity severity);
178 void setAlarmActive(
int index,
bool active);
180 void setAlarmActive(
int row,
int col,
bool active);
182 void triggerAlarm(
int index);
184 void clearAlarm(
int index);
187 void acknowledgeAll();
189 void acknowledge(
int index);
195 void reset(
int index);
198 void setLampTest(
bool active);
201 void setFrameColor(
const QColor &color);
203 void setGridColor(
const QColor &color);
205 void setCriticalColor(
const QColor &color);
207 void setWarningColor(
const QColor &color);
209 void setAdvisoryColor(
const QColor &color);
211 void setTextColor(
const QColor &color);
215 void tileClicked(
int index);
217 void tileStateChanged(
int index, AlarmState newState);
219 void audibleHornChanged(
bool active);
221 void activeAlarmsCountChanged(
int count);
223 void unacknowledgedCountChanged(
int count);
225 void appearanceChanged();
228 void paintEvent(QPaintEvent *event)
override;
229 void resizeEvent(QResizeEvent *event)
override;
230 void changeEvent(QEvent *event)
override;
231 void mousePressEvent(QMouseEvent *event)
override;
234 void onFlashTimerTick();
237 void invalidateCache();
238 void renderStaticFrame(
const QSize &size);
239 void updateHornAndSummary();
240 [[nodiscard]] QRectF calculateTileRect(
int row,
int col)
const;
241 [[nodiscard]]
int tileIndexAt(
const QPointF &pos)
const;
242 [[nodiscard]] QColor colorForSeverity(Severity severity,
bool lit)
const;
244 std::unique_ptr<AnnunciatorPanelPrivate> d_ptr;