[kstars] kstars: + Add FITS page options in KStars settings to better separate it from the rest of advanced options since it deserves its own.

Jasem Mutlaq null at kde.org
Wed Feb 15 10:13:56 UTC 2017


Git commit b57a305c714ac975bbde767f91ea766fa6023906 by Jasem Mutlaq.
Committed on 15/02/2017 at 08:42.
Pushed by mutlaqja into branch 'master'.

+ Add FITS page options in KStars settings to better separate it from the rest of advanced options since it deserves its own.
+ Use Limited Resources Mode to prevent processing of WCS.

CCMAIL:kstars-devel at kde.org

M  +2    -0    kstars/CMakeLists.txt
M  +3    -0    kstars/ekos/align/align.cpp
M  +21   -0    kstars/ekos/align/alignview.cpp
M  +1    -1    kstars/ekos/align/alignview.h
M  +3    -3    kstars/ekos/opsekos.cpp
M  +5    -1    kstars/fitsviewer/fitsdata.cpp
M  +4    -3    kstars/fitsviewer/fitsview.cpp
A  +24   -0    kstars/fitsviewer/opsfits.cpp     [License: GPL (v2+)]
A  +36   -0    kstars/fitsviewer/opsfits.h     [License: GPL (v2+)]
A  +184  -0    kstars/fitsviewer/opsfits.ui
M  +2    -0    kstars/kstars.h
M  +4    -4    kstars/kstars.kcfg
M  +7    -1    kstars/kstarsactions.cpp
M  +0    -12   kstars/options/opsadvanced.cpp
M  +0    -1    kstars/options/opsadvanced.h
M  +230  -352  kstars/options/opsadvanced.ui

https://commits.kde.org/kstars/b57a305c714ac975bbde767f91ea766fa6023906

diff --git a/kstars/CMakeLists.txt b/kstars/CMakeLists.txt
index f68defdc5..16ac8dd30 100644
--- a/kstars/CMakeLists.txt
+++ b/kstars/CMakeLists.txt
@@ -46,6 +46,7 @@ if(NOT BUILD_KSTARS_LITE)
             fitsviewer/fitstab.cpp
             fitsviewer/fitsdebayer.cpp
             fitsviewer/bayer.c
+            fitsviewer/opsfits.cpp
             )
         set (fitsui_SRCS
             fitsviewer/fitsheaderdialog.ui
@@ -54,6 +55,7 @@ if(NOT BUILD_KSTARS_LITE)
             indi/streamform.ui
             indi/recordingoptions.ui
             fitsviewer/fitshistogramui.ui
+            fitsviewer/opsfits.ui
             )
         include_directories(${CFITSIO_INCLUDE_DIR})
     endif(CFITSIO_FOUND)
diff --git a/kstars/ekos/align/align.cpp b/kstars/ekos/align/align.cpp
index 7e7a18e26..75bac0561 100644
--- a/kstars/ekos/align/align.cpp
+++ b/kstars/ekos/align/align.cpp
@@ -2742,6 +2742,9 @@ void Align::startPAHProcess()
     nothingR->setChecked(true);
     currentGotoMode = GOTO_NOTHING;
 
+    if (Options::limitedResourcesMode())
+        appendLogText(i18n("Warning: Equatorial Grid Lines will not be drawn due to limited resources mode."));
+
     PAHWidgets->setCurrentWidget(PAHFirstCapturePage);
 }
 
diff --git a/kstars/ekos/align/alignview.cpp b/kstars/ekos/align/alignview.cpp
index 113821e93..4994e27c7 100644
--- a/kstars/ekos/align/alignview.cpp
+++ b/kstars/ekos/align/alignview.cpp
@@ -11,7 +11,9 @@
 
 #include <QtConcurrent>
 
+#include "Options.h"
 #include "alignview.h"
+#include "kstarsdata.h"
 
 #define ZOOM_DEFAULT	100.0
 #define ZOOM_MIN        10
@@ -59,6 +61,7 @@ void AlignView::setCorrectionParams(QLineF line)
     }
 
     correctionLine   = line;
+    celestialPolePoint   = line.p1();
     markerCrosshair  = line.p2();
 
     updateFrame();
@@ -107,6 +110,24 @@ void AlignView::drawLine(QPainter *painter)
     double y2 = zoomedLine.p2().y() * zoomFactor;
 
     painter->drawLine(x1,y1,x2,y2);
