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 }