Changeset View
Changeset View
Standalone View
Standalone View
kstars/ekos/observatory/observatory.cpp
Show All 30 Lines | 17 | { | |||
---|---|---|---|---|---|
31 | 31 | | |||
32 | setDomeModel(new ObservatoryDomeModel()); | 32 | setDomeModel(new ObservatoryDomeModel()); | ||
33 | setWeatherModel(new ObservatoryWeatherModel()); | 33 | setWeatherModel(new ObservatoryWeatherModel()); | ||
34 | statusDefinitionBox->setVisible(true); | 34 | statusDefinitionBox->setVisible(true); | ||
35 | statusDefinitionBox->setEnabled(true); | 35 | statusDefinitionBox->setEnabled(true); | ||
36 | // make invisible, since not implemented yet | 36 | // make invisible, since not implemented yet | ||
37 | weatherWarningSchedulerCB->setVisible(false); | 37 | weatherWarningSchedulerCB->setVisible(false); | ||
38 | weatherAlertSchedulerCB->setVisible(false); | 38 | weatherAlertSchedulerCB->setVisible(false); | ||
39 | motionCWButton->setVisible(false); | | |||
40 | motionCCWButton->setVisible(false); | | |||
41 | } | 39 | } | ||
42 | 40 | | |||
43 | void Observatory::setObseratoryStatusControl(ObservatoryStatusControl control) | 41 | void Observatory::setObseratoryStatusControl(ObservatoryStatusControl control) | ||
44 | { | 42 | { | ||
45 | if (mObservatoryModel != nullptr) | 43 | if (mObservatoryModel != nullptr) | ||
46 | { | 44 | { | ||
47 | useDomeCB->setChecked(control.useDome); | 45 | useDomeCB->setChecked(control.useDome); | ||
48 | useShutterCB->setChecked(control.useShutter); | 46 | useShutterCB->setChecked(control.useShutter); | ||
49 | useWeatherCB->setChecked(control.useWeather); | 47 | useWeatherCB->setChecked(control.useWeather); | ||
50 | } | 48 | } | ||
51 | } | 49 | } | ||
52 | 50 | | |||
53 | 51 | | |||
54 | void Observatory::setDomeModel(ObservatoryDomeModel *model) | 52 | void Observatory::setDomeModel(ObservatoryDomeModel *model) | ||
55 | { | 53 | { | ||
56 | mObservatoryModel->setDomeModel(model); | 54 | mObservatoryModel->setDomeModel(model); | ||
57 | if (model != nullptr) | 55 | if (model != nullptr) | ||
58 | { | 56 | { | ||
59 | connect(model, &Ekos::ObservatoryDomeModel::ready, this, &Ekos::Observatory::initDome); | 57 | connect(model, &Ekos::ObservatoryDomeModel::ready, this, &Ekos::Observatory::initDome); | ||
60 | connect(model, &Ekos::ObservatoryDomeModel::disconnected, this, &Ekos::Observatory::shutdownDome); | 58 | connect(model, &Ekos::ObservatoryDomeModel::disconnected, this, &Ekos::Observatory::shutdownDome); | ||
61 | connect(model, &Ekos::ObservatoryDomeModel::newStatus, this, &Ekos::Observatory::setDomeStatus); | 59 | connect(model, &Ekos::ObservatoryDomeModel::newStatus, this, &Ekos::Observatory::setDomeStatus); | ||
60 | connect(model, &Ekos::ObservatoryDomeModel::newParkStatus, this, &Ekos::Observatory::setDomeParkStatus); | ||||
62 | connect(model, &Ekos::ObservatoryDomeModel::newShutterStatus, this, &Ekos::Observatory::setShutterStatus); | 61 | connect(model, &Ekos::ObservatoryDomeModel::newShutterStatus, this, &Ekos::Observatory::setShutterStatus); | ||
63 | connect(model, &Ekos::ObservatoryDomeModel::azimuthPositionChanged, this, &Ekos::Observatory::domeAzimuthChanged); | 62 | connect(model, &Ekos::ObservatoryDomeModel::azimuthPositionChanged, this, &Ekos::Observatory::domeAzimuthChanged); | ||
64 | connect(model, &Ekos::ObservatoryDomeModel::newAutoSyncStatus, this, &Ekos::Observatory::showAutoSync); | 63 | connect(model, &Ekos::ObservatoryDomeModel::newAutoSyncStatus, this, &Ekos::Observatory::showAutoSync); | ||
65 | 64 | | |||
66 | // motion controls | 65 | // motion controls | ||
67 | connect(motionMoveAbsButton, &QCheckBox::clicked, [this]() | 66 | connect(motionMoveAbsButton, &QCheckBox::clicked, [this]() | ||
68 | { | 67 | { | ||
69 | mObservatoryModel->getDomeModel()->setAzimuthPosition(absoluteMotionSB->value()); | 68 | mObservatoryModel->getDomeModel()->setAzimuthPosition(absoluteMotionSB->value()); | ||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Line(s) | |||||
120 | void Observatory::initDome() | 119 | void Observatory::initDome() | ||
121 | { | 120 | { | ||
122 | domeBox->setEnabled(true); | 121 | domeBox->setEnabled(true); | ||
123 | 122 | | |||
124 | if (getDomeModel() != nullptr) | 123 | if (getDomeModel() != nullptr) | ||
125 | { | 124 | { | ||
126 | connect(getDomeModel(), &Ekos::ObservatoryDomeModel::newLog, this, &Ekos::Observatory::appendLogText); | 125 | connect(getDomeModel(), &Ekos::ObservatoryDomeModel::newLog, this, &Ekos::Observatory::appendLogText); | ||
127 | 126 | | |||
127 | // dome motion buttons | ||||
128 | connect(motionCWButton, &QPushButton::clicked, [=](bool checked) {getDomeModel()->moveDome(true, checked);}); | ||||
129 | connect(motionCCWButton, &QPushButton::clicked, [=](bool checked) {getDomeModel()->moveDome(false, checked);}); | ||||
130 | | ||||
128 | if (getDomeModel()->canPark()) | 131 | if (getDomeModel()->canPark()) | ||
129 | { | 132 | { | ||
130 | connect(domePark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::park); | 133 | connect(domePark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::park); | ||
131 | connect(domeUnpark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::unpark); | 134 | connect(domeUnpark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::unpark); | ||
132 | domePark->setEnabled(true); | 135 | domePark->setEnabled(true); | ||
133 | domeUnpark->setEnabled(true); | 136 | domeUnpark->setEnabled(true); | ||
134 | } | 137 | } | ||
135 | else | 138 | else | ||
136 | { | 139 | { | ||
137 | domePark->setEnabled(false); | 140 | domePark->setEnabled(false); | ||
138 | domeUnpark->setEnabled(false); | 141 | domeUnpark->setEnabled(false); | ||
139 | } | 142 | } | ||
140 | 143 | | |||
144 | if (getDomeModel()->isRolloffRoof()) | ||||
145 | { | ||||
146 | SlavingBox->setVisible(false); | ||||
147 | domeAzimuthPosition->setText("N/A"); | ||||
148 | enableMotionControl(true); | ||||
149 | } | ||||
150 | else | ||||
151 | { | ||||
141 | // initialize the dome motion controls | 152 | // initialize the dome motion controls | ||
142 | domeAzimuthChanged(getDomeModel()->azimuthPosition()); | 153 | domeAzimuthChanged(getDomeModel()->azimuthPosition()); | ||
143 | 154 | | |||
155 | // slaving | ||||
156 | showAutoSync(getDomeModel()->isAutoSync()); | ||||
157 | connect(slavingEnableButton, &QPushButton::clicked, this, [this]() | ||||
158 | { | ||||
159 | enableAutoSync(true); | ||||
160 | }); | ||||
161 | connect(slavingDisableButton, &QPushButton::clicked, this, [this]() | ||||
162 | { | ||||
163 | enableAutoSync(false); | ||||
164 | }); | ||||
165 | } | ||||
166 | | ||||
167 | // shutter handling | ||||
144 | if (getDomeModel()->hasShutter()) | 168 | if (getDomeModel()->hasShutter()) | ||
145 | { | 169 | { | ||
146 | shutterBox->setVisible(true); | 170 | shutterBox->setVisible(true); | ||
147 | shutterBox->setEnabled(true); | 171 | shutterBox->setEnabled(true); | ||
148 | connect(shutterOpen, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::openShutter); | 172 | connect(shutterOpen, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::openShutter); | ||
149 | connect(shutterClosed, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::closeShutter); | 173 | connect(shutterClosed, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::closeShutter); | ||
150 | shutterClosed->setEnabled(true); | 174 | shutterClosed->setEnabled(true); | ||
151 | shutterOpen->setEnabled(true); | 175 | shutterOpen->setEnabled(true); | ||
176 | setShutterStatus(getDomeModel()->shutterStatus()); | ||||
177 | useShutterCB->setVisible(true); | ||||
152 | } | 178 | } | ||
153 | else | 179 | else | ||
154 | { | 180 | { | ||
155 | shutterBox->setVisible(false); | 181 | shutterBox->setVisible(false); | ||
156 | weatherWarningShutterCB->setVisible(false); | 182 | weatherWarningShutterCB->setVisible(false); | ||
157 | weatherAlertShutterCB->setVisible(false); | 183 | weatherAlertShutterCB->setVisible(false); | ||
184 | useShutterCB->setVisible(false); | ||||
158 | } | 185 | } | ||
159 | 186 | | |||
187 | // abort button should always be available | ||||
160 | motionAbortButton->setEnabled(true); | 188 | motionAbortButton->setEnabled(true); | ||
161 | 189 | // update the dome status | |||
162 | // slaving | | |||
163 | connect(slavingEnableButton, &QPushButton::clicked, this, [this]() | | |||
164 | { | | |||
165 | enableAutoSync(true); | | |||
166 | }); | | |||
167 | connect(slavingDisableButton, &QPushButton::clicked, this, [this]() | | |||
168 | { | | |||
169 | enableAutoSync(false); | | |||
170 | }); | | |||
171 | | ||||
172 | | ||||
173 | setDomeStatus(getDomeModel()->status()); | 190 | setDomeStatus(getDomeModel()->status()); | ||
174 | setShutterStatus(getDomeModel()->shutterStatus()); | 191 | setDomeParkStatus(getDomeModel()->parkStatus()); | ||
175 | | ||||
176 | enableAutoSync(getDomeModel()->isAutoSync()); | | |||
177 | } | 192 | } | ||
178 | 193 | | |||
179 | } | 194 | } | ||
180 | 195 | | |||
181 | void Observatory::shutdownDome() | 196 | void Observatory::shutdownDome() | ||
182 | { | 197 | { | ||
183 | domeBox->setEnabled(false); | 198 | domeBox->setEnabled(false); | ||
184 | shutterBox->setEnabled(false); | 199 | shutterBox->setEnabled(false); | ||
185 | shutterBox->setVisible(false); | 200 | shutterBox->setVisible(false); | ||
186 | domePark->setEnabled(false); | 201 | domePark->setEnabled(false); | ||
187 | domeUnpark->setEnabled(false); | 202 | domeUnpark->setEnabled(false); | ||
188 | shutterClosed->setEnabled(false); | 203 | shutterClosed->setEnabled(false); | ||
189 | shutterOpen->setEnabled(false); | 204 | shutterOpen->setEnabled(false); | ||
190 | 205 | | |||
191 | disconnect(domePark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::park); | 206 | disconnect(domePark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::park); | ||
192 | disconnect(domeUnpark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::unpark); | 207 | disconnect(domeUnpark, &QPushButton::clicked, getDomeModel(), &Ekos::ObservatoryDomeModel::unpark); | ||
193 | } | 208 | } | ||
194 | 209 | | |||
195 | void Observatory::setDomeStatus(ISD::Dome::Status status) | 210 | void Observatory::setDomeStatus(ISD::Dome::Status status) | ||
196 | { | 211 | { | ||
212 | qCDebug(KSTARS_EKOS_OBSERVATORY) << "Setting dome status to " << status; | ||||
213 | | ||||
197 | switch (status) | 214 | switch (status) | ||
198 | { | 215 | { | ||
199 | case ISD::Dome::DOME_ERROR: | 216 | case ISD::Dome::DOME_ERROR: | ||
200 | break; | 217 | break; | ||
201 | case ISD::Dome::DOME_IDLE: | 218 | case ISD::Dome::DOME_IDLE: | ||
202 | domePark->setChecked(false); | 219 | motionCWButton->setChecked(false); | ||
203 | domePark->setText(i18n("Park")); | 220 | motionCWButton->setEnabled(true); | ||
204 | domeUnpark->setChecked(true); | 221 | motionCCWButton->setChecked(false); | ||
205 | domeUnpark->setText(i18n("UnParked")); | 222 | motionCCWButton->setEnabled(true); | ||
206 | enableMotionControl(true); | 223 | | ||
207 | appendLogText(i18n("Dome is idle.")); | 224 | appendLogText(i18n("Dome is idle.")); | ||
208 | break; | 225 | break; | ||
209 | case ISD::Dome::DOME_MOVING: | 226 | | ||
210 | enableMotionControl(false); | 227 | case ISD::Dome::DOME_MOVING_CW: | ||
211 | appendLogText(i18n("Dome is moving...")); | 228 | motionCWButton->setChecked(true); | ||
229 | motionCCWButton->setEnabled(true); | ||||
230 | motionCCWButton->setChecked(false); | ||||
231 | if (getDomeModel()->isRolloffRoof()) | ||||
232 | { | ||||
233 | domeAzimuthPosition->setText(i18n("Opening")); | ||||
234 | toggleButtons(domeUnpark, i18n("Unparking"), domePark, i18n("Park")); | ||||
235 | appendLogText(i18n("Dome is opening...")); | ||||
236 | } | ||||
237 | else | ||||
238 | { | ||||
239 | appendLogText(i18n("Dome is moving clockwise...")); | ||||
240 | } | ||||
241 | break; | ||||
242 | | ||||
243 | case ISD::Dome::DOME_MOVING_CCW: | ||||
244 | motionCWButton->setChecked(false); | ||||
245 | motionCWButton->setEnabled(true); | ||||
246 | motionCCWButton->setChecked(true); | ||||
247 | if (getDomeModel()->isRolloffRoof()) | ||||
248 | { | ||||
249 | domeAzimuthPosition->setText(i18n("Closing")); | ||||
250 | toggleButtons(domePark, i18n("Parking"), domeUnpark, i18n("Unpark")); | ||||
251 | appendLogText(i18n("Dome is closing...")); | ||||
252 | } | ||||
253 | else | ||||
254 | { | ||||
255 | appendLogText(i18n("Dome is moving counter clockwise...")); | ||||
256 | } | ||||
212 | break; | 257 | break; | ||
258 | | ||||
213 | case ISD::Dome::DOME_PARKED: | 259 | case ISD::Dome::DOME_PARKED: | ||
214 | domePark->setChecked(true); | 260 | setDomeParkStatus(ISD::PARK_PARKED); | ||
215 | domePark->setText(i18n("Parked")); | 261 | | ||
216 | domeUnpark->setChecked(false); | | |||
217 | domeUnpark->setText(i18n("UnPark")); | | |||
218 | enableMotionControl(false); | | |||
219 | appendLogText(i18n("Dome is parked.")); | 262 | appendLogText(i18n("Dome is parked.")); | ||
220 | break; | 263 | break; | ||
264 | | ||||
221 | case ISD::Dome::DOME_PARKING: | 265 | case ISD::Dome::DOME_PARKING: | ||
222 | domePark->setText(i18n("Parking")); | 266 | toggleButtons(domePark, i18n("Parking"), domeUnpark, i18n("Unpark")); | ||
223 | domeUnpark->setText(i18n("UnPark")); | 267 | motionCWButton->setEnabled(true); | ||
268 | | ||||
269 | if (getDomeModel()->isRolloffRoof()) | ||||
270 | domeAzimuthPosition->setText(i18n("Closing")); | ||||
mutlaqja: CLOSING --> Closing... | |||||
wreissenberger: Good point. | |||||
271 | else | ||||
224 | enableMotionControl(false); | 272 | enableMotionControl(false); | ||
273 | | ||||
274 | motionCWButton->setChecked(false); | ||||
275 | motionCCWButton->setChecked(true); | ||||
276 | | ||||
mutlaqja: i18n | |||||
225 | appendLogText(i18n("Dome is parking...")); | 277 | appendLogText(i18n("Dome is parking...")); | ||
226 | break; | 278 | break; | ||
279 | | ||||
227 | case ISD::Dome::DOME_UNPARKING: | 280 | case ISD::Dome::DOME_UNPARKING: | ||
228 | domePark->setText(i18n("Park")); | 281 | toggleButtons(domeUnpark, i18n("Unparking"), domePark, i18n("Park")); | ||
229 | domeUnpark->setText(i18n("UnParking")); | 282 | motionCCWButton->setEnabled(true); | ||
283 | | ||||
284 | if (getDomeModel()->isRolloffRoof()) | ||||
285 | domeAzimuthPosition->setText(i18n("Opening")); | ||||
mutlaqja: Ditto | |||||
wreissenberger: Agreed. | |||||
286 | else | ||||
230 | enableMotionControl(false); | 287 | enableMotionControl(false); | ||
288 | | ||||
289 | motionCWButton->setChecked(true); | ||||
290 | motionCCWButton->setChecked(false); | ||||
291 | | ||||
mutlaqja: i18n? | |||||
231 | appendLogText(i18n("Dome is unparking...")); | 292 | appendLogText(i18n("Dome is unparking...")); | ||
232 | break; | 293 | break; | ||
294 | | ||||
233 | case ISD::Dome::DOME_TRACKING: | 295 | case ISD::Dome::DOME_TRACKING: | ||
234 | enableMotionControl(true); | 296 | enableMotionControl(true); | ||
297 | motionCWButton->setEnabled(true); | ||||
298 | motionCCWButton->setChecked(true); | ||||
235 | appendLogText(i18n("Dome is tracking.")); | 299 | appendLogText(i18n("Dome is tracking.")); | ||
236 | break; | 300 | break; | ||
237 | } | 301 | } | ||
238 | } | 302 | } | ||
239 | 303 | | |||
304 | void Observatory::setDomeParkStatus(ISD::ParkStatus status) | ||||
305 | { | ||||
306 | qCDebug(KSTARS_EKOS_OBSERVATORY) << "Setting dome park status to " << status; | ||||
307 | switch (status) | ||||
308 | { | ||||
309 | case ISD::PARK_UNPARKED: | ||||
310 | activateButton(domePark, i18n("Park")); | ||||
311 | buttonPressed(domeUnpark, i18n("Unparked")); | ||||
312 | motionCWButton->setChecked(false); | ||||
313 | motionCWButton->setEnabled(false); | ||||
314 | motionCCWButton->setChecked(false); | ||||
315 | | ||||
316 | if (getDomeModel()->isRolloffRoof()) | ||||
317 | domeAzimuthPosition->setText(i18n("Open")); | ||||
OPEN --> Open No need to capitalize unless extremely necessary for dangerous situations like CAUTION or something like that. mutlaqja: OPEN --> Open
No need to capitalize unless extremely necessary for dangerous situations like… | |||||
318 | else | ||||
319 | enableMotionControl(true); | ||||
320 | break; | ||||
321 | | ||||
322 | case ISD::PARK_PARKED: | ||||
323 | buttonPressed(domePark, i18n("Parked")); | ||||
324 | activateButton(domeUnpark, i18n("Unpark")); | ||||
325 | motionCWButton->setChecked(false); | ||||
326 | motionCCWButton->setChecked(false); | ||||
327 | motionCCWButton->setEnabled(false); | ||||
328 | | ||||
329 | if (getDomeModel()->isRolloffRoof()) | ||||
330 | domeAzimuthPosition->setText(i18n("Closed")); | ||||
331 | else | ||||
332 | enableMotionControl(false); | ||||
333 | break; | ||||
334 | | ||||
335 | default: | ||||
336 | break; | ||||
337 | } | ||||
338 | } | ||||
339 | | ||||
240 | 340 | | |||
241 | void Observatory::setShutterStatus(ISD::Dome::ShutterStatus status) | 341 | void Observatory::setShutterStatus(ISD::Dome::ShutterStatus status) | ||
242 | { | 342 | { | ||
343 | qCDebug(KSTARS_EKOS_OBSERVATORY) << "Setting shutter status to " << status; | ||||
344 | | ||||
243 | switch (status) | 345 | switch (status) | ||
244 | { | 346 | { | ||
245 | case ISD::Dome::SHUTTER_OPEN: | 347 | case ISD::Dome::SHUTTER_OPEN: | ||
246 | shutterOpen->setChecked(true); | 348 | buttonPressed(shutterOpen, i18n("Opened")); | ||
247 | shutterClosed->setChecked(false); | 349 | activateButton(shutterClosed, i18n("Close")); | ||
248 | shutterOpen->setText(i18n("Opened")); | | |||
249 | shutterClosed->setText(i18n("Close")); | | |||
250 | appendLogText(i18n("Shutter is open.")); | 350 | appendLogText(i18n("Shutter is open.")); | ||
251 | break; | 351 | break; | ||
352 | | ||||
252 | case ISD::Dome::SHUTTER_OPENING: | 353 | case ISD::Dome::SHUTTER_OPENING: | ||
253 | shutterOpen->setText(i18n("Opening")); | 354 | toggleButtons(shutterOpen, i18n("Opening"), shutterClosed, i18n("Close")); | ||
254 | shutterClosed->setText(i18n("Closed")); | | |||
255 | appendLogText(i18n("Shutter is opening...")); | 355 | appendLogText(i18n("Shutter is opening...")); | ||
256 | break; | 356 | break; | ||
357 | | ||||
257 | case ISD::Dome::SHUTTER_CLOSED: | 358 | case ISD::Dome::SHUTTER_CLOSED: | ||
258 | shutterOpen->setChecked(false); | 359 | buttonPressed(shutterClosed, i18n("Closed")); | ||
259 | shutterClosed->setChecked(true); | 360 | activateButton(shutterOpen, i18n("Open")); | ||
260 | shutterOpen->setText(i18n("Open")); | | |||
261 | shutterClosed->setText(i18n("Closed")); | | |||
262 | appendLogText(i18n("Shutter is closed.")); | 361 | appendLogText(i18n("Shutter is closed.")); | ||
263 | break; | 362 | break; | ||
264 | case ISD::Dome::SHUTTER_CLOSING: | 363 | case ISD::Dome::SHUTTER_CLOSING: | ||
265 | shutterOpen->setText(i18n("Opened")); | 364 | toggleButtons(shutterClosed, i18n("Closing"), shutterOpen, i18n("Open")); | ||
266 | shutterClosed->setText(i18n("Closing")); | | |||
267 | appendLogText(i18n("Shutter is closing...")); | 365 | appendLogText(i18n("Shutter is closing...")); | ||
268 | break; | 366 | break; | ||
269 | default: | 367 | default: | ||
270 | break; | 368 | break; | ||
271 | } | 369 | } | ||
272 | } | 370 | } | ||
273 | 371 | | |||
274 | 372 | | |||
Show All 37 Lines | 408 | { | |||
312 | absoluteMotionSB->setEnabled(false); | 410 | absoluteMotionSB->setEnabled(false); | ||
313 | } | 411 | } | ||
314 | 412 | | |||
315 | // relative motion controls | 413 | // relative motion controls | ||
316 | if (getDomeModel()->canRelativeMove()) | 414 | if (getDomeModel()->canRelativeMove()) | ||
317 | { | 415 | { | ||
318 | motionMoveRelButton->setEnabled(enabled); | 416 | motionMoveRelButton->setEnabled(enabled); | ||
319 | relativeMotionSB->setEnabled(enabled); | 417 | relativeMotionSB->setEnabled(enabled); | ||
418 | motionCWButton->setEnabled(enabled); | ||||
419 | motionCCWButton->setEnabled(enabled); | ||||
320 | } | 420 | } | ||
321 | else | 421 | else | ||
322 | { | 422 | { | ||
323 | motionMoveRelButton->setEnabled(false); | 423 | motionMoveRelButton->setEnabled(false); | ||
324 | relativeMotionSB->setEnabled(false); | 424 | relativeMotionSB->setEnabled(false); | ||
425 | motionCWButton->setEnabled(false); | ||||
426 | motionCCWButton->setEnabled(false); | ||||
325 | } | 427 | } | ||
326 | 428 | | |||
327 | 429 | // special case for rolloff roofs | |||
430 | if (getDomeModel()->isRolloffRoof()) | ||||
431 | { | ||||
432 | motionCWButton->setText(i18n("Open")); | ||||
433 | motionCCWButton->setText(i18n("Close")); | ||||
434 | motionCWButton->setEnabled(enabled); | ||||
435 | motionCCWButton->setEnabled(enabled); | ||||
436 | motionMoveAbsButton->setVisible(false); | ||||
437 | motionMoveRelButton->setVisible(false); | ||||
438 | absoluteMotionSB->setVisible(false); | ||||
439 | relativeMotionSB->setVisible(false); | ||||
440 | } | ||||
328 | } | 441 | } | ||
329 | 442 | | |||
330 | void Observatory::enableAutoSync(bool enabled) | 443 | void Observatory::enableAutoSync(bool enabled) | ||
331 | { | 444 | { | ||
332 | if (getDomeModel() == nullptr) | 445 | if (getDomeModel() == nullptr) | ||
333 | showAutoSync(false); | 446 | showAutoSync(false); | ||
334 | else | 447 | else | ||
335 | { | 448 | { | ||
▲ Show 20 Lines • Show All 100 Lines • ▼ Show 20 Line(s) | |||||
436 | 549 | | |||
437 | void Observatory::setAlertActions(WeatherActions actions) | 550 | void Observatory::setAlertActions(WeatherActions actions) | ||
438 | { | 551 | { | ||
439 | weatherAlertDomeCB->setChecked(actions.parkDome); | 552 | weatherAlertDomeCB->setChecked(actions.parkDome); | ||
440 | weatherAlertShutterCB->setChecked(actions.closeShutter); | 553 | weatherAlertShutterCB->setChecked(actions.closeShutter); | ||
441 | weatherAlertDelaySB->setValue(actions.delay); | 554 | weatherAlertDelaySB->setValue(actions.delay); | ||
442 | } | 555 | } | ||
443 | 556 | | |||
557 | void Observatory::toggleButtons(QPushButton *buttonPressed, QString titlePressed, QPushButton *buttonCounterpart, QString titleCounterpart) | ||||
558 | { | ||||
559 | buttonPressed->setEnabled(false); | ||||
560 | buttonPressed->setText(titlePressed); | ||||
561 | | ||||
562 | buttonCounterpart->setEnabled(true); | ||||
563 | buttonCounterpart->setChecked(false); | ||||
564 | buttonCounterpart->setCheckable(false); | ||||
565 | buttonCounterpart->setText(titleCounterpart); | ||||
No need to use i18n here, the i18n should be used on string literals i18n("Foo") and not on variables. So this should be setText(titleCounterpart) and the calling function should use the i18n mutlaqja: No need to use i18n here, the i18n should be used on string literals i18n("Foo") and not on… | |||||
wreissenberger: OK, sounds reasonable. | |||||
566 | } | ||||
567 | | ||||
568 | void Observatory::activateButton(QPushButton *button, QString title) | ||||
569 | { | ||||
570 | button->setEnabled(true); | ||||
571 | button->setCheckable(false); | ||||
572 | button->setText(title); | ||||
573 | } | ||||
574 | | ||||
575 | void Observatory::buttonPressed(QPushButton *button, QString title) | ||||
576 | { | ||||
577 | button->setEnabled(false); | ||||
578 | button->setCheckable(true); | ||||
579 | button->setChecked(true); | ||||
580 | button->setText(title); | ||||
581 | | ||||
582 | } | ||||
583 | | ||||
584 | | ||||
444 | void Observatory::statusControlSettingsChanged() | 585 | void Observatory::statusControlSettingsChanged() | ||
445 | { | 586 | { | ||
446 | ObservatoryStatusControl control; | 587 | ObservatoryStatusControl control; | ||
447 | control.useDome = useDomeCB->isChecked(); | 588 | control.useDome = useDomeCB->isChecked(); | ||
448 | control.useShutter = useShutterCB->isChecked(); | 589 | control.useShutter = useShutterCB->isChecked(); | ||
449 | control.useWeather = useWeatherCB->isChecked(); | 590 | control.useWeather = useWeatherCB->isChecked(); | ||
450 | mObservatoryModel->setStatusControl(control); | 591 | mObservatoryModel->setStatusControl(control); | ||
451 | } | 592 | } | ||
Show All 19 Lines |
CLOSING --> Closing...