+
+    // In limited memory mode, WCS data is not loaded so no Equatorial Gridlines are drawn
+    // so we have to at least draw the NCP/SCP locations
+    if (Options::limitedResourcesMode())
+    {
+        QPen pen;
+        pen.setWidth(2);
+        pen.setColor(Qt::darkRed);
+        painter->setPen(pen);
+        double x = celestialPolePoint.x() * zoomFactor;
+        double y = celestialPolePoint.y() * zoomFactor;
+        double sr= 3*zoomFactor;
+
+        if (KStarsData::Instance()->geo()->lat()->Degrees() > 0)
+            painter->drawText(x+sr,y+sr, i18nc("North Celestial Pole", "NCP"));
+        else
+            painter->drawText(x+sr,y+sr, i18nc("South Celestial Pole", "SCP"));
+    }
 }
 
 void AlignView::drawCircle(QPainter *painter)
diff --git a/kstars/ekos/align/alignview.h b/kstars/ekos/align/alignview.h
index 591fd3995..6e352999f 100644
--- a/kstars/ekos/align/alignview.h
+++ b/kstars/ekos/align/alignview.h
@@ -40,7 +40,7 @@ protected:
 private:
     // Correction Line
     QLineF correctionLine;
-    QPointF correctionOffset;
+    QPointF correctionOffset, celestialPolePoint;
     QVector3D RACircle;
 };
 
diff --git a/kstars/ekos/opsekos.cpp b/kstars/ekos/opsekos.cpp
index 239f5d4f4..ad7523207 100644
--- a/kstars/ekos/opsekos.cpp
+++ b/kstars/ekos/opsekos.cpp
@@ -1,12 +1,12 @@
-/*  INDI Options
-    Copyright (C) 2003 Jasem Mutlaq (mutlaqja at ikarustech.com)
+/*  Ekos Options
+    Copyright (C) 2017 Jasem Mutlaq (mutlaqja at ikarustech.com)
 
     This application is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.
 
- */
+*/
 
 #include <QPushButton>
 #include <QFileDialog>
diff --git a/kstars/fitsviewer/fitsdata.cpp b/kstars/fitsviewer/fitsdata.cpp
index 4daed8a1e..c27c739af 100644
--- a/kstars/fitsviewer/fitsdata.cpp
+++ b/kstars/fitsviewer/fitsdata.cpp
@@ -272,7 +272,7 @@ bool FITSData::loadFITS (const QString &inFilename, bool silent)
 
     calculateStats();
 
