[Kstars-devel] [kstars] /: More API documentation. The OAL classes and namespace was not documented so I added my own documentation stub, but Praksh or anyone familiar with it should expand it to include thorough documentation of the classes.

Jasem Mutlaq mutlaqja at ikarustech.com
Thu Feb 12 10:50:40 UTC 2015


Git commit 1141fe35fde7939a0e8a069292fd71f43b887641 by Jasem Mutlaq.
Committed on 12/02/2015 at 10:47.
Pushed by mutlaqja into branch 'master'.

More API documentation. The OAL classes and namespace was not documented so I added my own documentation stub, but Praksh or anyone familiar with it should expand it to include thorough documentation of the classes.
I reworked How it works a bit in the main API page so please take a look at it a bit to see if it needs further data.

CCMAIL: kstars-devel at kde.org

M  +33   -29   Mainpage.dox
M  +1    -1    kstars/CMakeLists.txt
M  +5    -4    kstars/auxiliary/fov.h
M  +2    -1    kstars/dialogs/addlinkdialog.h
M  +2    -1    kstars/dialogs/detaildialog.h
M  +5    -6    kstars/dialogs/fovdialog.h
M  +7    -0    kstars/ekos/align.h
M  +7    -0    kstars/ekos/astrometryparser.h
M  +10   -0    kstars/ekos/capture.h
M  +8    -0    kstars/ekos/ekosmanager.h
M  +8    -0    kstars/ekos/focus.h
M  +8    -0    kstars/ekos/guide.h
M  +7    -0    kstars/ekos/offlineastrometryparser.h
M  +6    -0    kstars/ekos/onlineastrometryparser.h
M  +8    -0    kstars/ekos/opsekos.h
M  +2    -1    kstars/htmesh/HTMesh.h
M  +2    -1    kstars/htmesh/MeshBuffer.h
M  +2    -1    kstars/htmesh/MeshIterator.h
M  +2    -1    kstars/htmesh/SpatialIndex.h
M  +2    -1    kstars/htmesh/SpatialVector.h
M  +2    -1    kstars/indi/clientmanager.h
M  +2    -1    kstars/indi/deviceinfo.h
M  +2    -1    kstars/indi/driverinfo.h
M  +1    -1    kstars/indi/drivermanager.h
M  +5    -13   kstars/indi/guimanager.h
M  +7    -3    kstars/indi/indiccd.h
M  +18   -18   kstars/indi/indidbus.cpp
M  +54   -43   kstars/indi/indidbus.h
M  +3    -1    kstars/indi/indidevice.h
M  +2    -1    kstars/indi/indielement.h
M  +2    -1    kstars/indi/indifilter.h
M  +2    -1    kstars/indi/indifocuser.h
M  +2    -1    kstars/indi/indigroup.h
M  +2    -1    kstars/indi/indilistener.h
M  +2    -1    kstars/indi/indiproperty.h
M  +8    -4    kstars/indi/indistd.h
M  +2    -1    kstars/indi/inditelescope.h
M  +7    -0    kstars/indi/opsindi.h
M  +2    -1    kstars/indi/servermanager.h
M  +5    -0    kstars/oal/execute.h
M  +5    -0    kstars/oal/eyepiece.h
M  +5    -0    kstars/oal/filter.h
M  +5    -0    kstars/oal/lens.h
M  +5    -0    kstars/oal/log.h
M  +14   -2    kstars/oal/oal.h
M  +5    -0    kstars/oal/observation.h
M  +6    -0    kstars/oal/observer.h
M  +5    -0    kstars/oal/observeradd.h
M  +5    -0    kstars/oal/scope.h
M  +5    -0    kstars/oal/session.h
M  +5    -0    kstars/oal/site.h
M  +5    -0    kstars/options/opsguides.h
M  +1    -2    kstars/skycomponents/skycomponent.h
M  +1    -1    kstars/skycomponents/stars.dox
M  +27   -25   kstars/skymap.h
M  +2    -0    kstars/tools/skycalendar.h

http://commits.kde.org/kstars/1141fe35fde7939a0e8a069292fd71f43b887641

diff --git a/Mainpage.dox b/Mainpage.dox
index 141aacf..91cda59 100644
--- a/Mainpage.dox
+++ b/Mainpage.dox
@@ -65,50 +65,54 @@ The "model" is encapsulated in the KStarsData class, and the "view" is encapsula
     - FITSViewer: Open and preview FITS files.
     - \ref INDI "Devices & INDI": Establish INDI drivers locally or connect to remote INDI servers.
     - Ekos
-    - Sky Calender
-    - DetailDialog
-    - What's up tonight
+    - \ref SkyCalender "Sky Calender"
+    - \ref DetailDialog "Detail Dialog"
+    - \ref WUTDialog "What's up tonight"
     - What's interesting
-    - Solar System
-    - Jupiter Moons
-    - Star Hopper
-    - Angular Distance
-    - Printing
+    - \ref PlanetViewer "Solar System": Display an overhead view of the solar system
+    - \ref JMoonTool "Jupiter Moons"
+    - \ref StarHopper "Star Hopper"
+    - \ref PrintingWizard "Printing"
 
 \subsection Observation Observation
-    - OAL
-    - Observation Planner
-    - Session Planner
+    - OAL: Open Astronomy Log
+    - \ref ObservingList "Observation Planner"
 
 \subsection Auxiliary Auxiliary
      Auxiliary are helper classes/dialogs/functions used throughout KStars.
-    - Image Viewer
+    - \ref ImageView "Image Viewer"
     - dms (encapsulates an angle value).
     - GeoLocation (which encapsulates a location on Earth).
     - TimeZoneRule (which encapsulates a daylight savings time rule).
-    - Color Schemes
+    - \ref ColorScheme "Color Schemes"
     - ThumbnailPicker / ThumbnailEditor
     - FocusDialog
-    - Wizard
-    - Settings
+    - \ref KSWizard Wizard
+    - Settings: OpsCatalog, OpsAdvanced, OpsColors, OpsGuides, OpsSatellites, OpsSolarSystem, OpsSupernovae, OpsINDI, OpsEkos
 
 \subsection Scripting Scripting
     - \ref DBusInterface DBus Interface
-    - Script builder
+    - \ref ScriptBuilder Script builder
 
-\section HowItWorks How it works?
-
-TODO This is a work in progress, it might not be accurate.
+\section HowItWorks How does it work?
 
 The following explanation is a \e very high level and general overview on the basic workflow in KStars. When you run KStars, the following general steps are executed (not necessarily in this order):
-+ An Instance of KStars is created.
-+ Data for stars, catalogs, deep sky objects, comets...etc are read and loaded into memory. Some data are not read unless necessary, such as stars that only appear at very high zoom levels.
-+ Toolbars, menus, and GUI elements are initialized.
-+ Time is initialized. Simulated clocks normally ticks forward at a particular interval, the default being once per second like a real clock.
-+ The coordinates of the sky objects loaded previously are calculated given the current date and time settings. Effects for precession, nutation, aberration, and refraction are taken into account.
-+ Each component draws itself on the skymap. The order of the drawing routine ensures layers such as equatorial/horizontal grid lines are drawn last.
-+ The sky map responds to user input from keyboard and mouse to perform various actions such as panning, zooming, invoking the popup menu for a particular object...etc.
-+ TODO Add more detials
-
-
+-# An Instance of KStars is created. KStars will start with the SimClock running and set to the system date and time unless otherwise specified in command line arguments.
+-# An Instance of KStarsData is created. Data for stars, catalogs, deep sky objects, comets...etc are read and loaded into memory.
+  Some data are not read unless necessary, such as stars that only appear at very high zoom levels.
+-# Date and Time are initialized. Simulated clocks normally ticks forward at a particular interval, the default being once per second like a real clock.
+-# KStars splash screen is created.
+-# An Instance of SkyMap is created. The SkyMap is the primary central widget in KStars. Toolbars, menus, actions, and status bar are initialized.
+-# SimClock emits the timeAdvanced() signal, which is connected to KStarsData::updateTime(), which takes care of updating object coordinates and drawing the skymap.
+  Effects for precession, nutation, aberration, and refraction are taken into account.
+-# SkyMap can have multiple draw backends (QPainter or OpenGL). It calls the selected backend to draw the overlays and objects unto the sky map.
+-# The backend implementing SkyMapDrawAbstract receives a PaintEvent(..) from SkyMap which begins by drawing the background first. Afterwards, it calls KStarsData SkyMapComposite instance which in turn calls
+  all child composites and components to draw themselves. Each component draws itself on the skymap. The order of the drawing routine ensures layers such as equatorial/horizontal
+  grid lines are drawn last.
+-# The sky map responds to user input from keyboard and mouse to perform various actions such as panning, zooming, invoking the popup menu for a particular object...etc.
+-# SimClock emits timeAdvanced() signal and the cycle repeats.
+-# The user can invoke tools, change settings, download new data, run scripts..etc while the cycle above is taking place in the background.
+-# Upon exist destructors are called to properly terminate all objects, free memory, and save options if necessary.
+
+\author Jasem Mutlaq
 */
