File indexing completed on 2024-04-28 03:43:07
0001 /* Progress and status of device or process preparation and execution 0002 SPDX-FileCopyrightText: Wolfgang Reissenberger <sterne-jaeger@openfuture.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "ledstatuswidget.h" 0008 0009 namespace Ekos 0010 { 0011 LedStatusWidget::LedStatusWidget(QWidget * parent) : QWidget(parent) 0012 { 0013 setupUi(this); 0014 0015 statusLed = new KLed(Qt::gray, KLed::On, KLed::Flat, KLed::Circular, this); 0016 statusLed->setObjectName("statusLed"); 0017 statusLayout->insertWidget(-1, statusLed, 0, Qt::AlignVCenter); 0018 0019 statusText->setText(i18n("Idle")); 0020 } 0021 0022 void LedStatusWidget::setCaptureState(CaptureState status) 0023 { 0024 switch (status) 0025 { 0026 case CAPTURE_IDLE: 0027 setStatus(i18n("Idle"), Qt::gray); 0028 break; 0029 case CAPTURE_PAUSED: 0030 setStatus(i18n("Paused"), Qt::gray); 0031 break; 0032 case CAPTURE_SUSPENDED: 0033 setStatus(i18n("Suspended"), Qt::gray); 0034 break; 0035 case CAPTURE_COMPLETE: 0036 setStatus(i18n("Completed"), Qt::gray); 0037 break; 0038 0039 case CAPTURE_PROGRESS: 0040 setStatus(i18n("Preparing..."), Qt::yellow); 0041 break; 0042 case CAPTURE_WAITING: 0043 setStatus(i18n("Waiting..."), Qt::yellow); 0044 break; 0045 case CAPTURE_DITHERING: 0046 setStatus(i18n("Dithering..."), Qt::yellow); 0047 break; 0048 case CAPTURE_FOCUSING: 0049 setStatus(i18n("Focusing..."), Qt::yellow); 0050 break; 0051 case CAPTURE_FILTER_FOCUS: 0052 setStatus(i18n("Filter change..."), Qt::yellow); 0053 break; 0054 case CAPTURE_CHANGING_FILTER: 0055 setStatus(i18n("Filter change..."), Qt::yellow); 0056 break; 0057 case CAPTURE_ALIGNING: 0058 setStatus(i18n("Aligning..."), Qt::yellow); 0059 break; 0060 case CAPTURE_CALIBRATING: 0061 setStatus(i18n("Calibrating..."), Qt::yellow); 0062 break; 0063 case CAPTURE_MERIDIAN_FLIP: 0064 setStatus(i18n("Meridian flip..."), Qt::yellow); 0065 break; 0066 0067 case CAPTURE_CAPTURING: 0068 setStatus(i18n("Capturing"), Qt::darkGreen); 0069 break; 0070 case CAPTURE_IMAGE_RECEIVED: 0071 setStatus(i18n("Image received."), Qt::darkGreen); 0072 break; 0073 case CAPTURE_PAUSE_PLANNED: 0074 setStatus(i18n("Pause planned..."), Qt::darkGreen); 0075 break; 0076 0077 case CAPTURE_ABORTED: 0078 setStatus(i18n("Aborted"), Qt::darkRed); 0079 break; 0080 0081 case CAPTURE_GUIDER_DRIFT: 0082 case CAPTURE_SETTING_TEMPERATURE: 0083 case CAPTURE_SETTING_ROTATOR: 0084 // do nothing here, set from {@see Capture::updatePrepareState()} 0085 break; 0086 } 0087 } 0088 0089 void LedStatusWidget::setMountState(QString text, ISD::Mount::Status status) 0090 { 0091 switch (status) 0092 { 0093 case ISD::Mount::MOUNT_IDLE: 0094 case ISD::Mount::MOUNT_PARKED: 0095 setStatus(text, Qt::gray); 0096 break; 0097 case ISD::Mount::MOUNT_MOVING: 0098 case ISD::Mount::MOUNT_SLEWING: 0099 case ISD::Mount::MOUNT_PARKING: 0100 setStatus(text, Qt::yellow); 0101 break; 0102 case ISD::Mount::MOUNT_TRACKING: 0103 setStatus(text, Qt::darkGreen); 0104 break; 0105 case ISD::Mount::MOUNT_ERROR: 0106 setStatus(text, Qt::red); 0107 break; 0108 } 0109 } 0110 0111 void LedStatusWidget::setFocusState(FocusState status) 0112 { 0113 switch (status) 0114 { 0115 case FOCUS_IDLE: 0116 setStatus(Ekos::getFocusStatusString(status), Qt::gray); 0117 break; 0118 case FOCUS_COMPLETE: 0119 setStatus(Ekos::getFocusStatusString(status), Qt::darkGreen); 0120 break; 0121 case FOCUS_WAITING: 0122 case FOCUS_PROGRESS: 0123 case FOCUS_FRAMING: 0124 case FOCUS_CHANGING_FILTER: 0125 setStatus(Ekos::getFocusStatusString(status), Qt::yellow); 0126 break; 0127 case FOCUS_FAILED: 0128 case FOCUS_ABORTED: 0129 setStatus(Ekos::getFocusStatusString(status), Qt::red); 0130 break; 0131 } 0132 } 0133 0134 void LedStatusWidget::setFilterState(FilterState status) 0135 { 0136 switch (status) 0137 { 0138 case FILTER_CHANGE: 0139 case FILTER_OFFSET: 0140 case FILTER_AUTOFOCUS: 0141 setStatus(Ekos::getFilterStatusString(status), Qt::yellow); 0142 break; 0143 case FILTER_IDLE: 0144 if (lastFilterState == FILTER_CHANGE) 0145 setStatus(i18n("Filter selected."), Qt::darkGreen); 0146 break; 0147 default: 0148 // do nothing 0149 break; 0150 } 0151 // remember the current status 0152 lastFilterState = status; 0153 } 0154 0155 void LedStatusWidget::setStatus(QString text, Qt::GlobalColor color) 0156 { 0157 statusText->setText(text); 0158 statusLed->setColor(color); 0159 } 0160 0161 }