-    if (Options::autoDebayerFITS() && checkDebayer())
+    if (Options::autoDebayer() && checkDebayer())
     {
         bayerBuffer = imageBuffer;
         debayer();
@@ -3886,6 +3886,10 @@ bool FITSData::createWCSFile(const QString & newWCSFile, double orientation, dou
 
     fits_flush_file(fptr, &status);
 
+    // We do not process WCS in limited resource mode
+    if (Options::limitedResourcesMode())
+        return true;
+
     return loadWCS();
 }
 
diff --git a/kstars/fitsviewer/fitsview.cpp b/kstars/fitsviewer/fitsview.cpp
index 3d048e660..6995f4ea6 100644
--- a/kstars/fitsviewer/fitsview.cpp
+++ b/kstars/fitsviewer/fitsview.cpp
@@ -620,7 +620,8 @@ bool FITSView::loadFITS (const QString &inFilename , bool silent)
       {
           if (fitsProg.wasCanceled())
               return false;
-          else
+          // Only invoke loadWCS when we are not restricted by CPU/Memory
+          else if (Options::limitedResourcesMode() == false)
           {
             QFuture<bool> future = QtConcurrent::run(imageData, &FITSData::loadWCS);
             wcsWatcher.setFuture(future);
@@ -880,9 +881,9 @@ template<typename T>  int FITSView::rescale(FITSZoom type)
 
 void FITSView::ZoomIn()
 {
-    if (currentZoom >= ZOOM_DEFAULT && Options::limitedMemoryMode())
+    if (currentZoom >= ZOOM_DEFAULT && Options::limitedResourcesMode())
     {
-        emit newStatus(i18n("Cannot zoom in further due to active limited memory mode."), FITS_MESSAGE);
+        emit newStatus(i18n("Cannot zoom in further due to active limited resources mode."), FITS_MESSAGE);
         return;
     }
 
diff --git a/kstars/fitsviewer/opsfits.cpp b/kstars/fitsviewer/opsfits.cpp
new file mode 100644
index 000000000..3fe3a0f6a
--- /dev/null
+++ b/kstars/fitsviewer/opsfits.cpp
@@ -0,0 +1,24 @@
+/*  FITS Options
+    Copyright (C) 2017 Jasem Mutlaq (mutlaqja at ikarustech.com)
+
+    This application is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+*/
+
+#include "opsfits.h"
+
+#include "Options.h"
+#include "kstars.h"
+#include "kstarsdata.h"
+
+OpsFITS::OpsFITS() : QFrame(KStars::Instance())
+{
+    setupUi( this );
+
+    connect(kcfg_LimitedResourcesMode, &QCheckBox::toggled, this, [this](bool toggled) { if (toggled) { kcfg_Auto3DCube->setChecked(false); kcfg_AutoDebayer->setChecked(false); } });
+    connect(kcfg_Auto3DCube, &QCheckBox::toggled, this, [this](bool toggled) { if (toggled) kcfg_LimitedResourcesMode->setChecked(false);});
+    connect(kcfg_AutoDebayer, &QCheckBox::toggled, this, [this](bool toggled) { if (toggled) kcfg_LimitedResourcesMode->setChecked(false);});
+}
diff --git a/kstars/fitsviewer/opsfits.h b/kstars/fitsviewer/opsfits.h
new file mode 100644
index 000000000..fa8984e3a
--- /dev/null
+++ b/kstars/fitsviewer/opsfits.h
@@ -0,0 +1,36 @@
+/*  FITS Options
+    Copyright (C) 2017 Jasem Mutlaq (mutlaqja at ikarustech.com)
+
+    This application is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+*/
+
+#ifndef OPSFITS_H_
+#define OPSFITS_H_
+
+#include "ui_opsfits.h"
+
+#include <QStandardItemModel>
+
+#include <kconfigdialog.h>
+
+class KStars;
+
+
+/** @class OpsFITS
+ *The FITS Tab of the Options window.  Configure FITS options including look and feel and how FITS Viewer processes the data.
+ *@author Jasem Mutlaq
+ *@version 1.0
+ */
+class OpsFITS : public QFrame, public Ui::OpsFITS
+{
+    Q_OBJECT
+
+public:
+    explicit OpsFITS();
+};
+
+#endif
diff --git a/kstars/fitsviewer/opsfits.ui b/kstars/fitsviewer/opsfits.ui
new file mode 100644
index 000000000..0c5e84941
--- /dev/null
+++ b/kstars/fitsviewer/opsfits.ui
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OpsFITS</class>
+ <widget class="QWidget" name="OpsFITS">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>335</width>
+    <height>128</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_3">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QGroupBox" name="FITSViewerGroup">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
+       <property name="title">
+        <string>Look && Feel</string>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <widget class="QCheckBox" name="kcfg_singlePreviewFITS">
+          <property name="toolTip">
+           <string>Display all captured FITS images in a single tab instead of multiple tabs per image.</string>
+          </property>
+          <property name="statusTip">
+           <string/>
+          </property>
+          <property name="whatsThis">
+           <string/>
+          </property>
+          <property name="text">
+           <string>Preview Mode</string>
+          </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="kcfg_singleWindowCapturedFITS">
+          <property name="toolTip">
+           <string>Display captured FITS images from all cameras in a single FITS Viewer window instead of a dedicated window to each camera.</string>
+          </property>
+          <property name="whatsThis">
+           <string/>
+          </property>
+          <property name="text">
+           <string>Single Window Capture</string>
+          </property>
+          <property name="checked">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="kcfg_singleWindowOpenedFITS">
+          <property name="toolTip">
+           <string>Display opened FITS images in a single FITS Viewer window instead of a dedicated window to each file.</string>
+          </property>
+          <property name="whatsThis">
+           <string/>
+          </property>
+          <property name="text">
+           <string>Single Window Open</string>
+          </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="kcfg_independentWindowFITS">
+          <property name="toolTip">
+           <string>Make FITS Viewer window independent from KStars</string>
+          </property>
+          <property name="text">
+           <string>Independent Window</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <widget class="QGroupBox" name="groupBox">
+       <property name="title">
+        <string>Processing</string>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout">
+        <item>
+         <widget class="QCheckBox" name="kcfg_AutoStretch">
+          <property name="toolTip">
+           <string>Always apply auto stretch to images in FITS Viewer</string>
+          </property>
+          <property name="text">
+           <string>Auto Stretch</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="kcfg_LimitedResourcesMode">
+          <property name="toolTip">
+           <string><html><head/><body><p>Enable limited resource mode to turn off any resource-intensive operations:</p>
+<ul>
+<li>Auto Debayer: Bayered images will not be debayered. Only grayscale images are shown.</li>
+<li>3D Cube: RGB images will not be processed. Only grayscale images are shown.</li>
+<li>World Coordinate System (WCS): WCS data will not be processed. WCS maps sky coordiantes to image coordinates. Equatorial grid lines, object identification, and telescope slew within an image are disabled.</li>
+</ul>
+</body></html></string>
+          </property>
+          <property name="text">
+           <string>Limited Resources Mode</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="kcfg_AutoDebayer">
+          <property name="toolTip">
+           <string>Automatically debayer captured image if it contains a bayer pattern</string>
+          </property>
+          <property name="text">
+           <string>Auto Debayer</string>
+          </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="kcfg_Auto3DCube">
+          <property name="toolTip">
+           <string>Process 3D (RGB) FITS images. If unchecked, only first channel is processed.</string>
+          </property>
+          <property name="text">
+           <string>3D Cube</string>
+          </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>3</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/kstars/kstars.h b/kstars/kstars.h
index 7f99bdb91..f5dff855b 100644
--- a/kstars/kstars.h
+++ b/kstars/kstars.h
@@ -69,6 +69,7 @@ class OpsColors;
 class OpsAdvanced;
 class OpsINDI;
 class OpsEkos;
+class OpsFITS;
 
 #ifdef HAVE_XPLANET
 class OpsXplanet;
@@ -721,6 +722,7 @@ private:
     OpsAdvanced *opadvanced;
     OpsINDI *opsindi;
     OpsEkos *opsekos;
+    OpsFITS *opsfits;
 #ifdef HAVE_XPLANET
     OpsXplanet  *opsxplanet;
 #endif
diff --git a/kstars/kstars.kcfg b/kstars/kstars.kcfg
index 8be890ff0..d98be1848 100644
--- a/kstars/kstars.kcfg
+++ b/kstars/kstars.kcfg
@@ -1293,16 +1293,16 @@
       <label>Make FITS Viewer window independent of KStars main window</label>
       <default>false</default>
    </entry>
-   <entry name="autoDebayerFITS" type="Bool">
+   <entry name="AutoDebayer" type="Bool">
       <label>Automatically debayer a FITS image if it is contains a bayer pattern</label>
       <default>true</default>
    </entry>
-   <entry name="auto3DCube" type="Bool">
+   <entry name="Auto3DCube" type="Bool">
       <label>Process 3D FITS Cube (RGB). If false, only first channel is processed.</label>
       <default>true</default>
    </entry>
-   <entry name="LimitedMemoryMode" type="Bool">
-      <label>Conserve memory by disabling all memory-intensive features in FITS Viewer</label>
+   <entry name="LimitedResourcesMode" type="Bool">
+      <label>Conserve CPU and memory by disabling all resource-intensive features in FITS Viewer</label>
       <default>false</default>
    </entry>
    </group>
diff --git a/kstars/kstarsactions.cpp b/kstars/kstarsactions.cpp
index 9e64efb93..7c69b7ea1 100644
--- a/kstars/kstarsactions.cpp
+++ b/kstars/kstarsactions.cpp
@@ -124,6 +124,7 @@
 
 #ifdef HAVE_CFITSIO
 #include "fitsviewer/fitsviewer.h"
+#include "fitsviewer/opsfits.h"
 #ifdef HAVE_INDI
 #include "ekos/ekosmanager.h"
 #include "ekos/opsekos.h"
@@ -744,11 +745,16 @@ void KStars::slotViewOps() {
     page = dialog->addPage(opcolors, i18n("Colors"), "kstars_colors");
     page->setIcon(QIcon::fromTheme("kstars_colors", QIcon(":/icons/breeze/default/kstars_colors.svg")));
 
+    #ifdef HAVE_CFITSIO
+    opsfits = new OpsFITS();
+    page = dialog->addPage(opsfits, i18n("FITS"), "kstars_fitsviewer");
+    page->setIcon(QIcon::fromTheme("kstars_fitsviewer", QIcon(":/icons/breeze/default/kstars_fitsviewer.svg")));
+    #endif
+
     #ifdef HAVE_INDI
     opsindi = new OpsINDI();
     page= dialog->addPage(opsindi, i18n("INDI"), "kstars_indi");
     page->setIcon(QIcon::fromTheme("kstars_indi", QIcon(":/icons/breeze/default/kstars_indi.svg")));
-
     #ifdef HAVE_CFITSIO
     opsekos = new OpsEkos();
     KPageWidgetItem *ekosOption = dialog->addPage(opsekos, i18n("Ekos"), "kstars_ekos");
diff --git a/kstars/options/opsadvanced.cpp b/kstars/options/opsadvanced.cpp
index b22554048..20166e677 100644
--- a/kstars/options/opsadvanced.cpp
+++ b/kstars/options/opsadvanced.cpp
@@ -34,10 +34,6 @@ OpsAdvanced::OpsAdvanced()
 {
     setupUi( this );
 
-    #ifdef HAVE_CFITSIO
-    FITSViewerGroup->setEnabled(true);
-    #endif
-
     //Initialize the timestep value
     SlewTimeScale->tsbox()->changeScale( Options::slewTimeScale() );
 
@@ -51,8 +47,6 @@ OpsAdvanced::OpsAdvanced()
 
     connect(showLogsB, SIGNAL(clicked()), this, SLOT(slotShowLogFiles()));
 
-    connect(kcfg_LimitedMemoryMode, SIGNAL(toggled(bool)), this, SLOT(slotToggleLimitedMemoryMode(bool)));
-
     connect( kcfg_ObsListDemoteHole, &QCheckBox::toggled, [this]( bool state ) {
             kcfg_ObsListHoleSize->setEnabled( state );
         } );
@@ -104,9 +98,3 @@ void OpsAdvanced::slotShowLogFiles()
 
     QDesktopServices::openUrl(path);
 }
-
-void OpsAdvanced::slotToggleLimitedMemoryMode(bool enabled)
-{
-    kcfg_auto3DCube->setChecked(!enabled);
-    kcfg_autoDebayerFITS->setChecked(!enabled);
-}
diff --git a/kstars/options/opsadvanced.h b/kstars/options/opsadvanced.h
index 0f5b77492..f779791a0 100644
--- a/kstars/options/opsadvanced.h
+++ b/kstars/options/opsadvanced.h
@@ -48,7 +48,6 @@ private slots:
     void slotToggleVerbosityOptions();
     void slotToggleOutputOptions();
     void slotShowLogFiles();
-    void slotToggleLimitedMemoryMode(bool enabled);
 };
 
 #endif  //OPSADVANCED_H_
diff --git a/kstars/options/opsadvanced.ui b/kstars/options/opsadvanced.ui
index 63ece29bb..bae384a47 100644
--- a/kstars/options/opsadvanced.ui
+++ b/kstars/options/opsadvanced.ui
@@ -6,11 +6,26 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>591</width>
-    <height>418</height>
+    <width>605</width>
+    <height>312</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_5">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
    <item>
     <widget class="QTabWidget" name="AdvancedOptionsTabWidget">
      <property name="currentIndex">
@@ -22,261 +37,152 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout">
        <item>
-        <widget class="QGroupBox" name="BackendsGroupBox">
-         <property name="title">
-          <string>Backends</string>
-         </property>
-         <layout class="QVBoxLayout" name="verticalLayout_4">
-          <item>
-           <widget class="QCheckBox" name="kcfg_UseRefraction">
-            <property name="toolTip">
-             <string>Correct coordinates of objects for the effects of the atmosphere</string>
-            </property>
-            <property name="whatsThis">
-             <string>The atmosphere bends light passing through it, like a lens.  If this item is checked, this "atmospheric refraction" will be simulated in the sky map.  Note that this correction is only applied when using the Horizontal coordinate system.</string>
-            </property>
-            <property name="text">
-             <string>Correct for atmospheric refraction</string>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QCheckBox" name="kcfg_UseRelativistic">
-            <property name="toolTip">
-             <string>Correct for the effect of sun's gravity on star positions, as predicted by General Relativity, and verified by Eddington's experiment.</string>
-            </property>
-            <property name="text">
-             <string>General Relativity effects near the sun</string>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QCheckBox" name="kcfg_AlwaysRecomputeCoordinates">
-            <property name="whatsThis">
-             <string>Checking this option causes recomputation of current equatorial coordinates from catalog coordinates (i.e. application of precession, nutation and aberration corrections) for every redraw of the map. This makes processing slower when there are many stars to handle, but is more likely to be bug-free. There are known bugs in the rendering of stars when this recomputation is avoided.</string>
-            </property>
-            <property name="text">
-             <string>Always recompute coordinates</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="ImageryGroupBox">
-         <property name="title">
-          <string>DSS Imagery</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout">
-          <item row="0" column="0">
-           <widget class="QLabel" name="label">
-            <property name="text">
-             <string>Default DSS Image Size: </string>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="QDoubleSpinBox" name="kcfg_DefaultDSSImageSize">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="minimumSize">
-             <size>
-              <width>75</width>
-              <height>0</height>
-             </size>
-            </property>
-            <property name="decimals">
-             <number>1</number>
-            </property>
-            <property name="minimum">
-             <double>1.000000000000000</double>
-            </property>
-            <property name="maximum">
-             <double>75.000000000000000</double>
-            </property>
-            <property name="value">
-             <double>15.000000000000000</double>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="3">
-           <widget class="QLabel" name="DefaultDSSImageSizeUnitLabel">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="text">
-             <string>arcminutes</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0">
-           <widget class="QLabel" name="label_3">
-            <property name="text">
-             <string>Padding around Deep Sky Objects:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="1">
-           <widget class="QDoubleSpinBox" name="kcfg_DSSPadding">
-            <property name="minimumSize">
-             <size>
-              <width>75</width>
-              <height>0</height>
-             </size>
-            </property>
-            <property name="decimals">
-             <number>1</number>
-            </property>
-            <property name="minimum">
-             <double>1.000000000000000</double>
-            </property>
-            <property name="maximum">
-             <double>75.000000000000000</double>
-            </property>
-            <property name="value">
-             <double>10.000000000000000</double>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="2" colspan="2">
-           <widget class="QLabel" name="DSSPaddingUnitLabel">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="text">
-             <string>arcminutes</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="FITSViewerGroup">
-         <property name="enabled">
-          <bool>false</bool>
-         </property>
-         <property name="title">
-          <string>FITS Viewer</string>
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
+         <property name="spacing">
+          <number>3</number>
          </property>
-         <layout class="QGridLayout" name="gridLayout_3">
-          <item row="0" column="0">
-           <widget class="QCheckBox" name="kcfg_singlePreviewFITS">
-            <property name="toolTip">
-             <string>Display all captured FITS images in a single tab instead of multiple tabs per image.</string>
-            </property>
-            <property name="statusTip">
-             <string/>
-            </property>
-            <property name="whatsThis">
-             <string/>
-            </property>
-            <property name="text">
-             <string>Preview Mode</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="QCheckBox" name="kcfg_singleWindowCapturedFITS">
-            <property name="toolTip">
-             <string>Display captured FITS images from all cameras in a single FITS Viewer window instead of a dedicated window to each camera.</string>
-            </property>
-            <property name="whatsThis">
-             <string/>
-            </property>
-            <property name="text">
-             <string>Single Window Capture</string>
-            </property>
-            <property name="checked">
-             <bool>false</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="2">
-           <widget class="QCheckBox" name="kcfg_singleWindowOpenedFITS">
-            <property name="toolTip">
-             <string>Display opened FITS images in a single FITS Viewer window instead of a dedicated window to each file.</string>
-            </property>
-            <property name="whatsThis">
-             <string/>
-            </property>
-            <property name="text">
-             <string>Single Window Open</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="3">
-           <widget class="QCheckBox" name="kcfg_independentWindowFITS">
-            <property name="toolTip">
-             <string>Make FITS Viewer window independent from KStars</string>
-            </property>
-            <property name="text">
-             <string>Independent Window</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0">
-           <widget class="QCheckBox" name="kcfg_LimitedMemoryMode">
-            <property name="toolTip">
-             <string><html><head/><body><p>Enable limited memory mode to turn off any memory-intensive operations. This mode is mostly useful on embedded devices with limited memory.</p></body></html></string>
-            </property>
-            <property name="text">
-             <string>Limited Memory Mode</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="1">
-           <widget class="QCheckBox" name="kcfg_AutoStretch">
-            <property name="toolTip">
-             <string>Always apply auto stretch to images in FITS Viewer</string>
-            </property>
-            <property name="text">
-             <string>Auto Stretch</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="2">
-           <widget class="QCheckBox" name="kcfg_autoDebayerFITS">
-            <property name="toolTip">
-             <string>Automatically debayer captured image if it contains a bayer pattern</string>
-            </property>
-            <property name="text">
-             <string>Auto Debayer</string>
-            </property>
-            <property name="checked">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="3">
-           <widget class="QCheckBox" name="kcfg_auto3DCube">
-            <property name="toolTip">
-             <string>Process 3D (RGB) FITS images. If unchecked, only first channel is processed.</string>
-            </property>
-            <property name="text">
-             <string>3D Cube</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
+         <item>
+          <widget class="QGroupBox" name="BackendsGroupBox">
+           <property name="title">
+            <string>Backends</string>
+           </property>
+           <layout class="QVBoxLayout" name="verticalLayout_4">
+            <item>
+             <widget class="QCheckBox" name="kcfg_UseRefraction">
+              <property name="toolTip">
+               <string>Correct coordinates of objects for the effects of the atmosphere</string>
+              </property>
+              <property name="whatsThis">
+               <string>The atmosphere bends light passing through it, like a lens.  If this item is checked, this "atmospheric refraction" will be simulated in the sky map.  Note that this correction is only applied when using the Horizontal coordinate system.</string>
+              </property>
+              <property name="text">
+               <string>Correct for atmospheric refraction</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="kcfg_UseRelativistic">
+              <property name="toolTip">
+               <string>Correct for the effect of sun's gravity on star positions, as predicted by General Relativity, and verified by Eddington's experiment.</string>
+              </property>
+              <property name="text">
+               <string>General Relativity effects near the sun</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="kcfg_AlwaysRecomputeCoordinates">
+              <property name="whatsThis">
+               <string>Checking this option causes recomputation of current equatorial coordinates from catalog coordinates (i.e. application of precession, nutation and aberration corrections) for every redraw of the map. This makes processing slower when there are many stars to handle, but is more likely to be bug-free. There are known bugs in the rendering of stars when this recomputation is avoided.</string>
+              </property>
+              <property name="text">
+               <string>Always recompute coordinates</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
+         </item>
+         <item>
+          <widget class="QGroupBox" name="ImageryGroupBox">
+           <property name="title">
+            <string>DSS Imagery</string>
+           </property>
+           <layout class="QGridLayout" name="gridLayout">
+            <item row="0" column="0">
+             <widget class="QLabel" name="label">
+              <property name="text">
+               <string>Default DSS Image Size: </string>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="1">
+             <widget class="QDoubleSpinBox" name="kcfg_DefaultDSSImageSize">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="minimumSize">
+               <size>
+                <width>75</width>
+                <height>0</height>
+               </size>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="minimum">
+               <double>1.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>75.000000000000000</double>
+              </property>
+              <property name="value">
+               <double>15.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="0" column="3">
+             <widget class="QLabel" name="DefaultDSSImageSizeUnitLabel">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="text">
+               <string>arcminutes</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QLabel" name="label_3">
+              <property name="text">
+               <string>Padding around Deep Sky Objects:</string>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QDoubleSpinBox" name="kcfg_DSSPadding">
+              <property name="minimumSize">
+               <size>
+                <width>75</width>
+                <height>0</height>
+               </size>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="minimum">
+               <double>1.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>75.000000000000000</double>
+              </property>
+              <property name="value">
+               <double>10.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="2" colspan="2">
+             <widget class="QLabel" name="DSSPaddingUnitLabel">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="text">
+               <string>arcminutes</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
+         </item>
+        </layout>
        </item>
        <item>
         <widget class="QGroupBox" name="groupBox">
@@ -501,109 +407,82 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
-        <widget class="QCheckBox" name="kcfg_UseAnimatedSlewing">
-         <property name="toolTip">
-          <string>Show slewing motion when focus changes?</string>
-         </property>
-         <property name="whatsThis">
-          <string>If checked, changing the focus position will result in a visible animated "slew" to the new position.  Otherwise, the display will center on the new position instantaneously.</string>
-         </property>
-         <property name="text">
-          <string>Use animated slewing</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="kcfg_UseAutoLabel">
-         <property name="toolTip">
-          <string>Show name label of centered object?</string>
-         </property>
-         <property name="whatsThis">
-          <string>If checked, a name label will be temporarily attached to an object while it is centered in the display.  You can attach a more persistent label to any object using the right-click popup menu.</string>
-         </property>
-         <property name="text">
-          <string>Attach label to centered object</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="kcfg_UseHoverLabel">
-         <property name="toolTip">
-          <string>Show name label of centered object?</string>
-         </property>
-         <property name="whatsThis">
-          <string>If checked, a name label will be temporarily attached to an object while it is centered in the display.  You can attach a more persistent label to any object using the right-click popup menu.</string>
-         </property>
-         <property name="text">
-          <string>Attach temporary label when hovering mouse</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="kcfg_UseAntialias">
-         <property name="toolTip">
-          <string>Select this for smoother (but slower) graphics</string>
-         </property>
-         <property name="text">
-          <string>Use antialiased drawing</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="kcfg_HideOnSlew">
-         <property name="toolTip">
-          <string>Do not draw all objects while the map is moving?</string>
-         </property>
-         <property name="whatsThis">
-          <string>When the map is in motion, smooth animation is compromised if the program has too many objects to draw on the map; check this item to temporarily hide some of the objects while the display is in motion.</string>
-         </property>
-         <property name="text">
-          <string>Hide objects while moving</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QHBoxLayout">
-         <property name="spacing">
-          <number>6</number>
-         </property>
-         <property name="leftMargin">
-          <number>0</number>
-         </property>
-         <property name="topMargin">
-          <number>0</number>
-         </property>
-         <property name="rightMargin">
-          <number>0</number>
-         </property>
-         <property name="bottomMargin">
-          <number>0</number>
-         </property>
-         <item>
-          <widget class="QLabel" name="textLabelHideTimeStep">
+        <layout class="QGridLayout" name="gridLayout_3">
+         <item row="0" column="0">
+          <widget class="QCheckBox" name="kcfg_UseAnimatedSlewing">
+           <property name="toolTip">
+            <string>Show slewing motion when focus changes?</string>
+           </property>
+           <property name="whatsThis">
+            <string>If checked, changing the focus position will result in a visible animated "slew" to the new position.  Otherwise, the display will center on the new position instantaneously.</string>
+           </property>
            <property name="text">
-            <string>Also hide if time step larger than:</string>
+            <string>Use animated slewing</string>
            </property>
           </widget>
          </item>
-         <item>
-          <widget class="TimeStepBox" name="SlewTimeScale"/>
+         <item row="0" column="1" colspan="2">
+          <widget class="QCheckBox" name="kcfg_UseAutoLabel">
+           <property name="toolTip">
+            <string>Show name label of centered object?</string>
+           </property>
+           <property name="whatsThis">
+            <string>If checked, a name label will be temporarily attached to an object while it is centered in the display.  You can attach a more persistent label to any object using the right-click popup menu.</string>
+           </property>
+           <property name="text">
+            <string>Attach label to centered object</string>
+           </property>
+          </widget>
          </item>
-         <item>
-          <spacer>
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+         <item row="1" column="0">
+          <widget class="QCheckBox" name="kcfg_UseAntialias">
+           <property name="toolTip">
+            <string>Select this for smoother (but slower) graphics</string>
            </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
+           <property name="text">
+            <string>Use antialiased drawing</string>
            </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>111</width>
-             <height>20</height>
-            </size>
+          </widget>
+         </item>
+         <item row="1" column="1" colspan="2">
+          <widget class="QCheckBox" name="kcfg_UseHoverLabel">
+           <property name="toolTip">
+            <string>Show name label of centered object?</string>
+           </property>
+           <property name="whatsThis">
+            <string>If checked, a name label will be temporarily attached to an object while it is centered in the display.  You can attach a more persistent label to any object using the right-click popup menu.</string>
+           </property>
+           <property name="text">
+            <string>Attach temporary label when hovering mouse</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="2">
+          <layout class="QHBoxLayout" name="horizontalLayout_2">
+           <item>
+            <widget class="TimeStepBox" name="SlewTimeScale"/>
+           </item>
+          </layout>
+         </item>
+         <item row="2" column="0">
+          <widget class="QCheckBox" name="kcfg_HideOnSlew">
+           <property name="toolTip">
+            <string>Do not draw all objects while the map is moving?</string>
+           </property>
+           <property name="whatsThis">
+            <string>When the map is in motion, smooth animation is compromised if the program has too many objects to draw on the map; check this item to temporarily hide some of the objects while the display is in motion.</string>
            </property>
-          </spacer>
+           <property name="text">
+            <string>Hide objects while moving</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="1">
+          <widget class="QLabel" name="textLabelHideTimeStep">
+           <property name="text">
+            <string>Also hide if time step larger than:</string>
+           </property>
+          </widget>
          </item>
         </layout>
        </item>
@@ -1073,7 +952,6 @@
   <tabstop>kcfg_UseHoverLabel</tabstop>
   <tabstop>kcfg_UseAntialias</tabstop>
   <tabstop>kcfg_HideOnSlew</tabstop>
-  <tabstop>SlewTimeScale</tabstop>
   <tabstop>kcfg_HideStars</tabstop>
   <tabstop>kcfg_MagLimitHideStar</tabstop>
   <tabstop>kcfg_HidePlanets</tabstop>



More information about the Kstars-devel mailing list