[kstars] kstars: This patch will fix numerous minor OS X issues and will also add some new functionality to OS X with the Astrometry Conf File Editor and to all operating systems with the addition of the Astrometry Index File Configuration Pane.

Jasem Mutlaq null at kde.org
Fri Feb 24 09:59:33 UTC 2017


Git commit 4b63e3ca3b93a04a9b187db6e4417c475545001d by Jasem Mutlaq, on behalf of Robert Lancaster.
Committed on 24/02/2017 at 09:55.
Pushed by mutlaqja into branch 'master'.

This patch will fix numerous minor OS X issues and will also add some new functionality to OS X with the Astrometry Conf File Editor and to all operating systems with the addition of the Astrometry Index File Configuration Pane.

1.  Adds the Astrometry Index File Configuration Pane.  For now, it just displays what indexes are installed and makes recommendations based on your CCD.  It also gives you a link to the folder so that you can see where to add the index files you need.  In the future I would like to make this an interface for downloading index files you need and possibly temporarily disabling ones that are installed but that you don’t need right now.
2.  Adds the Astrometry.cfg editor for OS X only.  For now, all it does is to load the file into a plain text editor, then allows you to make changes and save them.  Later it might be good to change this to make it more user friendly.  But this does add a decent amount of additional capability already.
3.  Fixes the INDI drivers default directory on OS X. (When not using the Internal Indiserver)
4.  Fixes the constellation art problem.
5.  Changes the server for the GSC zip file download since the other one was not as reliable and slower.
6.  Fixes a bug that could cause problems if you exited the KStars setup wizard without setting the geolocation.
7.  Makes the Astrometry options a QT Tool window on OS X.

Jasem: I made a few modifications to this patch in the GUI and also in implementation. No more update button, it will update on show event. I added an introductory paragraph with icons for each index state instead of having tooltip explanation.
I fixed one issue with math since it was not marking some index files that were required. Change FOV display to match what align module is showing. Prevented new pages from apeparing in Windows since they cannot use offline solver.

CCMAIL:kstars-devel at kde.org

M  +4    -0    kstars/CMakeLists.txt
M  +5    -2    kstars/auxiliary/kswizard.cpp
M  +17   -0    kstars/ekos/align/align.cpp
M  +4    -0    kstars/ekos/align/align.h
A  +88   -0    kstars/ekos/align/opsastrometrycfg.cpp     [License: UNKNOWN]  *
A  +36   -0    kstars/ekos/align/opsastrometrycfg.h     [License: UNKNOWN]  *
A  +65   -0    kstars/ekos/align/opsastrometrycfg.ui
A  +181  -0    kstars/ekos/align/opsastrometryindexfiles.cpp     [License: UNKNOWN]  *
A  +39   -0    kstars/ekos/align/opsastrometryindexfiles.h     [License: UNKNOWN]  *
A  +685  -0    kstars/ekos/align/opsastrometryindexfiles.ui
M  +1    -1    kstars/indi/opsindi.cpp
M  +0    -4    kstars/skycomponents/constellationartcomponent.cpp

The files marked with a * at the end have a non valid license. Please read: http://techbase.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://commits.kde.org/kstars/4b63e3ca3b93a04a9b187db6e4417c475545001d

diff --git a/kstars/CMakeLists.txt b/kstars/CMakeLists.txt
index ad318fb5d..975bf6b19 100644
--- a/kstars/CMakeLists.txt
+++ b/kstars/CMakeLists.txt
@@ -132,6 +132,8 @@ if (INDI_FOUND)
                     ekos/align/opsekos.ui
                     ekos/align/opsastrometry.ui
                     ekos/align/opsalign.ui
+                    ekos/align/opsastrometrycfg.ui
+                    ekos/align/opsastrometryindexfiles.ui
                     # Focus
                     ekos/focus/focus.ui
                     # Mount
@@ -180,6 +182,8 @@ if (INDI_FOUND)
                        ekos/align/astrometryparser.cpp
                        ekos/align/opsastrometry.cpp
                        ekos/align/opsalign.cpp
+                       ekos/align/opsastrometrycfg.cpp
+                       ekos/align/opsastrometryindexfiles.cpp
                        ekos/align/offlineastrometryparser.cpp
                        ekos/align/onlineastrometryparser.cpp
                        ekos/align/remoteastrometryparser.cpp