diff --git a/kstars/CMakeLists.txt b/kstars/CMakeLists.txt
index fce3228..8093b8a 100644
--- a/kstars/CMakeLists.txt
+++ b/kstars/CMakeLists.txt
@@ -477,7 +477,7 @@ qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.xml kstars.h KStars)
 qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.SimClock.xml simclock.h SimClock)
 
 if (INDI_FOUND)
-qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.INDI.xml indi/indidbus.h INDIDBUS)
+qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.INDI.xml indi/indidbus.h INDIDBus)
 qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.Ekos.xml ekos/ekosmanager.h EkosManager)
 qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.Ekos.Capture.xml ekos/capture.h Ekos::Capture)
 qt5_add_dbus_adaptor(kstars_SRCS org.kde.kstars.Ekos.Focus.xml ekos/focus.h Ekos::Focus)
diff --git a/kstars/auxiliary/fov.h b/kstars/auxiliary/fov.h
index 613702e..6423c65 100644
--- a/kstars/auxiliary/fov.h
+++ b/kstars/auxiliary/fov.h
@@ -27,10 +27,11 @@
 
 class QPainter;
 
-/** @class FOV A simple class encapsulating a Field-of-View symbol
-	*@author Jason Harris
-	*@version 1.0
-	*/
+/** @class FOV
+ *  A simple class encapsulating a Field-of-View symbol
+ *@author Jason Harris
+ *@version 1.0
+*/
 class FOV {
 public:
     enum Shape { SQUARE,
diff --git a/kstars/dialogs/addlinkdialog.h b/kstars/dialogs/addlinkdialog.h
index 34a82f1..b30de66 100644
--- a/kstars/dialogs/addlinkdialog.h
+++ b/kstars/dialogs/addlinkdialog.h
@@ -34,7 +34,8 @@ public:
 };
 
 /**
-  *@class AddLinkDialog is a simple dialog for adding a custom URL to a popup menu.
+  *@class AddLinkDialog
+  *  AddLinkDialog is a simple dialog for adding a custom URL to a popup menu.
   *@author Jason Harris
   *@version 1.0
   */
diff --git a/kstars/dialogs/detaildialog.h b/kstars/dialogs/detaildialog.h
index 2952e39..d3156f5 100644
--- a/kstars/dialogs/detaildialog.h
+++ b/kstars/dialogs/detaildialog.h
@@ -61,7 +61,8 @@ struct ADVTreeData
 };
 
 /**
-  *@class DetailDialog is a window showing detailed information for a selected object.
+  *@class DetailDialog
+  *  DetailDialog is a window showing detailed information for a selected object.
 	*The window is split into four Tabs: General, Links, Advanced and Log.
 	*The General Tab displays some type-specific data about the object, as well as its 
 	*present coordinates and Rise/Set/Transit times for the current date.  The Type-specific 
diff --git a/kstars/dialogs/fovdialog.h b/kstars/dialogs/fovdialog.h
index 44ec609..28286c0 100644
--- a/kstars/dialogs/fovdialog.h
+++ b/kstars/dialogs/fovdialog.h
@@ -26,12 +26,6 @@
 #include "ui_fovdialog.h"
 #include "ui_newfov.h"
 
-/** @class FOVDialog Dialog to select a Field-of-View indicator (or create a new one)
-	*@author Jason Harris
-	*@version 1.0
-	*/
-
-
 class FOVDialogUI : public QFrame, public Ui::FOVDialog {
     Q_OBJECT
 public:
@@ -44,6 +38,11 @@ public:
     explicit NewFOVUI( QWidget *parent=0 );
 };
 
