7#include "oal/equipmentwriter.h"
8#include "ui_equipmentwriter.h"
12#include "kstarsdata.h"
15#include "oal/dslrlens.h"
16#include "oal/eyepiece.h"
18#include "oal/filter.h"
21#include <config-kstars.h>
24#include "indi/drivermanager.h"
27EquipmentWriter::EquipmentWriter()
31 ui.tabWidget->setCurrentIndex(0);
34 QVBoxLayout *mainLayout =
new QVBoxLayout;
56 connect(ui.NewScope, SIGNAL(clicked()),
this, SLOT(slotNewScope()));
57 connect(ui.NewEyepiece, SIGNAL(clicked()),
this, SLOT(slotNewEyepiece()));
58 connect(ui.NewLens, SIGNAL(clicked()),
this, SLOT(slotNewLens()));
59 connect(ui.NewFilter, SIGNAL(clicked()),
this, SLOT(slotNewFilter()));
60 connect(ui.AddScope, SIGNAL(clicked()),
this, SLOT(slotSave()));
61 connect(ui.AddEyepiece, SIGNAL(clicked()),
this, SLOT(slotSave()));
62 connect(ui.AddLens, SIGNAL(clicked()),
this, SLOT(slotSave()));
63 connect(ui.AddFilter, SIGNAL(clicked()),
this, SLOT(slotSave()));
64 connect(ui.ScopeList, SIGNAL(currentTextChanged(QString)),
this, SLOT(slotSetScope(QString)));
65 connect(ui.EyepieceList, SIGNAL(currentTextChanged(QString)),
this, SLOT(slotSetEyepiece(QString)));
66 connect(ui.LensList, SIGNAL(currentTextChanged(QString)),
this, SLOT(slotSetLens(QString)));
67 connect(ui.FilterList, SIGNAL(currentTextChanged(QString)),
this, SLOT(slotSetFilter(QString)));
68 connect(ui.RemoveScope, SIGNAL(clicked()),
this, SLOT(slotRemoveScope()));
69 connect(ui.RemoveEyepiece, SIGNAL(clicked()),
this, SLOT(slotRemoveEyepiece()));
70 connect(ui.RemoveLens, SIGNAL(clicked()),
this, SLOT(slotRemoveLens()));
71 connect(ui.RemoveFilter, SIGNAL(clicked()),
this, SLOT(slotRemoveFilter()));
79void EquipmentWriter::slotAddScope()
83 ui.Type->currentText(),
85 ui.FocalLength->value());
90 ui.Aperture->setValue(0);
91 ui.FocalLength->setValue(0);
94void EquipmentWriter::slotRemoveScope()
99 ui.Aperture->setValue(0);
100 ui.FocalLength->setValue(0);
104void EquipmentWriter::slotSaveScope()
108 ui.Type->currentText(),
109 ui.Aperture->value(),
110 ui.FocalLength->value(),
116void EquipmentWriter::slotSetScope(
QString name)
119 OAL::Scope *s = KStarsData::Instance()->
logObject()->findScopeByName(name);
122 ui.Id->setText(s->id());
123 ui.Model->setText(s->model());
124 ui.Vendor->setText(s->vendor());
125 ui.Type->setCurrentIndex(ui.Type->findText(s->type()));
126 ui.Aperture->setValue(s->aperture());
127 ui.FocalLength->setValue(s->focalLength());
131void EquipmentWriter::slotNewScope()
136 ui.FocalLength->setValue(0);
137 ui.ScopeList->selectionModel()->clear();
145void EquipmentWriter::slotAddDSLRLens()
148 ui.DSLR_model->text(),
149 ui.DSLR_vendor->text(),
150 ui.DSLRFocalLength->value(),
151 ui.DSLRFocalRatio->value());
153 ui.DSLR_model->clear();
154 ui.DSLR_vendor->clear();
155 ui.DSLRFocalLength->setValue(24);
156 ui.DSLRFocalRatio->setValue(2.8);
159void EquipmentWriter::slotRemoveDSLRLens()
162 ui.DSLR_model->clear();
163 ui.DSLR_vendor->clear();
164 ui.DSLRFocalLength->setValue(24);
165 ui.DSLRFocalRatio->setValue(2.8);
169void EquipmentWriter::slotSaveDSLRLens()
172 ui.DSLR_model->text(),
173 ui.DSLR_vendor->text(),
174 ui.DSLRFocalLength->value(),
175 ui.DSLRFocalRatio->value(),
181void EquipmentWriter::slotSetDSLRLens(
QString name)
183 OAL::DSLRLens *s = KStarsData::Instance()->
logObject()->findDSLRLensByName(name);
186 ui.DSLR_id->setText(s->id());
187 ui.DSLR_model->setText(s->model());
188 ui.DSLR_vendor->setText(s->vendor());
189 ui.DSLRFocalLength->setValue(s->focalLength());
190 ui.DSLRFocalRatio->setValue(s->focalRatio());
195void EquipmentWriter::slotNewDSLRLens()
198 ui.DSLR_model->clear();
199 ui.DSLR_vendor->clear();
200 ui.DSLRFocalLength->setValue(24);
201 ui.DSLRFocalRatio->setValue(2.8);
202 ui.DSLRLensList->selectionModel()->clear();
210void EquipmentWriter::slotAddEyepiece()
212 KStarsData::Instance()->
userdb()->
AddEyepiece(ui.e_Vendor->text(), ui.e_Model->text(), ui.e_focalLength->value(),
213 ui.Fov->value(), ui.FovUnit->currentText());
217 ui.e_Vendor->clear();
219 ui.e_focalLength->setValue(0);
222void EquipmentWriter::slotRemoveEyepiece()
228 ui.e_Vendor->clear();
230 ui.e_focalLength->setValue(0);
231 ui.EyepieceList->clear();
232 foreach (OAL::Eyepiece *e, *(KStarsData::Instance()->logObject()->eyepieceList()))
233 ui.EyepieceList->addItem(e->name());
235void EquipmentWriter::slotSaveEyepiece()
237 KStarsData::Instance()->
userdb()->
AddEyepiece(ui.e_Vendor->text(), ui.e_Model->text(), ui.e_focalLength->value(),
238 ui.Fov->value(), ui.FovUnit->currentText(), ui.e_Id->text());
242void EquipmentWriter::slotSetEyepiece(
QString name)
246 e = KStarsData::Instance()->
logObject()->findEyepieceByName(name);
249 ui.e_Id->setText(e->id());
250 ui.e_Model->setText(e->model());
251 ui.e_Vendor->setText(e->vendor());
252 ui.Fov->setValue(e->appFov());
253 ui.e_focalLength->setValue(e->focalLength());
258void EquipmentWriter::slotNewEyepiece()
262 ui.e_Vendor->clear();
264 ui.e_focalLength->setValue(0);
265 ui.EyepieceList->selectionModel()->clear();
269void EquipmentWriter::slotAddLens()
271 KStarsData::Instance()->
userdb()->
AddLens(ui.l_Vendor->text(), ui.l_Model->text(), ui.l_Factor->value());
275 ui.l_Vendor->clear();
276 ui.l_Factor->setValue(0);
279void EquipmentWriter::slotRemoveLens()
285 ui.l_Vendor->clear();
286 ui.l_Factor->setValue(0);
287 ui.LensList->clear();
288 foreach (OAL::Lens *l, *(KStarsData::Instance()->logObject()->lensList()))
289 ui.LensList->addItem(l->name());
291void EquipmentWriter::slotSaveLens()
293 KStarsData::Instance()->
userdb()->
AddLens(ui.l_Vendor->text(), ui.l_Model->text(), ui.l_Factor->value(),
298void EquipmentWriter::slotSetLens(
QString name)
301 l = KStarsData::Instance()->
logObject()->findLensByName(name);
304 ui.l_Id->setText(l->id());
305 ui.l_Model->setText(l->model());
306 ui.l_Vendor->setText(l->vendor());
307 ui.l_Factor->setValue(l->factor());
312void EquipmentWriter::slotNewLens()
316 ui.l_Vendor->clear();
317 ui.l_Factor->setValue(0);
318 ui.LensList->selectionModel()->clear();
322void EquipmentWriter::slotAddFilter()
324 filterProperties *fp =
new filterProperties(ui.f_Vendor->text(), ui.f_Model->text(), ui.f_Type->text(),
325 ui.f_Color->text(), ui.f_Offset->value(), ui.f_Exposure->value(), ui.f_UseAutoFocus->isChecked(),
326 ui.f_LockedFilter->text(), 0, Ekos::INVALID_VALUE, Ekos::INVALID_VALUE, ui.f_FocusDatetime->dateTime().toString(DATETIME_FORMAT),
327 ui.f_FocusTicksPerTemp->value(), ui.f_FocusTicksPerAlt->value(), ui.f_Wavelength->value());
333 ui.f_Vendor->clear();
335 ui.f_Offset->setValue(0);
337 ui.f_Exposure->setValue(1);
338 ui.f_LockedFilter->setText(NULL_FILTER);
339 ui.f_UseAutoFocus->setChecked(
false);
340 ui.f_FocusTemperature->setValue(Ekos::INVALID_VALUE);
341 ui.f_FocusAltitude->setValue(Ekos::INVALID_VALUE);
342 ui.f_FocusDatetime->setDateTime(ui.f_FocusDatetime->minimumDateTime());
343 ui.f_FocusTicksPerTemp->setValue(0.0);
344 ui.f_FocusTicksPerAlt->setValue(0.0);
345 ui.f_Wavelength->setValue(500.0);
349void EquipmentWriter::slotRemoveFilter()
355 ui.f_Vendor->clear();
357 ui.f_Offset->setValue(0);
359 ui.f_Exposure->setValue(0);
360 ui.f_LockedFilter->setText(NULL_FILTER);
361 ui.f_UseAutoFocus->setChecked(
false);
362 ui.f_FocusTemperature->setValue(Ekos::INVALID_VALUE);
363 ui.f_FocusAltitude->setValue(Ekos::INVALID_VALUE);
364 ui.f_FocusDatetime->setDateTime(ui.f_FocusDatetime->minimumDateTime());
365 ui.f_FocusTicksPerTemp->setValue(0.0);
366 ui.f_FocusTicksPerAlt->setValue(0.0);
367 ui.f_Wavelength->setValue(500.0);
368 ui.FilterList->clear();
369 foreach (OAL::Filter *f, *(KStarsData::Instance()->logObject()->filterList()))
370 ui.FilterList->addItem(f->name());
373void EquipmentWriter::slotSaveFilter()
375 filterProperties *fp =
new filterProperties(ui.f_Vendor->text(), ui.f_Model->text(), ui.f_Type->text(),
376 ui.f_Color->text(), ui.f_Offset->value(), ui.f_Exposure->value(), ui.f_UseAutoFocus->isChecked(),
377 ui.f_LockedFilter->text(), ui.f_AbsoluteFocusPosition->value(), ui.f_FocusTemperature->value(),
378 ui.f_FocusAltitude->value(), ui.f_FocusDatetime->dateTime().toString(DATETIME_FORMAT), ui.f_FocusTicksPerTemp->value(),
379 ui.f_FocusTicksPerAlt->value(), ui.f_Wavelength->value());
381 if (ui.f_Id->text().isEmpty())
390void EquipmentWriter::slotSetFilter(
QString name)
393 f = KStarsData::Instance()->
logObject()->findFilterByName(name);
396 ui.f_Id->setText(f->id());
397 ui.f_Model->setText(f->model());
398 ui.f_Vendor->setText(f->vendor());
399 ui.f_Type->setText(f->type());
400 ui.f_Color->setText(f->color());
401 ui.f_Offset->setValue(f->offset());
402 ui.f_Exposure->setValue(f->exposure());
403 ui.f_LockedFilter->setText(f->lockedFilter());
404 ui.f_UseAutoFocus->setChecked(f->useAutoFocus());
405 ui.f_AbsoluteFocusPosition->setValue(f->absoluteFocusPosition());
406 ui.f_FocusTemperature->setValue(f->focusTemperature());
407 ui.f_FocusAltitude->setValue(f->focusAltitude());
408 ui.f_FocusDatetime->setDateTime(f->focusDatetime());
409 ui.f_FocusTicksPerTemp->setValue(f->focusTicksPerTemp());
410 ui.f_FocusTicksPerAlt->setValue(f->focusTicksPerAlt());
411 ui.f_Wavelength->setValue(f->wavelength());
416void EquipmentWriter::slotNewFilter()
420 ui.f_Vendor->clear();
424 ui.f_Offset->setValue(0);
425 ui.f_Exposure->setValue(1);
426 ui.f_LockedFilter->setText(NULL_FILTER);
427 ui.f_UseAutoFocus->setChecked(
false);
428 ui.f_AbsoluteFocusPosition->setValue(0);
429 ui.f_FocusTemperature->setValue(Ekos::INVALID_VALUE);
430 ui.f_FocusAltitude->setValue(Ekos::INVALID_VALUE);
431 ui.f_FocusDatetime->setDateTime(ui.f_FocusDatetime->minimumDateTime());
432 ui.f_FocusTicksPerTemp->setValue(0.0);
433 ui.f_FocusTicksPerAlt->setValue(0.0);
434 ui.f_Wavelength->setValue(500.0);
435 ui.FilterList->selectionModel()->clear();
439void EquipmentWriter::loadEquipment()
441 KStarsData::Instance()->
logObject()->readScopes();
442 KStarsData::Instance()->
logObject()->readEyepieces();
443 KStarsData::Instance()->
logObject()->readLenses();
444 KStarsData::Instance()->
logObject()->readFilters();
445 KStarsData::Instance()->
logObject()->readDSLRLenses();
446 ui.ScopeList->clear();
447 ui.EyepieceList->clear();
448 ui.LensList->clear();
449 ui.FilterList->clear();
450 ui.DSLRLensList->clear();
451 foreach (OAL::Scope *s, *(KStarsData::Instance()->logObject()->scopeList()))
452 ui.ScopeList->addItem(s->name());
453 foreach (OAL::Eyepiece *e, *(KStarsData::Instance()->logObject()->eyepieceList()))
454 ui.EyepieceList->addItem(e->name());
455 foreach (OAL::Lens *l, *(KStarsData::Instance()->logObject()->lensList()))
456 ui.LensList->addItem(l->name());
457 foreach (OAL::Filter *f, *(KStarsData::Instance()->logObject()->filterList()))
458 ui.FilterList->addItem(f->name());
459 foreach (OAL::DSLRLens *l, *(KStarsData::Instance()->logObject()->dslrLensList()))
460 ui.DSLRLensList->addItem(l->name());
463 DriverManager::Instance()->updateCustomDrivers();
467void EquipmentWriter::slotSave()
469 switch (ui.tabWidget->currentIndex())
477 ui.ScopeList->clear();
478 foreach (OAL::Scope *s, *(KStarsData::Instance()->logObject()->scopeList()))
479 ui.ScopeList->addItem(s->name());
488 ui.EyepieceList->clear();
489 foreach (OAL::Eyepiece *e, *(KStarsData::Instance()->logObject()->eyepieceList()))
490 ui.EyepieceList->addItem(e->name());
499 ui.DSLRLensList->clear();
500 for (
const auto &l : * (KStarsData::Instance()->logObject()->dslrLensList()))
501 ui.DSLRLensList->addItem(l->name());
510 ui.LensList->clear();
511 foreach (OAL::Lens *l, *(KStarsData::Instance()->logObject()->lensList()))
512 ui.LensList->addItem(l->name());
521 ui.FilterList->clear();
522 foreach (OAL::Filter *f, *(KStarsData::Instance()->logObject()->filterList()))
523 ui.FilterList->addItem(f->name());
529void EquipmentWriter::slotClose()
bool AddFilter(const filterProperties *fp)
Add a new filter to the database.
bool AddLens(const QString &vendor, const QString &model, const double &factor)
Add a new lens to the database.
bool AddDSLRLens(const QString &model, const QString &vendor, const double focalLength, const double focalRatio)
Appends the DSLR lens with given details in the database.
bool AddScope(const QString &model, const QString &vendor, const QString &type, const double &aperture, const double &focalLength)
Appends the scope with given details in the database.
bool DeleteEquipment(const QString &type, const QString &id)
Erase the equipment with given type and unique id Valid equipment types: "telescope",...
bool AddEyepiece(const QString &vendor, const QString &model, const double &focalLength, const double &fov, const QString &fovunit)
Add new eyepiece to database.
OAL::Log * logObject()
Return log object.
QString i18nc(const char *context, const char *text, const TYPE &arg...)
void currentTextChanged(const QString ¤tText)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)