diff --git a/kstars/auxiliary/kswizard.cpp b/kstars/auxiliary/kswizard.cpp
index c8b836f0e..4d3d995dd 100644
--- a/kstars/auxiliary/kswizard.cpp
+++ b/kstars/auxiliary/kswizard.cpp
@@ -31,6 +31,8 @@
 #include "geolocation.h"
 #include "widgets/dmsbox.h"
 
+#include "Options.h"
+
 namespace {
     bool hasPrefix(QString str, QString prefix) {
         if( prefix.isEmpty() )
@@ -286,7 +288,8 @@ void KSWizard::slotDownload() {
 
 
 void KSWizard::slotFinishWizard(){
-    if(KStars::Instance())
+    Options::setRunStartupWizard(false);
+    if(KStars::Instance()&&geo())
         KStars::Instance()->updateLocationFromWizard(*(geo()));
     delete this;
 }
@@ -347,7 +350,7 @@ void KSWizard::slotInstallGSC(){
     downloadGSC->setWorkingDirectory(location);
     connect(downloadGSC, SIGNAL(finished(int)), this, SLOT(slotExtractGSC()));
     connect(downloadGSC, SIGNAL(finished(int)), this, SLOT(downloadGSC.deleteLater()));
-    downloadGSC->start("curl", QStringList() << "-o" << "gsc.zip" << "http://mactelescope.com/gsc.zip" );
+    downloadGSC->start("curl", QStringList() << "-L" << "-o" << "gsc.zip" << "http://www.indilib.org/jdownloads/Mac/gsc.zip" );
     data->GSCFeedback->setText("downloading GSC . . .");
 
     downloadMonitor=new QTimer(this);
diff --git a/kstars/ekos/align/align.cpp b/kstars/ekos/align/align.cpp
index 4732a6fa2..19dabe526 100644
--- a/kstars/ekos/align/align.cpp
+++ b/kstars/ekos/align/align.cpp
@@ -40,6 +40,8 @@
 #include "remoteastrometryparser.h"
 #include "opsastrometry.h"
 #include "opsalign.h"
+#include "opsastrometrycfg.h"
+#include "opsastrometryindexfiles.h"
 
 #include <basedevice.h>
 
@@ -148,11 +150,26 @@ Align::Align()
     editOptionsB->setAttribute(Qt::WA_LayoutUsesWidgetRect);    
     KConfigDialog* dialog = new KConfigDialog(this, "alignsettings", Options::self());
 
+#ifdef Q_OS_OSX
+        dialog->setWindowFlags(Qt::Tool| Qt::WindowStaysOnTopHint);
+#endif
+
     opsAlign = new OpsAlign(this);
     dialog->addPage(opsAlign, i18n("Astrometry.net"));
 
     opsAstrometry = new OpsAstrometry(this);
     dialog->addPage(opsAstrometry, i18n("Solver Options"));
+
+#ifdef Q_OS_OSX
+    opsAstrometryCfg = new OpsAstrometryCfg(this);
+    dialog->addPage(opsAstrometryCfg, i18n("Astrometry.cfg"));
+#endif
+
+    #ifndef Q_OS_WIN
+    opsAstrometryIndexFiles = new OpsAstrometryIndexFiles(this);
+    dialog->addPage(opsAstrometryIndexFiles, i18n("Astrometry Index Files"));
+    #endif
+
     connect(editOptionsB, SIGNAL(clicked()), dialog, SLOT(show()));
 
 
diff --git a/kstars/ekos/align/align.h b/kstars/ekos/align/align.h
index a94b0bc75..1031fda64 100644
--- a/kstars/ekos/align/align.h
+++ b/kstars/ekos/align/align.h
@@ -37,6 +37,8 @@ class OfflineAstrometryParser;
 class RemoteAstrometryParser;
 class OpsAstrometry;
 class OpsAlign;
+class OpsAstrometryCfg;
+class OpsAstrometryIndexFiles;
 
 /**
  *@class Align
@@ -574,6 +576,8 @@ private:
     // Astrometry Options
     OpsAstrometry *opsAstrometry;
     OpsAlign *opsAlign;
+    OpsAstrometryCfg *opsAstrometryCfg;
+    OpsAstrometryIndexFiles *opsAstrometryIndexFiles;
 };
 
 }
diff --git a/kstars/ekos/align/opsastrometrycfg.cpp b/kstars/ekos/align/opsastrometrycfg.cpp
new file mode 100644
index 000000000..6a9a9fd05
--- /dev/null
+++ b/kstars/ekos/align/opsastrometrycfg.cpp
@@ -0,0 +1,88 @@
+#include "opsastrometrycfg.h"
+#include "ui_opsastrometrycfg.h"
+#include <KConfigDialog>
+#include "kstars.h"
+#include "align.h"
+#include "Options.h"
+#include <KMessageBox>
+
+namespace Ekos
+{
+
+OpsAstrometryCfg::OpsAstrometryCfg(Align *parent)  : QDialog( KStars::Instance() )
+{
+    setupUi(this);
+
+    alignModule = parent;
+
+    //Get a pointer to the KConfigDialog
+    m_ConfigDialog = KConfigDialog::exists( "alignsettings" );
+
+    connect( m_ConfigDialog->button(QDialogButtonBox::Apply), SIGNAL( clicked() ), SLOT( slotApply() ) );
+    connect( m_ConfigDialog->button(QDialogButtonBox::Ok), SIGNAL( clicked() ), SLOT( slotApply() ) );
+    connect( astrometryCFGDisplay, SIGNAL( textChanged() ), SLOT( slotCFGEditorUpdated()));
+
+
+   connect(loadCFG, SIGNAL(clicked()), this, SLOT(slotLoadCFG()));
+
+   slotLoadCFG();
+}
+
+OpsAstrometryCfg::~OpsAstrometryCfg() {}
+
+void OpsAstrometryCfg::slotLoadCFG(){
+    QString confPath;
+
+    if(Options::astrometryConfFileIsInternal())
+        confPath = QCoreApplication::applicationDirPath()+"/astrometry/bin/astrometry.cfg";
+    else
+        confPath = Options::astrometryConfFile();
+
+    QFile confFile(confPath);
+
+    astrometryCFGLocation->setText(confPath);
+
+    if (confFile.open(QIODevice::ReadOnly) == false)
+    {
+        KMessageBox::error(0, i18n("Astrometry configuration file corrupted or missing: %1\nPlease set the configuration file full path in INDI options.", Options::astrometryConfFile()));
+        return;
+    }
+
+    QTextStream in(&confFile);
+
+    currentCFGText = in.readAll();
+
+    astrometryCFGDisplay->setPlainText(currentCFGText);
+
+    confFile.close();
+}
+
+void OpsAstrometryCfg::slotApply(){
+    if(currentCFGText!=astrometryCFGDisplay->toPlainText()){
+        QString confPath;
+
+        if(Options::astrometryConfFileIsInternal())
+            confPath = QCoreApplication::applicationDirPath()+"/astrometry/bin/astrometry.cfg";
+        else
+            confPath = Options::astrometryConfFile();
+
+        QFile confFile(confPath);
+        if (confFile.open(QIODevice::WriteOnly) == false)
+            KMessageBox::error(0, i18n("Internal Astrometry Configuration File Write Error."));
+        else{
+            QTextStream out(&confFile);
+            out << astrometryCFGDisplay->toPlainText();
+            confFile.close();
+            KMessageBox::error(0, i18n("Astrometry.cfg successfully saved!"));
+            currentCFGText=astrometryCFGDisplay->toPlainText();
+        }
+    }
+
+}
+void OpsAstrometryCfg::slotCFGEditorUpdated(){
+    if(currentCFGText!=astrometryCFGDisplay->toPlainText())
+        m_ConfigDialog->button(QDialogButtonBox::Apply)->setEnabled(true);
+}
+
+
+}
diff --git a/kstars/ekos/align/opsastrometrycfg.h b/kstars/ekos/align/opsastrometrycfg.h
new file mode 100644
index 000000000..7e2d82f34
--- /dev/null
+++ b/kstars/ekos/align/opsastrometrycfg.h
@@ -0,0 +1,36 @@
+#ifndef OPSASTROMETRYCFG_H
+#define OPSASTROMETRYCFG_H
+
+#include <QDialog>
+#include "ui_opsastrometrycfg.h"
+
+class KConfigDialog;
+
+namespace Ekos
+{
+
+class Align;
+
+class OpsAstrometryCfg : public QDialog, public Ui::OpsAstrometryCfg
+{
+    Q_OBJECT
+
+public:
+    explicit OpsAstrometryCfg(Align *parent);
+    ~OpsAstrometryCfg();
+
+private slots:
+    void slotLoadCFG();
+    void slotApply();
+    void slotCFGEditorUpdated();
+
+
+private:
+    KConfigDialog *m_ConfigDialog;
+    Align *alignModule;
+    QString currentCFGText;
+};
+
+}
+
+#endif // OPSASTROMETRYCFG_H
diff --git a/kstars/ekos/align/opsastrometrycfg.ui b/kstars/ekos/align/opsastrometrycfg.ui
new file mode 100644
index 000000000..7c7f87b15
--- /dev/null
+++ b/kstars/ekos/align/opsastrometrycfg.ui
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpsAstrometryCfg</class>
+ <widget class="QDialog" name="OpsAstrometryCfg">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="toolTip">
+        <string><html><head/><body><p>This is the absolute location of the Astrometry.cfg file on the filesystem.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Astrometry.cfg Location:</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="astrometryCFGLocation">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="acceptDrops">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string><html><head/><body><p>This is the absolute location of the Astrometry.cfg file on the filesystem.</p></body></html></string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="loadCFG">
+       <property name="toolTip">
+        <string><html><head/><body><p>This button will let you reload the Astrometry.cfg file in the event that something was changed ouside of KStars.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>ReLoad</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QPlainTextEdit" name="astrometryCFGDisplay">
+     <property name="toolTip">
+      <string><html><head/><body><p>In this space you can edit the Astrometry.cfg file.  When you finish, you can hit &quot;Apply&quot; or &quot;Ok&quot; to save your changes.  </p></body></html></string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/kstars/ekos/align/opsastrometryindexfiles.cpp b/kstars/ekos/align/opsastrometryindexfiles.cpp
new file mode 100644
index 000000000..086ed0de2
--- /dev/null
+++ b/kstars/ekos/align/opsastrometryindexfiles.cpp
@@ -0,0 +1,181 @@
+#include "opsastrometryindexfiles.h"
+#include "ui_opsastrometryindexfiles.h"
+
+#include <KConfigDialog>
+#include "kstars.h"
+#include "align.h"
+#include "Options.h"
+#include <KMessageBox>
+
+namespace Ekos
+{
+
+OpsAstrometryIndexFiles::OpsAstrometryIndexFiles(Align *parent)  : QDialog( KStars::Instance() )
+{
+    setupUi(this);
+
+    alignModule = parent;
+
+    //Get a pointer to the KConfigDialog
+   // m_ConfigDialog = KConfigDialog::exists( "alignsettings" );    
+    connect(openIndexFileDirectory, SIGNAL(clicked()), this, SLOT(slotOpenIndexFileDirectory()));
+
+    astrometryIndex[2.8] = "00";
+    astrometryIndex[4.0] = "01";
+    astrometryIndex[5.6] = "02";
+    astrometryIndex[8] = "03";
+    astrometryIndex[11] = "04";
+    astrometryIndex[16] = "05";
+    astrometryIndex[22] = "06";
+    astrometryIndex[30] = "07";
+    astrometryIndex[42] = "08";
+    astrometryIndex[60] = "09";
+    astrometryIndex[85] = "10";
+    astrometryIndex[120] = "11";
+    astrometryIndex[170] = "12";
+    astrometryIndex[240] = "13";
+    astrometryIndex[340] = "14";
+    astrometryIndex[480] = "15";
+    astrometryIndex[680] = "16";
+    astrometryIndex[1000] = "17";
+    astrometryIndex[1400] = "18";
+    astrometryIndex[2000] = "19";
+}
+
+OpsAstrometryIndexFiles::~OpsAstrometryIndexFiles(){}
+
+void OpsAstrometryIndexFiles::showEvent(QShowEvent *)
+{
+    slotUpdate();
+}
+
+void OpsAstrometryIndexFiles::slotUpdate()
+{
+    double fov_w, fov_h, fov_pixscale;
+
+    // Values in arcmins. Scale in arcsec per pixel
+    alignModule->getFOVScale(fov_w, fov_h, fov_pixscale);
+
+    double fov_check = qMax(fov_w, fov_h);
+
+    FOVOut->setText(QString("%1' x %2'").arg(QString::number(fov_w, 'f', 2)).arg(QString::number(fov_h, 'f', 2)));
+
+    QString astrometryDataDir;
+
+    if (getAstrometryDataDir(astrometryDataDir) == false)
+        return;
+
+    indexLocation->setText(astrometryDataDir);
+
+    QStringList nameFilter("*.fits");
+    QDir directory(astrometryDataDir);
+    QStringList indexList = directory.entryList(nameFilter);
+
+    foreach(QString indexName, indexList){
+       indexName=indexName.replace("-","_").left(10);
+       QCheckBox *indexCheckBox = findChild<QCheckBox *>(indexName);
+       if(indexCheckBox)
+           indexCheckBox->setChecked(true);
+    }
+
+    QList<QCheckBox *> checkboxes = findChildren<QCheckBox *>();
+
+    foreach(QCheckBox *checkBox, checkboxes)
+    {
+        checkBox->setIcon(QIcon(":/icons/breeze/default/security-low.svg"));
+        checkBox->setToolTip(i18n("Optional"));
+        checkBox->setEnabled(false); //This is for now, until we get a downloader set up.
+    }
+
+    float last_skymarksize = 2;
+    foreach(float skymarksize, astrometryIndex.keys())
+    {
+        if(   (skymarksize >= 0.40 * fov_check && skymarksize <= 0.9 * fov_check)
+           || (fov_check > last_skymarksize && fov_check < skymarksize))
+        {
+            QString indexName1="index_41" + astrometryIndex.value(skymarksize);
+            QString indexName2="index_42" + astrometryIndex.value(skymarksize);
+            QCheckBox *indexCheckBox1 = findChild<QCheckBox *>(indexName1);
+            QCheckBox *indexCheckBox2 = findChild<QCheckBox *>(indexName2);
+            if(indexCheckBox1)
+            {
+                indexCheckBox1->setIcon(QIcon(":/icons/breeze/default/security-high.svg"));
+                indexCheckBox1->setToolTip(i18n("Required"));
+            }
+            if(indexCheckBox2)
+            {
+                indexCheckBox2->setIcon(QIcon(":/icons/breeze/default/security-high.svg"));
+                indexCheckBox2->setToolTip(i18n("Required"));
+            }
+
+        }
+        else if (skymarksize >= 0.10 * fov_check && skymarksize <= fov_check)
+        {
+            QString indexName1="index_41" + astrometryIndex.value(skymarksize);
+            QString indexName2="index_42" + astrometryIndex.value(skymarksize);
+            QCheckBox *indexCheckBox1 = findChild<QCheckBox *>(indexName1);
+            QCheckBox *indexCheckBox2 = findChild<QCheckBox *>(indexName2);
+            if(indexCheckBox1)
+            {
+                indexCheckBox1->setIcon(QIcon(":/icons/breeze/default/security-medium.svg"));
+                indexCheckBox1->setToolTip(i18n("Recommended"));
+            }
+            if(indexCheckBox2)
+            {
+                indexCheckBox2->setIcon(QIcon(":/icons/breeze/default/security-medium.svg"));
+                indexCheckBox2->setToolTip(i18n("Recommended"));
+            }
+        }
+
+        last_skymarksize = skymarksize;
+    }
+
+}
+
+void OpsAstrometryIndexFiles::slotOpenIndexFileDirectory(){
+    QString astrometryDataDir;
+    if (getAstrometryDataDir(astrometryDataDir) == false)
+        return;
+    QUrl path = QUrl::fromLocalFile(astrometryDataDir);
+    QDesktopServices::openUrl(path);
+}
+
+bool OpsAstrometryIndexFiles::getAstrometryDataDir(QString &dataDir)
+{
+    QString confPath;
+
+    if(Options::astrometryConfFileIsInternal())
+        confPath = QCoreApplication::applicationDirPath()+"/astrometry/bin/astrometry.cfg";
+    else
+        confPath = Options::astrometryConfFile();
+
+    QFile confFile(confPath);
+
+    if (confFile.open(QIODevice::ReadOnly) == false)
+    {
+        KMessageBox::error(0, i18n("Astrometry configuration file corrupted or missing: %1\nPlease set the configuration file full path in INDI options.", Options::astrometryConfFile()));
+        return false;
+    }
+
+    QTextStream in(&confFile);
+    QString line;
+    while ( !in.atEnd() )
+    {
+      line = in.readLine();
+      if (line.isEmpty() || line.startsWith("#"))
+          continue;
+
+      line = line.trimmed();
+      if (line.startsWith("add_path"))
+      {
+          dataDir = line.mid(9).trimmed();
+          return true;
+      }
+   }
+
+    KMessageBox::error(0, i18n("Unable to find data dir in astrometry configuration file."));
+    return false;
+}
+
+
+}
diff --git a/kstars/ekos/align/opsastrometryindexfiles.h b/kstars/ekos/align/opsastrometryindexfiles.h
new file mode 100644
index 000000000..53784608d
--- /dev/null
+++ b/kstars/ekos/align/opsastrometryindexfiles.h
@@ -0,0 +1,39 @@
+#ifndef OPSASTROMETRYINDEXFILES_H
+#define OPSASTROMETRYINDEXFILES_H
+
+#include <QDialog>
+#include "ui_opsastrometryindexfiles.h"
+
+
+class KConfigDialog;
+
+namespace Ekos
+{
+
+class Align;
+
+class OpsAstrometryIndexFiles : public QDialog, public Ui::OpsAstrometryIndexFiles
+{
+    Q_OBJECT
+
+public:
+    explicit OpsAstrometryIndexFiles(Align *parent);
+    ~OpsAstrometryIndexFiles();
+
+protected:
+    void showEvent(QShowEvent *);
+
+public slots:
+    void slotUpdate();
+    void slotOpenIndexFileDirectory();
+
+private:
+    KConfigDialog *m_ConfigDialog;
+    Align *alignModule;
+    bool getAstrometryDataDir(QString &dataDir);
+    QMap<float, QString> astrometryIndex;
+};
+
+}
+
+#endif // OPSASTROMETRYINDEXFILES_H
diff --git a/kstars/ekos/align/opsastrometryindexfiles.ui b/kstars/ekos/align/opsastrometryindexfiles.ui
new file mode 100644
index 000000000..b064c0c46
--- /dev/null
+++ b/kstars/ekos/align/opsastrometryindexfiles.ui
@@ -0,0 +1,685 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpsAstrometryIndexFiles</class>
+ <widget class="QDialog" name="OpsAstrometryIndexFiles">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>361</width>
+    <height>629</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="label_30">
+     <property name="styleSheet">
+      <string notr="true">li
+{
+background:  url(:/icons/breeze/default/security-high.svg) no-repeat left top;
+}</string>
+     </property>
+     <property name="text">
+      <string><html><head/><body><p><span style=" font-weight:600;">Offline</span> astrometry.net solver require index files in order to solve an image. The following list provides a complete list of the index files, along with recommended index files to install given current CCD Field of View. Installed index files are checked. Next to each index file is an icon that represents the following:</p></body></html></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_4">
+     <item>
+      <widget class="QLabel" name="label_31">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string><html><head/><body><p>This index file is required and must be installed for the solver to work correctly.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../data/kstars.qrc">:/icons/breeze/default/security-high.svg</pixmap>
+       </property>
+       <property name="scaledContents">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_32">
+       <property name="toolTip">
+        <string><html><head/><body><p>This index file is required and must be installed for the solver to work correctly.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Required</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>13</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_34">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string><html><head/><body><p>This index file is recommeneded. Installing the index file might help in improving the solver.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../data/kstars.qrc">:/icons/breeze/default/security-medium.svg</pixmap>
+       </property>
+       <property name="scaledContents">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_33">
+       <property name="toolTip">
+        <string><html><head/><body><p>This index file is recommeneded. Installing the index file might help in improving the solver.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Recommended</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>13</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_36">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string><html><head/><body><p>This index file is not required.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../data/kstars.qrc">:/icons/breeze/default/security-low.svg</pixmap>
+       </property>
+       <property name="scaledContents">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_35">
+       <property name="toolTip">
+        <string><html><head/><body><p>This index file is not required.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Optional</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QGridLayout" name="gridLayout_2">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_27">
+       <property name="toolTip">
+        <string><html><head/><body><p>This displays the path to the folder for the Astrometry Index Files on your computer.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Index Files Location: </string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLineEdit" name="indexLocation">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string><html><head/><body><p>This displays the path to the folder for the Astrometry Index Files on your computer.</p></body></html></string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QPushButton" name="openIndexFileDirectory">
+       <property name="toolTip">
+        <string><html><head/><body><p>This button will open the Astrometry Index File folder on your filesystem so that you can see where it is located and copy files into it if needed.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Open</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_28">
+       <property name="toolTip">
+        <string><html><head/><body><p>This displays the current CCD field of view that will be used to calculate which index files are needed.</p></body></html></string>
+       </property>
+       <property name="text">
+        <string>Current CCD FOV: </string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="FOVOut">
+       <property name="readOnly">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QGroupBox" name="groupBox">
+       <property name="toolTip">
+        <string/>
+       </property>
+       <property name="title">
+        <string>Index Files</string>
+       </property>
+       <layout class="QGridLayout" name="gridLayout">
+        <item row="4" column="1">
+         <widget class="QCheckBox" name="index_4218">
+          <property name="text">
+           <string>index-4218.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="16" column="1">
+         <widget class="QCheckBox" name="index_4206">
+          <property name="text">
+           <string>index-4206-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="18" column="0">
+         <widget class="QLabel" name="label_5">
+          <property name="text">
+           <string>8' - 11'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="8" column="0">
+         <widget class="QLabel" name="label_15">
+          <property name="text">
+           <string>240' - 340'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="11" column="0">
+         <widget class="QLabel" name="label_12">
+          <property name="text">
+           <string>85' - 120'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="21" column="1">
+         <widget class="QCheckBox" name="index_4201">
+          <property name="text">
+           <string>index-4201-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="11" column="2">
+         <widget class="QCheckBox" name="index_4111">
+          <property name="text">
+           <string>index-4111.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="4" column="0">
+         <widget class="QLabel" name="label_19">
+          <property name="text">
+           <string>1000' - 1400'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="14" column="1">
+         <widget class="QCheckBox" name="index_4208">
+          <property name="text">
+           <string>index-4208.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="15" column="1">
+         <widget class="QCheckBox" name="index_4207">
+          <property name="text">
+           <string>index-4207-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="12" column="0">
+         <widget class="QLabel" name="label_11">
+          <property name="text">
+           <string>60' - 85'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="9" column="2">
+         <widget class="QCheckBox" name="index_4113">
+          <property name="text">
+           <string>index-4113.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="9" column="1">
+         <widget class="QCheckBox" name="index_4213">
+          <property name="text">
+           <string>index-4213.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="14" column="0">
+         <widget class="QLabel" name="label_9">
+          <property name="text">
+           <string>30' - 42'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="10" column="0">
+         <widget class="QLabel" name="label_13">
+          <property name="text">
+           <string>120' - 170'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="16" column="0">
+         <widget class="QLabel" name="label_7">
+          <property name="text">
+           <string>16' - 22'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="8" column="1">
+         <widget class="QCheckBox" name="index_4214">
+          <property name="text">
+           <string>index-4214.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="19" column="0">
+         <widget class="QLabel" name="label_4">
+          <property name="text">
+           <string>5.6' - 8.0'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="6" column="0">
+         <widget class="QLabel" name="label_17">
+          <property name="text">
+           <string>480' - 680'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="14" column="2">
+         <widget class="QCheckBox" name="index_4108">
+          <property name="text">
+           <string>index-4108.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="17" column="1">
+         <widget class="QCheckBox" name="index_4205">
+          <property name="text">
+           <string>index-4205-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="10" column="1">
+         <widget class="QCheckBox" name="index_4212">
+          <property name="text">
+           <string>index-4212.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="7" column="2">
+         <widget class="QCheckBox" name="index_4115">
+          <property name="text">
+           <string>index-4115.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="12" column="2">
+         <widget class="QCheckBox" name="index_4110">
+          <property name="text">
+           <string>index-4110.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="1">
+         <widget class="QCheckBox" name="index_4217">
+          <property name="text">
+           <string>index-4217.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="2">
+         <widget class="QCheckBox" name="index_4119">
+          <property name="text">
+           <string>index-4119.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="7" column="0">
+         <widget class="QLabel" name="label_16">
+          <property name="text">
+           <string>340' - 480'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="18" column="1">
+         <widget class="QCheckBox" name="index_4204">
+          <property name="text">
+           <string>index-4204-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="21" column="0">
+         <widget class="QLabel" name="label_2">
+          <property name="text">
+           <string>2.8' - 4.0'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="13" column="2">
+         <widget class="QCheckBox" name="index_4109">
+          <property name="text">
+           <string>index-4109.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="2">
+         <widget class="QLabel" name="label_22">
+          <property name="text">
+           <string>Tycho2 Catalog</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QLabel" name="label_20">
+          <property name="text">
+           <string>1400' - 2000'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="15" column="0">
+         <widget class="QLabel" name="label_8">
+          <property name="text">
+           <string>22' - 30'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="13" column="0">
+         <widget class="QLabel" name="label_10">
+          <property name="text">
+           <string>42' - 60'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="12" column="1">
+         <widget class="QCheckBox" name="index_4210">
+          <property name="text">
+           <string>index-4210.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="0">
+         <widget class="QLabel" name="label_18">
+          <property name="text">
+           <string>680' - 1000'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="15" column="2">
+         <widget class="QCheckBox" name="index_4107">
+          <property name="text">
+           <string>index-4107.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="22" column="1">
+         <widget class="QCheckBox" name="index_4200">
+          <property name="text">
+           <string>index-4200-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="11" column="1">
+         <widget class="QCheckBox" name="index_4211">
+          <property name="text">
+           <string>index-4211.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="19" column="1">
+         <widget class="QCheckBox" name="index_4203">
+          <property name="text">
+           <string>index-4203-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="8" column="2">
+         <widget class="QCheckBox" name="index_4114">
+          <property name="text">
+           <string>index-4114.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="7" column="1">
+         <widget class="QCheckBox" name="index_4215">
+          <property name="text">
+           <string>index-4215.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="10" column="2">
+         <widget class="QCheckBox" name="index_4112">
+          <property name="text">
+           <string>index-4112.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="6" column="1">
+         <widget class="QCheckBox" name="index_4216">
+          <property name="text">
+           <string>index-4216.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="0">
+         <widget class="QLabel" name="label_23">
+          <property name="text">
+           <string>SkyMark Diameters</string>
+          </property>
+         </widget>
+        </item>
+        <item row="13" column="1">
+         <widget class="QCheckBox" name="index_4209">
+          <property name="text">
+           <string>index-4209.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="20" column="1">
+         <widget class="QCheckBox" name="index_4202">
+          <property name="text">
+           <string>index-4202-*.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="22" column="0">
+         <widget class="QLabel" name="label">
+          <property name="text">
+           <string>2.0' - 2.8'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="6" column="2">
+         <widget class="QCheckBox" name="index_4116">
+          <property name="text">
+           <string>index-4116.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="9" column="0">
+         <widget class="QLabel" name="label_14">
+          <property name="text">
+           <string>170' - 240'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="2">
+         <widget class="QCheckBox" name="index_4117">
+          <property name="text">
+           <string>index-4117.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="1">
+         <widget class="QCheckBox" name="index_4219">
+          <property name="text">
+           <string>index-4219.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1">
+         <widget class="QLabel" name="label_21">
+          <property name="text">
+           <string>2Mass Catalog</string>
+          </property>
+         </widget>
+        </item>
+        <item row="17" column="0">
+         <widget class="QLabel" name="label_6">
+          <property name="text">
+           <string>11' - 16'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="4" column="2">
+         <widget class="QCheckBox" name="index_4118">
+          <property name="text">
+           <string>index-4118.fits</string>
+          </property>
+         </widget>
+        </item>
+        <item row="20" column="0">
+         <widget class="QLabel" name="label_3">
+          <property name="text">
+           <string>4.0' - 5.6'</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="1">
+         <widget class="QLabel" name="label_24">
+          <property name="text">
+           <string>(Narrow/Medium Fields)</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="2">
+         <widget class="QLabel" name="label_25">
+          <property name="text">
+           <string>(Wide Fields)</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="0">
+         <widget class="QLabel" name="label_26">
+          <property name="text">
+           <string>(arcminutes)</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../data/kstars.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/kstars/indi/opsindi.cpp b/kstars/indi/opsindi.cpp
index 26e9b789c..f01c1436e 100644
--- a/kstars/indi/opsindi.cpp
+++ b/kstars/indi/opsindi.cpp
@@ -95,7 +95,7 @@ void OpsINDI::toggleDriversInternal()
     if(kcfg_indiDriversAreInternal->isChecked())
         kcfg_indiDriversDir->setText("*Internal INDI Drivers*");
     else
-        kcfg_indiDriversDir->setText("/usr/local/bin/");
+        kcfg_indiDriversDir->setText("/usr/local/share/indi/");
 }
 
 void OpsINDI::saveFITSDirectory()
diff --git a/kstars/skycomponents/constellationartcomponent.cpp b/kstars/skycomponents/constellationartcomponent.cpp
index 93fadc9ed..5635e0b21 100644
--- a/kstars/skycomponents/constellationartcomponent.cpp
+++ b/kstars/skycomponents/constellationartcomponent.cpp
@@ -50,11 +50,7 @@ void ConstellationArtComponent::deleteData()
 void ConstellationArtComponent::loadData(){
     if(m_ConstList.isEmpty()) {
         QSqlDatabase skydb = QSqlDatabase::addDatabase("QSQLITE", "skycultures");
-        #ifdef Q_OS_OSX
-        QString dbfile = KSPaths::locate(QStandardPaths::GenericDataLocation, "/skycultures/skycultures.sqlite");
-        #else
         QString dbfile = KSPaths::locate(QStandardPaths::GenericDataLocation, "skycultures.sqlite");
-        #endif
 
         skydb.setDatabaseName(dbfile);
         if (skydb.open() == false)



More information about the Kstars-devel mailing list