7#include "sequenceeditor.h"
10#include <kstars_debug.h>
14#define KEY_FILTERS "filtersList"
15#define KEY_FORMATS "formatsList"
16#define KEY_ISOS "isoList"
17#define KEY_INDEX "isoIndex"
18#define KEY_H "captureFrameHN"
19#define KEY_W "captureFrameWN"
20#define KEY_GAIN_KWD "ccdGainKeyword"
21#define KEY_OFFSET_KWD "ccdOffsetKeyword"
22#define KEY_TEMPERATURE "ccdTemperatures"
23#define KEY_TIMESTAMP "timestamp"
32 if (items.
size() == 0)
35 for (
int index = 0; index <
combo->count(); index++)
38 for (
const auto &item : items)
55 m_capture.reset(
new Capture(
true));
59void SequenceEditor::showEvent(
QShowEvent* event)
63 m_capture->onStandAloneShow(event);
66void SequenceEditor::initStandAlone()
68 m_capture->cameraUI->processGrid->setVisible(
false);
69 m_capture->cameraUI->loadSaveBox->setVisible(
true);
70 m_capture->cameraUI->loadSaveBox->setEnabled(
true);
71 m_capture->cameraUI->horizontalSpacer_SQ2->changeSize(0, 0);
75 m_capture->cameraUI->opticalTrainCombo, m_capture->cameraUI->trainB, m_capture->cameraUI->restartCameraB, m_capture->cameraUI->clearConfigurationB, m_capture->cameraUI->resetFrameB, m_capture->cameraUI->opticalTrainLabel,
76 m_capture->cameraUI->coolerOnB, m_capture->cameraUI->coolerOffB, m_capture->cameraUI->setTemperatureB, m_capture->cameraUI->temperatureRegulationB, m_capture->cameraUI->temperatureOUT,
77 m_capture->cameraUI->previewB, m_capture->cameraUI->loopB, m_capture->cameraUI->liveVideoB, m_capture->cameraUI->startB, m_capture->cameraUI->pauseB,
78 m_capture->cameraUI->previewLabel, m_capture->cameraUI->loopLabel, m_capture->cameraUI->videoLabel,
79 m_capture->cameraUI->resetB, m_capture->cameraUI->queueLoadB, m_capture->cameraUI->queueSaveB, m_capture->cameraUI->queueSaveAsB,
80 m_capture->cameraUI->darkB, m_capture->cameraUI->darkLibraryB, m_capture->cameraUI->darksLibraryLabel, m_capture->cameraUI->exposureCalcB, m_capture->cameraUI->exposureCalculationLabel,
81 m_capture->cameraUI->filterManagerB
85 widget->setEnabled(
false);
86 widget->setVisible(
false);
90void SequenceEditor::onStandAloneShow()
92 OpticalTrainSettings::Instance()->setOpticalTrainID(Options::captureTrainID());
93 auto settings = OpticalTrainSettings::Instance()->getOneSetting(OpticalTrainSettings::Capture);
94 m_Settings = settings.toJsonObject().toVariantMap();
99 QString comment =
i18n(
"<b><font color=\"red\">Please run the Capture tab connected to INDI with your desired "
100 "camera/filterbank at least once before using the Sequence Editor. </font></b><p>");
102 if (m_Settings.contains(KEY_TIMESTAMP) && m_Settings[KEY_TIMESTAMP].toString().size() > 0)
103 comment =
i18n(
"<b>Using camera and filterwheel attributes from Capture session started at %1.</b>"
104 "<p>If you wish to use other cameras/filterbanks, please edit the sequence "
105 "using the Capture tab.<br>It is not recommended to overwrite a sequence file currently running, "
106 "please rename it instead.</p><p>", m_Settings[KEY_TIMESTAMP].
toString());
113 m_capture->cameraUI->loadSaveBox->setEnabled(
true);
114 m_capture->cameraUI->loadSaveBox->setVisible(
true);
117 static_cast<void(Capture::*)()
>(&Capture::loadSequenceQueue));
119 m_capture->cameraUI->FilterPosCombo->clear();
120 if (m_Settings.contains(KEY_FILTERS))
121 addToCombo(m_capture->cameraUI->FilterPosCombo, m_Settings[KEY_FILTERS].toStringList());
123 if (m_capture->cameraUI->FilterPosCombo->count() > 0)
125 m_capture->cameraUI->filterEditB->setEnabled(
true);
126 m_capture->cameraUI->filterManagerB->setEnabled(
true);
129 m_capture->cameraUI->captureGainN->setEnabled(
true);
130 m_capture->cameraUI->captureGainN->setSpecialValueText(
i18n(
"--"));
132 m_capture->cameraUI->captureOffsetN->setEnabled(
true);
133 m_capture->cameraUI->captureOffsetN->setSpecialValueText(
i18n(
"--"));
137 const QStringList frameTypes = {
"Light",
"Dark",
"Bias",
"Flat"};
138 m_capture->cameraUI->captureTypeS->
clear();
139 m_capture->cameraUI->captureTypeS->addItems(frameTypes);
144 m_capture->cameraUI->captureEncodingS->clear();
147 if (m_Settings.contains(KEY_FORMATS))
149 m_capture->cameraUI->captureFormatS->clear();
150 addToCombo(m_capture->cameraUI->captureFormatS, m_Settings[KEY_FORMATS].toStringList());
153 m_capture->cameraUI->cameraTemperatureN->setEnabled(
true);
154 m_capture->cameraUI->cameraTemperatureN->setReadOnly(
false);
155 m_capture->cameraUI->cameraTemperatureN->setSingleStep(1);
156 m_capture->cameraUI->cameraTemperatureS->setEnabled(
true);
158 double minTemp = -50, maxTemp = 50;
159 if (m_Settings.contains(KEY_TEMPERATURE))
168 m_capture->cameraUI->cameraTemperatureN->setMinimum(minTemp);
169 m_capture->cameraUI->cameraTemperatureN->setMaximum(maxTemp);
174 if (m_Settings.contains(KEY_ISOS))
177 m_capture->cameraUI->captureISOS->clear();
180 m_capture->cameraUI->captureISOS->addItems(
isoList);
181 if (m_Settings.contains(KEY_INDEX))
182 m_capture->cameraUI->captureISOS->setCurrentIndex(m_Settings[KEY_INDEX].
toString().toInt());
184 m_capture->cameraUI->captureISOS->setCurrentIndex(0);
185 m_capture->cameraUI->captureISOS->blockSignals(
false);
186 m_capture->cameraUI->captureISOS->setEnabled(
true);
191 m_capture->cameraUI->captureISOS->blockSignals(
true);
192 m_capture->cameraUI->captureISOS->clear();
193 m_capture->cameraUI->captureISOS->setEnabled(
false);
199 m_capture->cameraUI->captureFrameXN->setMaximum(
static_cast<int>(
maxFrame));
200 m_capture->cameraUI->captureFrameYN->setMaximum(
static_cast<int>(
maxFrame));
201 m_capture->cameraUI->captureFrameWN->setMaximum(
static_cast<int>(
maxFrame));
202 m_capture->cameraUI->captureFrameHN->setMaximum(
static_cast<int>(
maxFrame));
204 if (m_Settings.contains(KEY_H))
205 m_capture->cameraUI->captureFrameHN->setValue(m_Settings[KEY_H].toUInt());
207 if (m_Settings.contains(KEY_W))
208 m_capture->cameraUI->captureFrameWN->setValue(m_Settings[KEY_W].toUInt());
QString i18n(const char *text, const TYPE &arg...)
char * toString(const EngineQuery &query)
Ekos is an advanced Astrophotography tool for Linux.
qsizetype size() const const
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)