+/** @class FOVDialog
+ *  FOVDialog is dialog to select a Field-of-View indicator (or create a new one)
+    *@author Jason Harris
+    *@version 1.0
+    */
 class FOVDialog : public QDialog
 {
     Q_OBJECT
diff --git a/kstars/ekos/align.h b/kstars/ekos/align.h
index 16e6d5a..e2cdb16 100644
--- a/kstars/ekos/align.h
+++ b/kstars/ekos/align.h
@@ -54,6 +54,12 @@ public:
     typedef enum { AZ_INIT, AZ_FIRST_TARGET, AZ_SYNCING, AZ_SLEWING, AZ_SECOND_TARGET, AZ_CORRECTING, AZ_FINISHED } AZStage;
     typedef enum { ALT_INIT, ALT_FIRST_TARGET, ALT_SYNCING, ALT_SLEWING, ALT_SECOND_TARGET, ALT_CORRECTING, ALT_FINISHED } ALTStage;
 
+    /** @defgroup AlignDBusInterface Ekos DBus Interface - Align Module
+     * Ekos::Align interface provides advanced scripting capabilities to solve images using online or offline astrometry.net
+    */
+
+    /*@{*/
+
     /** DBUS interface function.
      * Select CCD
      * @param device CCD device name
@@ -132,6 +138,7 @@ public:
      */
     Q_SCRIPTABLE Q_NOREPLY void setSolverOptions(bool updateCoords, bool previewImage, bool verbose, bool useOAGT);
 
+    /** @}*/
 
     /**
      * @brief Add CCD to the list of available CCD.
diff --git a/kstars/ekos/astrometryparser.h b/kstars/ekos/astrometryparser.h
index 0c3c3ce..508a8c9 100644
--- a/kstars/ekos/astrometryparser.h
+++ b/kstars/ekos/astrometryparser.h
@@ -17,6 +17,13 @@ namespace Ekos
 
 class Align;
 
+/**
+ * @class AstrometryParser
+ *  AstrometryParser is an interface for online and offline astrometry parsers.
+ *
+ * @authro Jasem Mutlaq
+ */
+
 class AstrometryParser : public QObject
 {
     Q_OBJECT
diff --git a/kstars/ekos/capture.h b/kstars/ekos/capture.h
index 8f28033..e564822 100644
--- a/kstars/ekos/capture.h
+++ b/kstars/ekos/capture.h
@@ -38,6 +38,7 @@ class KDirWatch;
  * - Load & Slew: Load a FITS image, slew to solved coordinates, and center the mount on the exact image coordinates in order to get the same desired frame.
  * - Measure & Correct Polar Alignment errors using astromety.net solver.
  * - Auto and manual focus modes using Half-Flux-Radius (HFR) method.
+ * - Automated unattended meridian flip. Ekos performs post meridian flip alignment, calibration, and guiding to resume the capture session.
  * - Automatic focus between exposures when a user-configurable HFR limit is exceeded.
  * - Auto guiding with support for automatic dithering between exposures and support for Adaptive Optics devices in addition to traditional guiders.
  * - Powerful sequence queue for batch capture of images with optional prefixes, timestamps, filter wheel selection, and much more!
@@ -46,6 +47,7 @@ class KDirWatch;
  * - Support for dome slaving.
  * - Complete integration with KStars Observation Planner and SkyMap
  * - Integrate with all INDI native devices.
+ * - Powerful scripting capabilities via \ref EkosDBusInterface "DBus."
 *@author Jasem Mutlaq
  *@version 1.0
  */
@@ -200,6 +202,12 @@ public:
     Capture();
     ~Capture();
 
+    /** @defgroup CaptureDBusInterface Ekos DBus Interface - Capture Module
+     * Ekos::Capture interface provides advanced scripting capabilities to capture image sequences.
+    */
+
+    /*@{*/
+
     /** DBUS interface function.
      * select the CCD device from the available CCD drivers.
      * @param device The CCD device name
@@ -273,6 +281,8 @@ public:
      */
     Q_SCRIPTABLE double         getJobExposureDuration(int id);
 
+    /** @}*/
+
     void addCCD(ISD::GDInterface *newCCD, bool isPrimaryCCD);
     void addFilter(ISD::GDInterface *newFilter);
     void addGuideHead(ISD::GDInterface *newCCD);
diff --git a/kstars/ekos/ekosmanager.h b/kstars/ekos/ekosmanager.h
index 08807af..3058f29 100644
--- a/kstars/ekos/ekosmanager.h
+++ b/kstars/ekos/ekosmanager.h
@@ -51,6 +51,12 @@ public:
     void playOk();
     void playError();
 
+    /** @defgroup EkosDBusInterface Ekos DBus Interface
+     * EkosManager interface provides advanced scripting capabilities to establish and shutdown Ekos services.
+    */
+
+    /*@{*/
+
     /** DBUS interface function.
      * set Ekos connection mode.
      * @param isLocal if true, it will establish INDI server locally, otherwise it will connect to a remote INDI server as defined in the Ekos options or by the user.
@@ -129,6 +135,8 @@ public:
      */
     Q_SCRIPTABLE Q_NOREPLY void setAuxiliary(const QString & auxiliaryName);
 
+    /** @}*/
+
 public slots:
     void processINDI();
 
diff --git a/kstars/ekos/focus.h b/kstars/ekos/focus.h
index 36128c0..1b2d6a1 100644
--- a/kstars/ekos/focus.h
+++ b/kstars/ekos/focus.h
@@ -49,6 +49,12 @@ public:
     typedef enum { FOCUS_NONE, FOCUS_IN, FOCUS_OUT } FocusDirection;
     typedef enum { FOCUS_MANUAL, FOCUS_AUTO, FOCUS_LOOP } FocusType;
 
+    /** @defgroup FocusDBusInterface Ekos DBus Interface - Focus Module
+     * Ekos::Focus interface provides advanced scripting capabilities to perform manual and automatic focusing operations.
+    */
+
+    /*@{*/
+
     /** DBUS interface function.
      * select the CCD device from the available CCD drivers.
      * @param device The CCD device name
@@ -132,6 +138,8 @@ public:
      */
     Q_SCRIPTABLE Q_NOREPLY void resetFrame();
 
+    /** @}*/
+
     /**
      * @brief Add CCD to the list of available CCD.
      * @param newCCD pointer to CCD device.
diff --git a/kstars/ekos/guide.h b/kstars/ekos/guide.h
index 977e78a..239e555 100644
--- a/kstars/ekos/guide.h
+++ b/kstars/ekos/guide.h
@@ -48,6 +48,12 @@ public:
 
     enum GuiderStage { CALIBRATION_STAGE, GUIDE_STAGE };
 
+    /** @defgroup GuideDBusInterface Ekos DBus Interface - Capture Module
+     * Ekos::Guide interface provides advanced scripting capabilities to calibrate and guide a mount via a CCD camera.
+    */
+
+    /*@{*/
+
     /** DBUS interface function.
      * select the CCD device from the available CCD drivers.
      * @param device The CCD device name
@@ -130,6 +136,8 @@ public:
      */
     Q_SCRIPTABLE Q_NOREPLY void setDither(bool enable, double value);
 
+    /** @}*/
+
     void addCCD(ISD::GDInterface *newCCD, bool isPrimaryGuider);
     void setTelescope(ISD::GDInterface *newTelescope);
     void addST4(ISD::ST4 *newST4);
diff --git a/kstars/ekos/offlineastrometryparser.h b/kstars/ekos/offlineastrometryparser.h
index cceb782..4a2368f 100644
--- a/kstars/ekos/offlineastrometryparser.h
+++ b/kstars/ekos/offlineastrometryparser.h
@@ -21,6 +21,13 @@ namespace Ekos
 
 class Align;
 
+/**
+ * @class  OfflineAstrometryParser
+ * OfflineAstrometryParser invokes the offline astrometry.net solver to find solutions to captured images.
+ *
+ * @authro Jasem Mutlaq
+ */
+
 class OfflineAstrometryParser: public AstrometryParser
 {
         Q_OBJECT
diff --git a/kstars/ekos/onlineastrometryparser.h b/kstars/ekos/onlineastrometryparser.h
index c655b8f..59d9cdc 100644
--- a/kstars/ekos/onlineastrometryparser.h
+++ b/kstars/ekos/onlineastrometryparser.h
@@ -22,6 +22,12 @@ namespace Ekos
 
 class Align;
 
+/**
+ * @class  OnlineAstrometryParser
+ * OnlineAstrometryParser invokes the online services provided by astrometry.net solver to find solutions to captured images.
+ *
+ * @authro Jasem Mutlaq
+ */
 class OnlineAstrometryParser: public AstrometryParser
 {
         Q_OBJECT
diff --git a/kstars/ekos/opsekos.h b/kstars/ekos/opsekos.h
index 10b9cce..ac73944 100644
--- a/kstars/ekos/opsekos.h
+++ b/kstars/ekos/opsekos.h
@@ -15,6 +15,14 @@
 class KStars;
 class KConfigDialog;
 
+/**
+ * @class OpsEkos
+ *
+ * Enables the user to set remote connection devices and options in addition to online and offline astrometry.net settings.
+ * The user can also select to enable or disable audiable alarms upon capturing FITS or when an operation is completed.
+ *
+ * @author Jasem Mutlaq
+ */
 class OpsEkos : public QFrame, public Ui::OpsEkos
 {
     Q_OBJECT
diff --git a/kstars/htmesh/HTMesh.h b/kstars/htmesh/HTMesh.h
index be30bc7..b687797 100644
--- a/kstars/htmesh/HTMesh.h
+++ b/kstars/htmesh/HTMesh.h
@@ -25,7 +25,8 @@ class MeshBuffer;
 
 
 /**
- * @class HTMesh was originally intended to be a simple interface to the HTM
+ * @class HTMesh
+ * HTMesh was originally intended to be a simple interface to the HTM
  * library for the KStars project that would hide some of the complexity.  But
  * it has gained some complexity of its own. 
  *
diff --git a/kstars/htmesh/MeshBuffer.h b/kstars/htmesh/MeshBuffer.h
index acffb97..f5cc9ea 100644
--- a/kstars/htmesh/MeshBuffer.h
+++ b/kstars/htmesh/MeshBuffer.h
@@ -13,7 +13,8 @@
 
 class HTMesh;
 
-/** @class MeshBuffer the sole purpose of a MeshBuffer is to hold storage space
+/** @class MeshBuffer
+ * The sole purpose of a MeshBuffer is to hold storage space
  * for the results of an HTM inetersection and then allow multiple
  * MeshIterator's to walk through the result set.  The buffer space is allocated
  * when the MeshBuffer is created.  Mesh buffers will usually hang around for
diff --git a/kstars/htmesh/MeshIterator.h b/kstars/htmesh/MeshIterator.h
index 7362d54..6a6c2b1 100644
--- a/kstars/htmesh/MeshIterator.h
+++ b/kstars/htmesh/MeshIterator.h
@@ -13,7 +13,8 @@
 
 class HTMesh;
 
-/** @class MeshIterator is a very lightweight class used to iterate over the
+/** @class MeshIterator
+ * MeshIterator is a very lightweight class used to iterate over the
  * result set of an HTMesh intersection.  If you want to iterate over the same
  * result set multiple times in the same block of code, you don't need to create
  * a new MeshIterator, just call the reset() method and then re-use the iterator.
diff --git a/kstars/htmesh/SpatialIndex.h b/kstars/htmesh/SpatialIndex.h
index e04d8c0..c561f20 100644
--- a/kstars/htmesh/SpatialIndex.h
+++ b/kstars/htmesh/SpatialIndex.h
@@ -33,7 +33,8 @@
 //#
 
 
-/** @class SpatialIndex is a quad tree of spherical triangles. The tree
+/** @class SpatialIndex
+   SpatialIndex is a quad tree of spherical triangles. The tree
    is built in the following way: Start out with 8 triangles on the
    sphere using the 3 main circles to determine them. Then, every
    triangle can be decomposed into 4 new triangles by drawing main
diff --git a/kstars/htmesh/SpatialVector.h b/kstars/htmesh/SpatialVector.h
index c062ca7..bbab5a7 100644
--- a/kstars/htmesh/SpatialVector.h
+++ b/kstars/htmesh/SpatialVector.h
@@ -22,7 +22,8 @@
 
 //########################################################################
 /**
-   @class SpatialVector is a 3D vector usually living on the surface of
+   @class SpatialVector
+   SpatialVector is a 3D vector usually living on the surface of
    the sphere. The corresponding ra, dec can be obtained if the vector
    has unit length. That can be ensured with the normalize() function.
 
diff --git a/kstars/indi/clientmanager.h b/kstars/indi/clientmanager.h
index d236f92..4636887 100644
--- a/kstars/indi/clientmanager.h
+++ b/kstars/indi/clientmanager.h
@@ -20,7 +20,8 @@ class DriverInfo;
 class ServerManager;
 
 /**
- * @class ClientManager manages connection to INDI server, creation of devices, and receving/sending properties.
+ * @class ClientManager
+ * ClientManager manages connection to INDI server, creation of devices, and receving/sending properties.
  *
  * ClientManager is a subclass of INDI::BaseClient class part of the INDI Library.
  * This enables the class to communicate with INDI server and to receive notification of devices, properties, and messages.
diff --git a/kstars/indi/deviceinfo.h b/kstars/indi/deviceinfo.h
index eec9522..0836a1b 100644
--- a/kstars/indi/deviceinfo.h
+++ b/kstars/indi/deviceinfo.h
@@ -16,7 +16,8 @@
 #include "driverinfo.h"
 
 /**
- * @class DeviceInfo Simple class to hold DriverInfo and INDI::BaseDevice associated with a particular device.
+ * @class DeviceInfo
+ * DeviceInfo is simple class to hold DriverInfo and INDI::BaseDevice associated with a particular device.
  *
  * @author Jasem Mutlaq
  */
diff --git a/kstars/indi/driverinfo.h b/kstars/indi/driverinfo.h
index 09e9d03..b229149 100644
--- a/kstars/indi/driverinfo.h
+++ b/kstars/indi/driverinfo.h
@@ -22,7 +22,8 @@ class ClientManager;
 class DeviceInfo;
 
 /**
- * @class DriverInfo holds all metadata associated with a particular INDI driver.
+ * @class DriverInfo
+ * DriverInfo holds all metadata associated with a particular INDI driver.
  * An INDI drivers holds both static and dynamic information. Example for static information:
  * <ul>
  * <li>Device name.</li>
diff --git a/kstars/indi/drivermanager.h b/kstars/indi/drivermanager.h
index 5ade6d1..0cb753c 100644
--- a/kstars/indi/drivermanager.h
+++ b/kstars/indi/drivermanager.h
@@ -137,7 +137,7 @@ private:
     QList<ClientManager *> clients;
     QStringList driversStringList;
 
-    INDIDBUS indiDBUS;
+    INDIDBus indiDBUS;
 
 public slots:
     //void enableDevice(INDI_D *device);
diff --git a/kstars/indi/guimanager.h b/kstars/indi/guimanager.h
index 6fe03ff..1c82f80 100644
--- a/kstars/indi/guimanager.h
+++ b/kstars/indi/guimanager.h
@@ -1,7 +1,4 @@
-#ifndef GUIMANAGER_H
-#define GUIMANAGER_H
-
-/*  INDI frontend for KStars
+/*  INDI GUI Manager
     Copyright (C) 2012 Jasem Mutlaq
 
     This application is free software; you can redistribute it and/or
@@ -10,14 +7,8 @@
     version 2 of the License, or (at your option) any later version.
  */
 
-/*  INDI frontend for KStars
-    Copyright (C) 2012 Jasem Mutlaq
-
-    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 GUIMANAGER_H
+#define GUIMANAGER_H
 
 #include <QGridLayout>
 #include <QFrame>
@@ -44,7 +35,8 @@ class FITSViewer;
 class INDI_D;
 
 /**
- * @class GUIManager creates the INDI Control Panel upon receving a new device. Each device is displayed
+ * @class GUIManager
+ * GUIManager creates the INDI Control Panel upon receving a new device. Each device is displayed
  * on a separate tab. The device and property GUI creation is performed dynamically via introspection. As new properties
  * arrive from the ClientManager, they get created in the GUI.
  *
diff --git a/kstars/indi/indiccd.h b/kstars/indi/indiccd.h
index ecc7643..996de4e 100644
--- a/kstars/indi/indiccd.h
+++ b/kstars/indi/indiccd.h
@@ -21,14 +21,17 @@ class FITSData;
 class StreamWG;
 
 /**
- * \namespace ISD is collection of INDI Standard Devices. It encapsulates common type of INDI devices such as telescopes and CCDs.
+ * \namespace ISD
+ *
+ *  ISD is a collection of INDI Standard Devices. It encapsulates common types of INDI devices such as telescopes and CCDs.
  *
  */
 namespace ISD
 {
 
 /**
- * @class CCDChip class controls a particular chip in CCD device. While most amateur CCDs only have a single chip on the CCD, some
+ * @class CCDChip
+ * CCDChip class controls a particular chip in CCD device. While most amateur CCDs only have a single chip on the CCD, some
  * CCDs have additional chips targetted for guiding purposes.
  */
 class CCDChip
@@ -110,7 +113,8 @@ private:
 };
 
 /**
- * @class CCD class controls an INDI CCD device. It can be used to issue and abort capture commands, receive and process BLOBs,
+ * @class CCD
+ * CCD class controls an INDI CCD device. It can be used to issue and abort capture commands, receive and process BLOBs,
  * and return information on the capabilities of the CCD.
  *
  * @author Jasem Mutlaq
diff --git a/kstars/indi/indidbus.cpp b/kstars/indi/indidbus.cpp
index 4df1c2e..d8a90a9 100644
--- a/kstars/indi/indidbus.cpp
+++ b/kstars/indi/indidbus.cpp
@@ -22,14 +22,14 @@
 #include "indidbus.h"
 #include "indiadaptor.h"
 
-INDIDBUS::INDIDBUS(QObject *parent) :
+INDIDBus::INDIDBus(QObject *parent) :
     QObject(parent)
 {
     new INDIAdaptor(this);
     QDBusConnection::sessionBus().registerObject("/KStars/INDI",  this);
 }
 
-bool INDIDBUS::start(const QString &port, const QStringList &drivers)
+bool INDIDBus::start(const QString &port, const QStringList &drivers)
 {
     QList<DriverInfo*> newDrivers;
 
@@ -48,7 +48,7 @@ bool INDIDBUS::start(const QString &port, const QStringList &drivers)
     return DriverManager::Instance()->startDevices(newDrivers);
 }
 
-bool INDIDBUS::stop(const QString &port)
+bool INDIDBus::stop(const QString &port)
 {
     QList<DriverInfo*> stopDrivers;
 
@@ -75,7 +75,7 @@ bool INDIDBUS::stop(const QString &port)
 }
 
 
-bool INDIDBUS::connect(const QString &host, const QString &port)
+bool INDIDBus::connect(const QString &host, const QString &port)
 {
     DriverInfo *remote_indi = new DriverInfo(QString("INDI Remote Host"));
 
@@ -95,7 +95,7 @@ bool INDIDBUS::connect(const QString &host, const QString &port)
     return true;
 }
 
-bool INDIDBUS::disconnect(const QString &host, const QString &port)
+bool INDIDBus::disconnect(const QString &host, const QString &port)
 {
 
     foreach(DriverInfo *di, DriverManager::Instance()->getDrivers())
@@ -115,7 +115,7 @@ bool INDIDBUS::disconnect(const QString &host, const QString &port)
     return false;
 }
 
-QStringList INDIDBUS::getDevices()
+QStringList INDIDBus::getDevices()
 {
     QStringList devices;
 
@@ -131,7 +131,7 @@ QStringList INDIDBUS::getDevices()
     return devices;
 }
 
-QStringList INDIDBUS::getProperties(const QString &device)
+QStringList INDIDBus::getProperties(const QString &device)
 {
     QStringList properties;
 
@@ -210,7 +210,7 @@ QStringList INDIDBUS::getProperties(const QString &device)
 
 }
 
-QString INDIDBUS::getPropertyState(const QString &device, const QString &property)
+QString INDIDBus::getPropertyState(const QString &device, const QString &property)
 {
     QString status = "Invalid";
 
@@ -238,7 +238,7 @@ QString INDIDBUS::getPropertyState(const QString &device, const QString &propert
     return status;
 }
 
-bool INDIDBUS::sendProperty(const QString &device, const QString &property)
+bool INDIDBus::sendProperty(const QString &device, const QString &property)
 {
     foreach(ISD::GDInterface *gd, INDIListener::Instance()->getDevices())
     {
@@ -288,7 +288,7 @@ bool INDIDBUS::sendProperty(const QString &device, const QString &property)
 
 }
 
-QString INDIDBUS::getLight(const QString &device, const QString &property, const QString &lightName)
+QString INDIDBus::getLight(const QString &device, const QString &property, const QString &lightName)
 {
     QString status = "Invalid";
 
@@ -325,7 +325,7 @@ QString INDIDBUS::getLight(const QString &device, const QString &property, const
     return status;
 }
 
-bool INDIDBUS::setSwitch(const QString &device, const QString &property, const QString &switchName, const QString &status)
+bool INDIDBus::setSwitch(const QString &device, const QString &property, const QString &switchName, const QString &status)
 {
     if (status != "On" && status != "Off")
     {
@@ -374,7 +374,7 @@ bool INDIDBUS::setSwitch(const QString &device, const QString &property, const Q
     return false;
 }
 
-QString INDIDBUS::getSwitch(const QString &device, const QString &property, const QString &switchName)
+QString INDIDBus::getSwitch(const QString &device, const QString &property, const QString &switchName)
 {
     QString result("Invalid");
 
@@ -409,7 +409,7 @@ QString INDIDBUS::getSwitch(const QString &device, const QString &property, cons
     return result;
 }
 
-bool INDIDBUS::setText(const QString &device, const QString &property, const QString &textName, const QString &text)
+bool INDIDBus::setText(const QString &device, const QString &property, const QString &textName, const QString &text)
 {
     foreach(ISD::GDInterface *gd, INDIListener::Instance()->getDevices())
     {
@@ -443,7 +443,7 @@ bool INDIDBUS::setText(const QString &device, const QString &property, const QSt
     return false;
 }
 
-QString INDIDBUS:: getText(const QString &device, const QString &property, const QString &textName)
+QString INDIDBus:: getText(const QString &device, const QString &property, const QString &textName)
 {
     QString result("Invalid");
 
@@ -479,7 +479,7 @@ QString INDIDBUS:: getText(const QString &device, const QString &property, const
 
 }
 
-bool INDIDBUS::setNumber(const QString &device, const QString &property, const QString &numberName, double value)
+bool INDIDBus::setNumber(const QString &device, const QString &property, const QString &numberName, double value)
 {
     foreach(ISD::GDInterface *gd, INDIListener::Instance()->getDevices())
     {
@@ -513,7 +513,7 @@ bool INDIDBUS::setNumber(const QString &device, const QString &property, const Q
     return false;
 }
 
-double INDIDBUS:: getNumber(const QString &device, const QString &property, const QString &numberName)
+double INDIDBus:: getNumber(const QString &device, const QString &property, const QString &numberName)
 {
     double result = NaN::d;
 
@@ -548,7 +548,7 @@ double INDIDBUS:: getNumber(const QString &device, const QString &property, cons
     return result;
 }
 
-QByteArray INDIDBUS::getBLOBData(const QString &device, const QString &property, const QString &blobName, QString &blobFormat, int & size)
+QByteArray INDIDBus::getBLOBData(const QString &device, const QString &property, const QString &blobName, QString &blobFormat, int & size)
 {
     QByteArray array;
     size = -1;
@@ -588,7 +588,7 @@ QByteArray INDIDBUS::getBLOBData(const QString &device, const QString &property,
     return array;
 }
 
-QString INDIDBUS::getBLOBFile(const QString &device, const QString &property, const QString &blobName, QString &blobFormat, int & size)
+QString INDIDBus::getBLOBFile(const QString &device, const QString &property, const QString &blobName, QString &blobFormat, int & size)
 {
     QString filename;
     size = -1;
diff --git a/kstars/indi/indidbus.h b/kstars/indi/indidbus.h
index 1836f6a..8d99504 100644
--- a/kstars/indi/indidbus.h
+++ b/kstars/indi/indidbus.h
@@ -13,16 +13,26 @@
 #include <QObject>
 #include <QtDBus/QtDBus>
 
-class INDIDBUS : public QObject
+/**
+ * @class INDIDBus
+ *
+ * Collection of INDI DBus functions.
+ *
+ * @author Jasem Mutlaq
+ */
+class INDIDBus : public QObject
 {
     Q_OBJECT
     Q_CLASSINFO("D-Bus Interface", "org.kde.kstars.INDI")
 
 public:
-    explicit INDIDBUS(QObject *parent = 0);
+    explicit INDIDBus(QObject *parent = 0);
 
     /** @defgroup INDIDBusInterface INDI DBus Interface
      * INDIDBus interface provides complete scripting capability over INDI servers and devices within KStars.
+     *
+     * A Python DBus <a href="http://indilib.org/support/tutorials/148-dbus-scripting-with-kstars-python.html">tutorial</a> demonstrates
+     * the capabilities of the INDI DBus interface.
     */
 
     /*@{*/
@@ -39,13 +49,13 @@ public:
     Q_SCRIPTABLE bool stop (const QString &port);
 
     /** DBUS interface function. Connect to an INDI server
-    * @host hostname of  server to connect to.
+    * @param host hostname of  server to connect to.
     * @param port Port of  server.
     */
     Q_SCRIPTABLE bool connect (const QString &host, const QString &port);
 
     /** DBUS interface function. Disconnect from an INDI server
-    * @host hostname of  server to disconnect.
+    * @param host hostname of  server to disconnect.
     * @param port Port of  server.
     */
     Q_SCRIPTABLE bool disconnect (const QString &host, const QString &port);
@@ -56,101 +66,102 @@ public:
     Q_SCRIPTABLE QStringList getDevices();
 
     /** DBUS interface function. Returns a list of INDI properties
-    * @device device name
+    * @param device device name
     * @returns List of  properties in the format DEVICE.PROPERTY.ELEMENT.
     */
     Q_SCRIPTABLE QStringList getProperties(const QString &device);
 
     /** DBUS interface function. Returns INDI property state
-    * @device device name
-    * @property property name
+    * @param device device name
+    * @param property property name
     * @returns Idle, Ok, Busy, or Alert. If no property is found, it returns "Invalid"
     */
     Q_SCRIPTABLE QString getPropertyState(const QString &device, const QString &property);
 
     /** DBUS interface function. Sends property to INDI server
-    * @device device name
-    * @property property name
+    * @param device device name
+    * @param property property name
     * @returns true if property is found and sent to  server, false otherwise.
     */
     Q_SCRIPTABLE bool sendProperty(const QString &device, const QString &property);
 
     /** DBUS interface function. Set INDI Switch status
-    * @device device name
-    * @property property name
-    * @switchName switch name
-    * @status Either On or Off.
+    * @param device device name
+    * @param property property name
+    * @param switchName switch name
+    * @param status Either On or Off.
     * /note This function ONLY sets the switch status but does not send it to  server. Use sendProperty to send a switch to  server.
     */
     Q_SCRIPTABLE bool setSwitch(const QString &device, const QString &property, const QString &switchName, const QString &status);
 
     /** DBUS interface function. Returns INDI switch status
-    * @device device name
-    * @property property name
-    * @switchName switch name
+    * @param device device name
+    * @param property property name
+    * @param switchName switch name
     * @returns On or Off if switch is found. If no switch is found, it returns "Invalid".
     */
     Q_SCRIPTABLE QString getSwitch(const QString &device, const QString &property, const QString &switchName);
 
     /** DBUS interface function. Set INDI Text
-    * @device device name
-    * @property property name
-    * @textName text element name
-    * @text text value
+    * @param device device name
+    * @param property property name
+    * @param textName text element name
+    * @param text text value
     * /note This function ONLY sets the text value but does not send it to  server. Use sendProperty to send a text to  server.
     */
     Q_SCRIPTABLE bool setText(const QString &device, const QString &property, const QString &textName, const QString &text);
 
     /** DBUS interface function. Returns INDI text value
-    * @device device name
-    * @property property name
-    * @textName text element name
+    * @param device device name
+    * @param property property name
+    * @param textName text element name
     * @returns text value. If no text is found, it returns "Invalid".
     */
     Q_SCRIPTABLE QString getText(const QString &device, const QString &property, const QString &textName);
 
     /** DBUS interface function. Set INDI  Number
-    * @device device name
-    * @property property name
-    * @NumberName number element name
-    * @value number value
+    * @param device device name
+    * @param property property name
+    * @param numberName number element name
+    * @param value number value
+    * @returns true if successful, false otherwise.
     * /note This function ONLY sets the number value but does not send it to  server. Use sendProperty to send a number to  server.
     */
     Q_SCRIPTABLE bool setNumber(const QString &device, const QString &property, const QString &numberName, double value);
 
     /** DBUS interface function. Returns INDI number value
-    * @device device name
-    * @property property name
-    * @numberName number element name
+    * @param device device name
+    * @param property name
+    * @param numberName number element name
     * @returns number value. If no text is found, it returns NAN.
     */
     Q_SCRIPTABLE double getNumber(const QString &device, const QString &property, const QString &numberName);
 
     /** DBUS interface function. Returns INDI  Light state
-    * @device device name
-    * @property property name
-    * @lightName light element name
+    * @param device device name
+    * @param property name
+    * @param lightName light element name
     * @returns Idle, Ok, Busy, or Alert. If no property is found, it returns "Invalid"
     */
     Q_SCRIPTABLE QString getLight(const QString &device, const QString &property, const QString &lightName);
 
     /** DBUS interface function. Returns INDI blob data. It can be extremely inefficient transporting large amount of data via DBUS.
-    * @device device name
-    * @property property name
-    * @blobName blob element name
-    * @blobFormat blob element format. It is usually the extension of the blob file.
-    * @size blob element size in bytes. If -1, then there is an error.
+    * @param device device name
+    * @param property property name
+    * @param blobName blob element name
+    * @param blobFormat blob element format. It is usually the extension of the blob file.
+    * @param size blob element size in bytes. If -1, then there is an error.
     * @returns array of bytes containing blob.
     * @see getBLOBFile
     */
     Q_SCRIPTABLE QByteArray getBLOBData(const QString &device, const QString &property, const QString &blobName, QString &blobFormat, int & size);
 
     /** DBUS interface function. Returns INDI blob filename stored on the local file system.
-    * @device device name
-    * @property property name
-    * @blobName blob element name
-    * @blobFormat blob element format. It is usually the extension of a file.
-    * @size blob element size in bytes. If -1, then there is an error.
+    * @param device device name
+    * @param property property name
+    * @param blobName blob element name
+    * @param blobFormat blob element format. It is usually the extension of a file.
+    * @param size blob element size in bytes. If -1, then there is an error.
     * @returns full file name
     */
     Q_SCRIPTABLE QString getBLOBFile(const QString &device, const QString &property, const QString &blobName, QString &blobFormat, int & size);
diff --git a/kstars/indi/indidevice.h b/kstars/indi/indidevice.h
index 6d0ea23..91f1242 100644
--- a/kstars/indi/indidevice.h
+++ b/kstars/indi/indidevice.h
@@ -28,7 +28,9 @@ class ClientManager;
 class INDI_G;
 
 /**
- * @class INDI_D represents an INDI GUI Device. INDI_D is the top level device container. It contains a collection of groups of properties. Each group is represented as a separate tab within the GUI.
+ * @class INDI_D
+ * INDI_D represents an INDI GUI Device. INDI_D is the top level device container. It contains a collection of groups of properties.
+ * Each group is represented as a separate tab within the GUI.
  *
  * @author Jasem Mutlaq
  */
diff --git a/kstars/indi/indielement.h b/kstars/indi/indielement.h
index cf5868b..51d59c3 100644
--- a/kstars/indi/indielement.h
+++ b/kstars/indi/indielement.h
@@ -41,7 +41,8 @@ class QSlider;
 class INDI_P;
 
 /**
- * @class INDI_E represents an INDI GUI element (Number, Text, Switch, Light, or BLOB) within an INDI property. It is the most basic
+ * @class INDI_E
+ *  INDI_E represents an INDI GUI element (Number, Text, Switch, Light, or BLOB) within an INDI property. It is the most basic
  * GUI representation of property elements.
  *
  * @author Jasem Mutlaq
diff --git a/kstars/indi/indifilter.h b/kstars/indi/indifilter.h
index ea3a8b7..8e4d565 100644
--- a/kstars/indi/indifilter.h
+++ b/kstars/indi/indifilter.h
@@ -16,7 +16,8 @@ namespace ISD
 {
 
 /**
- * @class Filter class handles control of INDI Filter devices.
+ * @class Filter
+ * Filter class handles control of INDI Filter devices.
  *
  * @author Jasem Mutlaq
  */
diff --git a/kstars/indi/indifocuser.h b/kstars/indi/indifocuser.h
index 0d93017..f527176 100644
--- a/kstars/indi/indifocuser.h
+++ b/kstars/indi/indifocuser.h
@@ -16,7 +16,8 @@ namespace ISD
 {
 
 /**
- * @class Focuser class handles control of INDI focuser devices. Both relative and absolute focusers can be controlled.
+ * @class Focuser
+ * Focuser class handles control of INDI focuser devices. Both relative and absolute focusers can be controlled.
  *
  * @author Jasem Mutlaq
  */
diff --git a/kstars/indi/indigroup.h b/kstars/indi/indigroup.h
index 9a1b510..ded6844 100644
--- a/kstars/indi/indigroup.h
+++ b/kstars/indi/indigroup.h
@@ -29,7 +29,8 @@ class QSpacerItem;
 class QScrollArea;
 
 /**
- * @class INDI_G represents a collection of INDI properties that share a common group. The group is usually represented in the GUI as a separate tab with the device tab.
+ * @class INDI_G
+ * INDI_G represents a collection of INDI properties that share a common group. The group is usually represented in the GUI as a separate tab with the device tab.
  *
  * @author Jasem Mutlaq
  */
diff --git a/kstars/indi/indilistener.h b/kstars/indi/indilistener.h
index d9079ea..b5f26e8 100644
--- a/kstars/indi/indilistener.h
+++ b/kstars/indi/indilistener.h
@@ -22,7 +22,8 @@ class FITSViewer;
 class DeviceInfo;
 
 /**
- * @class INDIListener is responsible for creating ISD::GDInterface generic devices as new devices arrive from ClientManager. It can support multiple ClientManagers
+ * @class INDIListener
+ * INDIListener is responsible for creating ISD::GDInterface generic devices as new devices arrive from ClientManager. It can support multiple ClientManagers
  * and will first create a generic INDI device. Upon arrival of INDI properties, INDIListener can create specialized devices (e.g. Telescope) if it detects key Standard INDI
  * property that signifies a particular device family. The generic device functionality is extended via the Decorator design pattern.
  *
diff --git a/kstars/indi/indiproperty.h b/kstars/indi/indiproperty.h
index 98de4c5..f6291ab 100644
--- a/kstars/indi/indiproperty.h
+++ b/kstars/indi/indiproperty.h
@@ -33,7 +33,8 @@ class QAbstractButton;
 class QCheckBox;
 
 /**
- * @class INDI_P represents a single INDI property (Switch, Text, Number, Light, or BLOB). It handles building the GUI and updating the property status and/or value as new data
+ * @class INDI_P
+ * INDI_P represents a single INDI property (Switch, Text, Number, Light, or BLOB). It handles building the GUI and updating the property status and/or value as new data
  * arrive from INDI Serve. It also sends any changes in the property value back to INDI server via the ClientManager.
  *
  * @author Jasem Mutlaq
diff --git a/kstars/indi/indistd.h b/kstars/indi/indistd.h
index 139393f..79efd1f 100644
--- a/kstars/indi/indistd.h
+++ b/kstars/indi/indistd.h
@@ -45,7 +45,8 @@ public:
 };
 
 /**
- * @class GDInterface is the Generic Device <i>Interface</i> for INDI devices. It is used as part of the Decorater Pattern when initally a new INDI device is created as a
+ * @class GDInterface
+ *  GDInterface is the Generic Device <i>Interface</i> for INDI devices. It is used as part of the Decorater Pattern when initally a new INDI device is created as a
  * Generic Device in INDIListener. If the device registers an INDI Standard Property belonging to one specific device type (e.g. Telescope), then the device functionality
  * is extended to the particular device type.
  *
@@ -110,7 +111,8 @@ signals:
 };
 
 /**
- * @class GenericDevice is the Generic Device for INDI devices. When a new INDI device is created in INDIListener, it gets created as a GenericDevice initially. If the device
+ * @class GenericDevice
+ * GenericDevice is the Generic Device for INDI devices. When a new INDI device is created in INDIListener, it gets created as a GenericDevice initially. If the device
  * registers a standard property that is a key property to a device type family (e.g. Number property EQUATORIAL_EOD_COORD signifies a Telescope device), then the specialized version of
  * the device is exnteded via the Decorater Pattern.
  *
@@ -170,7 +172,8 @@ private:
 };
 
 /**
- * @class DeviceDecorator is the base decorater for all specialized devices. It extends the functionality of GenericDevice.
+ * @class DeviceDecorator
+ * DeviceDecorator is the base decorater for all specialized devices. It extends the functionality of GenericDevice.
  *
  * @author Jasem Mutlaq
  */
@@ -220,7 +223,8 @@ protected:
 };
 
 /**
- * @class ST4 is a special class that handles ST4 commands. Since ST4 functionalty can be part of a stand alone ST4 device,
+ * @class ST4
+ * ST4 is a special class that handles ST4 commands. Since ST4 functionalty can be part of a stand alone ST4 device,
  * or as part of a larger device as CCD or Telescope, it is handled separately to enable one ST4 device regardless of the parent device type.
  *
  *  ST4 is a hardware port dedicated to sending guiding correction pulses to the mount.
diff --git a/kstars/indi/inditelescope.h b/kstars/indi/inditelescope.h
index 9d31f20..cfac8d0 100644
--- a/kstars/indi/inditelescope.h
+++ b/kstars/indi/inditelescope.h
@@ -16,7 +16,8 @@ namespace ISD
 {
 
 /**
- * @class Telescope device handle controlling telescope. It can slew and sync to a specific sky point and supports all standard propreties with INDI
+ * @class Telescope
+ * device handle controlling telescope. It can slew and sync to a specific sky point and supports all standard propreties with INDI
  * telescope device.
  *
  * @author Jasem Mutlaq
diff --git a/kstars/indi/opsindi.h b/kstars/indi/opsindi.h
index f6afe21..b908974 100644
--- a/kstars/indi/opsindi.h
+++ b/kstars/indi/opsindi.h
@@ -15,6 +15,13 @@
 class KStars;
 class KConfigDialog;
 
+/**
+ * @class OpsINDI
+ *
+ * Enables the user to change several INDI options including default ports for common devices, time and location source, and options pertnaning to FITSViewer tool.
+ *
+ * @author Jasem Mutlaq
+ */
 class OpsINDI : public QFrame, public Ui::OpsINDI
 {
     Q_OBJECT
diff --git a/kstars/indi/servermanager.h b/kstars/indi/servermanager.h
index b596865..7d77c74 100644
--- a/kstars/indi/servermanager.h
+++ b/kstars/indi/servermanager.h
@@ -24,7 +24,8 @@ class DriverInfo;
 
 
 /**
- * @class ServerManager is responsible for starting and shutting local INDI servers.
+ * @class ServerManager
+ * ServerManager is responsible for starting and shutting local INDI servers.
  *
  * @author Jasem Mutlaq
  */
diff --git a/kstars/oal/execute.h b/kstars/oal/execute.h
index 92f0423..f9d4014 100644
--- a/kstars/oal/execute.h
+++ b/kstars/oal/execute.h
@@ -32,6 +32,11 @@
 
 class KStars;
 
+/**
+ * @class Execute
+ *
+ * Executes an observation session.
+ */
 class Execute : public QDialog {
 Q_OBJECT
     public:
diff --git a/kstars/oal/eyepiece.h b/kstars/oal/eyepiece.h
index 76e8f04..f20eb6c 100644
--- a/kstars/oal/eyepiece.h
+++ b/kstars/oal/eyepiece.h
@@ -22,6 +22,11 @@
 
 #include <QString>
 
+/**
+ * @class Eyepiece
+ *
+ * Information on user eye pieces
+ */
 class OAL::Eyepiece {
     public:
         Eyepiece( const QString& id, const QString& model, const QString& vendor, double fov, const QString& fovUnit, double focalLength ) { setEyepiece( id, model, vendor, fov, fovUnit, focalLength ); }
diff --git a/kstars/oal/filter.h b/kstars/oal/filter.h
index 9e2649a..daba2fe 100644
--- a/kstars/oal/filter.h
+++ b/kstars/oal/filter.h
@@ -22,6 +22,11 @@
 
 #include <QString>
 
+/**
+ * @class OAL::Filter
+ *
+ * Information of user filters
+ */
 class OAL::Filter {
     public:
         Filter( const QString& id, const QString& model, const QString& vendor, const QString& type, const QString& color ) { setFilter( id, model, vendor, type, color ); }
diff --git a/kstars/oal/lens.h b/kstars/oal/lens.h
index 1c486e5..f59d928 100644
--- a/kstars/oal/lens.h
+++ b/kstars/oal/lens.h
@@ -22,6 +22,11 @@
 
 #include <QString>
 
+/**
+ * @class OAL::Lens
+ *
+ * Information of lens utilized in the observation
+ */
 class OAL::Lens {
     public:
         Lens( const QString &id, const QString& model, const QString &vendor, double factor ) { setLens( id, model, vendor, factor ); }
diff --git a/kstars/oal/log.h b/kstars/oal/log.h
index 46fae22..a176807 100644
--- a/kstars/oal/log.h
+++ b/kstars/oal/log.h
@@ -38,6 +38,11 @@
 
 class KStars;
 
+/**
+ * @class Log
+ *
+ * Implementation of <a href="https://code.google.com/p/openastronomylog/">Open Astronomy Log</a> (OAL) XML specifications to record observation logs.
+ */
 class OAL::Log {
     public:
         QString writeLog( bool native = true );
diff --git a/kstars/oal/oal.h b/kstars/oal/oal.h
index 957a752..62700d1 100644
--- a/kstars/oal/oal.h
+++ b/kstars/oal/oal.h
@@ -23,7 +23,18 @@
 #include <QLocale>
 #include <kmessagebox.h>
 #include <KLocalizedString>
-namespace OAL {
+
+/**
+ * @namespace OAL
+ *
+ * Open Astronomy Log (OAL) is a free and open XML schema definition for all kinds of astronomical observations.
+ * KStars supports this schema and enables an observer to share observations with other observers or move observations among software products.
+ *
+ * The Schema was developed by the German "Fachgruppe für Computerastronomie" (section for computerastronomy) which is a subsection of Germany's largest
+ * astronomy union (VDS - Vereinigung der Sternfreunde e.V.)
+ */
+namespace OAL
+{
     class Log;
     class Observer;
     class Observation;
@@ -36,7 +47,8 @@ namespace OAL {
     class Session;
     class Target;
     class Lens;
-    inline int warningOverwrite( QString message ) {
+    inline int warningOverwrite( QString message )
+    {
         return KMessageBox::warningYesNo( 0, message, xi18n("Overwrite"), KGuiItem(xi18n("Overwrite")), KGuiItem(xi18n("Cancel")) );
     }
 }
diff --git a/kstars/oal/observation.h b/kstars/oal/observation.h
index 6dcf8a2..6b80e16 100644
--- a/kstars/oal/observation.h
+++ b/kstars/oal/observation.h
@@ -33,6 +33,11 @@
 
 using namespace OAL;
 
+/**
+ * @class OAL::Observation
+ *
+ * Information on observation session details.
+ */
 class OAL::Observation {
     public:
         Observation( QString id, QString observer, QString site, QString session, QString target, KStarsDateTime begin, double faintestStar, double seeing, QString scope, QString eyepiece, QString lens, QString filter,  QString result, QString lang ) {
diff --git a/kstars/oal/observer.h b/kstars/oal/observer.h
index ed664dc..a14189c 100644
--- a/kstars/oal/observer.h
+++ b/kstars/oal/observer.h
@@ -23,6 +23,12 @@
 #include <QString>
 
 /// FIXME: why not just use a QHash?
+
+/**
+ * @class OAL::Observer
+ *
+ * Information on user who created or contributed to the observation.
+ */
 class OAL::Observer {
     public:
        QString id() const { return m_Id; }
diff --git a/kstars/oal/observeradd.h b/kstars/oal/observeradd.h
index 085879d..d64ee18 100644
--- a/kstars/oal/observeradd.h
+++ b/kstars/oal/observeradd.h
@@ -26,6 +26,11 @@
 
 #include "kstars.h"
 
+/**
+ * @class ObserverAdd
+ *
+ * Dialog to add new observers.
+ */
 class ObserverAdd : public QDialog {
 Q_OBJECT
     public:
diff --git a/kstars/oal/scope.h b/kstars/oal/scope.h
index db0031e..a3a2d3c 100644
--- a/kstars/oal/scope.h
+++ b/kstars/oal/scope.h
@@ -22,6 +22,11 @@
 
 #include <QString>
 
+/**
+ * @class OAL::Scope
+ *
+ * Information on telescope used in observation
+ */
 class OAL::Scope {
     public:
         Scope( const QString& id, const QString& model, const QString& vendor, const QString& type, double focalLength, double aperture ) { setScope( id, model, vendor, type, focalLength, aperture ); }
diff --git a/kstars/oal/session.h b/kstars/oal/session.h
index 567f09b..510305a 100644
--- a/kstars/oal/session.h
+++ b/kstars/oal/session.h
@@ -23,6 +23,11 @@
 
 #include <QString>
 
+/**
+ * @class OAL::Session
+ *
+ * Information on session details.
+ */
 class OAL::Session {
     public:
        Session ( const QString &name, const QString& site, const KStarsDateTime& begin, const KStarsDateTime& end, const QString& weather, const QString& equipment, const QString& comment, const QString& lang ) { setSession( name, site, begin, end, weather, equipment, comment, lang ); }
diff --git a/kstars/oal/site.h b/kstars/oal/site.h
index 6db69c2..95749fd 100644
--- a/kstars/oal/site.h
+++ b/kstars/oal/site.h
@@ -24,6 +24,11 @@
 
 #include "geolocation.h"
 
+/**
+ * @class OAL::Site
+ *
+ * Information on site of observation.
+ */
 class OAL::Site {
     public:
        Site( const QString& id,  const QString& name, double lat, const QString& latUnit, double lon, const QString &lonUnit ) { setSite( id, name, lat, latUnit, lon, lonUnit ); }
diff --git a/kstars/options/opsguides.h b/kstars/options/opsguides.h
index d54f137..c1f1d20 100644
--- a/kstars/options/opsguides.h
+++ b/kstars/options/opsguides.h
@@ -21,6 +21,11 @@
 
 class KStars;
 
+/**
+ * @class OpsGuides
+ * The guide page enables to user to select to turn on and off guide overlays such as
+ * constellation lines, boundaries, flags..etc.
+ */
 class OpsGuides : public QFrame, public Ui::OpsGuides
 {
     Q_OBJECT
diff --git a/kstars/skycomponents/skycomponent.h b/kstars/skycomponents/skycomponent.h
index 9e425fa..8b31786 100644
--- a/kstars/skycomponents/skycomponent.h
+++ b/kstars/skycomponents/skycomponent.h
@@ -116,8 +116,7 @@ class SkyPainter;
   StarComponent and DeepStarComponent manage stars in
   KStars. StarComponent maintains a QVector of instances of
   DeepStarComponents and takes care of calling their draw routines
-  etc. The machinery for handling stars is documented in great detail in
-  \subpage Stars
+  etc. The machinery for handling stars is documented in great detail in \ref Stars
  *
  * @author Thomas Kabelmann
  */
diff --git a/kstars/skycomponents/stars.dox b/kstars/skycomponents/stars.dox
index 6b24b7c..4542ea9 100644
--- a/kstars/skycomponents/stars.dox
+++ b/kstars/skycomponents/stars.dox
@@ -1,7 +1,7 @@
 /*! \page Stars Stars
   \tableofcontents
   Design document for the implementation of star catalog support in KStars.
-  \section ClassInheritance Class Inheritance
+  \section StarsClassInheritance Class Inheritance
   + StarComponent - Manages all stars
       - struct starName - Holds a star's names (defined within StarComponent)
   + DeepStarComponent - Manages unnamed stars (instances managed by StarComponent)
diff --git a/kstars/skymap.h b/kstars/skymap.h
index 4d39e0d..b82b3c4 100644
--- a/kstars/skymap.h
+++ b/kstars/skymap.h
@@ -293,7 +293,7 @@ class SkyMap : public QGraphicsView {
     SkyPoint getCenterPoint();
 
 public slots:
-    /**Recalculates the positions of objects in the sky, and then repaints the sky map.
+    /** Recalculates the positions of objects in the sky, and then repaints the sky map.
      * If the positions don't need to be recalculated, use update() instead of forceUpdate().
      * This saves a lot of CPU time.
      * @param now if true, paintEvent() is run immediately.  Otherwise, it is added to the event queue
@@ -317,7 +317,7 @@ public slots:
     /** Toggle visibility of all infoboxes */
     void slotToggleInfoboxes(bool);
 
-    /**Step the Focus point toward the Destination point.  Do this iteratively, redrawing the Sky
+    /** Step the Focus point toward the Destination point.  Do this iteratively, redrawing the Sky
      * Map after each step, until the Focus point is within 1 step of the Destination point.
      * For the final step, snap directly to Destination, and redraw the map.
      */
@@ -358,12 +358,12 @@ public slots:
     /** @short Popup menu function: Show the Detailed Information window for ClickedObject. */
     void slotDetail();
 
-    /**Add ClickedObject to KStarsData::ObjLabelList, which stores pointers to SkyObjects which
+    /** Add ClickedObject to KStarsData::ObjLabelList, which stores pointers to SkyObjects which
      * have User Labels attached.
      */
     void slotAddObjectLabel();
 
-    /**Remove ClickedObject from KStarsData::ObjLabelList, which stores pointers to SkyObjects which
+    /** Remove ClickedObject from KStarsData::ObjLabelList, which stores pointers to SkyObjects which
      * have User Labels attached.
      */
     void slotRemoveObjectLabel();
@@ -383,29 +383,32 @@ public slots:
      */
     void slotRemovePlanetTrail();
 
-    /**Checks whether the timestep exceeds a threshold value.  If so, sets
+    /** Checks whether the timestep exceeds a threshold value.  If so, sets
      * ClockSlewing=true and sets the SimClock to ManualMode.
      */
     void slotClockSlewing();
 
-    // NOTE: This method is draw-backend independent.
-    /**Enables the angular distance measuring mode. It saves the first
+
+    /** Enables the angular distance measuring mode. It saves the first
      * position of the ruler in a SkyPoint. It makes difference between
-     * having clicked on the skymap and not having done so */
+     * having clicked on the skymap and not having done so
+     * \note This method is draw-backend independent.
+    */
     void slotBeginAngularDistance();
 
     void slotBeginStarHop(); // TODO: Add docs
 
-    // NOTE: This method is draw-backend independent.
-    /**Computes the angular distance, prints the result in the status
+    /** Computes the angular distance, prints the result in the status
      * bar and disables the angular distance measuring mode
      * If the user has clicked on the map the status bar shows the
      * name of the clicked object plus the angular distance. If
      * the user did not clicked on the map, just pressed ], only
-     * the angular distance is printed */
+     * the angular distance is printed
+     * \note This method is draw-backend independent.
+    */
     void slotEndRulerMode();
 
-    /**Disables the angular distance measuring mode. Nothing is printed
+    /** Disables the angular distance measuring mode. Nothing is printed
      * in the status bar */
     void slotCancelRulerMode();
 
@@ -428,10 +431,10 @@ public slots:
 #endif
 
 #ifdef HAVE_XPLANET
-    /**Run Xplanet to print a view on the screen*/
+    /** Run Xplanet to print a view on the screen*/
     void slotXplanetToScreen();
 
-    /**Run Xplanet to print a view in a file */
+    /** Run Xplanet to print a view in a file */
     void slotXplanetToFile();
 #endif
 
@@ -454,7 +457,7 @@ public slots:
     void slotCaptureFov();
 
 signals:
-    /**Emitted by setDestination(), and connected to slewFocus().  Whenever the Destination
+    /** Emitted by setDestination(), and connected to slewFocus().  Whenever the Destination
      * point is changed, slewFocus() will iteratively step the Focus toward Destination
      * until it is reached.
      * @see SkyMap::setDestination()
@@ -475,7 +478,7 @@ signals:
     void mousePointChanged(SkyPoint*);
 
 protected:
-    /**Process keystrokes:
+    /** Process keystrokes:
      * @li arrow keys  Slew the map
      * @li +/- keys  Zoom in and out
      * @li <i>Space</i>  Toggle between Horizontal and Equatorial coordinate systems
@@ -488,11 +491,11 @@ protected:
      */
     virtual void keyPressEvent( QKeyEvent *e );
 
-    /**When keyRelease is triggered, just set the "slewing" flag to false,
+    /** When keyRelease is triggered, just set the "slewing" flag to false,
      * and update the display (to draw objects that are hidden when slewing==true). */
     virtual void keyReleaseEvent( QKeyEvent *e );
 
-    /**Determine RA, Dec coordinates of clicked location.  Find the SkyObject
+    /** Determine RA, Dec coordinates of clicked location.  Find the SkyObject
      * which is nearest to the clicked location.
      *
      * If left-clicked: Set set mouseButtonDown==true, slewing==true; display
@@ -501,13 +504,13 @@ protected:
      */
     virtual void mousePressEvent( QMouseEvent *e );
 
-    /**set mouseButtonDown==false, slewing==false */
+    /** set mouseButtonDown==false, slewing==false */
     virtual void mouseReleaseEvent( QMouseEvent *e );
 
-    /**Center SkyMap at double-clicked location  */
+    /** Center SkyMap at double-clicked location  */
     virtual void mouseDoubleClickEvent( QMouseEvent *e );
 
-    /**This function does several different things depending on the state of the program:
+    /** This function does several different things depending on the state of the program:
      * @li If Angle-measurement mode is active, update the end-ruler point to the mouse cursor,
      *     and continue this function.
      * @li If we are defining a ZoomBox, update the ZoomBox rectangle, redraw the screen,
@@ -518,10 +521,10 @@ protected:
      */
     virtual void mouseMoveEvent( QMouseEvent *e );
 
-    /**Zoom in and out with the mouse wheel. */
+    /** Zoom in and out with the mouse wheel. */
     virtual void wheelEvent( QWheelEvent *e );
 
-    /**If the skymap will be resized, the sky must be new computed. So this
+    /** If the skymap will be resized, the sky must be new computed. So this
      * function calls explicitly new computing of the skymap.
      */
     virtual void resizeEvent( QResizeEvent * );
@@ -532,7 +535,7 @@ private slots:
      */
     void slotTransientLabel();
 
-    /**Set the shape of mouse cursor to a cross with 4 arrows. */
+    /** Set the shape of mouse cursor to a cross with 4 arrows. */
     void setMouseMoveCursor();
 
 private:
@@ -640,7 +643,6 @@ private:
     bool m_objPointingMode;
     bool m_fovCaptureMode;
 
-
     QWidget *m_SkyMapDraw; // Can be dynamic_cast<> to SkyMapDrawAbstract
 
     // NOTE: These are pointers to the individual widgets
diff --git a/kstars/tools/skycalendar.h b/kstars/tools/skycalendar.h
index 0fcda2c..d8d9a30 100644
--- a/kstars/tools/skycalendar.h
+++ b/kstars/tools/skycalendar.h
@@ -33,6 +33,8 @@ public:
 
 /**
  *@class SkyCalendar
+ *
+ * Draws Rise/Set/Transit curves for major solar system planets for any calender year.
  */
 class SkyCalendar : public QDialog
 {


More information about the Kstars-devel mailing list