File indexing completed on 2024-04-28 15:09:53

0001 /*
0002     SPDX-FileCopyrightText: 2003 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "opsguide.h"
0008 
0009 #include "Options.h"
0010 #include "kstars.h"
0011 #include "auxiliary/ksnotification.h"
0012 #include "internalguide/internalguider.h"
0013 #include "ekos/auxiliary/stellarsolverprofileeditor.h"
0014 #include "kspaths.h"
0015 
0016 #include <KConfigDialog>
0017 
0018 #include <QCheckBox>
0019 #include <QComboBox>
0020 #include <QFileDialog>
0021 #include <QPushButton>
0022 #include <QStringList>
0023 
0024 namespace Ekos
0025 {
0026 OpsGuide::OpsGuide() : QFrame(KStars::Instance())
0027 {
0028     setupUi(this);
0029 
0030     //Get a pointer to the KConfigDialog
0031     m_ConfigDialog = KConfigDialog::exists("guidesettings");
0032 
0033     editGuideProfile->setIcon(QIcon::fromTheme("document-edit"));
0034     editGuideProfile->setAttribute(Qt::WA_LayoutUsesWidgetRect);
0035 
0036     connect(editGuideProfile, &QAbstractButton::clicked, this, [this]()
0037     {
0038         KConfigDialog *optionsEditor = new KConfigDialog(this, "OptionsProfileEditor", Options::self());
0039         optionsProfileEditor = new StellarSolverProfileEditor(this, Ekos::GuideProfiles, optionsEditor);
0040 #ifdef Q_OS_OSX
0041         optionsEditor->setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
0042 #endif
0043         KPageWidgetItem *mainPage = optionsEditor->addPage(optionsProfileEditor, i18n("Guide Options Profile Editor"));
0044         mainPage->setIcon(QIcon::fromTheme("configure"));
0045         connect(optionsProfileEditor, &StellarSolverProfileEditor::optionsProfilesUpdated, this, &OpsGuide::loadOptionsProfiles);
0046         optionsProfileEditor->loadProfile(kcfg_GuideOptionsProfile->currentText());
0047         optionsEditor->show();
0048     });
0049 
0050     loadOptionsProfiles();
0051 
0052     connect(m_ConfigDialog, SIGNAL(settingsChanged(QString)), this, SIGNAL(settingsUpdated()));
0053 
0054 }
0055 
0056 void OpsGuide::loadOptionsProfiles()
0057 {
0058     QString savedOptionsProfiles = QDir(KSPaths::writableLocation(
0059                                             QStandardPaths::AppLocalDataLocation)).filePath("SavedGuideProfiles.ini");
0060     if(QFile(savedOptionsProfiles).exists())
0061         optionsList = StellarSolver::loadSavedOptionsProfiles(savedOptionsProfiles);
0062     else
0063         optionsList = getDefaultGuideOptionsProfiles();
0064     kcfg_GuideOptionsProfile->clear();
0065     for(SSolver::Parameters param : optionsList)
0066         kcfg_GuideOptionsProfile->addItem(param.listName);
0067     kcfg_GuideOptionsProfile->setCurrentIndex(Options::guideOptionsProfile());
0068 }
0069 }