summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasem Mutlaq <mutlaqja@ikarustech.com>2016-10-01 22:23:02 (GMT)
committerJasem Mutlaq <mutlaqja@ikarustech.com>2016-10-01 22:23:02 (GMT)
commite252eeac05980be37d841dd2c4bd65f64ae83ff0 (patch)
tree799b3044f763693424f6b401d98fca3e862ee313
parent29f66bff03d27e1a5b5ec958fa7cccf82ee7613c (diff)
parentbc1183697909df05033519b05a32e57ee3f1e01b (diff)
Syncing with master
-rw-r--r--Tests/CMakeLists.txt4
-rw-r--r--Tests/auxiliary/CMakeLists.txt4
-rw-r--r--Tests/auxiliary/testcachingdms.cpp304
-rw-r--r--Tests/auxiliary/testcachingdms.h64
-rw-r--r--Tests/auxiliary/testdms.cpp42
-rw-r--r--Tests/auxiliary/testdms.h1
-rw-r--r--Tests/skyobjects/CMakeLists.txt3
-rw-r--r--Tests/skyobjects/test_skypoint.cpp98
-rw-r--r--Tests/skyobjects/test_skypoint.h49
-rw-r--r--datahandlers/catalogdb.cpp13
-rw-r--r--datahandlers/catalogdb.h23
-rw-r--r--kstars/CMakeLists.txt1
-rw-r--r--kstars/auxiliary/cachingdms.cpp210
-rw-r--r--kstars/auxiliary/cachingdms.h251
-rw-r--r--kstars/auxiliary/dms.cpp57
-rw-r--r--kstars/auxiliary/dms.h182
-rw-r--r--kstars/auxiliary/geolocation.h8
-rw-r--r--kstars/auxiliary/imageviewer.cpp2
-rw-r--r--kstars/auxiliary/ksutils.cpp1
-rw-r--r--kstars/auxiliary/ksutils.h14
-rw-r--r--kstars/data/CMakeLists.txt2
-rw-r--r--kstars/data/icons/advanced.png (renamed from kstars/data/advanced.png)bin2440 -> 2440 bytes
-rw-r--r--kstars/data/icons/breeze/default/accessories-calculator.svg63
-rwxr-xr-xkstars/data/icons/breeze/default/application-exit.svg64
-rw-r--r--kstars/data/icons/breeze/default/applications-internet.svg28
-rwxr-xr-xkstars/data/icons/breeze/default/arrow-down.svg104
-rwxr-xr-xkstars/data/icons/breeze/default/arrow-left-double.svg69
-rwxr-xr-xkstars/data/icons/breeze/default/arrow-left.svg100
-rwxr-xr-xkstars/data/icons/breeze/default/arrow-right-double.svg69
-rwxr-xr-xkstars/data/icons/breeze/default/arrow-right.svg109
-rwxr-xr-xkstars/data/icons/breeze/default/arrow-up.svg98
-rw-r--r--kstars/data/icons/breeze/default/chronometer.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/clock.svg64
-rw-r--r--kstars/data/icons/breeze/default/computer.svg103
-rw-r--r--kstars/data/icons/breeze/default/crosshairs.svg14
-rw-r--r--kstars/data/icons/breeze/default/dialog-cancel.svg13
-rw-r--r--kstars/data/icons/breeze/default/dialog-ok-apply.svg13
-rw-r--r--kstars/data/icons/breeze/default/document-edit.svg14
-rwxr-xr-xkstars/data/icons/breeze/default/document-encrypt.svg64
-rw-r--r--kstars/data/icons/breeze/default/document-export.svg18
-rw-r--r--kstars/data/icons/breeze/default/document-new.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/document-open-folder.svg64
-rw-r--r--kstars/data/icons/breeze/default/document-open.svg13
-rw-r--r--kstars/data/icons/breeze/default/document-print.svg16
-rwxr-xr-xkstars/data/icons/breeze/default/document-properties.svg64
-rw-r--r--kstars/data/icons/breeze/default/document-save-as.svg18
-rw-r--r--kstars/data/icons/breeze/default/document-save.svg18
-rwxr-xr-xkstars/data/icons/breeze/default/download.svg83
-rw-r--r--kstars/data/icons/breeze/default/edit-clear.svg15
-rw-r--r--kstars/data/icons/breeze/default/edit-copy.svg15
-rw-r--r--kstars/data/icons/breeze/default/edit-delete.svg7
-rw-r--r--kstars/data/icons/breeze/default/edit-find.svg15
-rw-r--r--kstars/data/icons/breeze/default/edit-redo.svg13
-rw-r--r--kstars/data/icons/breeze/default/edit-undo.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/favorites.svg66
-rw-r--r--kstars/data/icons/breeze/default/go-down.svg13
-rw-r--r--kstars/data/icons/breeze/default/go-next.svg13
-rw-r--r--kstars/data/icons/breeze/default/go-previous.svg13
-rw-r--r--kstars/data/icons/breeze/default/go-up.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/help-hint.svg66
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_advanced.svg64
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_catalog.svg68
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_cbound.svg149
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_clines.svg220
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_cnames.svg193
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_colors.svg64
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_constellationart.svg65
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_deepsky.svg350
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_ekos.svg163
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_fitsviewer.svg149
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_flag.svg69
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_grid.svg251
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_guides.svg66
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_hgrid.svg267
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_horizon.svg227
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_indi.svg279
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_mw.svg149
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_planets.svg67
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_satellites.svg240
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_solarsystem.svg177
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_stars.svg68
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_supernovae.svg244
-rwxr-xr-xkstars/data/icons/breeze/default/kstars_xplanet.svg67
-rw-r--r--kstars/data/icons/breeze/default/list-add.svg13
-rw-r--r--kstars/data/icons/breeze/default/list-remove.svg14
-rw-r--r--kstars/data/icons/breeze/default/media-playback-pause.svg18
-rw-r--r--kstars/data/icons/breeze/default/media-playback-start.svg18
-rw-r--r--kstars/data/icons/breeze/default/media-playback-stop.svg18
-rw-r--r--kstars/data/icons/breeze/default/media-skip-backward.svg18
-rw-r--r--kstars/data/icons/breeze/default/media-skip-forward.svg18
-rwxr-xr-xkstars/data/icons/breeze/default/modem.svg70
-rw-r--r--kstars/data/icons/breeze/default/network-connect.svg13
-rw-r--r--kstars/data/icons/breeze/default/network-disconnect.svg21
-rwxr-xr-xkstars/data/icons/breeze/default/network-server.svg94
-rw-r--r--kstars/data/icons/breeze/default/object-flip-horizontal.svg13
-rw-r--r--kstars/data/icons/breeze/default/object-flip-vertical.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/object-locked.svg64
-rw-r--r--kstars/data/icons/breeze/default/object-rotate-left.svg13
-rw-r--r--kstars/data/icons/breeze/default/object-rotate-right.svg13
-rw-r--r--kstars/data/icons/breeze/default/process-stop.svg14
-rw-r--r--kstars/data/icons/breeze/default/run-build.svg13
-rw-r--r--kstars/data/icons/breeze/default/security-high.svg31
-rw-r--r--kstars/data/icons/breeze/default/security-low.svg25
-rw-r--r--kstars/data/icons/breeze/default/security-medium.svg31
-rw-r--r--kstars/data/icons/breeze/default/snap-orthogonal.svg13
-rw-r--r--kstars/data/icons/breeze/default/svn-update.svg13
-rw-r--r--kstars/data/icons/breeze/default/system-reboot.svg28
-rw-r--r--kstars/data/icons/breeze/default/system-run.svg37
-rw-r--r--kstars/data/icons/breeze/default/tools-wizard.svg13
-rw-r--r--kstars/data/icons/breeze/default/transform-move.svg13
-rw-r--r--kstars/data/icons/breeze/default/view-fullscreen.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/view-history.svg77
-rw-r--r--kstars/data/icons/breeze/default/view-preview.svg13
-rw-r--r--kstars/data/icons/breeze/default/view-refresh.svg13
-rw-r--r--kstars/data/icons/breeze/default/view-restore.svg13
-rw-r--r--kstars/data/icons/breeze/default/view-statistics.svg13
-rwxr-xr-xkstars/data/icons/breeze/default/window-close.svg66
-rwxr-xr-xkstars/data/icons/breeze/default/zoom-draw.svg72
-rw-r--r--kstars/data/icons/breeze/default/zoom-fit-best.svg13
-rw-r--r--kstars/data/icons/breeze/default/zoom-in.svg13
-rw-r--r--kstars/data/icons/breeze/default/zoom-original.svg13
-rw-r--r--kstars/data/icons/breeze/default/zoom-out.svg13
-rw-r--r--kstars/data/icons/breeze/index.theme8
-rw-r--r--kstars/data/icons/catalog.png (renamed from kstars/data/catalog.png)bin1700 -> 1700 bytes
-rw-r--r--kstars/data/icons/cbound.png (renamed from kstars/data/cbound.png)bin1757 -> 1757 bytes
-rw-r--r--kstars/data/icons/clines.png (renamed from kstars/data/clines.png)bin654 -> 654 bytes
-rw-r--r--kstars/data/icons/cnames.png (renamed from kstars/data/cnames.png)bin1075 -> 1075 bytes
-rw-r--r--kstars/data/icons/colors.png (renamed from kstars/data/colors.png)bin3587 -> 3587 bytes
-rw-r--r--kstars/data/icons/constellationart.png (renamed from kstars/data/constellationart.png)bin1836 -> 1836 bytes
-rw-r--r--kstars/data/icons/deepsky.png (renamed from kstars/data/deepsky.png)bin1319 -> 1319 bytes
-rw-r--r--kstars/data/icons/ekos.png (renamed from kstars/data/ekos.png)bin6488 -> 6488 bytes
-rw-r--r--kstars/data/icons/ekos_align.png (renamed from kstars/data/ekos_align.png)bin4098 -> 4098 bytes
-rw-r--r--kstars/data/icons/ekos_ccd.png (renamed from kstars/data/ekos_ccd.png)bin2741 -> 2741 bytes
-rw-r--r--kstars/data/icons/ekos_focus.png (renamed from kstars/data/ekos_focus.png)bin2897 -> 2897 bytes
-rw-r--r--kstars/data/icons/ekos_guide.png (renamed from kstars/data/ekos_guide.png)bin3139 -> 3139 bytes
-rw-r--r--kstars/data/icons/ekos_mount.png (renamed from kstars/data/ekos_mount.png)bin2072 -> 2072 bytes
-rw-r--r--kstars/data/icons/ekos_scheduler.png (renamed from kstars/data/ekos_scheduler.png)bin1697 -> 1697 bytes
-rw-r--r--kstars/data/icons/ekos_setup.png (renamed from kstars/data/ekos_setup.png)bin2900 -> 2900 bytes
-rw-r--r--kstars/data/icons/fitsviewer.png (renamed from kstars/data/fitsviewer.png)bin1980 -> 1980 bytes
-rw-r--r--kstars/data/icons/flag.png (renamed from kstars/data/flag.png)bin813 -> 813 bytes
-rw-r--r--kstars/data/icons/fov.png (renamed from kstars/data/fov.png)bin2313 -> 2313 bytes
-rw-r--r--kstars/data/icons/glstarbase.png (renamed from kstars/data/glstarbase.png)bin658 -> 658 bytes
-rw-r--r--kstars/data/icons/go-ne.png (renamed from kstars/data/go-ne.png)bin2062 -> 2062 bytes
-rw-r--r--kstars/data/icons/go-nw.png (renamed from kstars/data/go-nw.png)bin2045 -> 2045 bytes
-rw-r--r--kstars/data/icons/go-se.png (renamed from kstars/data/go-se.png)bin2027 -> 2027 bytes
-rw-r--r--kstars/data/icons/go-sw.png (renamed from kstars/data/go-sw.png)bin2055 -> 2055 bytes
-rw-r--r--kstars/data/icons/grid.png (renamed from kstars/data/grid.png)bin2025 -> 2025 bytes
-rw-r--r--kstars/data/icons/guides.png (renamed from kstars/data/guides.png)bin821 -> 821 bytes
-rw-r--r--kstars/data/icons/hgrid.png (renamed from kstars/data/hgrid.png)bin2611 -> 2611 bytes
-rw-r--r--kstars/data/icons/histogram.png (renamed from kstars/data/histogram.png)bin697 -> 697 bytes
-rw-r--r--kstars/data/icons/horizon.png (renamed from kstars/data/horizon.png)bin493 -> 493 bytes
-rw-r--r--kstars/data/icons/indi.png (renamed from kstars/data/indi.png)bin3211 -> 3211 bytes
-rw-r--r--kstars/data/icons/mw.png (renamed from kstars/data/mw.png)bin932 -> 932 bytes
-rw-r--r--kstars/data/icons/planets.png (renamed from kstars/data/planets.png)bin2544 -> 2544 bytes
-rw-r--r--kstars/data/icons/satellites.png (renamed from kstars/data/satellites.png)bin2887 -> 2887 bytes
-rw-r--r--kstars/data/icons/solarsystem.png (renamed from kstars/data/solarsystem.png)bin3382 -> 3382 bytes
-rw-r--r--kstars/data/icons/stars.png (renamed from kstars/data/stars.png)bin1026 -> 1026 bytes
-rw-r--r--kstars/data/icons/supernovae.png (renamed from kstars/data/supernovae.png)bin4062 -> 4062 bytes
-rw-r--r--kstars/data/icons/xplanet.png (renamed from kstars/data/xplanet.png)bin3014 -> 3014 bytes
-rw-r--r--kstars/data/kstars.qrc166
-rw-r--r--kstars/dialogs/detaildialog.h2
-rw-r--r--kstars/dialogs/finddialog.cpp1
-rw-r--r--kstars/dialogs/finddialog.h2
-rw-r--r--kstars/dialogs/focusdialog.cpp30
-rw-r--r--kstars/dialogs/focusdialog.h17
-rw-r--r--kstars/dialogs/locationdialog.cpp6
-rw-r--r--kstars/ekos/align/align.cpp4
-rw-r--r--kstars/ekos/capture/capture.cpp38
-rw-r--r--kstars/ekos/ekosmanager.cpp6
-rw-r--r--kstars/ekos/mount/mount.cpp40
-rw-r--r--kstars/ekos/opsekos.cpp27
-rw-r--r--kstars/ekos/opsekos.h2
-rw-r--r--kstars/ekos/scheduler/mosaic.cpp2
-rw-r--r--kstars/ekos/scheduler/scheduler.cpp69
-rw-r--r--kstars/fitsviewer/fitsviewer.cpp63
-rw-r--r--kstars/indi/drivermanager.cpp12
-rw-r--r--kstars/indi/guimanager.cpp2
-rw-r--r--kstars/indi/indiproperty.cpp2
-rw-r--r--kstars/indi/indistd.cpp15
-rw-r--r--kstars/indi/opsindi.cpp4
-rw-r--r--kstars/indi/streamwg.cpp6
-rw-r--r--kstars/ksalmanac.cpp6
-rw-r--r--kstars/ksnumbers.cpp84
-rw-r--r--kstars/ksnumbers.h59
-rw-r--r--kstars/kstars.cpp19
-rw-r--r--kstars/kstarsactions.cpp39
-rw-r--r--kstars/kstarsdata.h4
-rw-r--r--kstars/kstarsdbus.cpp4
-rw-r--r--kstars/kstarsinit.cpp78
-rw-r--r--kstars/main.cpp4
-rw-r--r--kstars/oal/execute.cpp1
-rw-r--r--kstars/oal/log.cpp9
-rw-r--r--kstars/oal/observeradd.cpp4
-rw-r--r--kstars/projections/lambertprojector.h1
-rw-r--r--kstars/skycomponents/catalogcomponent.cpp3
-rw-r--r--kstars/skycomponents/catalogcomponent.h1
-rw-r--r--kstars/skycomponents/deepstarcomponent.cpp57
-rw-r--r--kstars/skycomponents/syncedcatalogcomponent.cpp3
-rw-r--r--kstars/skycomponents/syncedcatalogcomponent.h3
-rw-r--r--kstars/skymap.cpp2
-rw-r--r--kstars/skyobjects/ksplanetbase.cpp12
-rw-r--r--kstars/skyobjects/ksplanetbase.h10
-rw-r--r--kstars/skyobjects/skyobject.cpp2
-rw-r--r--kstars/skyobjects/skypoint.cpp176
-rw-r--r--kstars/skyobjects/skypoint.h60
-rw-r--r--kstars/skyobjects/starobject.cpp157
-rw-r--r--kstars/skyobjects/starobject.h14
-rw-r--r--kstars/time/kstarsdatetime.cpp86
-rw-r--r--kstars/time/kstarsdatetime.h55
-rw-r--r--kstars/tools/adddeepskyobject.cpp1
-rw-r--r--kstars/tools/altvstime.cpp16
-rw-r--r--kstars/tools/conjunctions.cpp2
-rw-r--r--kstars/tools/horizonmanager.cpp30
-rw-r--r--kstars/tools/ksconjunct.cpp22
-rw-r--r--kstars/tools/modcalcangdist.cpp1
-rw-r--r--kstars/tools/modcalcapcoord.cpp1
-rw-r--r--kstars/tools/modcalcgalcoord.cpp1
-rw-r--r--kstars/tools/modcalcplanets.cpp24
-rw-r--r--kstars/tools/observinglist.cpp213
-rw-r--r--kstars/tools/observinglist.h14
-rw-r--r--kstars/tools/planetviewer.cpp12
-rw-r--r--kstars/tools/scriptbuilder.cpp20
-rw-r--r--kstars/tools/skycalendar.cpp2
-rw-r--r--kstars/tools/wutdialog.cpp8
224 files changed, 8661 insertions, 737 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index b6a5143..9c6aeeb 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -10,7 +10,7 @@ include_directories(
FIND_PACKAGE(Qt5Test REQUIRED)
-SET( TEST_LIBRARIES
+SET( TEST_LIBRARIES
Qt5::Core
Qt5::Test
LibKSDataHandlers
@@ -20,4 +20,4 @@ SET( TEST_LIBRARIES
)
add_subdirectory(auxiliary)
-
+add_subdirectory(skyobjects)
diff --git a/Tests/auxiliary/CMakeLists.txt b/Tests/auxiliary/CMakeLists.txt
index 44a6ce5..c6f4c12 100644
--- a/Tests/auxiliary/CMakeLists.txt
+++ b/Tests/auxiliary/CMakeLists.txt
@@ -11,3 +11,7 @@ ADD_TEST( NAME FixedWidthParserTest COMMAND testfwparser )
ADD_EXECUTABLE( testdms testdms.cpp )
TARGET_LINK_LIBRARIES( testdms ${TEST_LIBRARIES})
ADD_TEST( NAME DMSTest COMMAND testdms )
+
+ADD_EXECUTABLE( testcachingdms testcachingdms.cpp )
+TARGET_LINK_LIBRARIES( testcachingdms ${TEST_LIBRARIES})
+ADD_TEST( NAME TestCachingDms COMMAND testcachingdms )
diff --git a/Tests/auxiliary/testcachingdms.cpp b/Tests/auxiliary/testcachingdms.cpp
new file mode 100644
index 0000000..35d2174
--- /dev/null
+++ b/Tests/auxiliary/testcachingdms.cpp
@@ -0,0 +1,304 @@
+/***************************************************************************
+ testcachingdms.cpp -
+ -------------------
+ begin : Sun 25 Sep 2016 03:56:05 CDT
+ copyright : (c) 2016 by Akarsh Simha
+ email : akarsh.simha@kdemail.net
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program 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. *
+ * *
+ ***************************************************************************/
+
+
+/* Project Includes */
+#include "testcachingdms.h"
+#include "nan.h"
+
+/* KDE Includes */
+
+/* Qt Includes */
+
+/* STL Includes */
+#include <ctime>
+#include <cstdlib>
+#include <cstdint>
+
+TestCachingDms::TestCachingDms(): QObject()
+{
+}
+
+TestCachingDms::~TestCachingDms()
+{
+}
+
+void TestCachingDms::defaultCtor()
+{
+ /*
+ * Test 1: Check Default Constructor
+ */
+
+ // Check default empty constructor
+ CachingDms d;
+ QVERIFY(std::isnan(d.Degrees()));
+ QVERIFY( std::isnan( d.sin() ) );
+ QVERIFY( std::isnan( d.cos() ) );
+}
+
+void TestCachingDms::explicitSexigesimalCtor()
+{
+ /*
+ * Test 2: Checks Sexigesimal Ctor
+ */
+
+ // DD:MM:SS
+ // 14:55:20
+
+ CachingDms d(14, 55, 20);
+
+ QVERIFY(d.degree() == 14);
+ QVERIFY(d.arcmin() == 55);
+ QVERIFY(d.arcsec() == 20);
+ QVERIFY(d.Degrees() == (14.0+55.0/60.0+20.0/3600.0));
+ QVERIFY( fabs( d.sin() - .25750758368074941632 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - .96627627744186177805 ) < 1e-9 );
+}
+
+void TestCachingDms::angleCtor()
+{
+ /*
+ * Test 3: Checks Angle Ctor
+ */
+
+ // Angle = -112.56 Degrees ---> HMS (16:29:45)
+
+ double angle = -112.56;
+
+ CachingDms d(angle);
+
+ QVERIFY(d.degree() == (int) angle);
+
+ QVERIFY(d.Hours() == (angle+360)/15.0);
+ QVERIFY(d.hour() == 16);
+ QVERIFY(d.minute() == 29);
+ QVERIFY(d.second() == 45);
+ QVERIFY( fabs( d.sin() + 0.92347828085768229015 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() + 0.38365070674265630377 ) < 1e-9 );
+}
+
+void TestCachingDms::stringCtor()
+{
+ QString hms("14:55:20");
+
+ // From Degree
+ CachingDms d(hms);
+
+ QVERIFY(d.degree() == 14);
+ QVERIFY(d.arcmin() == 55);
+ QVERIFY(d.arcsec() == 20);
+ QVERIFY(d.Degrees() == (14.0+55.0/60.0+20.0/3600.0));
+ QVERIFY( fabs( d.sin() - .25750758368074941632 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - .96627627744186177805 ) < 1e-9 );
+
+ // From Hours
+ CachingDms h(hms, false);
+ QVERIFY(h.Degrees() == d.Degrees()*15.0);
+ QVERIFY(h.Hours() == d.Degrees());
+}
+
+
+void TestCachingDms::setUsing_asin() {
+ // Test case in first quadrant: 56.3 degrees
+ CachingDms d;
+ d.setUsing_asin( .83195412213048254606 );
+ QVERIFY( fabs( d.Degrees() - 56.3 ) < 1e-7 );
+ QVERIFY( fabs( d.cos() - .55484442744799927555 ) < 1e-9 );
+
+ // Test case in fourth quadrant: -56.3 degrees
+ d.setUsing_asin( -.83195412213048254606 );
+ QVERIFY( fabs( d.Degrees() + 56.3 ) < 1e-7 );
+ QVERIFY( fabs( d.cos() - .55484442744799927555 ) < 1e-9 );
+}
+
+
+void TestCachingDms::setUsing_acos() {
+ CachingDms d;
+
+ // Test case in first quadrant: 56.3 degrees
+ d.setUsing_acos( .55484442744799927555 );
+ QVERIFY( fabs( d.Degrees() - 56.3 ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - .83195412213048254606 ) < 1e-9 );
+
+ // Test case in second quadrant: 123.7 degrees
+ d.setUsing_acos( -0.55484442744799927555 );
+ QVERIFY( fabs( d.Degrees() - 123.7 ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - .83195412213048254606 ) < 1e-9 );
+
+}
+
+void TestCachingDms::setUsing_atan2() {
+ // Test case in first quadrant: 56.3 degrees
+ CachingDms d;
+ d.setUsing_atan2( 2.73701935509448143467, 1.82536500102022632674 );
+ QVERIFY( fabs( d.Degrees() - 56.3 ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - .83195412213048254606 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - .55484442744799927555 ) < 1e-9 );
+
+ // Test case in third quadrant: -123.7 degrees
+ d.setUsing_atan2( -2.73701935509448143467, -1.82536500102022632674 );
+ QVERIFY( fabs( d.Degrees() + 123.7 ) < 1e-7 );
+ QVERIFY( fabs( d.sin() + .83195412213048254606 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() + .55484442744799927555 ) < 1e-9 );
+
+ // Test case in second quadrant: 123.7 degrees
+ d.setUsing_atan2( 2.73701935509448143467, -1.82536500102022632674 );
+ QVERIFY( fabs( d.Degrees() - 123.7 ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - .83195412213048254606 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() + .55484442744799927555 ) < 1e-9 );
+
+ // Test case in fourth quadrant: -56.3 degrees
+ d.setUsing_atan2( -2.73701935509448143467, +1.82536500102022632674 );
+ QVERIFY( fabs( d.Degrees() + 56.3 ) < 1e-7 );
+ QVERIFY( fabs( d.sin() + .83195412213048254606 ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - .55484442744799927555 ) < 1e-9 );
+
+ // Edge case test: angle = 0
+ d.setUsing_atan2( 0., 1.33 );
+ QVERIFY( fabs( d.Degrees() - 0. ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - 0. ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - 1. ) < 1e-9 );
+
+ // Edge case test: angle = 90 degrees
+ d.setUsing_atan2( 10.12, 0. );
+ QVERIFY( fabs( d.Degrees() - 90. ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - 1. ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - 0. ) < 1e-9 );
+
+ // Edge case test: angle = -90 degrees
+ d.setUsing_atan2( -3.1415, 0. );
+ QVERIFY( fabs( d.Degrees() + 90. ) < 1e-7 );
+ QVERIFY( fabs( d.sin() + 1. ) < 1e-9 );
+ QVERIFY( fabs( d.cos() - 0. ) < 1e-9 );
+
+ // Edge case test: angle = 180 degrees
+ d.setUsing_atan2( 0., -724. );
+ QVERIFY( fabs( d.Degrees() - 180. ) < 1e-7 );
+ QVERIFY( fabs( d.sin() - 0. ) < 1e-9 );
+ QVERIFY( fabs( d.cos() + 1. ) < 1e-9 );
+}
+
+
+void TestCachingDms::unaryMinusOperator() {
+ CachingDms d( 56.3 );
+ qDebug() << ( -d ).Degrees();
+ QVERIFY( ( -d ).Degrees() == -56.3 );
+ QVERIFY( ( -d ).cos() == d.cos() );
+ QVERIFY( ( -d ).sin() == -d.sin() );
+}
+
+
+void TestCachingDms::additionOperator() {
+ const double a = 123.7;
+ const double b = 89.5;
+ CachingDms d1( a );
+ CachingDms d2( b );
+ CachingDms ds = d1 + d2;
+ const double sinapb = std::sin( ( a + b ) * dms::DegToRad );
+ const double cosapb = std::cos( ( a + b ) * dms::DegToRad );
+ QVERIFY( fabs( ds.sin() - sinapb ) < 1e-9 );
+ QVERIFY( fabs( ds.cos() - cosapb ) < 1e-9 );
+
+ const double c = -34.7;
+ const double d = 233.6;
+ CachingDms d3( c );
+ CachingDms d4( d );
+ CachingDms ds2 = d3 + d4;
+ const double sincpd = std::sin( ( c + d ) * dms::DegToRad );
+ const double coscpd = std::cos( ( c + d ) * dms::DegToRad );
+ QVERIFY( fabs( ds2.sin() - sincpd ) < 1e-9 );
+ QVERIFY( fabs( ds2.cos() - coscpd ) < 1e-9 );
+}
+
+
+void TestCachingDms::subtractionOperator() {
+ const double a = 123.7;
+ const double b = 89.5;
+ CachingDms d1( a );
+ CachingDms d2( b );
+ CachingDms ds = d1 - d2;
+ const double sinamb = std::sin( ( a - b ) * dms::DegToRad );
+ const double cosamb = std::cos( ( a - b ) * dms::DegToRad );
+ QVERIFY( fabs( ds.sin() - sinamb ) < 1e-9 );
+ QVERIFY( fabs( ds.cos() - cosamb ) < 1e-9 );
+
+ const double c = -34.7;
+ const double d = 233.6;
+ CachingDms d3( c );
+ CachingDms d4( d );
+ CachingDms ds2 = d3 - d4;
+ const double sincmd = std::sin( ( c - d ) * dms::DegToRad );
+ const double coscmd = std::cos( ( c - d ) * dms::DegToRad );
+ QVERIFY( fabs( ds2.sin() - sincmd ) < 1e-9 );
+ QVERIFY( fabs( ds2.cos() - coscmd ) < 1e-9 );
+}
+
+
+void TestCachingDms::testFailsafeUseOfBaseClassPtr() {
+ typedef union angle { double x; int64_t y; } angle;
+ const int testCases = 5000;
+ std::srand( std::time( 0 ) );
+ for ( int k = 0; k < testCases; ++k ) {
+ angle a; CachingDms _a; dms __a;
+ a.y = std::rand();
+ _a.setD( a.x );
+ __a.setD( a.x );
+ dms *d;
+ if ( rand()%10 > 5 )
+ d = &_a;
+ else
+ d = &__a;
+ angle b;
+ b.y = std::rand();
+ switch( rand()%7 ) {
+ case 0:
+ d->setD( b.x );
+ break;
+ case 1:
+ d->setH( b.x / 15. );
+ break;
+ case 2: {
+ dms x( b.x );
+ d->setD( x.degree(), x.arcmin(), x.arcsec(), x.marcsec() );
+ break;
+ }
+ case 3: {
+ dms x( b.x );
+ d->setFromString( x.toDMSString() );
+ break;
+ }
+ case 4: {
+ dms x( b.x );
+ d->setFromString( x.toHMSString(), false );
+ break;
+ }
+ case 5: {
+ dms x( b.x );
+ dms y( 0.0 );
+ *d = x + y;
+ }
+ case 6:
+ default:
+ d->setRadians( b.x * dms::DegToRad );
+ break;
+ }
+ QVERIFY( fabs( d->sin() - sin( b.x * dms::DegToRad ) ) < 1e-12 );
+ QVERIFY( fabs( d->cos() - cos( b.x * dms::DegToRad ) ) < 1e-12 );
+ }
+}
+
+QTEST_GUILESS_MAIN(TestCachingDms)
diff --git a/Tests/auxiliary/testcachingdms.h b/Tests/auxiliary/testcachingdms.h
new file mode 100644
index 0000000..9bc144f
--- /dev/null
+++ b/Tests/auxiliary/testcachingdms.h
@@ -0,0 +1,64 @@
+/***************************************************************************
+ testcachingdms.h -
+ -------------------
+ begin : Sun 25 Sep 2016 03:56:35 CDT
+ copyright : (c) 2016 by Akarsh Simha
+ email : akarsh.simha@kdemail.net
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program 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 TESTCACHINGDMS_H
+#define TESTCACHINGDMS_H
+
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#include "auxiliary/cachingdms.h"
+
+/**
+ * @class TestCachingDms
+ * @short Tests for CachingDms
+ * @author Akarsh Simha <akarsh.simha@kdemail.net>
+ */
+
+class TestCachingDms : public QObject {
+
+ Q_OBJECT
+
+public:
+
+ /**
+ * @short Constructor
+ */
+ TestCachingDms();
+
+ /**
+ * @short Destructor
+ */
+ ~TestCachingDms();
+
+private slots:
+ void defaultCtor();
+ void explicitSexigesimalCtor();
+ void angleCtor();
+ void stringCtor();
+ void setUsing_atan2();
+ void setUsing_asin();
+ void setUsing_acos();
+ void additionOperator();
+ void subtractionOperator();
+ void unaryMinusOperator();
+ void testFailsafeUseOfBaseClassPtr();
+};
+
+#endif
diff --git a/Tests/auxiliary/testdms.cpp b/Tests/auxiliary/testdms.cpp
index 1dcf945..a5f5363 100644
--- a/Tests/auxiliary/testdms.cpp
+++ b/Tests/auxiliary/testdms.cpp
@@ -85,6 +85,46 @@ void TestDMS::stringCtor()
QVERIFY(h.Hours() == d.Degrees());
}
-QTEST_GUILESS_MAIN(TestDMS)
+void TestDMS::testReduceToRange() {
+ double base = 67.8;
+ double a = 360.0 * 11. + base;
+ double b = -360.0 * 12. + base;
+
+ dms d;
+ d.setD( a );
+ d.reduceToRange( dms::ZERO_TO_2PI );
+ QVERIFY( fabs( d.Degrees() - base ) < 1e-9 );
+
+ d.setD( b );
+ d.reduceToRange( dms::ZERO_TO_2PI );
+ QVERIFY( fabs( d.Degrees() - base ) < 1e-9 );
+
+ d.setD( 360.0 );
+ d.reduceToRange( dms::ZERO_TO_2PI );
+ QVERIFY( fabs( d.Degrees() - 0. ) < 1e-9 );
+
+ double c = 180.0 * 13. + base;
+ double e = 180.0 * 14. + base;
+ double f = -180.0 * 15. + base;
+ double g = -180.0 * 16. + base;
+
+ d.setD( c );
+ d.reduceToRange( dms::MINUSPI_TO_PI );
+ QVERIFY( fabs( d.Degrees() - ( base - 180.0 ) ) < 1e-9 );
+ d.setD( e );
+ d.reduceToRange( dms::MINUSPI_TO_PI );
+ QVERIFY( fabs( d.Degrees() - base ) < 1e-9 );
+
+ d.setD( f );
+ d.reduceToRange( dms::MINUSPI_TO_PI );
+ QVERIFY( fabs( d.Degrees() - ( base - 180.0 ) ) < 1e-9 );
+
+ d.setD( g );
+ d.reduceToRange( dms::MINUSPI_TO_PI );
+ QVERIFY( fabs( d.Degrees() - base ) < 1e-9 );
+
+}
+
+QTEST_GUILESS_MAIN(TestDMS)
diff --git a/Tests/auxiliary/testdms.h b/Tests/auxiliary/testdms.h
index 8e7a377..9496fe5 100644
--- a/Tests/auxiliary/testdms.h
+++ b/Tests/auxiliary/testdms.h
@@ -31,6 +31,7 @@ class TestDMS: public QObject
void explicitSexigesimalCtor();
void angleCtor();
void stringCtor();
+ void testReduceToRange();
};
diff --git a/Tests/skyobjects/CMakeLists.txt b/Tests/skyobjects/CMakeLists.txt
new file mode 100644
index 0000000..20a9c6d
--- /dev/null
+++ b/Tests/skyobjects/CMakeLists.txt
@@ -0,0 +1,3 @@
+ADD_EXECUTABLE( test_skypoint test_skypoint.cpp )
+TARGET_LINK_LIBRARIES( test_skypoint ${TEST_LIBRARIES})
+ADD_TEST( NAME TestSkyPoint COMMAND test_skypoint )
diff --git a/Tests/skyobjects/test_skypoint.cpp b/Tests/skyobjects/test_skypoint.cpp
new file mode 100644
index 0000000..648538c
--- /dev/null
+++ b/Tests/skyobjects/test_skypoint.cpp
@@ -0,0 +1,98 @@
+/***************************************************************************
+ test_skypoint.cpp - KStars Planetarium
+ -------------------
+ begin : Tue 27 Sep 2016 20:54:28 CDT
+ copyright : (c) 2016 by Akarsh Simha
+ email : akarsh.simha@kdemail.net
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program 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. *
+ * *
+ ***************************************************************************/
+
+
+/* Project Includes */
+#include "test_skypoint.h"
+#include "ksnumbers.h"
+#include "time/kstarsdatetime.h"
+#include "auxiliary/dms.h"
+
+
+void TestSkyPoint::testPrecession() {
+ /*
+ * NOTE: These test cases were picked randomly and generated using
+ * https://ned.ipac.caltech.edu/forms/calculator.html
+ */
+
+ auto verify = []( const SkyPoint &p, const double targetRA, const double targetDec, const double tolerance ) {
+ qDebug() << p.ra().toHMSString() << " " << p.dec().toDMSString();
+ QVERIFY( fabs( p.ra().Degrees() - targetRA ) < tolerance * 15. );
+ QVERIFY( fabs( p.dec().Degrees() - targetDec ) < tolerance );
+ };
+
+ /* Precession of equinoxes within FK5 system */
+
+ // Check precession from J2000.0 to J1992.5
+
+ // NOTE: (FIXME?) I set 1950.0 as the observation epoch in the
+ // calculator. Changing it to 1992.5 made no difference; probably
+ // required only for FK5 to FK4 conversion. The help is not
+ // extremely clear on this. -- asimha
+
+ constexpr double arcsecPrecision = 3.e-4;
+
+ long double jd = KStarsDateTime::epochToJd( 1992.5, KStarsDateTime::JULIAN );
+ KSNumbers num( jd );
+ SkyPoint p( dms( "18:22:54", false ), dms( "34:23:19", true ) ); // J2000.0 coordinates
+ p.precess( &num );
+ verify( p, 275.65734620, 34.38447020, arcsecPrecision );
+
+ // Check precession from J2000.0 to J2016.8
+ jd = KStarsDateTime::epochToJd( 2016.8 );
+ num.updateValues( jd );
+ p.set( dms( "23:24:25", false ), dms( "-08:07:06", true ) );
+ p.precess( &num );
+ verify( p, 351.32145112, ( -8.02590004 ) , arcsecPrecision );
+
+ // Check precession from J2000.0 to J2109.8
+ jd = KStarsDateTime::epochToJd( 2109.8 );
+ num.updateValues( jd );
+ p.precess( &num );
+ verify( p, 352.52338626, ( -7.51340424 ) , arcsecPrecision );
+
+ /* Precession of equinoxes + conversion from FK4 to FK5 */
+
+ // Conversion from B1950.0 to J2000.0
+ p.set( dms( "11:22:33", false ), dms( "44:55:66", true ) ); // Sets all of RA0,Dec0,RA,Dec
+ p.B1950ToJ2000(); // Assumes (RA, Dec) are referenced to FK4 @ B1950 and stores the FK5 @ J2000 result in (RA, Dec)
+ verify( p, 171.32145647, 44.66010982, arcsecPrecision );
+
+ // Conversion from B1950.0 to J2016.8
+ // Current of B1950ToJ2000 is to NOT alter (RA0,Dec0), so we shouldn't have to reset it
+ jd = KStarsDateTime::epochToJd( 2016.8 );
+ p.precessFromAnyEpoch( B1950, jd ); // Takes (RA0, Dec0) and precesses to (RA, Dec) applying FK4 <--> FK5 conversions as necessary
+ verify( p, 171.55045618, 44.56762158, arcsecPrecision );
+
+ /* Precession of equinoxes + conversion from FK5 to FK4 */
+ p.set( dms( "11:22:33", false ), dms( "44:55:66", true ) ); // Sets all of RA0,Dec0,RA,Dec
+ p.J2000ToB1950(); // Assumes (RA, Dec) are referenced to FK5 @ J2000 and stores the FK4 @ B1950 result in (RA, Dec)
+ // NOTE: I set observation epoch = 2000.0 in NED's calculator. This time, it made a difference whether I set 2000.0 or 1950.0, but the difference was very small.
+ verify( p,169.94978888, 45.20928652, arcsecPrecision );
+
+ // Conversion from J2016.8 to B1950.0
+ // Current behavior of J2000ToB1950 is to NOT alter (RA0,Dec0), so we shouldn't have to reset it
+ jd = KStarsDateTime::epochToJd( 2016.8 );
+ p.precessFromAnyEpoch( jd, B1950 ); // Takes (RA0, Dec0) and precesses to (RA, Dec) applying FK4 <--> FK5 conversions as necessary
+ // NOTE: I set observation epoch = 2016.8 in NED's calculator. It made a difference whether I set 2000.0 or 2016.8, but the difference was very small.
+ verify( p, 169.71785991, 45.30132855, arcsecPrecision );
+
+
+
+}
+
+QTEST_GUILESS_MAIN( TestSkyPoint )
diff --git a/Tests/skyobjects/test_skypoint.h b/Tests/skyobjects/test_skypoint.h
new file mode 100644
index 0000000..8f522be
--- /dev/null
+++ b/Tests/skyobjects/test_skypoint.h
@@ -0,0 +1,49 @@
+/***************************************************************************
+ test_skypoint.h - KStars Planetarium
+ -------------------
+ begin : Tue 27 Sep 2016 20:51:21 CDT
+ copyright : (c) 2016 by Akarsh Simha
+ email : akarsh.simha@kdemail.net
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program 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 TEST_SKYPOINT_H
+#define TEST_SKYPOINT_H
+
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#define UNIT_TEST
+
+#include "skyobjects/skypoint.h"
+
+/**
+ * @class TestSkyPoint
+ * @short Tests for some SkyPoint operations
+ * @author Akarsh Simha <akarsh.simha@kdemail.net>
+ */
+
+class TestSkyPoint : public QObject {
+
+ Q_OBJECT
+
+public:
+
+ TestSkyPoint() : QObject() {};
+ ~TestSkyPoint() {};
+
+private slots:
+ void testPrecession();
+};
+
+#endif
diff --git a/datahandlers/catalogdb.cpp b/datahandlers/catalogdb.cpp
index aee0d67..600efc7 100644
--- a/datahandlers/catalogdb.cpp
+++ b/datahandlers/catalogdb.cpp
@@ -16,9 +16,20 @@
***************************************************************************/
#include "catalogdb.h"
+#include "catalogdata.h"
+#include "catalogentrydata.h"
#include "kstars/version.h"
#include "../kstars/auxiliary/kspaths.h"
-
+#include "starobject.h"
+#include "deepskyobject.h"
+#include "skycomponent.h"
+#include "skyobject.h"
+
+#include <QVariant>
+#include <QHash>
+#include <QSqlTableModel>
+#include <QSqlRecord>
+#include <QSqlQuery>
bool CatalogDB::Initialize() {
skydb_ = QSqlDatabase::addDatabase("QSQLITE", "skydb");
diff --git a/datahandlers/catalogdb.h b/datahandlers/catalogdb.h
index 57e5902..0f9c68e 100644
--- a/datahandlers/catalogdb.h
+++ b/datahandlers/catalogdb.h
@@ -22,13 +22,7 @@
#include <KLocalizedString>
#include <QDebug>
#include <QSqlDatabase>
-#include <QSqlQuery>
-#include <QSqlRecord>
-#include <QSqlTableModel>
-#include <QString>
-#include <QHash>
#include <QSqlError>
-#include <QVariant>
#include <QFile>
#include <QDir>
@@ -37,11 +31,18 @@
#endif
#include "ksparser.h"
-#include "catalogdata.h"
-#include "catalogentrydata.h"
-#include "starobject.h"
-#include "deepskyobject.h"
-#include "skycomponent.h"
+
+#include <QString>
+#include <QStringList>
+#include <QList>
+#include <QPair>
+#include <QSqlQuery>
+
+
+class SkyObject;
+class CatalogComponent;
+class CatalogData;
+class CatalogEntryData;
/* Some notes about the database. (skycomponents.sqlite)
* 1) The uid for Object Designation is the uid being used by objects in KStars
diff --git a/kstars/CMakeLists.txt b/kstars/CMakeLists.txt
index eba43b5..0327d1c 100644
--- a/kstars/CMakeLists.txt
+++ b/kstars/CMakeLists.txt
@@ -601,6 +601,7 @@ set(kstars_projection_SRCS
set(kstars_extra_SRCS
auxiliary/colorscheme.cpp
auxiliary/dms.cpp
+ auxiliary/cachingdms.cpp
auxiliary/geolocation.cpp
auxiliary/ksfilereader.cpp
auxiliary/ksuserdb.cpp
diff --git a/kstars/auxiliary/cachingdms.cpp b/kstars/auxiliary/cachingdms.cpp
new file mode 100644
index 0000000..61d0880
--- /dev/null
+++ b/kstars/auxiliary/cachingdms.cpp
@@ -0,0 +1,210 @@
+/***************************************************************************
+ cachingdms.cpp - KStars Planetarium
+ -------------------
+ begin : Sat 24 Sep 2016 23:16:25 CDT
+ copyright : (c) 2016 by Akarsh Simha
+ email : akarsh.simha@kdemail.net
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program 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. *
+ * *
+ ***************************************************************************/
+
+
+/* Project Includes */
+#include "cachingdms.h"
+
+/* KDE Includes */
+
+/* Qt Includes */
+#include <QString>
+
+/* STL Includes */
+#include <cmath>
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+unsigned long CachingDms::cachingdms_constructor_calls = 0;
+long CachingDms::cachingdms_delta = 0; // difference of ( trig function calls ) - ( trig computations )
+unsigned long CachingDms::cachingdms_bad_uses = 0;
+#endif
+
+CachingDms::CachingDms( const double &x ) : dms( x )
+{
+ dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_constructor_calls;
+ cachingdms_delta -= 2;
+ m_cacheUsed = false;
+#endif
+}
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+CachingDms::~CachingDms() {
+ if ( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+}
+#endif
+
+CachingDms::CachingDms(const QString& s, bool isDeg) : dms( s, isDeg ) {
+ dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_constructor_calls;
+ cachingdms_delta -= 2;
+ m_cacheUsed = false;
+#endif
+}
+
+CachingDms::CachingDms(const int &d, const int &m, const int &s, const int &ms) :
+ dms( d, m, s, ms ) {
+ dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_constructor_calls;
+ cachingdms_delta -= 2;
+ m_cacheUsed = false;
+#endif
+}
+
+void CachingDms::setUsing_atan2(const double & y, const double & x) {
+ /*
+ * NOTE: A bit of independent profiling shows that on my machine
+ * (Intel Core i5, x86_64, glibc 2.24-2) the square-root based
+ * computation below has some advantage, running ~ 70% faster on
+ * average for some range of values.
+ *
+ */
+ dms::setRadians( atan2( y, x ) );
+ register double r = sqrt( y*y + x*x );
+ m_cos = x/r;
+ m_sin = y/r;
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+ // One may be tempted to do the following:
+ // dms::setRadians( atan2( y, x ) );
+ // m_cos = dms::cos();
+ // m_sin = (y/x) * m_cos;
+ // However, this has a problem when x = 0. The result for m_sin
+ // must be 1, but instead the above code will result in NaN.
+ // So we will need a conditional:
+ // m_sin = (x == 0) ? 1. : (y/x) * m_cos;
+ // The conditional makes the performance worse than just setting
+ // the angle and using sincos()
+}
+
+void CachingDms::setUsing_asin(const double & sine) {
+ dms::setRadians( asin( sine ) );
+ m_sin = sine;
+ // Note: The below is valid because in the range of asin, which is
+ // [-pi/2, pi/2], cosine is always non-negative
+ m_cos = std::sqrt( 1 - sine*sine );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+}
+
+void CachingDms::setUsing_acos(const double & cosine) {
+ dms::setRadians( acos( cosine ) );
+ m_cos = cosine;
+ // Note: The below is valid because in the range of acos, which is
+ // [0, pi], sine is always non-negative
+ m_sin = std::sqrt( 1 - cosine*cosine );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+}
+
+CachingDms CachingDms::fromString(const QString& s, bool deg) {
+ CachingDms result;
+ result.setFromString( s, deg );
+ return result;
+}
+
+CachingDms CachingDms::operator -() {
+ return CachingDms( -D, -m_sin, m_cos );
+}
+
+CachingDms::CachingDms(const dms& angle) {
+ D = angle.Degrees();
+ dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_constructor_calls;
+ cachingdms_delta -= 2;
+ m_cacheUsed = false;
+#endif
+}
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+CachingDms::CachingDms( const CachingDms &o ) {
+ m_sin = o.sin();
+ m_cos = o.cos();
+ D = o.D;
+ m_cacheUsed = false;
+}
+CachingDms& CachingDms::operator =( const CachingDms &o ) {
+ if ( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_sin = o.sin();
+ m_cos = o.cos();
+ D = o.D;
+ m_cacheUsed = false;
+ return ( *this );
+}
+#endif
+
+
+// Makes trig identities more readable:
+#define sinA a.sin()
+#define cosA a.cos()
+#define sinB b.sin()
+#define cosB b.cos()
+
+// We use trigonometric addition / subtraction formulae to speed up
+// computation. This way, we have no trigonometric function calls at
+// all, but only floating point multiplications and
+// addition/subtraction instead.
+// The only caveat is that error can accumulate if used repeatedly!
+
+CachingDms operator +(const CachingDms &a, const CachingDms &b) {
+ return CachingDms( a.Degrees() + b.Degrees(),
+ sinA * cosB + cosA * sinB,
+ cosA * cosB - sinA * sinB );
+}
+
+CachingDms operator -(const CachingDms &a, const CachingDms &b) {
+ return CachingDms( a.Degrees() - b.Degrees(),
+ sinA * cosB - cosA * sinB,
+ cosA * cosB + sinA * sinB );
+}
+
+CachingDms operator +(const dms &a, const CachingDms &b) {
+ return CachingDms( a + dms( b ) );
+}
+
+CachingDms operator -(const dms &a, const CachingDms &b) {
+ return CachingDms( a - dms( b ) );
+}
+
+CachingDms operator +(const CachingDms &a, const dms &b) {
+ return CachingDms( dms( a ) + b );
+}
+
+CachingDms operator -(const CachingDms &a, const dms &b) {
+ return CachingDms( dms( a ) - b );
+}
+
+#undef sinA
+#undef cosA
+#undef sinB
+#undef cosB
diff --git a/kstars/auxiliary/cachingdms.h b/kstars/auxiliary/cachingdms.h
new file mode 100644
index 0000000..67df6f0
--- /dev/null
+++ b/kstars/auxiliary/cachingdms.h
@@ -0,0 +1,251 @@
+/***************************************************************************
+ cachingdms.h - KStars Planetarium
+ -------------------
+ begin : Sat 24 Sep 2016 02:18:26 CDT
+ copyright : (c) 2016 by Akarsh Simha
+ email : akarsh.simha@kdemail.net
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program 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 CACHINGDMS_H
+#define CACHINGDMS_H
+
+#include "dms.h"
+
+/**
+ * @class CachingDms
+ * @short a dms subclass that caches its sine and cosine values every time the angle is changed.
+ * @note This is to be used for those angles where sin/cos is repeatedly computed.
+ * @author Akarsh Simha <akarsh@kde.org>
+ */
+
+class CachingDms : public dms {
+
+public:
+
+ /**
+ * @short Default Constructor
+ */
+ CachingDms() : dms(), m_sin( NaN::d ), m_cos( NaN::d ) {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ m_cacheUsed = true;
+ ++cachingdms_constructor_calls;
+#endif
+ };
+
+ /**
+ * @short Degree angle constructor
+ * @param x is the angle in degrees
+ */
+ explicit CachingDms(const double &x );
+
+ /**
+ * @short QString constructor
+ */
+ explicit CachingDms( const QString &s, bool isDeg=true );
+
+ /**
+ * @short DMS representation constructor
+ */
+ explicit CachingDms( const int &d, const int &m=0, const int &s=0, const int &ms=0 );
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+ /**
+ * @short Destructor must count bad cache uses
+ */
+ ~CachingDms();
+#endif
+
+ /**
+ * @short Sets the angle in degrees supplied as a double
+ * @note Re-implements dms::setD() with sine/cosine caching
+ */
+ inline void setD( const double &x ) { dms::setD( x ); dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ cachingdms_delta -= 2;
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+ }
+
+ /**
+ * @short Sets the angle in hours, supplied as a double
+ * @note Re-implements dms::setH() with sine/cosine caching
+ * @note While this and other methods internally call setD, we want to avoid unnecessary vtable lookups. We'd rather have inline than virtual when speed matters in general.
+ */
+ inline void setH( const double &x ) { dms::setH( x ); dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ cachingdms_delta -= 2;
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+ }
+
+ /**
+ * @short Sets the angle in HMS form
+ * @note Re-implements dms::setH() with sine/cosine caching
+ */
+ inline void setH( const int &h, const int &m, const int &s, const int &ms=0 ) { dms::setH( h, m, s, ms ); dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ cachingdms_delta -= 2;
+#endif
+ }
+
+ /**
+ * @short Sets the angle from string
+ * @note Re-implements dms::setFromString()
+ */
+ inline bool setFromString( const QString &s, bool isDeg = true ) { bool retval = dms::setFromString( s, isDeg ); dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ cachingdms_delta -= 2;
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+ return retval;
+ }
+
+ /**
+ * @short Sets the angle in radians
+ */
+ inline void setRadians( const double &a ) { dms::setRadians( a ); dms::SinCos( m_sin, m_cos );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ cachingdms_delta -= 2;
+ if( !m_cacheUsed )
+ ++cachingdms_bad_uses;
+ m_cacheUsed = false;
+#endif
+ }
+
+ /**
+ * @short Sets the angle using atan2()
+ * @note The advantage is that we can calculate sin/cos faster because we know the tangent
+ */
+ void setUsing_atan2( const double & y, const double & x );
+
+ /**
+ * @short Sets the angle using asin()
+ * @param sine Sine of the angle
+ * @note The advantage is that we can cache the sine value supplied
+ * @note The limited range of asin must be borne in mind
+ */
+ void setUsing_asin( const double & sine );
+
+ /**
+ * @short Sets the angle using acos()
+ * @param cosine Cosine of the angle
+ * @note The advantage is that we can cache the cosine value supplied
+ * @note The limited range of acos must be borne in mind
+ */
+ void setUsing_acos( const double & cosine );
+
+ /**
+ * @short Get the sine and cosine together
+ * @note Re-implements dms::SinCos()
+ * @note This just uses the cached values assuming that they are good
+ */
+ inline void SinCos( double &s, double &c ) const { s = m_sin; c = m_cos;
+#ifdef COUNT_DMS_SINCOS_CALLS
+ cachingdms_delta += 2;
+ m_cacheUsed = true;
+#endif
+ }
+
+ /**
+ * @short Get the sine of this angle
+ * @note Re-implements dms::sin()
+ * @note This just uses the cached value assuming that it is good
+ */
+ inline double sin() const {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_delta;
+ m_cacheUsed = true;
+#endif
+ return m_sin; }
+
+ /**
+ * @short Get the cosine of this angle
+ * @note Re-implements dms::cos()
+ * @note This just uses the cached value assuming that it is good
+ */
+ inline double cos() const {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_delta;
+ m_cacheUsed = true;
+#endif
+ return m_cos; }
+
+ /**
+ * @short Construct an angle from the given string
+ * @note Re-implements dms::fromString()
+ */
+ static CachingDms fromString( const QString &s, bool deg );
+
+ /**
+ * @short operator -
+ * @note In addition to negating the angle, we negate the sine value
+ */
+ CachingDms operator - ();
+
+ /**
+ * @short Casting constructor
+ */
+ CachingDms( const dms &angle );
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+ /**
+ * Copy constructor that sets m_cacheUsed to true
+ */
+ CachingDms( const CachingDms &o );
+ CachingDms& operator =( const CachingDms &o );
+#endif
+
+private:
+ double m_sin, m_cos; // Cached values
+
+ /**
+ * @short Private constructor used to create a CachingDms with known sine and cosine
+ */
+ explicit CachingDms( const double &degrees, const double &sine, const double &cosine )
+ : dms( degrees ), m_sin( sine ), m_cos( cosine ) {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++cachingdms_constructor_calls;
+ m_cacheUsed = false;
+#endif
+ }
+
+ /**
+ * @short Addition and subtraction operators
+ * @note Uses trigonometric identities to find the new trigonometric values
+ * @note Avoid repeated use, as the round-off errors will accumulate!
+ */
+ friend CachingDms operator +(const CachingDms &, const CachingDms &);
+ friend CachingDms operator -(const CachingDms &, const CachingDms &);
+ friend CachingDms operator +(const dms &a, const CachingDms &b);
+ friend CachingDms operator -(const dms &a, const CachingDms &b);
+ friend CachingDms operator +(const CachingDms &a, const dms &b);
+ friend CachingDms operator -(const CachingDms &a, const dms &b);
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+private:
+ mutable bool m_cacheUsed;
+public:
+ static unsigned long cachingdms_constructor_calls;
+ static long cachingdms_delta; // difference of ( trig function calls ) - ( trig computations )
+ static unsigned long cachingdms_bad_uses;
+#endif
+};
+
+#endif
diff --git a/kstars/auxiliary/dms.cpp b/kstars/auxiliary/dms.cpp
index 8113308..e72c571 100644
--- a/kstars/auxiliary/dms.cpp
+++ b/kstars/auxiliary/dms.cpp
@@ -17,29 +17,36 @@
#include "dms.h"
-#include <stdlib.h>
+#include <KLocalizedString>
#include <QRegExp>
-#include <KLocalizedString>
+#include <cstdlib>
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+long unsigned dms::dms_constructor_calls = 0;
+long unsigned dms::dms_with_sincos_called = 0;
+long unsigned dms::trig_function_calls = 0;
+long unsigned dms::redundant_trig_function_calls = 0;
+double dms::seconds_in_trig = 0;
+#endif
void dms::setD(const int &d, const int &m, const int &s, const int &ms) {
D = (double)abs(d) + ((double)m + ((double)s + (double)ms/1000.)/60.)/60.;
if (d<0) {D = -1.0*D;}
-}
-
-void dms::setH( const double &x ) {
- setD( x*15.0 );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ m_cosDirty = m_sinDirty = true;
+#endif
}
void dms::setH(const int &h, const int &m, const int &s, const int &ms) {
D = 15.0*((double)abs(h) + ((double)m + ((double)s + (double)ms/1000.)/60.)/60.);
if (h<0) {D = -1.0*D;}
+#ifdef COUNT_DMS_SINCOS_CALLS
+ m_cosDirty = m_sinDirty = true;
+#endif
}
-void dms::setRadians( const double &Rad ) {
- setD( Rad/DegToRad );
-}
bool dms::setFromString( const QString &str, bool isDeg ) {
int d(0), m(0);
@@ -54,23 +61,23 @@ bool dms::setFromString( const QString &str, bool isDeg ) {
//empty entry returns false
if ( entry.isEmpty() ) {
- setD( NaN::d );
+ dms::setD( NaN::d );
return false;
}
//try parsing a simple integer
d = entry.toInt( &checkValue );
if ( checkValue ) {
- if (isDeg) setD( d, 0, 0 );
- else setH( d, 0, 0 );
+ if (isDeg) dms::setD( d, 0, 0 );
+ else dms::setH( d, 0, 0 );
return true;
}
//try parsing a simple double
double x = entry.toDouble( &checkValue );
if ( checkValue ) {
- if ( isDeg ) setD( x );
- else setH( x );
+ if ( isDeg ) dms::setD( x );
+ else dms::setH( x );
return true;
}
@@ -84,7 +91,7 @@ bool dms::setFromString( const QString &str, bool isDeg ) {
//anything with one field is invalid!
if ( fields.count() == 1 ) {
- setD( NaN::d );
+ dms::setD( NaN::d );
return false;
}
@@ -102,7 +109,7 @@ bool dms::setFromString( const QString &str, bool isDeg ) {
fields[1] = QString::number( int(mx) );
fields.append( QString::number( int( 60.0*(mx - int(mx)) ) ) );
} else {
- setD( NaN::d );
+ dms::setD( NaN::d );
return false;
}
}
@@ -132,12 +139,12 @@ bool dms::setFromString( const QString &str, bool isDeg ) {
if ( negative || d<0 || m < 0 || s<0 ) { D = -1.0*D;}
if (isDeg) {
- setD( D );
+ dms::setD( D );
} else {
- setH( D );
+ dms::setH( D );
}
} else {
- setD( NaN::d );
+ dms::setD( NaN::d );
return false;
}
@@ -247,6 +254,18 @@ dms dms::fromString(const QString &st, bool deg) {
// }
}
+
+void dms::reduceToRange( enum dms::AngleRanges range ) {
+ switch( range ) {
+ case MINUSPI_TO_PI:
+ D -= 360. * floor( ( D + 180. ) / 360. );
+ break;
+ case ZERO_TO_2PI:
+ default:
+ D -= 360. * floor( D / 360. );
+ }
+}
+
// M_PI is defined in math.h
const double dms::PI = M_PI;
const double dms::DegToRad = PI/180.0;
diff --git a/kstars/auxiliary/dms.h b/kstars/auxiliary/dms.h
index ba1646f..10aad72 100644
--- a/kstars/auxiliary/dms.h
+++ b/kstars/auxiliary/dms.h
@@ -18,12 +18,19 @@
#ifndef DMS_H_
#define DMS_H_
-#include <QDebug>
+#include "../nan.h"
+#include <QDebug>
#include <QString>
#include <cmath>
-#include "../nan.h"
+
+//#define COUNT_DMS_SINCOS_CALLS true
+//#define PROFILE_SINCOS true
+
+#ifdef PROFILE_SINCOS
+#include <ctime>
+#endif
/** @class dms
* @short An angle, stored as degrees, but expressible in many ways.
@@ -37,12 +44,23 @@
* arcseconds or hours, minutes, seconds). There is also a method
* to set the angle according to a radian value, and to return the
* angle expressed in radians. Finally, a SinCos() method computes
- * the sin and cosine of the angle.
+ * the sin and cosine of the angle.
*/
class dms {
public:
/** Default constructor. */
- dms() : D( NaN::d ) {}
+ dms() : D( NaN::d )
+#ifdef COUNT_DMS_SINCOS_CALLS
+ , m_sinCosCalled(false), m_sinDirty( true ), m_cosDirty( true )
+#endif
+ {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++dms_constructor_calls;
+#endif
+ }
+
+ /** Empty virtual destructor */
+ virtual ~dms() {}
/** @short Set the floating-point value of the angle according to the four integer arguments.
* @param d degree portion of angle (int). Defaults to zero.
@@ -50,14 +68,30 @@ public:
* @param s arcsecond portion of angle (int). Defaults to zero.
* @param ms arcsecond portion of angle (int). Defaults to zero.
*/
- explicit dms( const int &d, const int &m=0, const int &s=0, const int &ms=0 ) { setD( d, m, s, ms ); }
+ explicit dms( const int &d, const int &m=0, const int &s=0, const int &ms=0 )
+#ifdef COUNT_DMS_SINCOS_CALLS
+ : m_sinCosCalled(false), m_sinDirty( true ), m_cosDirty( true )
+#endif
+ { dms::setD( d, m, s, ms );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++dms_constructor_calls;
+#endif
+}
/** @short Construct an angle from a double value.
*
* Creates an angle whose value in Degrees is equal to the argument.
* @param x angle expressed as a floating-point number (in degrees)
*/
- explicit dms( const double &x ) : D(x) {}
+ explicit dms( const double &x ) : D(x)
+#ifdef COUNT_DMS_SINCOS_CALLS
+ , m_sinCosCalled(false), m_sinDirty( true ), m_cosDirty( true )
+#endif
+ {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++dms_constructor_calls;
+#endif
+ }
/** @short Construct an angle from a string representation.
*
@@ -72,7 +106,15 @@ public:
* @param isDeg if true, value is in degrees; if false, value is in hours.
* @sa setFromString()
*/
- explicit dms( const QString &s, bool isDeg=true ) { setFromString( s, isDeg ); }
+ explicit dms( const QString &s, bool isDeg=true )
+#ifdef COUNT_DMS_SINCOS_CALLS
+ : m_sinCosCalled(false), m_sinDirty( true ), m_cosDirty( true )
+#endif
+ { setFromString( s, isDeg );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ ++dms_constructor_calls;
+#endif
+ }
/** @return integer degrees portion of the angle
*/
@@ -127,7 +169,11 @@ public:
/** Sets floating-point value of angle, in degrees.
* @param x new angle (double)
*/
- void setD( const double &x ) { D = x; }
+ inline virtual void setD( const double &x ) {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ m_sinDirty = m_cosDirty = true;
+#endif
+ D = x; }
/** @short Sets floating-point value of angle, in degrees.
*
@@ -143,7 +189,7 @@ public:
* @param s integer arcseconds portion of angle
* @param ms integer arcseconds portion of angle
*/
- void setD( const int &d, const int &m, const int &s, const int &ms=0 );
+ virtual void setD( const int &d, const int &m, const int &s, const int &ms=0 );
/** @short Sets floating-point value of angle, in hours.
*
@@ -152,10 +198,16 @@ public:
* @param x new angle, in hours (double)
* @sa setD()
*/
- void setH( const double &x );
+ inline virtual void setH( const double &x ) {
+ dms::setD( x*15.0 );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ m_cosDirty = m_sinDirty = true;
+#endif
+ }
+
/** @short Sets floating-point value of angle, in hours.
- *
+ *
* Converts argument values from hours to degrees, then
* sets floating-point value of angle, in degrees.
* This is an overloaded member function, provided for convenience. It
@@ -166,7 +218,7 @@ public:
* @param ms integer milliseconds portion of angle
* @sa setD()
*/
- void setH( const int &h, const int &m, const int &s, const int &ms=0 );
+ virtual void setH( const int &h, const int &m, const int &s, const int &ms=0 );
/** @short Attempt to parse the string argument as a dms value, and set the dms object
* accordingly.
@@ -176,7 +228,7 @@ public:
* @return true if sting was parsed successfully. Otherwise, set the dms value
* to 0.0 and return false.
*/
- bool setFromString( const QString &s, bool isDeg=true );
+ virtual bool setFromString( const QString &s, bool isDeg=true );
/** @short Compute Sine and Cosine of the angle simultaneously.
* On machines using glibc >= 2.1, calling SinCos() is somewhat faster
@@ -194,19 +246,59 @@ public:
* @return the Sine of the angle.
* @sa cos()
*/
- double sin() const { return ::sin(D*DegToRad); }
+ double sin() const {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ if( !m_sinCosCalled ) { m_sinCosCalled = true; ++dms_with_sincos_called; }
+ if( m_sinDirty )
+ m_sinDirty = false;
+ else
+ ++redundant_trig_function_calls;
+ ++trig_function_calls;
+#endif
+#ifdef PROFILE_SINCOS
+ std::clock_t start, stop;
+ double s;
+ start = std::clock();
+ s = ::sin(D*DegToRad);
+ stop = std::clock();
+ seconds_in_trig += double(stop - start)/double(CLOCKS_PER_SEC);
+ return s;
+#else
+ return ::sin(D*DegToRad);
+#endif
+ }
/** @short Compute the Angle's Cosine.
*
* @return the Cosine of the angle.
* @sa sin()
*/
- double cos() const { return ::cos(D*DegToRad); }
+ double cos() const {
+#ifdef COUNT_DMS_SINCOS_CALLS
+ if( !m_sinCosCalled ) { m_sinCosCalled = true; ++dms_with_sincos_called; }
+ if( m_cosDirty )
+ m_cosDirty = false;
+ else
+ ++redundant_trig_function_calls;
+ ++trig_function_calls;
+#endif
+#ifdef PROFILE_SINCOS
+ std::clock_t start, stop;
+ double c;
+ start = std::clock();
+ c = ::cos(D*DegToRad);
+ stop = std::clock();
+ seconds_in_trig += double(stop - start)/double(CLOCKS_PER_SEC);
+ return c;
+#else
+ return ::cos(D*DegToRad);
+#endif
+ }
/** @short Express the angle in radians.
* @return the angle in radians (double)
*/
- double radians() const { return D*DegToRad; }
+ inline double radians() const { return D*DegToRad; }
/** @short Set angle according to the argument, in radians.
*
@@ -214,13 +306,29 @@ public:
* with setD().
* @param a angle in radians
*/
- void setRadians( const double &a );
+ inline virtual void setRadians( const double &Rad ) {
+ dms::setD( Rad/DegToRad );
+#ifdef COUNT_DMS_SINCOS_CALLS
+ m_cosDirty = m_sinDirty = true;
+#endif
+ }
+
/** return the equivalent angle between 0 and 360 degrees.
* @warning does not change the value of the parent angle itself.
*/
const dms reduce() const;
+ /**
+ * @short an enum defining standard angle ranges
+ */
+ enum AngleRanges { ZERO_TO_2PI, MINUSPI_TO_PI };
+
+ /**
+ * @short Reduce _this_ angle to the given range
+ */
+ void reduceToRange( enum dms::AngleRanges range );
+
/** @return a nicely-formatted string representation of the angle
* in degrees, arcminutes, and arcseconds.
* @param machineReadable uses a colon separator and produces +/-dd:mm:ss format instead
@@ -259,9 +367,20 @@ public:
*/
static dms fromString(const QString & s, bool deg);
- dms operator - () { return dms(-D); }
-private:
+ inline dms operator - () { return dms(-D); }
+#ifdef COUNT_DMS_SINCOS_CALLS
+ static long unsigned dms_constructor_calls; // counts number of DMS constructor calls
+ static long unsigned dms_with_sincos_called;
+ static long unsigned trig_function_calls; // total number of trig function calls
+ static long unsigned redundant_trig_function_calls; // counts number of redundant trig function calls
+ static double seconds_in_trig; // accumulates number of seconds spent in trig function calls
+#endif
+protected:
double D;
+private:
+#ifdef COUNT_DMS_SINCOS_CALLS
+ mutable bool m_sinDirty, m_cosDirty, m_sinCosCalled;
+#endif
friend dms operator+(dms, dms);
friend dms operator-(dms, dms);
@@ -279,6 +398,11 @@ inline dms operator - (dms a, dms b) {
// Inline sincos
inline void dms::SinCos(double& s, double& c) const {
+#ifdef PROFILE_SINCOS
+ std::clock_t start, stop;
+ start = std::clock();
+#endif
+
#ifdef __GLIBC__
#if ( __GLIBC__ >= 2 && __GLIBC_MINOR__ >=1 && !defined(__UCLIBC__))
//GNU version
@@ -293,6 +417,26 @@ inline void dms::SinCos(double& s, double& c) const {
s = ::sin( radians() );
c = ::cos( radians() );
#endif
+
+#ifdef PROFILE_SINCOS
+ stop = std::clock();
+ seconds_in_trig += double(stop - start)/double(CLOCKS_PER_SEC);
+#endif
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+ if( !m_sinCosCalled ) { m_sinCosCalled = true; ++dms_with_sincos_called; }
+ if( m_sinDirty )
+ m_sinDirty = false;
+ else
+ ++redundant_trig_function_calls;
+
+ if( m_cosDirty )
+ m_cosDirty = false;
+ else
+ ++redundant_trig_function_calls;
+
+ trig_function_calls += 2;
+#endif
}
/** Overloaded equality operator */
diff --git a/kstars/auxiliary/geolocation.h b/kstars/auxiliary/geolocation.h
index 5ffffe0..433a6a2 100644
--- a/kstars/auxiliary/geolocation.h
+++ b/kstars/auxiliary/geolocation.h
@@ -22,7 +22,7 @@
#include <KLocalizedString>
-#include "dms.h"
+#include "cachingdms.h"
#include "timezonerule.h"
#include "kstarsdatetime.h"
@@ -75,10 +75,10 @@ public:
double TZ=0, TimeZoneRule *TZrule=NULL, bool readOnly=false, int iEllips=4 );
/** @return pointer to the longitude dms object */
- const dms* lng() const { return &Longitude; }
+ const CachingDms* lng() const { return &Longitude; }
/** @return pointer to the latitude dms object */
- const dms* lat() const { return &Latitude; }
+ const CachingDms* lat() const { return &Latitude; }
/** @return elevation above seal level (meters) */
double height() const { return Height; }
@@ -263,7 +263,7 @@ public:
void setReadOnly(bool value);
private:
- dms Longitude, Latitude;
+ CachingDms Longitude, Latitude;
QString Name, Province, Country;
TimeZoneRule *TZrule;
double TimeZone, Height;
diff --git a/kstars/auxiliary/imageviewer.cpp b/kstars/auxiliary/imageviewer.cpp
index 83f89ed..5dcfb6e 100644
--- a/kstars/auxiliary/imageviewer.cpp
+++ b/kstars/auxiliary/imageviewer.cpp
@@ -154,7 +154,7 @@ void ImageViewer::init(QString caption, QString capText)
QPushButton *invertB = new QPushButton(i18n("Invert colors"));
invertB->setToolTip(i18n("Reverse colors of the image. This is useful to enhance contrast at times. This affects only the display and not the saving."));
- QPushButton *saveB = new QPushButton(QIcon::fromTheme("document-save"), i18n("Save"));
+ QPushButton *saveB = new QPushButton(QIcon::fromTheme("document-save", QIcon(":/icons/breeze/default/document-save.png")), i18n("Save"));
saveB->setToolTip(i18n("Save the image to disk"));
buttonBox->addButton(invertB, QDialogButtonBox::ActionRole);
diff --git a/kstars/auxiliary/ksutils.cpp b/kstars/auxiliary/ksutils.cpp
index 44301cd..2a8d721 100644
--- a/kstars/auxiliary/ksutils.cpp
+++ b/kstars/auxiliary/ksutils.cpp
@@ -19,6 +19,7 @@
#include "deepskyobject.h"
#include "skyobject.h"
+#include "starobject.h"
#include "Options.h"
#include <QFile>
diff --git a/kstars/auxiliary/ksutils.h b/kstars/auxiliary/ksutils.h
index f27a967..547b8b8 100644
--- a/kstars/auxiliary/ksutils.h
+++ b/kstars/auxiliary/ksutils.h
@@ -29,14 +29,14 @@
#include <cstddef>
#include <Eigen/Core>
-using namespace Eigen;
#include <QPointF>
#include "dms.h"
-#include "skyobjects/starobject.h"
class QFile;
class QString;
class SkyPoint;
+class SkyObject;
+class StarObject;
namespace KSUtils {
/** Attempt to open the data file named filename, using the QFile object "file".
@@ -80,22 +80,22 @@ namespace KSUtils {
/** Convert from spherical to cartesian coordiate system.
* Resulting vector have unit length
*/
- inline Vector3d fromSperical(dms longitude, dms latitude) {
+ inline Eigen::Vector3d fromSperical(dms longitude, dms latitude) {
double sinL, sinB;
double cosL, cosB;
longitude.SinCos( sinL, cosL );
latitude.SinCos( sinB, cosB );
- return Vector3d(cosB*cosL, cosB*sinL, sinB);
+ return Eigen::Vector3d(cosB*cosL, cosB*sinL, sinB);
}
/** Convert a vector to a point */
- inline QPointF vecToPoint(const Vector2f& vec) {
+ inline QPointF vecToPoint(const Eigen::Vector2f& vec) {
return QPointF( vec[0], vec[1] );
}
/** Convert a point to a vector */
- inline Vector2f pointToVec(const QPointF& p) {
- return Vector2f(p.x(),p.y());
+ inline Eigen::Vector2f pointToVec(const QPointF& p) {
+ return Eigen::Vector2f(p.x(),p.y());
}
/**
diff --git a/kstars/data/CMakeLists.txt b/kstars/data/CMakeLists.txt
index bf9aed5..f9ca5a2 100644
--- a/kstars/data/CMakeLists.txt
+++ b/kstars/data/CMakeLists.txt
@@ -63,7 +63,7 @@ install(FILES
wzstars.png wzgeo.png wzscope.png wzdownload.png chart.colors
classic.colors moonless-night.colors night.colors
tips TZrules.dat valaav.txt Interesting.dat PlanetFacts.dat
- advinterface.dat satellites.dat histogram.png go-nw.png go-ne.png go-sw.png go-se.png glossary.xml defaultflag.gif
+ advinterface.dat satellites.dat glossary.xml defaultflag.gif
DESTINATION ${KDE_INSTALL_DATADIR}/kstars
)
diff --git a/kstars/data/advanced.png b/kstars/data/icons/advanced.png
index e53e8b2..e53e8b2 100644
--- a/kstars/data/advanced.png
+++ b/kstars/data/icons/advanced.png
Binary files differ
diff --git a/kstars/data/icons/breeze/default/accessories-calculator.svg b/kstars/data/icons/breeze/default/accessories-calculator.svg
new file mode 100644
index 0000000..13213fc
--- /dev/null
+++ b/kstars/data/icons/breeze/default/accessories-calculator.svg
@@ -0,0 +1,63 @@
+<svg width="48" xmlns="http://www.w3.org/2000/svg" height="48" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="a" y1="543.8" y2="503.8" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.125 0 0 1-51.07 0)">
+ <stop stop-color="#2a2c2f"/>
+ <stop offset="1" stop-color="#424649"/>
+ </linearGradient>
+ <linearGradient id="b" y1="540.92" y2="522.55" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1 0 0 1.14286 0-77.4)">
+ <stop stop-color="#197cf1"/>
+ <stop offset="1" stop-color="#05a0eb"/>
+ </linearGradient>
+ <linearGradient id="c" y1="542.8" y2="533.8" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="translate(0-28)">
+ <stop stop-color="#bcb4a1"/>
+ <stop offset="1" stop-color="#c5bfad"/>
+ </linearGradient>
+ <linearGradient id="d" y1="540.8" y2="531.8" gradientUnits="userSpaceOnUse" x2="0">
+ <stop stop-color="#1e1f21"/>
+ <stop offset="1" stop-color="#242628"/>
+ </linearGradient>
+ <linearGradient xlink:href="#d" id="e" y1="528.8" y2="519.8" gradientUnits="userSpaceOnUse" x2="0"/>
+ <linearGradient id="f" y1="20" x1="32" y2="30" x2="42" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#383e51"/>
+ <stop offset="1" stop-color="#655c6f" stop-opacity="0"/>
+ </linearGradient>
+ <linearGradient xlink:href="#f" id="g" y1="531.8" x1="404.57" y2="543.8" x2="416.57" gradientUnits="userSpaceOnUse" gradientTransform="translate(-384.57-499.8)"/>
+ <linearGradient xlink:href="#f" id="h" y1="531.8" x1="404.57" y2="543.8" gradientUnits="userSpaceOnUse" x2="416.57" gradientTransform="translate(0-12)"/>
+ <linearGradient xlink:href="#f" id="i" y1="531.8" x1="404.57" y2="543.8" gradientUnits="userSpaceOnUse" x2="416.57" gradientTransform="translate(-12-12)"/>
+ <linearGradient xlink:href="#f" id="j" y1="531.8" x1="404.57" y2="543.8" gradientUnits="userSpaceOnUse" x2="416.57" gradientTransform="translate(-12)"/>
+ </defs>
+ <g transform="translate(-384.57-499.8)">
+ <rect width="36" x="390.57" y="503.8" fill="url(#a)" rx="0" height="40"/>
+ <g fill-rule="evenodd">
+ <path opacity=".2" fill="url(#h)" d="m413.57 519.8l-9 9 3 3h18z"/>
+ <path opacity=".2" fill="url(#i)" d="m401.57 519.8l-9 9 3 3h18z"/>
+ <path opacity=".2" fill="url(#j)" d="m401.57 531.8l-9 9 3 3h18z"/>
+ <path opacity=".2" fill="url(#g)" d="m29 32l-9 9 3 3h18z" transform="translate(384.57 499.8)"/>
+ </g>
+ <rect width="36" x="390.57" y="542.8" fill="#1c1e20" height="1"/>
+ <path opacity=".2" fill="url(#f)" fill-rule="evenodd" d="m40 20l-8 21 3 3h7v-22z" transform="translate(384.57 499.8)"/>
+ <rect width="8" x="416.57" y="519.8" fill="url(#b)" rx="0" height="21"/>
+ <rect width="32" x="392.57" y="505.8" fill="url(#c)" height="9"/>
+ <path fill="#ffffff" d="m418.57 534.8v1h4v-1zm0 2v1h4v-1z"/>
+ <g fill="#383432">
+ <rect width="3" x="418.57" y="506.8" height="1"/>
+ <rect width="1" x="421.57" y="507.8" height="5"/>
+ <rect width="3" x="418.57" y="512.8" height="1"/>
+ <rect width="1" x="417.57" y="507.8" height="5"/>
+ </g>
+ <rect width="9" x="392.57" y="531.8" fill="url(#d)" rx="0" height="9"/>
+ <g fill="url(#e)">
+ <rect width="9" x="392.57" y="519.8" rx="0" height="9"/>
+ <rect width="9" x="404.57" y="519.8" rx="0" height="9"/>
+ </g>
+ <rect width="9" x="404.57" y="531.8" fill="url(#d)" rx="0" height="9"/>
+ <g fill="#ffffff">
+ <path d="m12 22v2h-2v1h2v2h1v-2h2v-1h-2v-2z" transform="translate(384.57 499.8)"/>
+ <rect width="1" x="523.8" y="-411.57" rx="0" height="5" transform="rotate(90)"/>
+ <g transform="translate(384.57 499.8)">
+ <path d="M12.5 34A.5 .5 0 0 0 12 34.5 .5 .5 0 0 0 12.5 35 .5 .5 0 0 0 13 34.5 .5 .5 0 0 0 12.5 34M10 36V37H15V36zM12.5 38A.5 .5 0 0 0 12 38.5 .5 .5 0 0 0 12.5 39 .5 .5 0 0 0 13 38.5 .5 .5 0 0 0 12.5 38"/>
+ <path d="m22.707 34l-.707.707 1.793 1.793-1.793 1.793.707.707 1.793-1.793 1.793 1.793.707-.707-1.793-1.793 1.793-1.793-.707-.707-1.793 1.793z"/>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/application-exit.svg b/kstars/data/icons/breeze/default/application-exit.svg
new file mode 100755
index 0000000..bf610fd
--- /dev/null
+++ b/kstars/data/icons/breeze/default/application-exit.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3109" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="application-exit.svg">
+ <defs id="defs3111">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32.137491" inkscape:cx="4.0630828" inkscape:cy="9.2001395" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4108" originx="-1.0000233px" originy="-1.0000029px"/>
+ <sodipodi:guide position="2,20" orientation="18,0" id="guide4114"/>
+ <sodipodi:guide position="2,2" orientation="0,18" id="guide4116"/>
+ <sodipodi:guide position="20,2" orientation="-18,0" id="guide4118"/>
+ <sodipodi:guide position="20,20" orientation="0,-18" id="guide4120"/>
+ <sodipodi:guide position="3,19" orientation="16,0" id="guide4122"/>
+ <sodipodi:guide position="3,3" orientation="0,16" id="guide4124"/>
+ <sodipodi:guide position="19,3" orientation="-16,0" id="guide4126"/>
+ <sodipodi:guide position="19,19" orientation="0,-16" id="guide4128"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3114">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-534.14288,-579.07648)">
+ <path style="opacity:1;fill:#da4453;fill-opacity:1;stroke:none" d="M 3 3 L 3 7 L 3 19 L 4 19 L 18 19 L 19 19 L 19 18 L 19 6 L 19 3 L 4 3 L 3 3 z M 4 7 L 18 7 L 18 18 L 4 18 L 4 7 z M 8 11 L 8 13 L 14 13 L 14 11 L 8 11 z " transform="translate(534.14288,579.07648)" id="rect4141"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/applications-internet.svg b/kstars/data/icons/breeze/default/applications-internet.svg
new file mode 100644
index 0000000..c613d94
--- /dev/null
+++ b/kstars/data/icons/breeze/default/applications-internet.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="32" version="1.1" xmlns="http://www.w3.org/2000/svg" height="32" viewBox="0 0 32 32" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <defs id="defs5455">
+ <linearGradient id="linearGradient4232">
+ <stop style="stop-color:#3889e9" id="stop4234-0"/>
+ <stop offset="1" style="stop-color:#5ea5fb" id="stop4236"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4232" id="linearGradient3426" y1="545.79797" y2="517.79797" x2="0" gradientUnits="userSpaceOnUse"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4143">
+ <stop style="stop-color:#197cf1" id="stop4145"/>
+ <stop offset="1" style="stop-color:#20bcfa" id="stop4147"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4290">
+ <stop style="stop-color:#7cbaf8" id="stop4292"/>
+ <stop offset="1" style="stop-color:#f4fcff" id="stop4294"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4143" id="linearGradient4229" y1="545.79797" y2="517.79797" gradientUnits="userSpaceOnUse" x2="0"/>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4290" id="linearGradient4161-1-2" y1="29.999973" y2="1.999974" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0501212 0 0 1.0501212 383.71407 514.99087)"/>
+ </defs>
+ <metadata id="metadata5458"/>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1 0 0 1 -384.57143 -515.798)">
+ <circle cx="400.57138" cy="531.79791" style="fill:url(#linearGradient4229);stroke-width:4" id="path3377" r="13.999958"/>
+ <ellipse cx="400.57138" cy="531.79791" style="fill:url(#linearGradient3426);stroke-width:4" id="ellipse4233"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4161-1-2);stroke-width:0.7" id="path34-7-3" d="m 400.54266,517.79799 c -1.76581,0 -3.44655,0.33686 -4.99979,0.92831 -0.11294,0.10381 -0.25978,0.18353 -0.37598,0.17365 -0.0159,-0.002 -0.0317,-0.0116 -0.048,-0.0173 -0.76565,0.32032 -1.49196,0.71281 -2.18065,1.15799 0.0895,0.14527 0.11608,0.30699 -0.0683,0.38556 -0.031,0.0131 -0.4204,0.0523 -0.55642,0.0493 -1.95843,1.42304 -3.52947,3.33698 -4.5336,5.57129 0.0162,-0.003 0.0302,-0.01 0.0466,-0.0108 0.15241,-0.003 0.37179,0.0413 0.51816,0.0724 0.13508,0.0277 0.24403,0.11837 0.36092,0.12715 0.33177,0.0252 0.41157,-0.23281 0.68224,-0.37733 0.27965,0.0396 0.46521,-0.0472 0.71777,-0.019 0.17216,0.019 0.29651,0.20296 0.43067,0.2133 0.11282,0.0116 0.21209,-0.10575 0.32129,-0.0891 0.10608,0.0163 0.289,0.24768 0.30626,0.37734 0.022,0.16138 -0.11875,0.30672 -0.0724,0.48399 0.16905,0.17217 0.47621,0.20706 0.71777,0.30625 0.15733,-0.12963 0.0207,-0.37016 0,-0.55782 -0.003,-0.0826 0.0116,-0.1563 0,-0.23242 -0.0145,-0.12922 -0.0701,-0.24759 -0.071,-0.3582 -0.003,-0.51081 0.41206,-0.74986 0.75466,-0.95155 0.14832,-0.0879 0.2651,-0.24191 0.39376,-0.30626 0.18174,-0.0912 0.3171,-0.11234 0.46759,-0.19687 0.27191,-0.15275 0.50514,-0.27536 0.71777,-0.44845 0.0983,-0.23161 0.01,-0.54218 0.0177,-0.77109 0.0984,-0.0603 0.18284,0.0258 0.28713,0.0173 0.16408,-0.0341 0.1777,-0.26574 0.27069,-0.35816 0.0537,-0.0529 0.20219,-0.0909 0.26933,-0.14358 0.16349,-0.12828 0.21676,-0.32205 0.35958,-0.37734 0.0509,-0.0206 0.16943,-0.0149 0.2502,-0.0368 0.10629,-0.0282 0.25753,-0.15391 0.43064,-0.21325 0.11281,-0.0396 0.3712,-0.0468 0.41425,-0.0902 0.0529,-0.0539 -7e-4,-0.20603 0.0177,-0.28709 0.087,-0.40523 0.69742,-0.49111 1.0582,-0.62755 0.2529,-0.0957 0.51238,-0.27126 0.79024,-0.2174 -0.0543,0.19259 -0.31321,0.12434 -0.26934,0.35822 0.0606,0.32453 0.49513,-0.0929 0.60978,-0.14082 0.21899,-0.0923 0.59448,-0.14868 0.88182,-0.25294 0.25196,-0.0923 0.7037,-0.2327 0.46623,-0.52088 -0.19808,-0.0116 -0.29358,0.23243 -0.46623,0.30623 -0.11925,0.0191 -0.0965,-0.0998 -0.19824,-0.10932 -0.0967,-0.0116 -0.15085,0.0892 -0.25021,0.0723 -0.0989,-0.0163 -0.23746,-0.17163 -0.25291,-0.28712 -0.0396,-0.29964 0.25323,-0.42318 0.37733,-0.64668 -0.0821,-0.27104 -0.45699,-0.0551 -0.68358,-0.16132 0.0219,-0.16138 0.18883,-0.27267 0.37734,-0.30352 0.15452,-0.0258 0.50134,-0.0129 0.59336,0.0696 0.0531,0.0456 0.004,0.15851 0.0902,0.23378 0.0916,0.0826 0.20397,0.074 0.32268,0.0547 0.0425,-0.20453 -0.26598,-0.15323 -0.23243,-0.28847 0.24248,-0.15862 0.63692,-0.0285 0.9338,-0.0724 0.17089,-0.0252 0.3503,-0.14583 0.50175,-0.23103 0.14403,-0.0817 0.33116,-0.22448 0.484,-0.0903 0.0411,0.14658 -0.1331,0.19508 -0.21466,0.26796 -0.27467,0.24432 -0.5576,0.52423 -0.77109,0.808 0.13097,0.12775 0.36901,0.0636 0.59062,0.0902 0.0866,0.0116 0.19549,0.0371 0.28709,0.0534 0.10727,0.0191 0.22109,0.0136 0.30489,0.0358 0.15079,0.037 0.19113,0.19823 0.34045,0.19823 0.24557,-4.3e-4 0.2485,-0.26609 0.10931,-0.43203 0.044,-0.16941 0.11282,-0.25731 0.0534,-0.37598 -0.1106,-0.22126 -0.51644,-0.0116 -0.5373,-0.28709 -0.0131,-0.17901 0.14976,-0.171 0.21465,-0.30488 -0.0295,-0.34582 0.28365,-0.37088 0.25019,-0.68085 -0.0145,-0.12968 -0.12383,-0.13145 -0.21464,-0.25295 -0.0456,-0.0593 -0.0693,-0.17418 -0.12168,-0.22558 -0.41888,-0.0369 -0.84254,-0.0601 -1.27147,-0.0601 z m -7.2242,2.8246 0.002,0 c 0.0835,0.0116 0.18452,0.10166 0.28574,0.10944 0.0957,0.003 0.17479,-0.0527 0.23379,-0.0369 0.15009,0.0397 0.2134,0.26624 0.0722,0.37734 -0.11734,0.0145 -0.1631,-0.0513 -0.25156,-0.0359 -0.24381,0.0415 -0.33733,0.51895 -0.51954,0.50314 -0.1718,-0.0145 -0.26481,-0.43317 -0.0901,-0.5578 0.0116,-0.10886 -0.0793,-0.12626 -0.0737,-0.23379 0.0515,-0.0664 0.199,-0.13729 0.3418,-0.12574 z m -0.80799,0.0561 c 0.0495,0.002 0.0873,0.0136 0.10661,0.0356 -0.0237,0.19134 -0.17352,0.17878 -0.32129,0.26796 -0.25522,0.15404 -0.40277,0.38876 -0.48398,0.71778 -0.0234,0.0957 -0.27501,0.34942 -0.39648,0.32404 -0.28465,-0.06 0.0786,-0.58473 0.14356,-0.66447 0.0722,-0.0884 0.1683,-0.16591 0.25292,-0.26797 0.0817,-0.0989 0.13555,-0.23226 0.21465,-0.28709 0.0866,-0.06 0.33404,-0.13155 0.48399,-0.12575 z m 2.12458,0.6453 c 0.0912,0.002 0.17315,0.0163 0.21054,0.0534 -0.0585,0.23706 -0.56928,0.17446 -0.75604,0.0887 0.0116,-0.0894 0.15185,-0.1141 0.26934,-0.12575 0.0826,-0.003 0.18515,-0.0191 0.27616,-0.0163 z m -1.16208,0.43752 c 0.0606,-0.002 0.12217,0.0116 0.18593,0.0285 -0.1652,0.13818 -0.34385,0.21646 -0.62755,0.30623 -0.1364,0.0429 -0.37198,0.0965 -0.39511,-0.0561 -0.0282,-0.1867 0.19947,-0.14326 0.32401,-0.15996 0.15683,-0.0216 0.32899,-0.11305 0.51272,-0.119 z m 17.82809,1.06365 c -0.0212,0.0512 -0.0368,0.10123 -0.0344,0.15038 0.0116,0.0866 0.10597,0.16995 0.12714,0.28712 0.0116,0.0624 -0.0291,0.1963 0,0.25296 0.0864,0.1676 0.31262,0.0471 0.47443,0.0561 -0.18382,-0.25312 -0.36738,-0.50666 -0.5674,-0.74648 z m 0.91737,1.23458 c -0.0257,0.12369 -0.10978,0.28498 -0.17771,0.38828 -0.15648,0.23799 -0.36901,0.24908 -0.59336,0.37598 -0.18711,0.10607 -0.26765,0.28308 -0.37736,0.46757 -0.11887,0.19929 -0.1925,0.31969 -0.14353,0.60843 -0.16041,0.31816 -0.4033,0.5131 -0.73555,0.66443 -0.0983,0.0444 -0.2325,0.061 -0.32266,0.12574 -0.0719,0.0515 -0.11258,0.19025 -0.21464,0.30486 -0.12587,0.1401 -0.25786,0.1992 -0.32405,0.30626 -0.0509,0.0826 -0.0691,0.24722 -0.12574,0.35821 -0.0764,0.15074 -0.23982,0.2246 -0.34045,0.37734 -0.0457,0.0709 -0.0763,0.21376 -0.12714,0.30626 -0.11375,0.20665 -0.30799,0.35553 -0.28713,0.53728 0.0206,0.17566 0.2202,0.20646 0.23379,0.35959 0.003,0.0865 -0.0571,0.13946 -0.0534,0.23379 0.003,0.13774 0.0961,0.23442 0.10662,0.34043 0.0267,0.26649 -0.0906,0.37285 -0.14082,0.55506 -0.0237,0.087 -0.0135,0.18497 -0.0369,0.25295 -0.0442,0.13341 -0.23008,0.25379 -0.23379,0.41152 -0.002,0.11211 0.11504,0.20222 0.12447,0.35957 0.003,0.10862 -0.0533,0.22429 -0.0341,0.32403 0.0383,0.19532 0.38685,0.42245 0.53869,0.57421 0.20306,0.20308 0.46891,0.36024 0.55642,0.57422 0.0737,0.18171 0.0731,0.41811 0.21467,0.55508 0.10468,0.10112 0.27877,0.16414 0.41288,0.2693 0.12512,0.0982 0.26142,0.18296 0.39513,0.28711 0.21847,0.17094 0.5488,0.51165 0.89686,0.48538 0.18177,-0.0131 0.36805,-0.16162 0.57424,-0.19824 0.2121,-0.0381 0.48736,-0.0577 0.70134,-0.0356 0.16391,0.016 0.33274,0.11445 0.50313,0.10661 0.1799,-0.0116 0.38621,-0.14449 0.59063,-0.23378 0.16448,-0.0717 0.36634,-0.15092 0.58788,-0.2092 0.10167,-0.68287 0.15587,-1.38248 0.15587,-2.09452 0,-2.86665 -0.85718,-5.52366 -2.32421,-7.73828 z m -23.15467,4.70449 c -0.29817,0.0162 -0.49356,0.0299 -0.66305,0.10661 -0.38842,0.17674 -0.31336,0.7016 -0.70139,0.82578 -0.13421,0.0429 -0.31847,0.045 -0.46619,0.0723 -0.12753,0.0233 -0.28285,0.0929 -0.41428,0.0901 -0.0369,-4.8e-4 -0.0882,-0.0278 -0.13398,-0.0425 -0.0344,0.24612 -0.0631,0.49499 -0.0849,0.74512 0.36914,0.0709 0.55966,0.56 0.88595,0.72188 0.0894,0.0443 0.2062,0.0467 0.32129,0.0723 0.0928,0.0206 0.16342,0.06 0.2529,0.0904 0.18986,0.0645 0.42238,0.0566 0.57424,0.12447 0.22881,0.10156 0.39658,0.53156 0.59335,0.6467 0.0116,0.11596 -0.0226,0.27171 0.0177,0.35816 0.0929,0.12613 0.2242,0.0983 0.37736,0.18047 0.1832,0.0989 0.23925,0.35404 0.41286,0.43202 0.0599,0.0266 0.21021,0.0229 0.30491,0.052 0.23792,0.0719 0.31559,0.34727 0.51954,0.28711 0.13375,-0.0396 0.1232,-0.17704 0.1449,-0.30489 0.0884,-0.0957 0.18485,-0.2475 0.32267,-0.2502 0.22303,-0.0116 0.24289,0.23046 0.324,0.44706 0.0457,0.12244 0.1656,0.22909 0.19689,0.35822 0.0555,0.22305 0.0279,0.89069 -0.0191,1.02401 -0.0561,0.16356 -0.27772,0.23293 -0.41426,0.41427 -0.0645,0.085 -0.0951,0.20958 -0.14356,0.26932 -0.0879,0.10715 -0.21858,0.13504 -0.28435,0.2338 -0.0373,0.0555 -0.0732,0.17499 -0.10944,0.25018 -0.1078,0.22842 -0.252,0.39026 -0.16135,0.66448 0.0381,0.11282 0.2142,0.18846 0.21466,0.32128 5e-4,0.15629 -0.33241,0.29622 -0.35818,0.46756 -0.0191,0.1275 0.10296,0.35503 0.14352,0.52091 0.0297,0.12537 0.26655,0.20372 0.34046,0.28712 0.126,0.14145 0.22667,0.34185 0.34176,0.51953 0.22762,0.34946 0.40597,0.77567 0.62758,1.11426 0.1171,0.17734 0.28154,0.3368 0.35954,0.52089 0.0401,0.0929 0.0344,0.20363 0.071,0.28711 0.12827,0.28953 0.69477,0.59182 0.9871,0.73555 0.13685,0.0667 0.28867,0.0902 0.41427,0.15995 0.19022,0.10607 0.56705,0.391 0.66308,0.55782 0.0856,0.14993 0.13887,0.51491 0.18046,0.75332 0.0556,0.31507 6.4e-4,0.55698 0.0177,0.89824 0.0116,0.18452 0.0705,0.37007 0.0724,0.55509 7e-4,0.0649 -0.0344,0.11294 -0.0371,0.17909 -1e-4,0.0108 0.004,0.0229 0.004,0.0341 1.76313,0.79793 3.71685,1.25237 5.78456,1.25237 0.37357,0 0.74275,-0.0193 1.10878,-0.048 0.016,-0.0275 0.0308,-0.0562 0.0507,-0.0818 0.0843,-0.1106 0.1591,-0.20746 0.21468,-0.30486 0.0529,-0.32774 -0.13072,-0.55667 -0.0534,-0.84356 0.0857,-0.32226 0.53127,-0.51907 0.84358,-0.66446 0.10737,-0.0495 0.21736,-0.13094 0.30486,-0.16132 0.21613,-0.0751 0.486,-0.0343 0.68359,-0.10662 0.3363,-0.12307 0.37144,-0.48384 0.5373,-0.79026 0.0781,-0.14508 0.18155,-0.29039 0.1969,-0.39372 0.0135,-0.0929 -0.0342,-0.18031 -0.019,-0.28986 0.0161,-0.10838 0.11351,-0.20216 0.14356,-0.3213 0.0396,-0.15546 0.0561,-0.38324 0.0561,-0.55642 0,-0.14217 -0.0667,-0.2669 -0.072,-0.39514 -0.0232,-0.46557 0.16817,-0.51767 0.34045,-0.77106 0.0864,-0.12587 0.11874,-0.26938 0.17908,-0.35959 0.28921,-0.43147 0.79099,-0.63977 0.75469,-1.292 -0.0116,-0.2158 -0.14747,-0.70355 -0.30625,-0.77243 -0.0909,-0.0397 -0.29924,-0.003 -0.43066,-0.0534 -0.42428,-0.15824 -0.67327,-0.68417 -1.11288,-0.71777 -0.0939,-0.0116 -0.18009,0.0387 -0.28575,0.0369 -0.17399,-0.0116 -0.43628,-0.1218 -0.62891,-0.14354 -0.12242,-0.0131 -0.28608,0.0365 -0.35957,0 -0.112,-0.0544 -0.12346,-0.26107 -0.21466,-0.32266 -0.0721,-0.0498 -0.21299,-0.0668 -0.32264,-0.10932 -0.17677,-0.0677 -0.31693,-0.1471 -0.5209,-0.1613 -0.063,-0.003 -0.14135,0.0299 -0.21465,0.0191 -0.11282,-0.0191 -0.20211,-0.15264 -0.30623,-0.21602 -0.13044,-0.0793 -0.25097,-0.11786 -0.30491,-0.23104 0.11785,-0.38664 -0.20784,-0.49439 -0.2871,-0.71778 -0.0381,-0.10468 -0.0203,-0.23065 -0.0534,-0.32403 -0.0467,-0.13375 -0.17905,-0.21105 -0.32404,-0.32264 -0.25972,-0.19992 -0.49013,-0.38762 -0.86131,-0.4334 -0.16321,-0.0206 -0.32511,0.0488 -0.52229,0.0369 -0.20891,-0.0131 -0.47123,-0.19598 -0.62751,-0.3746 -0.15193,-0.17441 -0.22584,-0.33092 -0.35822,-0.41427 -0.12535,-0.0803 -0.29175,-0.0783 -0.37734,-0.15997 -0.0385,-0.0358 -0.0313,-0.0966 -0.0723,-0.18047 -0.0631,-0.13055 -0.16888,-0.20313 -0.0901,-0.35955 -0.14304,-0.0735 -0.14699,0.1365 -0.30351,0.10932 -0.13954,-0.19805 -0.25741,-0.29187 -0.57424,-0.2338 -0.14507,0.0267 -0.22607,0.21012 -0.3951,0.21466 -0.13864,0.0116 -0.24755,-0.15446 -0.43066,-0.18047 -0.13824,-0.0191 -0.29537,0.0374 -0.39377,0.0187 -0.15319,-0.0306 -0.20048,-0.15817 -0.34044,-0.25018 -0.10263,-0.0676 -0.302,-0.1823 -0.35955,-0.18047 -0.18043,0.0116 -0.30899,0.3834 -0.5578,0.25157 -0.12092,-0.15325 0.19695,-0.234 0.0534,-0.37738 -0.10872,-0.10873 -0.20012,0.0493 -0.2871,0.10944 -0.0997,0.069 -0.19337,0.13696 -0.30353,0.17773 -0.24657,0.0923 -0.40067,0.0442 -0.59335,0.14355 -0.17842,0.0924 -0.18602,0.24705 -0.28711,0.43066 -0.0826,0.15042 -0.27092,0.36964 -0.3951,0.37871 -0.15046,0.0116 -0.29424,-0.21033 -0.43067,-0.26932 -0.41109,-0.17806 -0.61022,0.15811 -0.95155,0.16269 -0.3168,0.0116 -0.76927,-0.51155 -0.75332,-0.80938 0.003,-0.18173 0.10446,-0.45741 0.12574,-0.68222 0.0191,-0.17881 0.14152,-0.28659 0.14359,-0.44981 0.003,-0.21802 -0.28921,-0.38566 -0.43069,-0.41153 -0.33535,-0.0617 -0.80098,0.13494 -1.18533,-0.0191 -0.0734,-0.12167 0.086,-0.20571 0.12715,-0.32404 0.0233,-0.0674 0.01,-0.15706 0.0343,-0.23105 0.0429,-0.11433 0.16242,-0.20291 0.21602,-0.32402 0.04,-0.0924 0.0498,-0.22575 0.0901,-0.34042 0.0471,-0.1306 0.13346,-0.21468 0.14356,-0.30627 0.0131,-0.12091 -0.0325,-0.2607 -0.12716,-0.34042 z m 4.79884,3.79941 c 0.12167,0.0116 0.13691,0.26279 0.0127,0.28305 -0.13421,0.0207 -0.20246,-0.21055 -0.0722,-0.27075 0.0218,-0.0116 0.043,-0.0116 0.0601,-0.0108 l 0,-0.002 z"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/arrow-down.svg b/kstars/data/icons/breeze/default/arrow-down.svg
new file mode 100755
index 0000000..5224ea3
--- /dev/null
+++ b/kstars/data/icons/breeze/default/arrow-down.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" viewBox="0 0 21.999999 22" sodipodi:docname="arrow-down.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16" inkscape:cx="12.79404" inkscape:cy="11.535297" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" units="px" width="24px" showguides="true">
+ <inkscape:grid type="xygrid" id="grid4081"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4143"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,3.9999995" id="guide4145"/>
+ <sodipodi:guide position="5.9999995,20.000017" orientation="0,-3.9999995" id="guide4149"/>
+ <sodipodi:guide position="15.999999,2.0000174" orientation="0,4.0000019" id="guide4153"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4155"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-4.0000019" id="guide4157"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4278"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4280"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4282"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4284"/>
+ <sodipodi:guide position="3,4.0000174" orientation="1,0" id="guide4290"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4292"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-1,0" id="guide4294"/>
+ <sodipodi:guide position="3,19.000262" orientation="1,0" id="guide4298"/>
+ <sodipodi:guide position="19,18.000262" orientation="-1,0" id="guide4302"/>
+ <sodipodi:guide position="19,19.000262" orientation="0,-16" id="guide4304"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4132"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,4.0000005" id="guide4134"/>
+ <sodipodi:guide position="7.0000005,3.0000174" orientation="-16,0" id="guide4136"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="0,-4.0000005" id="guide4138"/>
+ <sodipodi:guide position="15.000001,3.0000174" orientation="0,4" id="guide4142"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4144"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-4" id="guide4146"/>
+ <sodipodi:guide position="7.0000005,11.000506" orientation="8,0" id="guide4158"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,8" id="guide4160"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="15.999512,0" id="guide4168"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,0.99999952" id="guide4170"/>
+ <sodipodi:guide position="8,19.000017" orientation="0,-0.99999952" id="guide4174"/>
+ <sodipodi:guide position="14,3.0000174" orientation="0,1.000001" id="guide4323"/>
+ <sodipodi:guide position="15.000001,19.000262" orientation="0,-1.000001" id="guide4327"/>
+ <sodipodi:guide position="9.832082,8.8750918" orientation="0.70710678,-0.70710678" id="guide4193"/>
+ <sodipodi:guide position="9.1249753,8.167985" orientation="-6.1249931,-6.1249931" id="guide4195"/>
+ <sodipodi:guide position="2.9999822,14.292978" orientation="-0.70710678,0.70710678" id="guide4197"/>
+ <sodipodi:guide position="3.7070889,15.000085" orientation="6.1249931,6.1249931" id="guide4199"/>
+ <sodipodi:guide position="12.167899,8.8750918" orientation="0.70710678,0.70710678" id="guide4201"/>
+ <sodipodi:guide position="12.875006,8.167985" orientation="-6.1249931,6.1249931" id="guide4203"/>
+ <sodipodi:guide position="18.999999,14.292978" orientation="-0.70710678,-0.70710678" id="guide4205"/>
+ <sodipodi:guide position="18.292893,15.000085" orientation="6.1249931,-6.1249931" id="guide4207"/>
+ <sodipodi:guide position="9.1249915,8.1682" orientation="-0.7071,0.7071" id="guide4209"/>
+ <sodipodi:guide position="9.8320915,8.8753" orientation="1.1681,1.1682" id="guide4211"/>
+ <sodipodi:guide position="11.000292,7.7072" orientation="-1.1681,1.168099" id="guide4213"/>
+ <sodipodi:guide position="12.168391,8.8753" orientation="0.7071,0.7071" id="guide4215"/>
+ <sodipodi:guide position="12.875491,8.1682" orientation="1.8752,-1.875199" id="guide4217"/>
+ <sodipodi:guide position="11.000292,6.293" orientation="-1.8752,-1.8753" id="guide4219"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3.7070312 7 L 3 7.7070312 L 9.125 13.832031 L 11 15.707031 L 12.875 13.832031 L 19 7.7070312 L 18.292969 7 L 12.167969 13.125 L 11 14.292969 L 9.8320312 13.125 L 3.7070312 7 z " transform="translate(-5e-7,1030.3622)" id="rect4176" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/arrow-left-double.svg b/kstars/data/icons/breeze/default/arrow-left-double.svg
new file mode 100755
index 0000000..3ba3487
--- /dev/null
+++ b/kstars/data/icons/breeze/default/arrow-left-double.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg4359" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="arrow-left-double.svg">
+ <defs id="defs4361">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="21.696772" inkscape:cx="-0.02701332" inkscape:cy="12.984675" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="1920" inkscape:window-height="1021" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4107"/>
+ <sodipodi:guide position="2,20" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="3,19" orientation="16,0" id="guide4121"/>
+ <sodipodi:guide position="3,3" orientation="0,16" id="guide4123"/>
+ <sodipodi:guide position="19,3" orientation="-16,0" id="guide4125"/>
+ <sodipodi:guide position="19,19" orientation="0,-16" id="guide4127"/>
+ </sodipodi:namedview>
+ <metadata id="metadata4364">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,-26)">
+ <g id="g4145" transform="matrix(0,1,1,0,-26,26)">
+ <g inkscape:label="Capa 1" id="layer1-6" transform="matrix(1,0,0,-1,5e-7,1080.3622)">
+ <path inkscape:connector-curvature="0" style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3.7070312,7 3,7.7070312 l 6.125,6.1249998 1.875,1.875 1.875,-1.875 L 19,7.7070312 18.292969,7 12.167969,13.125 11,14.292969 9.8320312,13.125 3.7070312,7 Z" transform="translate(-5e-7,1030.3622)" id="rect4176" class="ColorScheme-Text"/>
+ </g>
+ <rect transform="scale(1,-1)" y="-32" x="3" height="1" width="16" id="rect4186" style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" class="ColorScheme-Text"/>
+ </g>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/arrow-left.svg b/kstars/data/icons/breeze/default/arrow-left.svg
new file mode 100755
index 0000000..ab02e31
--- /dev/null
+++ b/kstars/data/icons/breeze/default/arrow-left.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" viewBox="0 0 21.999999 22" sodipodi:docname="back.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="11.313709" inkscape:cx="2.4197483" inkscape:cy="15.315842" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" units="px" width="24px" showguides="true">
+ <inkscape:grid type="xygrid" id="grid4081"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4143"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,3.9999995" id="guide4145"/>
+ <sodipodi:guide position="5.9999995,20.000017" orientation="0,-3.9999995" id="guide4149"/>
+ <sodipodi:guide position="15.999999,2.0000174" orientation="0,4.0000019" id="guide4153"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4155"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-4.0000019" id="guide4157"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4278"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4280"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4282"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4284"/>
+ <sodipodi:guide position="3,4.0000174" orientation="1,0" id="guide4290"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4292"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-1,0" id="guide4294"/>
+ <sodipodi:guide position="3,19.000262" orientation="1,0" id="guide4298"/>
+ <sodipodi:guide position="19,18.000262" orientation="-1,0" id="guide4302"/>
+ <sodipodi:guide position="19,19.000262" orientation="0,-16" id="guide4304"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4132"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,4.0000005" id="guide4134"/>
+ <sodipodi:guide position="7.0000005,3.0000174" orientation="-16,0" id="guide4136"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="0,-4.0000005" id="guide4138"/>
+ <sodipodi:guide position="15.000001,19.000017" orientation="16,0" id="guide4140"/>
+ <sodipodi:guide position="15.000001,3.0000174" orientation="0,4" id="guide4142"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4144"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-4" id="guide4146"/>
+ <sodipodi:guide position="7.0000005,11.000506" orientation="8,0" id="guide4158"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,8" id="guide4160"/>
+ <sodipodi:guide position="15.000001,3.0005057" orientation="-8,0" id="guide4162"/>
+ <sodipodi:guide position="15.000001,11.000506" orientation="0,-8" id="guide4164"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="15.999512,0" id="guide4168"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,0.99999952" id="guide4170"/>
+ <sodipodi:guide position="8,3.0005057" orientation="-15.999512,0" id="guide4172"/>
+ <sodipodi:guide position="8,19.000017" orientation="0,-0.99999952" id="guide4174"/>
+ <sodipodi:guide position="8.875002,9.8320856" orientation="0.70710678,-0.70710678" id="guide4208"/>
+ <sodipodi:guide position="8.1678952,9.1249788" orientation="6.1249931,6.1249931" id="guide4210"/>
+ <sodipodi:guide position="14.292888,2.9999857" orientation="-0.70710678,0.70710678" id="guide4212"/>
+ <sodipodi:guide position="14.999995,3.7070925" orientation="-6.1249931,-6.1249931" id="guide4214"/>
+ <sodipodi:guide position="8.875002,12.168421" orientation="-0.70710678,-0.70710678" id="guide4216"/>
+ <sodipodi:guide position="8.1678952,12.875528" orientation="-6.1249931,6.1249931" id="guide4218"/>
+ <sodipodi:guide position="14.292888,19.000521" orientation="0.70710678,0.70710678" id="guide4220"/>
+ <sodipodi:guide position="14.999995,18.293414" orientation="6.1249931,-6.1249931" id="guide4222"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 14.292969 3 L 8.1679688 9.125 L 6.2929688 11 L 8.1679688 12.875 L 14.292969 19 L 15 18.292969 L 8.875 12.167969 L 7.7070312 11 L 8.875 9.8320312 L 15 3.7070312 L 14.292969 3 z " transform="translate(-5e-7,1030.3622)" id="rect4176" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/arrow-right-double.svg b/kstars/data/icons/breeze/default/arrow-right-double.svg
new file mode 100755
index 0000000..e35e9f4
--- /dev/null
+++ b/kstars/data/icons/breeze/default/arrow-right-double.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg4359" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="arrow-right-double.svg">
+ <defs id="defs4361">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="21.696772" inkscape:cx="-0.02701332" inkscape:cy="12.984675" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" inkscape:window-width="1920" inkscape:window-height="1021" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4107"/>
+ <sodipodi:guide position="2,20" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="3,19" orientation="16,0" id="guide4121"/>
+ <sodipodi:guide position="3,3" orientation="0,16" id="guide4123"/>
+ <sodipodi:guide position="19,3" orientation="-16,0" id="guide4125"/>
+ <sodipodi:guide position="19,19" orientation="0,-16" id="guide4127"/>
+ </sodipodi:namedview>
+ <metadata id="metadata4364">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,-26)">
+ <g id="g4145" transform="matrix(0,1,-1,0,48,26)">
+ <g inkscape:label="Capa 1" id="layer1-6" transform="matrix(1,0,0,-1,5e-7,1080.3622)">
+ <path inkscape:connector-curvature="0" style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3.7070312,7 3,7.7070312 l 6.125,6.1249998 1.875,1.875 1.875,-1.875 L 19,7.7070312 18.292969,7 12.167969,13.125 11,14.292969 9.8320312,13.125 3.7070312,7 Z" transform="translate(-5e-7,1030.3622)" id="rect4176" class="ColorScheme-Text"/>
+ </g>
+ <rect transform="scale(1,-1)" y="-32" x="3" height="1" width="16" id="rect4186" style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" class="ColorScheme-Text"/>
+ </g>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/arrow-right.svg b/kstars/data/icons/breeze/default/arrow-right.svg
new file mode 100755
index 0000000..2cf7b12
--- /dev/null
+++ b/kstars/data/icons/breeze/default/arrow-right.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" viewBox="0 0 21.999999 22" sodipodi:docname="arrow-right.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" inkscape:cx="3.7327951" inkscape:cy="11.666016" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" units="px" width="24px" showguides="true">
+ <inkscape:grid type="xygrid" id="grid4081"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4143"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,3.9999995" id="guide4145"/>
+ <sodipodi:guide position="5.9999995,20.000017" orientation="0,-3.9999995" id="guide4149"/>
+ <sodipodi:guide position="15.999999,2.0000174" orientation="0,4.0000019" id="guide4153"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4155"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-4.0000019" id="guide4157"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4278"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4280"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4282"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4284"/>
+ <sodipodi:guide position="3,4.0000174" orientation="1,0" id="guide4290"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4292"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-1,0" id="guide4294"/>
+ <sodipodi:guide position="3,19.000262" orientation="1,0" id="guide4298"/>
+ <sodipodi:guide position="19,18.000262" orientation="-1,0" id="guide4302"/>
+ <sodipodi:guide position="19,19.000262" orientation="0,-16" id="guide4304"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4132"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,4.0000005" id="guide4134"/>
+ <sodipodi:guide position="7.0000005,3.0000174" orientation="-16,0" id="guide4136"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="0,-4.0000005" id="guide4138"/>
+ <sodipodi:guide position="15.000001,19.000017" orientation="16,0" id="guide4140"/>
+ <sodipodi:guide position="15.000001,3.0000174" orientation="0,4" id="guide4142"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4144"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-4" id="guide4146"/>
+ <sodipodi:guide position="7.0000005,11.000506" orientation="8,0" id="guide4158"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,8" id="guide4160"/>
+ <sodipodi:guide position="15.000001,3.0005057" orientation="-8,0" id="guide4162"/>
+ <sodipodi:guide position="15.000001,11.000506" orientation="0,-8" id="guide4164"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="15.999512,0" id="guide4168"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,0.99999952" id="guide4170"/>
+ <sodipodi:guide position="8,19.000017" orientation="0,-0.99999952" id="guide4174"/>
+ <sodipodi:guide position="14,19.000262" orientation="16.000244,0" id="guide4321"/>
+ <sodipodi:guide position="14,3.0000174" orientation="0,1.000001" id="guide4323"/>
+ <sodipodi:guide position="15.000001,3.0000174" orientation="-16.000244,0" id="guide4325"/>
+ <sodipodi:guide position="15.000001,19.000262" orientation="0,-1.000001" id="guide4327"/>
+ <sodipodi:guide position="13.12498,9.8320856" orientation="0.70710678,0.70710678" id="guide4335"/>
+ <sodipodi:guide position="13.832086,9.1249788" orientation="6.1249931,-6.1249931" id="guide4337"/>
+ <sodipodi:guide position="7.7070932,2.9999857" orientation="-0.70710678,-0.70710678" id="guide4339"/>
+ <sodipodi:guide position="6.9999865,3.7070925" orientation="-6.1249931,6.1249931" id="guide4341"/>
+ <sodipodi:guide position="13.12498,12.167903" orientation="-0.70710678,0.70710678" id="guide4343"/>
+ <sodipodi:guide position="13.832086,12.87501" orientation="-6.1249931,-6.1249931" id="guide4345"/>
+ <sodipodi:guide position="7.7070932,19.000003" orientation="0.70710678,-0.70710678" id="guide4347"/>
+ <sodipodi:guide position="6.9999865,18.292896" orientation="6.1249931,6.1249931" id="guide4349"/>
+ <sodipodi:guide position="13.831826,9.125" orientation="-0.7071,-0.707107" id="guide4351"/>
+ <sodipodi:guide position="13.124719,9.8321" orientation="-1.1682,1.168168" id="guide4353"/>
+ <sodipodi:guide position="14.292886,11.0003" orientation="-1.1681,-1.168168" id="guide4355"/>
+ <sodipodi:guide position="13.124719,12.1684" orientation="-0.7071,0.707107" id="guide4357"/>
+ <sodipodi:guide position="13.831826,12.8755" orientation="1.8752,1.875274" id="guide4359"/>
+ <sodipodi:guide position="15.707099,11.0003" orientation="1.8753,-1.875274" id="guide4361"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 7.7070312 3 L 7 3.7070312 L 13.125 9.8320312 L 14.292969 11 L 13.125 12.167969 L 7 18.292969 L 7.7070312 19 L 13.832031 12.875 L 15.707031 11 L 13.832031 9.125 L 7.7070312 3 z " transform="translate(-5e-7,1030.3622)" id="rect4176" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/arrow-up.svg b/kstars/data/icons/breeze/default/arrow-up.svg
new file mode 100755
index 0000000..a4dceb0
--- /dev/null
+++ b/kstars/data/icons/breeze/default/arrow-up.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" viewBox="0 0 21.999999 22" sodipodi:docname="arrow-up.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" inkscape:cx="6.1436703" inkscape:cy="10.33508" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" units="px" width="24px" showguides="true">
+ <inkscape:grid type="xygrid" id="grid4081"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4143"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,3.9999995" id="guide4145"/>
+ <sodipodi:guide position="5.9999995,20.000017" orientation="0,-3.9999995" id="guide4149"/>
+ <sodipodi:guide position="15.999999,2.0000174" orientation="0,4.0000019" id="guide4153"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4155"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-4.0000019" id="guide4157"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4278"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4280"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4282"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4284"/>
+ <sodipodi:guide position="3,4.0000174" orientation="1,0" id="guide4290"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4292"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-1,0" id="guide4294"/>
+ <sodipodi:guide position="3,19.000262" orientation="1,0" id="guide4298"/>
+ <sodipodi:guide position="19,18.000262" orientation="-1,0" id="guide4302"/>
+ <sodipodi:guide position="19,19.000262" orientation="0,-16" id="guide4304"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4132"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,4.0000005" id="guide4134"/>
+ <sodipodi:guide position="7.0000005,19.000017" orientation="0,-4.0000005" id="guide4138"/>
+ <sodipodi:guide position="15.000001,3.0000174" orientation="0,4" id="guide4142"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4144"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-4" id="guide4146"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,8" id="guide4160"/>
+ <sodipodi:guide position="7.0000005,3.0005057" orientation="0,0.99999952" id="guide4170"/>
+ <sodipodi:guide position="8,19.000017" orientation="0,-0.99999952" id="guide4174"/>
+ <sodipodi:guide position="14,3.0000174" orientation="0,1.000001" id="guide4323"/>
+ <sodipodi:guide position="15.000001,19.000262" orientation="0,-1.000001" id="guide4327"/>
+ <sodipodi:guide position="3.7070312,8" orientation="-0.707,-0.7070312" id="guide4154"/>
+ <sodipodi:guide position="3,8.707" orientation="-6.125,6.125" id="guide4156"/>
+ <sodipodi:guide position="9.125,14.832" orientation="-1.875,1.8750005" id="guide4159"/>
+ <sodipodi:guide position="11.000001,16.707" orientation="1.875,1.875" id="guide4161"/>
+ <sodipodi:guide position="12.875001,14.832" orientation="6.125,6.125" id="guide4163"/>
+ <sodipodi:guide position="19,8.707" orientation="0.707,-0.707032" id="guide4165"/>
+ <sodipodi:guide position="18.292969,8" orientation="-6.125,-6.125" id="guide4167"/>
+ <sodipodi:guide position="12.167968,14.125" orientation="-1.168,-1.167968" id="guide4169"/>
+ <sodipodi:guide position="11,15.293" orientation="1.168,-1.1679693" id="guide4171"/>
+ <sodipodi:guide position="9.8320312,14.125" orientation="6.125,-6.125" id="guide4173"/>
+ <sodipodi:guide position="3.7070312,8" orientation="0,8.8817842e-16" id="guide4175"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" d="m 3.7070307,1044.3622 -0.7070312,-0.707 6.125,-6.125 1.8750005,-1.875 1.875,1.875 6.125,6.125 -0.707032,0.707 -6.125,-6.125 -1.167968,-1.168 -1.1679693,1.168 -6.125,6.125 z" id="rect4176" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/chronometer.svg b/kstars/data/icons/breeze/default/chronometer.svg
new file mode 100644
index 0000000..ecf7296
--- /dev/null
+++ b/kstars/data/icons/breeze/default/chronometer.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 4 C 10.892002 4 10 4.892002 10 6 C 10 6.097284 10.011721 6.1920363 10.025391 6.2851562 C 7.1157436 7.1341513 5 9.808893 5 13 C 5 16.878 8.122 20 12 20 C 15.878 20 19 16.878 19 13 C 19 11.413699 18.47267 9.9584804 17.589844 8.7871094 C 17.832877 8.6050134 18 8.328399 18 8 C 18 7.446 17.554 7 17 7 C 16.671601 7 16.394987 7.1671232 16.212891 7.4101562 C 15.548742 6.9096073 14.794688 6.5244442 13.974609 6.2851562 C 13.988279 6.1920363 14 6.097283 14 6 C 14 4.892002 13.107998 4 12 4 z M 12 5 C 12.554004 5 13 5.445996 13 6 C 13 6.027034 12.986465 6.0496909 12.984375 6.0761719 C 12.661843 6.0310029 12.335376 6 12 6 C 11.664624 6 11.338163 6.0310029 11.015625 6.0761719 C 11.01354 6.0496909 11 6.027034 11 6 C 11 5.445996 11.445996 5 12 5 z M 12 7 C 12.25958 7 12.513703 7.0193204 12.763672 7.0527344 C 12.798432 7.0571244 12.832622 7.0633854 12.867188 7.0683594 C 13.109281 7.1050284 13.347739 7.1538399 13.580078 7.2167969 C 16.131022 7.9080249 18 10.224417 18 13 C 18 16.324 15.324 19 12 19 C 8.676 19 6 16.324 6 13 C 6 10.224416 7.8689779 7.9080249 10.419922 7.2167969 C 10.652262 7.1538399 10.890719 7.1050294 11.132812 7.0683594 C 11.167383 7.0633894 11.201572 7.0571204 11.236328 7.0527344 C 11.486297 7.0193204 11.74042 7 12 7 z M 12 8 L 12 12 C 12.554 12 13 12.446 13 13 L 17 13 C 17 10.23 14.77 8 12 8 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/clock.svg b/kstars/data/icons/breeze/default/clock.svg
new file mode 100755
index 0000000..ac88b72
--- /dev/null
+++ b/kstars/data/icons/breeze/default/clock.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3813" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="appointment.svg">
+ <defs id="defs3815">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627417" inkscape:cx="7.3193781" inkscape:cy="12.2051" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4109"/>
+ <sodipodi:guide position="2.0000072,19.999993" orientation="18,0" id="guide4115"/>
+ <sodipodi:guide position="2.0000072,1.9999929" orientation="0,18" id="guide4117"/>
+ <sodipodi:guide position="20.000007,1.9999929" orientation="-18,0" id="guide4119"/>
+ <sodipodi:guide position="20.000007,19.999993" orientation="0,-18" id="guide4121"/>
+ <sodipodi:guide position="3.0000072,18.999993" orientation="16,0" id="guide4123"/>
+ <sodipodi:guide position="3.0000072,2.9999929" orientation="0,16" id="guide4125"/>
+ <sodipodi:guide position="19.000007,2.9999929" orientation="-16,0" id="guide4127"/>
+ <sodipodi:guide position="19.000007,18.999993" orientation="0,-16" id="guide4129"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3818">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-378.85714,-540.07647)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 11 3 C 6.5680018 3 3 6.5680018 3 11 C 3 15.431998 6.5680018 19 11 19 C 15.431998 19 19 15.431998 19 11 C 19 6.5680018 15.431998 3 11 3 z M 11 4 C 14.877999 4 18 7.1220013 18 11 C 18 14.877999 14.877999 18 11 18 C 7.1220013 18 4 14.877999 4 11 C 4 7.1220013 7.1220013 4 11 4 z M 10 5 L 10 12 L 11 12 L 16 12 L 16 11 L 11 11 L 11 5 L 10 5 z " transform="translate(378.85714,540.07647)" id="rect4131" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/computer.svg b/kstars/data/icons/breeze/default/computer.svg
new file mode 100644
index 0000000..f5df857
--- /dev/null
+++ b/kstars/data/icons/breeze/default/computer.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="64" version="1.1" xmlns="http://www.w3.org/2000/svg" height="64" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <defs id="defs5455">
+ <linearGradient inkscape:collect="always" id="linearGradient4159">
+ <stop style="stop-color:#2a2c2f" id="stop4161"/>
+ <stop offset="1" style="stop-color:#424649" id="stop4163"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4250" xlink:href="#linearGradient4159" y1="536.79797" y2="503.798" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.0833331 0 0 1.0909092 -34.04753 -49.799908)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4272" xlink:href="#linearGradient4303" y1="547.79797" y2="536.79797" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.1666674 0 0 1.0909092 -68.09551 -49.799906)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4303">
+ <stop style="stop-color:#c6cdd1" id="stop4305"/>
+ <stop offset="1" style="stop-color:#e0e5e7" id="stop4307"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4591">
+ <stop style="stop-color:#7e8f9e" id="stop4593"/>
+ <stop offset="1" style="stop-color:#84ced5" id="stop4595"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4597-5" xlink:href="#linearGradient4591" y1="541.79797" y2="489.798" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.0871079 0 0 1.1000002 -44.37026 -47.979912)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4681" xlink:href="#linearGradient4675" y1="535.79797" y2="522.79797" x1="394.57144" gradientUnits="userSpaceOnUse" x2="404.57144" gradientTransform="matrix(1.0999997 0 0 1.1428564 -49.45702 -70.68505)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4675">
+ <stop style="stop-color:#e4a56d" id="stop4677"/>
+ <stop offset="1" style="stop-color:#a7bd78" id="stop4679"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4689" xlink:href="#linearGradient4683" x1="404.57144" gradientUnits="userSpaceOnUse" x2="421.57144" gradientTransform="matrix(1.0795244 0 0 1.1428567 -41.17329 -70.68516)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4683">
+ <stop style="stop-color:#c3a278" id="stop4685"/>
+ <stop offset="1" style="stop-color:#6688aa" id="stop4687"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4728" xlink:href="#linearGradient4722" y1="536.79797" y2="524.79797" x1="430.57144" gradientUnits="userSpaceOnUse" x2="437.49963" gradientTransform="matrix(1.1078085 0 0 1.1428564 -53.44897 -70.68506)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4722">
+ <stop style="stop-color:#6588af" id="stop4724"/>
+ <stop offset="1" style="stop-color:#8ba8cd" id="stop4726"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4840" xlink:href="#linearGradient4834" x1="421.57144" gradientUnits="userSpaceOnUse" x2="438.57144" gradientTransform="matrix(1.0489857 0 0 1.1000002 -27.650967 -47.979911)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4834">
+ <stop style="stop-color:#89ad8b" id="stop4836"/>
+ <stop offset="1" style="stop-color:#82b3c7" id="stop4838"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4784" xlink:href="#linearGradient4778" y1="525.79797" y2="513.79797" x1="387.57144" gradientUnits="userSpaceOnUse" x2="401.57144" gradientTransform="matrix(1.0999997 0 0 1.2751426 -49.45702 -137.41797)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4778">
+ <stop style="stop-color:#e1b16f" id="stop4780"/>
+ <stop offset="1" style="stop-color:#99bf83" id="stop4782"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4792" xlink:href="#linearGradient4786" y1="510.798" y2="498.798" x1="404.57144" gradientUnits="userSpaceOnUse" x2="391.57144" gradientTransform="matrix(1.0999997 0 0 1.1000002 -49.45702 -47.979912)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4786">
+ <stop style="stop-color:#99c487" id="stop4788"/>
+ <stop offset="1" style="stop-color:#b4d99e" id="stop4790"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4808" xlink:href="#linearGradient4802" y1="501.798" y2="501.61618" x1="404.57144" gradientUnits="userSpaceOnUse" x2="421.57144" gradientTransform="matrix(1.1176469 0 0 1.1000002 -56.59659 -47.979912)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4802">
+ <stop style="stop-color:#75d5c7" id="stop4804"/>
+ <stop offset="1" style="stop-color:#66afb9" id="stop4806"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4776" xlink:href="#linearGradient4770" y1="495.798" y2="504.798" x1="428.57144" gradientUnits="userSpaceOnUse" x2="438.57144" gradientTransform="matrix(1.0489851 0 0 1.062501 -27.650709 -29.23788)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4770">
+ <stop style="stop-color:#5c7b9e" id="stop4772"/>
+ <stop offset="1" style="stop-color:#839dc0" id="stop4774"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4816" xlink:href="#linearGradient4810" x1="421.57144" gradientUnits="userSpaceOnUse" x2="406.57144" gradientTransform="matrix(1.0871079 0 0 1.1000002 -44.37026 -47.979912)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4810">
+ <stop style="stop-color:#7fbcc6" id="stop4812"/>
+ <stop offset="1" style="stop-color:#8ee4e3" id="stop4814"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4824" xlink:href="#linearGradient4818" x1="421.57144" gradientUnits="userSpaceOnUse" x2="436.57144" gradientTransform="matrix(1.0871079 0 0 1.1000002 -44.37026 -47.979912)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4818">
+ <stop style="stop-color:#84d5d7" id="stop4820"/>
+ <stop offset="1" style="stop-color:#84a8ba" id="stop4822"/>
+ </linearGradient>
+ </defs>
+ <metadata id="metadata5458"/>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1 0 0 1 -376.57144 -491.79797)">
+ <path inkscape:connector-curvature="0" style="stroke-opacity:0.550265;fill:url(#linearGradient4272);stroke-width:2.8" id="rect4254" d="m 401.57143,535.79797 0,7.63636 0,2.18182 0,2.18182 14,0 0,-2.18182 0,-2.18182 0,-7.63636 z"/>
+ <rect width="51.999989" x="382.57144" y="499.79797" height="39.27273" style="stroke-opacity:0.550265;fill:url(#linearGradient4250);stroke-width:2.8" id="rect4173"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4597-5)" id="path4589-5" d="m 384.57143,501.79798 0,33 47.83274,0 0,-33 -47.83274,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4681);fill-rule:evenodd" id="path4476-9" d="m 395.57143,518.79799 -11,9.41072 0,6.58927 11,0 0,-15.99999 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4689);fill-rule:evenodd" id="path4478-4" d="m 395.57143,519.798 0,14.99998 18.35191,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4728);fill-rule:evenodd" id="path4488-0-8" d="m 432.57143,518.79799 -19,15.99999 19,10e-6 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4840);fill-rule:evenodd" id="path4188-3" d="m 414.57143,528.19798 0,-24.39999 18,15 -18,15.99999 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4784);fill-rule:evenodd" id="path4192-6" d="m 384.57143,509.79799 0,21.00001 11,-11 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4792);fill-rule:evenodd" id="path4198-3" d="m 384.57143,501.79798 0,8.54219 11,9.45783 0,-7.00002 0,-11 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4808);fill-rule:evenodd" id="path4200-1" d="m 395.57143,501.79798 0,11 0,7.00002 19,-16.00001 -3,-2 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4776);fill-rule:evenodd" id="path4202-1" d="m 417.12013,501.79798 -2.5487,2.00001 18,15 0,-6 0,-11 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4816);fill-rule:evenodd" id="path4206-9-2" d="m 411.57143,501.79799 3,2 0,-2 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4824);fill-rule:evenodd" id="path4208-1-1" d="m 414.57143,501.79799 0,2 3,-2 z"/>
+ <rect width="23.999969" x="396.57144" y="546.79797" height="1.00002" style="stroke-opacity:0.550265;fill:#99a1a7;stroke-width:2.8" id="rect4295"/>
+ <g id="g4392">
+ <rect width="47.999989" x="384.57144" y="530.79797" height="3.999983" style="fill:#ffffff;fill-opacity:0.784314" id="rect4267"/>
+ <circle cx="429.57144" cy="532.79791" style="fill:#4d4d4d" r="1" id="path4166"/>
+ <path inkscape:connector-curvature="0" style="fill:#4d4d4d" id="rect4183" d="m 386.57143,531.79799 0,1 1,0 0,-1 z m 1,1 0,1 1,0 0,-1 z"/>
+ </g>
+ <g id="g4383">
+ <rect width="19.999987" x="386.57144" y="503.798" height="16.999994" style="fill:#ffffff;fill-opacity:0.784314" id="rect3432"/>
+ <path inkscape:connector-curvature="0" style="fill:#3580ca" id="rect4160" d="m 387.57143,504.79799 0,4 4.16667,0 0,-3 -1.04167,0 -1.04166,-1 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#ff9955" id="rect4235" d="m 395.57143,504.79799 0,5 4,0 0,-3 -2,-2 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#d45500;fill-rule:evenodd" id="path4237" d="m 397.57143,504.79799 2,2 -2,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#7aabdc" id="rect4272" d="m 387.57143,505.79799 5,0 0,4 -5,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#71c837" id="path4275" d="m 401.57143,504.79799 0,5 4,0 0,-3 -2,-2 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#447821;fill-rule:evenodd" id="path4277" d="m 403.57143,504.79799 2,2 -2,0 z"/>
+ </g>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/crosshairs.svg b/kstars/data/icons/breeze/default/crosshairs.svg
new file mode 100644
index 0000000..2ecfb4d
--- /dev/null
+++ b/kstars/data/icons/breeze/default/crosshairs.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 10.5 2 L 10.5 4.0253906 A 7 7 0 0 0 4.0175781 10.5 L 2 10.5 L 2 11.5 L 4.0253906 11.5 A 7 7 0 0 0 10.5 17.982422 L 10.5 20 L 11.5 20 L 11.5 17.974609 A 7 7 0 0 0 17.982422 11.5 L 20 11.5 L 20 10.5 L 17.974609 10.5 A 7 7 0 0 0 11.5 4.0175781 L 11.5 2 L 10.5 2 z M 10.5 5.0253906 L 10.5 7.0351562 A 4 4 0 0 0 7.0371094 10.5 L 5.0253906 10.5 A 6 6 0 0 1 10.5 5.0253906 z M 11.5 5.0253906 A 6 6 0 0 1 16.974609 10.5 L 14.964844 10.5 A 4 4 0 0 0 11.5 7.0371094 L 11.5 5.0253906 z M 10.5 8.0410156 L 10.5 10.5 L 8.046875 10.5 A 3 3 0 0 1 10.5 8.0410156 z M 11.5 8.046875 A 3 3 0 0 1 13.958984 10.5 L 11.5 10.5 L 11.5 8.046875 z M 5.0253906 11.5 L 7.0351562 11.5 A 4 4 0 0 0 10.5 14.962891 L 10.5 16.974609 A 6 6 0 0 1 5.0253906 11.5 z M 8.0410156 11.5 L 10.5 11.5 L 10.5 13.953125 A 3 3 0 0 1 8.0410156 11.5 z M 11.5 11.5 L 13.953125 11.5 A 3 3 0 0 1 11.5 13.958984 L 11.5 11.5 z M 14.962891 11.5 L 16.974609 11.5 A 6 6 0 0 1 11.5 16.974609 L 11.5 14.964844 A 4 4 0 0 0 14.962891 11.5 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/dialog-cancel.svg b/kstars/data/icons/breeze/default/dialog-cancel.svg
new file mode 100644
index 0000000..ad9224c
--- /dev/null
+++ b/kstars/data/icons/breeze/default/dialog-cancel.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M16 4A12 12 0 0 0 7.886719 7.179688L7.885 7.178A12 12 0 0 0 7.847656 7.214844 12 12 0 0 0 4 16 12 12 0 0 0 16 28 12 12 0 0 0 24.11328 24.820312L24.12 24.822A12 12 0 0 0 24.15234 24.785156 12 12 0 0 0 28 16 12 12 0 0 0 16 4M16 5A11 11 0 0 1 27 16 11 11 0 0 1 24.11523 23.408203L8.592 7.885A11 11 0 0 1 16 5M7.885 8.592L23.408 24.12A11 11 0 0 1 16 27 11 11 0 0 1 5 16 11 11 0 0 1 7.884766 8.591797"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/dialog-ok-apply.svg b/kstars/data/icons/breeze/default/dialog-ok-apply.svg
new file mode 100644
index 0000000..5abb68d
--- /dev/null
+++ b/kstars/data/icons/breeze/default/dialog-ok-apply.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m25.15 7l-11.627 16.626-6.955-4.529c.025-.101-.571.817-.571.817-.017.024 5.248 3.41 7.803 5.085l.002-.002.002.002 12.193-17.446z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-edit.svg b/kstars/data/icons/breeze/default/document-edit.svg
new file mode 100644
index 0000000..e1eb366
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-edit.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m22.27 4l-18.27 18.27v5.73h5.73c0 0 18.269-18.269 18.27-18.27zm-2.865 4.299l4.297 4.297-11.701 11.703v-2.299h-4v-2.299zm-12.404 12.402v2.299h4v2.299l-1.701 1.701h-2l-2.297-2.297v-2z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-encrypt.svg b/kstars/data/icons/breeze/default/document-encrypt.svg
new file mode 100755
index 0000000..8795525
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-encrypt.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="document-encrypt.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.95535" inkscape:cx="12.773423" inkscape:cy="11.454379" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4114"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4120"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4122"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4124"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4126"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4128"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4130"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4132"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4134"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 11 3 C 8.784 3 7 4.784 7 7 L 7 11 L 5 11 L 5 12 L 5 19 L 6 19 L 16 19 L 17 19 L 17 11 L 16 11 L 15 11 L 15 7 C 15 4.784 13.216 3 11 3 z M 11 4 C 12.662 4 14 5.561 14 7.5 L 14 11 L 8 11 L 8 7.5 C 8 5.561 9.338 4 11 4 z M 6 12 L 16 12 L 16 18 L 6 18 L 6 12 z " transform="translate(0,1030.3622)" id="rect4136" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-export.svg b/kstars/data/icons/breeze/default/document-export.svg
new file mode 100644
index 0000000..b0a84f7
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-export.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 6 4 L 6 22.5 L 5.9960938 22.5 L 5.9960938 23.5 L 14.085938 23.5 L 10.292969 27.292969 L 11 28 L 16 23 L 15 22 L 11 18 L 10.292969 18.707031 L 14.085938 22.5 L 7 22.5 L 7 5 L 25 5 L 25 27 L 16 27 L 16 28 L 26 28 L 26 4 L 6 4 z "
+ id="path36"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-new.svg b/kstars/data/icons/breeze/default/document-new.svg
new file mode 100644
index 0000000..e2a6f91
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-new.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m6 4v24h20v-17l-7-7h-1zm1 1h11v7h7v15h-18z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-open-folder.svg b/kstars/data/icons/breeze/default/document-open-folder.svg
new file mode 100755
index 0000000..58101a5
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-open-folder.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.49 r12742" viewBox="0 0 22 22" sodipodi:docname="document-open.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.4" inkscape:cx="7.995674" inkscape:cy="10.780389" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:showpageshadow="false" borderlayer="true" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" units="px">
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4085"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4087"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4089"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4091"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4093"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4095"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4097"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4099"/>
+ <inkscape:grid type="xygrid" id="grid4101"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 3 3 L 3 4 L 3 19 L 4 19 L 19 19 L 19 18 L 19 5 L 12.007812 5 L 10.007812 3 L 10 3.0078125 L 10 3 L 4 3 L 3 3 z M 9.0078125 8 L 18 8 L 18 18 L 4 18 L 4 10 L 7 10 L 7 9.9921875 L 7.0078125 10 L 9.0078125 8 z " transform="translate(0,1030.3622)" id="rect4069" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-open.svg b/kstars/data/icons/breeze/default/document-open.svg
new file mode 100644
index 0000000..239c52f
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-open.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 4v24h24l-1-1h-22v-13h5l3-3h14v16l1 1v-21h-10l-3-3z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-print.svg b/kstars/data/icons/breeze/default/document-print.svg
new file mode 100644
index 0000000..75590ec
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-print.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m7 4v8h-3v12h6v4h12v-4h6v-12h-3v-8zm1 1h16v7h-16zm2 2v1h12v-1zm0 3v1h12v-1zm-5 3h22v10h-3v-4h-16v4h-3zm17 2v1h4v-1zm-11 9h10v3h-10z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-properties.svg b/kstars/data/icons/breeze/default/document-properties.svg
new file mode 100755
index 0000000..bed700d
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-properties.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3780" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="configure.svg">
+ <defs id="defs3782">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="19.732846" inkscape:cx="-1.7334411" inkscape:cy="6.3332006" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" showguides="true">
+ <inkscape:grid type="xygrid" id="grid3307"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide3313"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide3315"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide3317"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide3319"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide3321"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide3323"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide3325"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide3327"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3785">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 3 3 L 3 19 L 4 19 L 19 19 L 19 18 L 19 3 L 18 3 L 4 3 L 3 3 z M 4 7 L 18 7 L 18 18 L 4 18 L 4 7 z M 5 8 L 5 17 L 10 17 L 10 8 L 5 8 z M 11 9 L 11 10 L 17 10 L 17 9 L 11 9 z M 11 12 L 11 13 L 15 13 L 15 12 L 11 12 z M 11 15 L 11 16 L 13 16 L 13 15 L 11 15 z " transform="translate(0,1030.3622)" id="rect3341" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-save-as.svg b/kstars/data/icons/breeze/default/document-save-as.svg
new file mode 100644
index 0000000..e0101fc
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-save-as.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 28 L 15 28 L 15 27 L 10 27 L 10 20 L 18 20 L 18 19 L 9 19 L 9 27 L 5 27 L 5 5 L 10 5 L 10 13 L 21 13 L 21 5 L 21.585938 5 L 27 10.414062 L 27 16 L 28 16 L 28 10 L 22 4 L 10 4 L 4 4 z M 11 5 L 17 5 L 17 12 L 11 12 L 11 5 z M 24.398438 16 L 19.287109 21.111328 L 16 24.398438 L 16 28 L 19.601562 28 L 28 19.601562 L 24.398438 16 z M 22.349609 19.490234 L 24.509766 21.650391 L 21.335938 24.824219 L 21.335938 24.150391 L 20.322266 24.173828 L 19.287109 24.173828 L 19.287109 23.136719 L 19.287109 22.552734 L 22.349609 19.490234 z M 18.273438 23.564453 L 18.273438 25.185547 L 20.300781 25.185547 L 20.322266 25.839844 L 19.240234 26.919922 L 17.800781 26.919922 L 17.080078 26.199219 L 17.080078 24.757812 L 18.273438 23.564453 z "
+ id="path76"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/document-save.svg b/kstars/data/icons/breeze/default/document-save.svg
new file mode 100644
index 0000000..21914cf
--- /dev/null
+++ b/kstars/data/icons/breeze/default/document-save.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 28 L 9 28 L 23 28 L 28 28 L 28 10 L 27 9 L 23 5 L 22 4 L 21 4 L 10 4 L 4 4 z M 5 5 L 10 5 L 10 13 L 21 13 L 21 5 L 21.585938 5 L 27 10.414062 L 27 27 L 23 27 L 23 19 L 9 19 L 9 27 L 5 27 L 5 5 z M 11 5 L 17 5 L 17 12 L 11 12 L 11 5 z M 10 20 L 22 20 L 22 27 L 10 27 L 10 20 z "
+ id="path60"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/download.svg b/kstars/data/icons/breeze/default/download.svg
new file mode 100755
index 0000000..a725304
--- /dev/null
+++ b/kstars/data/icons/breeze/default/download.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.91+devel r" viewBox="0 0 22 22" sodipodi:docname="document-save.svg">
+ <title id="title4152">I REALLY hate this icon</title>
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16" inkscape:cx="-32.057533" inkscape:cy="11.442155" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:showpageshadow="false" borderlayer="true" inkscape:window-width="2560" inkscape:window-height="957" inkscape:window-x="-4" inkscape:window-y="29" inkscape:window-maximized="1" units="px">
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4085"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4087"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4089"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4091"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4093"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4095"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4097"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4099"/>
+ <inkscape:grid type="xygrid" id="grid4101"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title>I REALLY hate this icon</dc:title>
+ <dc:description>Migh as well use Tango... for crying out loud. This damn icon has to die, but no because obviously we're still using floppies therefore it is still relevant in 2014.</dc:description>
+ <dc:language>English</dc:language>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title/>
+ </cc:Agent>
+ </dc:rights>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Uri Herrera</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:date>November 20th 2014</dc:date>
+ <cc:license rdf:resource=""/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <g id="layer1-7" inkscape:label="Capa 1">
+ <path id="rect4126" transform="translate(0,1030.3622)" d="m 3,3 0,1 0,15 1,0 15,0 0,-1 0,-11 0,-0.6992188 -0.0078,0 L 19,6.2929688 15.707031,3 15.699231,3.00781 15.699231,3 15,3 3,3 Z M 4,4 7,4 7,8 7,9 15,9 15,8 15,4 15.292969,4 18,6.7070312 18,7 l 0,11 -2,0 0,-7 -1,0 -8,0 -1,0 0,7 -2,0 0,-14 z m 4,0 3.900391,0 0,4 L 8,8 8,4 Z m -1,8 8,0 0,6 -8,0 0,-6 z" style="fill:currentColor;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+ <rect ry="0" y="1032.3622" x="-23.999996" height="19.000021" width="18" id="BG_MESSAGE" style="color:#000000;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"/>
+ <path inkscape:connector-curvature="0" id="MESSAGE" d="m -17.800781,1035.5594 0,2.8536 0.138672,0 0,-2.8536 -0.138672,0 z m 3.173828,3.0235 0,0.125 0.5,0 0,3.375 0.06445,0 0,0.6426 c 0.005,0.31 0.289219,0.4962 0.574219,0.6562 0.285,0.16 0.566406,0.2706 0.566406,0.5606 l 0,0.2441 c 0,0.32 -0.166094,0.5645 -0.496094,0.5645 -0.0332,0 -0.06385,0 -0.09375,-0.01 l -0.03906,-0.1133 -0.138672,0 0,0.047 c -0.16373,-0.1012 -0.245161,-0.2934 -0.238281,-0.5 l 0,-0.3007 -0.134766,0 0,0.3007 c -0.004,0.3138 0.143357,0.5471 0.373047,0.6485 l 0,3.3047 0.138672,0 0,-3.0743 1.05664,3.0743 0.134766,0 0,-3.5 -0.134766,0 0,3.1113 -0.970703,-2.8613 c 0.0159,10e-4 0.03057,0 0.04687,0 0.43,0 0.63086,-0.3203 0.63086,-0.6953 l 0,-0.2657 c 0,-0.33 -0.34625,-0.489 -0.65625,-0.664 -0.245,-0.14 -0.463516,-0.261 -0.478516,-0.541 l 0,-0.7149 c 0,-0.37 0.188984,-0.5488 0.458984,-0.5488 0.15442,0 0.262525,0.058 0.333985,0.1504 l 0,0.4804 0.111328,0 0,0.3223 0.134766,0 0,-0.3223 0.878906,0 0,-0.1308 -0.88086,0 c -0.005,-0.1434 -0.0408,-0.2715 -0.103515,-0.375 l 0,-0.459 0.779297,0 0,-0.125 -0.779297,0 0,-2.2852 0.984375,0 0,-0.125 -1.125,0 0,2.836 c -0.0893,-0.066 -0.201175,-0.1035 -0.333985,-0.1035 -0.26702,0 -0.440546,0.1328 -0.529297,0.332 l 0,-2.9395 0.5,0 0,-0.125 -1.134765,0 z m -3.173828,0.029 0,0.4472 0,2.2813 -0.195313,0 0,0.125 0.195313,0 0,0.6172 0.138672,0 0,-0.6172 0.166015,0 0,3.375 0.134766,0 0,-3.375 0.5,0 0,-0.125 -0.800781,0 0,-0.1836 0.996093,0 0,0.9258 0.134766,0 0,-3.4707 -0.134766,0 0,2.416 -0.996093,0 0,-1.9688 0,-0.4472 -0.138672,0 z m 2.207031,0 -0.537109,3.4707 0.140625,0 0.144531,-0.9649 0.714844,0 0.15039,0.9649 0.140625,0 -0.550781,-3.4707 -0.203125,0 z m 0.103516,0.1758 0.339843,2.1953 -0.673828,0 0.333985,-2.1953 z m -1.001954,2.5527 0,3.2715 c -0.0117,-5e-4 -0.02326,0 -0.03516,0 -0.39,0 -0.640625,0.319 -0.640625,0.709 l 0,2.1406 c 0,0.39 0.240391,0.7051 0.650391,0.7051 0.43,0 0.625,-0.3543 0.625,-0.6993 l 0,-0.2558 -0.134766,0 0,0.2558 c 0,0.3 -0.155234,0.5645 -0.490234,0.5645 -0.34,0 -0.509766,-0.2853 -0.509766,-0.5703 l 0,-2.1406 c 0,-0.36 0.209766,-0.5743 0.509766,-0.5743 0.009,0 0.01709,0 0.02539,0 l 0,0.094 0.138672,0 0,-0.068 c 0.21578,0.075 0.326172,0.2987 0.326172,0.5469 l 0.0039,0.2754 0.13086,0 0,-0.2793 c 0,-0.3271 -0.177118,-0.6016 -0.460938,-0.6816 l 0,-0.7188 0.996094,0 0,0.9258 0.03711,0 c -0.0921,0.1238 -0.138672,0.2832 -0.138672,0.4492 l 0,2.1856 c 0,0.38 0.239531,0.6894 0.644531,0.6894 0.42,0 0.625,-0.3403 0.625,-0.6953 l 0,-2.1738 c 0,-0.2799 -0.128282,-0.5302 -0.357422,-0.6387 l 0,-3.3164 -0.138672,0 0,3.2715 c -0.0405,-0.01 -0.08417,-0.012 -0.128906,-0.012 -0.16949,0 -0.304873,0.053 -0.408203,0.1386 l 0,-3.3984 -0.134766,0 0,2.4453 -0.996094,0 0,-2.4453 -0.138672,0 z m -1.308593,3.2891 0,3.5 0.138672,0 0,-3.5 -0.138672,0 z m 2.986328,0.1 c 0.0461,0 0.08977,0.01 0.128906,0.016 l 0,0.096 0.138672,0 0,-0.029 c 0.1511,0.1039 0.222656,0.2941 0.222656,0.4844 l 0,2.1738 c 0,0.305 -0.160234,0.5605 -0.490234,0.5605 -0.345,0 -0.503906,-0.2597 -0.503906,-0.5547 l 0,-2.1855 c 0,-0.31 0.158906,-0.5605 0.503906,-0.5605 z" style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:medium;line-height:125%;font-family:Canter;-inkscape-font-specification:'Canter Light';letter-spacing:0px;word-spacing:0px;fill:#52d563;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/edit-clear.svg b/kstars/data/icons/breeze/default/edit-clear.svg
new file mode 100644
index 0000000..86e1aaa
--- /dev/null
+++ b/kstars/data/icons/breeze/default/edit-clear.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 8 3 L 0.94335938 10.056641 L 0 11 L 0.94335938 11.943359 L 8 19 L 20.333984 19 L 22 19 L 22 3 L 20.333984 3 L 8 3 z M 11.320312 7 L 14 9.6796875 L 16.679688 7 L 18 8.3203125 L 15.320312 11 L 18 13.679688 L 16.679688 15 L 14 12.320312 L 11.320312 15 L 10 13.679688 L 12.679688 11 L 10 8.3203125 L 11.320312 7 z "
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/edit-copy.svg b/kstars/data/icons/breeze/default/edit-copy.svg
new file mode 100644
index 0000000..d40bab9
--- /dev/null
+++ b/kstars/data/icons/breeze/default/edit-copy.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 3v1 13h1 2 1v1 1h6l4-4v-1-7-1h-2v-3h-1-10-1m1 1h10v2h-7v1 9h-1-2v-12m4 3h8v7h-3-1v1 3h-4v-11"
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/edit-delete.svg b/kstars/data/icons/breeze/default/edit-delete.svg
new file mode 100644
index 0000000..5ec70a9
--- /dev/null
+++ b/kstars/data/icons/breeze/default/edit-delete.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <g fill="#da4453" transform="translate(-384.57-515.8)">
+ <path d="m392.57 525.8v18h16v-18h-1v17h-14v-17z"/>
+ <path d="m388.57 523.8h24v1h-24z"/>
+ <path d="m396.57 519.8v3h1v-2h6v2h1v-3z"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/edit-find.svg b/kstars/data/icons/breeze/default/edit-find.svg
new file mode 100644
index 0000000..e5d4866
--- /dev/null
+++ b/kstars/data/icons/breeze/default/edit-find.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 9 3 C 5.6759952 3 3 5.6759952 3 9 C 3 12.324005 5.6759952 15 9 15 C 10.481205 15 11.830584 14.465318 12.875 13.582031 L 18.292969 19 L 19 18.292969 L 13.582031 12.875 C 14.465318 11.830584 15 10.481205 15 9 C 15 5.6759952 12.324005 3 9 3 z M 9 4 C 11.770005 4 14 6.2299952 14 9 C 14 11.770005 11.770005 14 9 14 C 6.2299952 14 4 11.770005 4 9 C 4 6.2299952 6.2299952 4 9 4 z "
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/edit-redo.svg b/kstars/data/icons/breeze/default/edit-redo.svg
new file mode 100644
index 0000000..0c0747e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/edit-redo.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m21 3.5l-.707.707 3.793 3.793h-8.09a10 10 0 0 0 -10 10 10 10 0 0 0 10 10h1v-1h-1a9 9 0 0 1 -9 -9 9 9 0 0 1 9 -9h8.09l-3.793 3.793.707.707 5-5-1-1z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/edit-undo.svg b/kstars/data/icons/breeze/default/edit-undo.svg
new file mode 100644
index 0000000..7587fd9
--- /dev/null
+++ b/kstars/data/icons/breeze/default/edit-undo.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m11 3.5l.707.707-3.793 3.793h8.09c5.523 0 10 4.477 10 10 0 5.523-4.477 10-10 10h-1v-1h1c4.971 0 9-4.03 9-9 0-4.971-4.03-9-9-9h-8.09l3.793 3.793-.707.707-5-5 1-1z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/favorites.svg b/kstars/data/icons/breeze/default/favorites.svg
new file mode 100755
index 0000000..a146b9f
--- /dev/null
+++ b/kstars/data/icons/breeze/default/favorites.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3049" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="favorites.svg" inkscape:export-filename="/home/uri/.kde/share/icons/NITRUX-KDE/16x16/actions/view-right-new.png" inkscape:export-xdpi="30" inkscape:export-ydpi="30">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.615453" inkscape:cx="3.5631263" inkscape:cy="11.458656" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1920" inkscape:window-height="957" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" inkscape:object-nodes="true">
+ <sodipodi:guide position="2.0000044,20.00003" orientation="18,0" id="guide4067"/>
+ <sodipodi:guide position="2.0000044,2.0000296" orientation="0,18" id="guide4069"/>
+ <sodipodi:guide position="20.000004,2.0000296" orientation="-18,0" id="guide4071"/>
+ <sodipodi:guide position="20.000004,20.00003" orientation="0,-18" id="guide4073"/>
+ <sodipodi:guide position="3.0000044,19.00003" orientation="16,0" id="guide4077"/>
+ <sodipodi:guide position="3.0000044,3.0000296" orientation="0,16" id="guide4079"/>
+ <sodipodi:guide position="19.000004,3.0000296" orientation="-16,0" id="guide4081"/>
+ <sodipodi:guide position="19.000004,19.00003" orientation="0,-16" id="guide4083"/>
+ <inkscape:grid type="xygrid" id="grid4085"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3054">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-421.71429,-525.79074)">
+ <g transform="matrix(1.3333333,0,0,1.3333333,422.04762,-855.69219)" id="layer1-2" inkscape:label="Capa 1">
+ <path sodipodi:nodetypes="ccccccccccc" id="path4114" d="m 8,1038.3622 -2,4 -4,1 3,3 -1,4 4,-2 4,2 -1,-4 3,-3 -4,-1 z" style="fill:currentColor;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/go-down.svg b/kstars/data/icons/breeze/default/go-down.svg
new file mode 100644
index 0000000..5c6f1a8
--- /dev/null
+++ b/kstars/data/icons/breeze/default/go-down.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4.7070312 8 L 4 8.7070312 L 10.125 14.832031 L 12 16.707031 L 13.875 14.832031 L 20 8.7070312 L 19.292969 8 L 13.167969 14.125 L 12 15.292969 L 10.832031 14.125 L 4.7070312 8 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/go-next.svg b/kstars/data/icons/breeze/default/go-next.svg
new file mode 100644
index 0000000..23035d3
--- /dev/null
+++ b/kstars/data/icons/breeze/default/go-next.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 8.7070312 4 L 8 4.7070312 L 14.125 10.832031 L 15.292969 12 L 14.125 13.167969 L 8 19.292969 L 8.7070312 20 L 14.832031 13.875 L 16.707031 12 L 14.832031 10.125 L 8.7070312 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/go-previous.svg b/kstars/data/icons/breeze/default/go-previous.svg
new file mode 100644
index 0000000..a5f016c
--- /dev/null
+++ b/kstars/data/icons/breeze/default/go-previous.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 15.292969 4 L 9.1679688 10.125 L 7.2929688 12 L 9.1679688 13.875 L 15.292969 20 L 16 19.292969 L 9.875 13.167969 L 8.7070312 12 L 9.875 10.832031 L 16 4.7070312 L 15.292969 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/go-up.svg b/kstars/data/icons/breeze/default/go-up.svg
new file mode 100644
index 0000000..693c12f
--- /dev/null
+++ b/kstars/data/icons/breeze/default/go-up.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 6.2929688 L 10.125 8.1679688 L 4 14.292969 L 4.7070312 15 L 10.832031 8.875 L 12 7.7070312 L 13.167969 8.875 L 19.292969 15 L 20 14.292969 L 13.875 8.1679688 L 12 6.2929688 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/help-hint.svg b/kstars/data/icons/breeze/default/help-hint.svg
new file mode 100755
index 0000000..426606e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/help-hint.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="help-feedback.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="24.278859" inkscape:cx="10.843845" inkscape:cy="13.139823" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" showguides="true">
+ <inkscape:grid type="xygrid" id="grid4109"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4113"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4115"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4117"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4119"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4121"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4123"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4125"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4127"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <rect style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" id="rect4120" width="2" height="2" x="10" y="1036.3622" class="ColorScheme-Text"/>
+ <rect style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" id="rect4124" width="2" height="7" x="10" y="1039.3622" class="ColorScheme-Text"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="m 11,3 c -4.432,0 -8,3.568 -8,8 0,4.432 3.568,8 8,8 4.432,0 8,-3.568 8,-8 0,-4.432 -3.568,-8 -8,-8 z m 0,1 c 3.878,0 7,3.122 7,7 0,3.878 -3.122,7 -7,7 C 7.122,18 4,14.878 4,11 4,7.122 7.122,4 11,4 Z" transform="translate(0,1030.3622)" id="rect4129" inkscape:connector-curvature="0" sodipodi:nodetypes="ssssssssss" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_advanced.svg b/kstars/data/icons/breeze/default/kstars_advanced.svg
new file mode 100755
index 0000000..bed700d
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_advanced.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3780" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="configure.svg">
+ <defs id="defs3782">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="19.732846" inkscape:cx="-1.7334411" inkscape:cy="6.3332006" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" showguides="true">
+ <inkscape:grid type="xygrid" id="grid3307"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide3313"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide3315"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide3317"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide3319"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide3321"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide3323"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide3325"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide3327"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3785">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 3 3 L 3 19 L 4 19 L 19 19 L 19 18 L 19 3 L 18 3 L 4 3 L 3 3 z M 4 7 L 18 7 L 18 18 L 4 18 L 4 7 z M 5 8 L 5 17 L 10 17 L 10 8 L 5 8 z M 11 9 L 11 10 L 17 10 L 17 9 L 11 9 z M 11 12 L 11 13 L 15 13 L 15 12 L 11 12 z M 11 15 L 11 16 L 13 16 L 13 15 L 11 15 z " transform="translate(0,1030.3622)" id="rect3341" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_catalog.svg b/kstars/data/icons/breeze/default/kstars_catalog.svg
new file mode 100755
index 0000000..cc809d8
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_catalog.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3760" version="1.1" inkscape:version="0.91+devel r" sodipodi:docname="draw-star.svg">
+ <defs id="defs3762">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16.95593" inkscape:cx="15.223149" inkscape:cy="12.337471" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="670" inkscape:window-x="-4" inkscape:window-y="29" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <sodipodi:guide position="-0.99999557,22.999999" orientation="24,0" id="guide4115"/>
+ <sodipodi:guide position="-0.99999557,-1.0000018" orientation="0,24" id="guide4117"/>
+ <sodipodi:guide position="23.000004,-1.0000018" orientation="-24,0" id="guide4119"/>
+ <sodipodi:guide position="23.000004,22.999999" orientation="0,-24" id="guide4121"/>
+ <sodipodi:guide position="2.0000044,19.999999" orientation="18,0" id="guide4123"/>
+ <sodipodi:guide position="2.0000044,1.9999981" orientation="0,18" id="guide4125"/>
+ <sodipodi:guide position="20.000004,1.9999981" orientation="-18,0" id="guide4127"/>
+ <sodipodi:guide position="20.000004,19.999999" orientation="0,-18" id="guide4129"/>
+ <sodipodi:guide position="3.0000044,18.999999" orientation="16,0" id="guide4131"/>
+ <sodipodi:guide position="3.0000044,2.9999981" orientation="0,16" id="guide4133"/>
+ <sodipodi:guide position="19.000004,2.9999981" orientation="-16,0" id="guide4135"/>
+ <sodipodi:guide position="19.000004,18.999999" orientation="0,-16" id="guide4137"/>
+ <inkscape:grid type="xygrid" id="grid4139" originx="-0.99998114" originy="-1.0000137"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3765">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-551.28571,-607.64789)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 12,4 9.5273438,9.2675781 4,10.111328 8,14.210938 7.0566406,20 12,17.267578 16.943359,20 16,14.210938 20,10.111328 14.472656,9.2675781 12,4 Z M 12,6 13.853516,9.9492188 18,10.583984 15,13.658203 15.708984,18 12,15.949219 8.2910156,18 9,13.658203 6,10.583984 10.146484,9.9492188 12,6 Z" transform="translate(550.28572,606.6479)" id="path4116" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_cbound.svg b/kstars/data/icons/breeze/default/kstars_cbound.svg
new file mode 100755
index 0000000..7294df7
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_cbound.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_cbound.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="13.636364"
+ inkscape:cx="19.74343"
+ inkscape:cy="6.2529049"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true"
+ inkscape:snap-global="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 8 3 A 5 5 0 0 1 7.9160156 3.8847656 A 5.0000172 5.0000172 0 0 1 7.8046875 4.3691406 A 5.0000172 5.0000172 0 0 1 7.8046875 4.3710938 A 5.0000172 5.0000172 0 0 1 7.6425781 4.8457031 A 5.0000172 5.0000172 0 0 1 7.6425781 4.8476562 A 5 5 0 0 1 5.0449219 7.5546875 A 5.0000172 5.0000172 0 0 1 4.5898438 7.734375 A 5.0000172 5.0000172 0 0 1 4.5800781 7.7382812 A 5 5 0 0 1 4.5683594 7.7421875 A 5.0000172 5.0000172 0 0 1 4.1132812 7.8691406 A 5.0000172 5.0000172 0 0 1 4.0976562 7.8730469 A 5 5 0 0 1 3 8 L 3 9 A 6.0000172 6.0000172 0 0 0 4.4140625 8.8242188 L 5.3652344 11.675781 C 4.599513 11.887324 3.8039853 11.99821 3 12 L 3 12.662109 C 4.6837004 12.662245 6.3324573 12.247824 7.8007812 11.474609 L 8.4707031 12.527344 L 9.0078125 13.369141 L 9.0078125 13.371094 A 12 12 0 0 0 9.8515625 12.835938 L 9.8476562 12.830078 C 11.92152 11.383472 13.540905 9.29091 14.375 6.7714844 L 16.529297 7.3867188 L 17.269531 7.6347656 C 17.744348 6.1595298 17.997494 4.5541806 18 3 L 17 3 C 16.996288 4.11636 16.845447 5.2622536 16.574219 6.359375 L 8.8808594 4.1601562 A 6.0000172 6.0000172 0 0 0 9 3 L 8 3 z M 8.609375 5.1230469 L 13.417969 6.4980469 C 12.653436 8.7774086 11.18735 10.673338 9.3125 11.990234 L 8.6640625 10.970703 L 8.2402344 10.302734 A 9 9 0 0 1 7.5410156 10.753906 C 7.1463651 10.986022 6.7333735 11.178486 6.3105469 11.347656 L 5.3652344 8.5117188 A 6.0000172 6.0000172 0 0 0 8.609375 5.1230469 z M 12.123047 10.789062 A 12 12 0 0 1 11.441406 11.521484 L 12.892578 12.869141 C 10.278577 15.492106 6.7303016 16.996928 3 17 L 3 18 C 7.0072239 17.993541 10.816244 16.368376 13.617188 13.541016 L 15.826172 15.59375 A 18 18 0 0 1 11.189453 19 L 13.208984 19 A 19 19 0 0 0 16.554688 16.271484 L 16.564453 16.279297 A 19 19 0 0 0 17.246094 15.546875 L 17.240234 15.542969 A 19 19 0 0 0 19 13.246094 L 19 11.207031 A 18 18 0 0 1 16.492188 14.847656 L 14.3125 12.822266 L 13.585938 12.148438 L 12.123047 10.789062 z "
+ transform="translate(0,1030.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_clines.svg b/kstars/data/icons/breeze/default/kstars_clines.svg
new file mode 100755
index 0000000..e187069
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_clines.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_clines.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="27.272727"
+ inkscape:cx="5.2066666"
+ inkscape:cy="9.099579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.90593749;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 16.279297,1033.3613 -4.357422,7.3594 -3.4648438,1.8477 -2.9960937,1.1875 L 3,1048.9766 l 0.8183594,0.3847 2.3085937,-4.8965 2.7109375,-1.0742 3.2949214,-1.7558 2.855469,2.1523 4.011719,-5.4023 -2.720703,-5.0235 z m -0.03516,1.8379 1.683593,3.1094 -3.123046,4.2051 -2,-1.5078 3.439453,-5.8067 z"
+ id="path6425"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_cnames.svg b/kstars/data/icons/breeze/default/kstars_cnames.svg
new file mode 100755
index 0000000..67a3ee1
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_cnames.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_cnames.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.41875"
+ inkscape:cx="-2.2669271"
+ inkscape:cy="3.6564722"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <rect
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="rect4187"
+ width="1"
+ height="6.0000029"
+ x="1"
+ y="1038.3622" />
+ <rect
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="rect4189"
+ width="1"
+ height="6.0000029"
+ x="10"
+ y="1038.3622" />
+ <rect
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="rect4191"
+ width="1"
+ height="8.9999485"
+ x="12"
+ y="1040.3622" />
+ <rect
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="rect4193"
+ width="1"
+ height="8.9999657"
+ x="19"
+ y="1040.3622" />
+ <rect
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="rect4195"
+ width="1"
+ height="1"
+ x="19"
+ y="1037.3622" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="m 15,1040.3622 a 3,3 0 0 0 -3,3 l 1,0 a 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 l 1,0 a 3,3 0 0 0 -3,-3 z"
+ id="path4197"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="m 6,1033.3622 a 5,5 0 0 0 -5,5 l 1,0 a 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 l 1,0 a 5,5 0 0 0 -5,-5 z"
+ id="path4205"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="m 6,1049.3622 a 5,5 0 0 1 -5,-5 l 1,0 a 4,4 0 0 0 4,4 4,4 0 0 0 4,-4 l 1,0 a 5,5 0 0 1 -5,5 z"
+ id="path4205-6" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_colors.svg b/kstars/data/icons/breeze/default/kstars_colors.svg
new file mode 100755
index 0000000..2ad45f5
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_colors.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3813" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="color-picker.svg">
+ <defs id="defs3815">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.908292" inkscape:cx="11.017174" inkscape:cy="10.786195" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false" showguides="true">
+ <inkscape:grid type="xygrid" id="grid4109"/>
+ <sodipodi:guide position="2.0000072,19.999993" orientation="18,0" id="guide4115"/>
+ <sodipodi:guide position="2.0000072,1.9999929" orientation="0,18" id="guide4117"/>
+ <sodipodi:guide position="20.000007,1.9999929" orientation="-18,0" id="guide4119"/>
+ <sodipodi:guide position="20.000007,19.999993" orientation="0,-18" id="guide4121"/>
+ <sodipodi:guide position="3.0000072,18.999993" orientation="16,0" id="guide4123"/>
+ <sodipodi:guide position="3.0000072,2.9999929" orientation="0,16" id="guide4125"/>
+ <sodipodi:guide position="19.000007,2.9999929" orientation="-16,0" id="guide4127"/>
+ <sodipodi:guide position="19.000007,18.999993" orientation="0,-16" id="guide4129"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3818">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-378.85714,-540.07647)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 11 3 C 10.027093 6.4050342 7.6455537 9.3322765 6.5957031 11.675781 C 6.2282987 12.372552 6 13.15458 6 14 C 6 16.770002 8.2299982 19 11 19 C 13.770002 19 16 16.770002 16 14 C 16 13.15458 15.771701 12.372552 15.404297 11.675781 C 14.354447 9.3322765 11.972897 6.4050342 11 3 z M 13.283203 10.716797 C 14.3209 11.438005 15 12.635082 15 14 C 15 16.216002 13.216002 18 11 18 C 9.6350429 18 8.4379979 17.320951 7.7167969 16.283203 C 8.363845 16.732907 9.148916 17 10 17 C 12.216002 17 14 15.216002 14 13 C 14 12.148916 13.732907 11.363845 13.283203 10.716797 z " transform="translate(378.85714,540.07647)" id="rect4108" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_constellationart.svg b/kstars/data/icons/breeze/default/kstars_constellationart.svg
new file mode 100755
index 0000000..ccf6802
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_constellationart.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3049" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="im-user.svg" inkscape:export-filename="/home/uri/.kde/share/icons/NITRUX-KDE/16x16/actions/view-right-new.png" inkscape:export-xdpi="30" inkscape:export-ydpi="30">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="51.739549" inkscape:cx="11.50718" inkscape:cy="12.494216" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="2560" inkscape:window-height="957" inkscape:window-x="0" inkscape:window-y="30" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true">
+ <sodipodi:guide position="1.9999956,20" orientation="18,0" id="guide4067"/>
+ <sodipodi:guide position="1.9999956,2.0000004" orientation="0,18" id="guide4069"/>
+ <sodipodi:guide position="19.999996,2.0000004" orientation="-18,0" id="guide4071"/>
+ <sodipodi:guide position="19.999996,20" orientation="0,-18" id="guide4073"/>
+ <sodipodi:guide position="2.9999956,19" orientation="16,0" id="guide4077"/>
+ <sodipodi:guide position="2.9999956,3.0000004" orientation="0,16" id="guide4079"/>
+ <sodipodi:guide position="18.999996,3.0000004" orientation="-16,0" id="guide4081"/>
+ <sodipodi:guide position="18.999996,19" orientation="0,-16" id="guide4083"/>
+ <inkscape:grid type="xygrid" id="grid4085" originx="-8.8635937e-06" originy="-2.9100781e-05"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3054">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-421.71429,-525.79071)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="m 432.71429,528.79032 a 3.9999902,4.0000296 0 0 0 -4,4 3.9999902,4.0000296 0 0 0 4,4 3.9999902,4.0000296 0 0 0 4,-4 3.9999902,4.0000296 0 0 0 -4,-4 z m 0,1 a 3,3.0000296 0 0 1 3,3 3,3.0000296 0 0 1 -3,3 3,3.0000296 0 0 1 -3,-3 3,3.0000296 0 0 1 3,-3 z" id="path4149" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="m 12,13 a 7.9999504,8.0000296 0 0 0 -7.9277344,7 l 1.0078125,0 A 6.9999604,7.0000296 0 0 1 12,14 a 6.9999604,7.0000296 0 0 1 6.921875,6 l 1.007813,0 A 7.9999504,8.0000296 0 0 0 12,13 Z" transform="translate(420.71429,524.79071)" id="ellipse4156" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_deepsky.svg b/kstars/data/icons/breeze/default/kstars_deepsky.svg
new file mode 100755
index 0000000..9343f06
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_deepsky.svg
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_deepsky.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient3764">
+ <stop
+ style="stop-color:#ffffb7;stop-opacity:1;"
+ offset="0"
+ id="stop3766" />
+ <stop
+ id="stop3772"
+ offset="0.5"
+ style="stop-color:#f4e55b;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ea9a00;stop-opacity:1;"
+ offset="1"
+ id="stop3768" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.968669"
+ inkscape:cx="6.716421"
+ inkscape:cy="7.0180313"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-90"
+ cx="3.5"
+ cy="1042.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-1"
+ cx="4.5"
+ cy="1044.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-6"
+ cx="5.5"
+ cy="1046.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-7"
+ cx="7.5"
+ cy="1047.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-17"
+ cx="9.5"
+ cy="1048.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-44"
+ cx="4.5"
+ cy="1037.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176"
+ cx="3.5"
+ cy="1039.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-76"
+ cx="5.5"
+ cy="1035.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-3"
+ cx="7.5"
+ cy="1034.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-9"
+ cx="9.5"
+ cy="1033.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-32"
+ cx="14.5"
+ cy="1034.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-31"
+ cx="12.5"
+ cy="1033.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-15"
+ cx="16.5"
+ cy="1035.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-95"
+ cx="17.5"
+ cy="1037.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-65"
+ cx="18.5"
+ cy="1039.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-5"
+ cx="18.5"
+ cy="1042.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-51"
+ cx="17.5"
+ cy="1044.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-54"
+ cx="16.5"
+ cy="1046.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-70"
+ cx="14.5"
+ cy="1047.8622"
+ r="0.5" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4176-704"
+ cx="12.5"
+ cy="1048.8622"
+ r="0.5" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_ekos.svg b/kstars/data/icons/breeze/default/kstars_ekos.svg
new file mode 100755
index 0000000..40e5798
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_ekos.svg
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_ekos.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="18.646409"
+ inkscape:cy="7.7553183"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 4 9 L 4 17 A 7 1.9999913 0 0 0 11 19 A 7 1.9999913 0 0 0 18 17 L 18 9 A 7 1.9999913 0 0 1 17 10.025391 L 17 17 A 6 1 0 0 1 11 18 A 6 1 0 0 1 5 17 L 5 10.025391 A 7 1.9999913 0 0 1 4 9 z "
+ transform="translate(0,1030.3622)"
+ id="rect4254" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 4 9 A 7 3 0 0 0 11 12 A 7 3 0 0 0 18 9 L 17 9 A 6 2 0 0 1 11 11 A 6 2 0 0 1 5 9 L 4 9 z "
+ transform="translate(0,1030.3622)"
+ id="path4304" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 11 3 A 7 6.0000086 0 0 0 4 9 L 5 9 A 6 5 0 0 1 11 4 A 6 5 0 0 1 17 9 L 18 9 A 7 6.0000086 0 0 0 11 3 z "
+ transform="translate(0,1030.3622)"
+ id="path4312" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11 3 A 7 6.0000086 0 0 0 9.9179688 3.0761719 C 8.120271 4.5527248 7.2396489 7.2349157 7.0410156 9.5 A 6 2 0 0 0 11 10 C 11.360264 6.9891617 12.587627 5.0360138 13.685547 3.4609375 A 7 6.0000086 0 0 0 11 3 z "
+ transform="translate(0,1030.3622)"
+ id="path4335" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_fitsviewer.svg b/kstars/data/icons/breeze/default/kstars_fitsviewer.svg
new file mode 100755
index 0000000..9ca392e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_fitsviewer.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_fitsviewer.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="19.284731"
+ inkscape:cx="7.9723531"
+ inkscape:cy="11.696577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true"
+ inkscape:snap-global="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="m 9,1035.3598 c -3.8659933,0 -7,2.6792 -7,5.9837 0,3.3046 2.1340067,5.7657 6,5.7657 -3.2216794,0 -4.83401,-3.0118 -4.8339844,-5.7657 -2.56e-5,-2.7539 2.6123053,-4.9874 5.8339844,-4.9874 1.456084,0 2.7709,0.4736 3.792969,1.2277 A 5,3.9164941 0 0 0 11,1037.318 a 5,3.9164941 0 0 0 -5,3.9165 c 0,0 -2e-6,0 0,0.01 a 5,3.9164941 0 0 0 0.019531,0.3175 c 0.1929498,3.2303 3.2389801,5.8002 6.980469,5.8002 3.865992,0 7,-2.7422 7,-6.1234 0,-3.3813 -2.134006,-5.8766 -6,-5.8766 3.221678,0 4.83401,3.057 4.833984,5.8747 2.6e-5,2.8177 -2.612308,5.1022 -5.833984,5.1022 -1.67251,0 -3.1765901,-0.6201 -4.2402346,-1.6064 A 5,3.9164941 0 0 0 11,1045.151 a 5,3.9164941 0 0 0 4.992188,-3.8075 l 0.0078,0 c 0,-0.019 -0.0037,-0.038 -0.0039,-0.057 a 5,3.9164941 0 0 0 0.0039,-0.052 5,3.9164941 0 0 0 -0.03125,-0.3997 c -0.302591,-3.066 -3.303618,-5.475 -6.96875,-5.475 z"
+ id="path4172"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_flag.svg b/kstars/data/icons/breeze/default/kstars_flag.svg
new file mode 100755
index 0000000..990638a
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_flag.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" viewBox="0 0 22 22" sodipodi:docname="flag-red.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16.148551" inkscape:cx="12.112549" inkscape:cy="16.459516" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:showpageshadow="false" units="px" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1">
+ <inkscape:grid type="xygrid" id="grid4120"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4126"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4128"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4130"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4132"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4134"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4136"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4138"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4140"/>
+ <sodipodi:guide position="12.999983,19.000017" orientation="6,0" id="guide4195"/>
+ <sodipodi:guide position="12.999983,13.000017" orientation="0,6.0000172" id="guide4197"/>
+ <sodipodi:guide position="19,13.000017" orientation="-6,0" id="guide4199"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-6.0000172" id="guide4201"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="opacity:1;fill:#da4453;fill-opacity:1;stroke:none" d="M 4 3 L 4 12 L 9 11 L 10 10.800781 L 10 12.800781 L 19 11 L 17 10 L 19 9 L 10 6.5996094 L 10 4.5996094 L 9 4.3339844 L 4 3 z " id="path4132" transform="translate(0,1030.3622)"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 3 3 L 3 19 L 4 19 L 4 12 L 4 3 L 3 3 z " id="rect4112" transform="translate(0,1030.3622)" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_grid.svg b/kstars/data/icons/breeze/default/kstars_grid.svg
new file mode 100755
index 0000000..6559bfd
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_grid.svg
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_grid.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="3.040559"
+ inkscape:cy="9.099579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 9.9951315,1033.3793 C 8.8020725,1036.5742 6.2296561,1039.0924 3,1040.2146 l 0,1.308 c 3.9108425,-1.2166 7.017783,-4.268 8.311587,-8.1433 l -1.3164555,0 z"
+ id="path3366"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 16.273613,1033.3793 C 14.748209,1039.8982 9.562333,1045.007 3,1046.4272 l 0,1.269 c 7.243916,-1.4617 12.972125,-7.1169 14.54333,-14.3169 l -1.269717,0 z"
+ id="path3368"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 19,1042.1999 c -1.887336,2.8903 -4.393779,5.339 -7.330088,7.1623 l 2.220059,0 c 1.935231,-1.4163 3.656961,-3.108 5.110029,-5.0136 l 0,-2.1487 z"
+ id="path3370"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 3.0117941,1033.377 -9.937e-4,0.9533 15.0403516,14.9711 0.88766,0.01 0.0056,-0.8551 -15.1253455,-15.0736 -0.8072604,-0 z"
+ id="path3405"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 3.5686465,1037.8402 -0.5384306,-1.2559 -0.014758,3.0238 4.2971682,9.6938 1.3325219,-0 -5.0765013,-11.4578 z"
+ id="path3407"
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9.4320681,1033.3625 -2.9063625,-3e-4 12.4099974,5.4645 0.004,-1.3448 -9.5075939,-4.1194 z"
+ id="path3409"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_guides.svg b/kstars/data/icons/breeze/default/kstars_guides.svg
new file mode 100755
index 0000000..47cffb9
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_guides.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg4355" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="show-grid.svg">
+ <defs id="defs4357">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16.556338" inkscape:cx="14.621636" inkscape:cy="3.3959985" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" width="0px" height="0px" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1920" inkscape:window-height="1021" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4114"/>
+ <sodipodi:guide position="2.0000011,19.999996" orientation="18,0" id="guide4120"/>
+ <sodipodi:guide position="2.0000011,1.9999962" orientation="0,18" id="guide4122"/>
+ <sodipodi:guide position="20.000001,1.9999962" orientation="-18,0" id="guide4124"/>
+ <sodipodi:guide position="20.000001,19.999996" orientation="0,-18" id="guide4126"/>
+ <sodipodi:guide position="3.0000011,18.999996" orientation="16,0" id="guide4128"/>
+ <sodipodi:guide position="3.0000011,2.9999962" orientation="0,16" id="guide4130"/>
+ <sodipodi:guide position="19.000001,2.9999962" orientation="-16,0" id="guide4132"/>
+ <sodipodi:guide position="19.000001,18.999996" orientation="0,-16" id="guide4134"/>
+ </sodipodi:namedview>
+ <metadata id="metadata4360">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-544.57141,-742.93359)">
+ <g transform="translate(544.57141,-287.42861)" id="layer1-5" inkscape:label="Capa 1">
+ <path id="rect3081" transform="translate(-1,1029.3622)" d="M 4,4 4,5 5,5 5,4 4,4 Z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z M 4,7 4,8 5,8 5,7 4,7 Z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m -15,3 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m -15,3 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m -15,3 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m -15,3 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z m 5,0 0,1 1,0 0,-1 -1,0 z" style="display:inline;overflow:visible;visibility:visible;fill:currentColor;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_hgrid.svg b/kstars/data/icons/breeze/default/kstars_hgrid.svg
new file mode 100755
index 0000000..bca1b7e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_hgrid.svg
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_hgrid.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="3.040559"
+ inkscape:cy="9.099579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ transform="matrix(0.25,0,0,0.24964854,2.9774709,1033.3847)"
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 70.099166,46.753031 C 47.268987,60.928941 18.057406,60.718836 -4.5889875,46.134312 l -3.6018252,3.601825 C 16.50688,66.136272 48.807575,66.334155 73.700991,50.354856 l -3.601825,-3.601825 z"
+ id="path3368"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ clip-path="url(#clipPath3979)" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 32.08929,-3.2866875 -2.708379,2.1855144 0.171674,68.8617281 2.4994,2.051225 2.442797,-1.949673 -0.121946,-69.2918703 -2.283546,-1.8569242 z"
+ id="path3405"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ clip-path="url(#clipPath3975)"
+ transform="matrix(0.25,0,0,0.24964854,2.9774709,1033.4072)" />
+ <path
+ transform="matrix(0.25,0,0,0.24964854,2.9774709,1033.3847)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 21.533708,-6.3050504 -3.318232,1.0493423 -24.9133737,64.1972811 1.5809588,2.820478 2.9850093,-0.926392 25.1163076,-64.57979 -1.45067,-2.5609194 z"
+ id="path3405-4"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-5.1960427"
+ inkscape:transform-center-y="1.4133698"
+ clip-path="url(#clipPath3971)" />
+ <path
+ transform="matrix(0.25,0,0,0.24964854,2.9774709,1033.3847)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 42.796685,-7.872101 -1.739564,3.0142507 24.959753,64.1792623 3.07041,1.013463 1.576737,-2.698589 L 45.59575,-6.9621649 42.796685,-7.872101 Z"
+ id="path3405-4-9"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-4.7540911"
+ inkscape:transform-center-y="-2.5091037"
+ clip-path="url(#clipPath3967)" />
+ <path
+ transform="matrix(0.25,0,0,0.24964854,2.9774709,1033.3847)"
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 71.547122,23.048264 C 48.716943,37.224174 19.505362,37.014069 -3.1410322,22.429545 l -3.601825,3.601825 C 17.954836,42.431505 50.255531,42.629388 75.148947,26.650089 l -3.601825,-3.601825 z"
+ id="path3368-5"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ clip-path="url(#clipPath3963)" />
+ <path
+ transform="matrix(0.25,0,0,0.24964854,2.9774709,1033.3847)"
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 70.490657,-0.32601789 C 47.660478,13.849892 18.448897,13.639787 -4.1974971,-0.94473689 L -7.7993221,2.6570881 C 16.898371,19.057223 49.199066,19.255106 74.092482,3.2758071 l -3.601825,-3.60182499 z"
+ id="path3368-5-0"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ clip-path="url(#clipPath3959)" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_horizon.svg b/kstars/data/icons/breeze/default/kstars_horizon.svg
new file mode 100755
index 0000000..958cf1f
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_horizon.svg
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_horizon.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="27.272728"
+ inkscape:cx="13.314587"
+ inkscape:cy="10.871306"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none"
+ d="M 3.0351562,10.263672 C 3.0121294,10.508444 3.0003982,10.754148 3,11 c 0,4.418278 3.581722,8 8,8 4.418278,0 8,-3.581722 8,-8 -0.0018,-0.238064 -0.01414,-0.475931 -0.03711,-0.712891 C 18.568445,11.825601 15.121563,12.999925 11,13 6.8558354,12.999185 3.3993891,11.81172 3.0351562,10.263672 Z"
+ transform="translate(0,1030.3622)"
+ id="path4165"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscccc" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 11 3 A 8 8 0 0 0 3 11 A 8 8 0 0 0 11 19 A 8 8 0 0 0 19 11 A 8 8 0 0 0 11 3 z M 11 4 A 7 7 0 0 1 18 11 A 7 7 0 0 1 11 18 A 7 7 0 0 1 4 11 A 7 7 0 0 1 11 4 z "
+ transform="translate(0,1030.3622)"
+ id="path4158" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_indi.svg b/kstars/data/icons/breeze/default/kstars_indi.svg
new file mode 100755
index 0000000..d39ecd0
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_indi.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_indi.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient3764">
+ <stop
+ style="stop-color:#ffffb7;stop-opacity:1;"
+ offset="0"
+ id="stop3766" />
+ <stop
+ id="stop3772"
+ offset="0.5"
+ style="stop-color:#f4e55b;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ea9a00;stop-opacity:1;"
+ offset="1"
+ id="stop3768" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="13.636363"
+ inkscape:cx="15.158978"
+ inkscape:cy="9.4670776"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 5 3 L 7.8125 18 L 13.25 18 L 17 3 L 5 3 z "
+ transform="translate(0,1030.3622)"
+ id="path4163" />
+ <circle
+ cy="1031.7738"
+ cx="-125.84672"
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none;stroke-width:0.48633173;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3714"
+ transform="matrix(0.9913066,-0.1315721,0.13157211,0.9913066,0,0)"
+ r="3" />
+ <path
+ style="fill:#fdbc4d;fill-opacity:1;stroke:none;stroke-width:0.60000002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 19.417969,1034.3627 c -1.654999,-0.018 -6.428839,2.2705 -10.1562502,5.2343 -4.259898,3.3872 -7.9341029,7.918 -7.1582032,8.7305 0.1454999,0.1523 1.5517533,-0.2332 2.0019532,-0.4492 0.6868326,-0.2492 1.8083949,-0.711 3.15625,-1.4512 l -0.083984,-0.4512 c -1.2961082,0.6445 -2.2110209,0.8606 -2.5292969,0.5274 -0.6555997,-0.6865 1.8964954,-3.1339 5.4960935,-5.9961 3.599499,-2.8621 6.647135,-4.7627 7.302735,-4.0762 0.3997,0.4186 -0.269486,1.4761 -1.708985,3.0137 0.071,0.1191 0.113375,0.2656 0.171875,0.3887 2.182399,-2.177 4.547872,-4.7571 4.013672,-5.3164 -0.09699,-0.1016 -0.269431,-0.1517 -0.505859,-0.1543 z"
+ id="path3482"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#fdbc4d;fill-opacity:1;stroke:none"
+ id="rect4167"
+ width="18"
+ height="1"
+ x="2"
+ y="1049.3622"
+ ry="0" />
+ <circle
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none"
+ id="path4188"
+ cx="6.5"
+ cy="1034.8622"
+ r="0.5" />
+ <circle
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none"
+ id="path4190"
+ cx="9.5"
+ cy="1045.8622"
+ r="0.5" />
+ <circle
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none"
+ id="path4190-4"
+ cx="13.5"
+ cy="1034.8622"
+ r="0.5" />
+ <circle
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none"
+ id="path4190-40"
+ cx="12.5"
+ cy="1043.8622"
+ r="0.5" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_mw.svg b/kstars/data/icons/breeze/default/kstars_mw.svg
new file mode 100755
index 0000000..3179e38
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_mw.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_mw.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="9.951304"
+ inkscape:cy="12.444176"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10.703815,1033.6129 c -1.901505,0.7965 -3.0115083,2.5592 -3.5105302,4.4712 -0.039861,0.1586 -0.2597477,0.7907 -0.2597477,1.566 l 0,2.866 c -0.058147,1.5569 -1.1638124,2.5091 -2.3141162,3.3671 -0.5357317,0.3786 -1.0945003,0.709 -1.6194209,1.0985 l 0.00347,2.3805 c 2.9689009,-0.01 4.2805137,-0.021 6.2734953,-0.016 1.6042847,-2.4624 2.6705457,-4.1913 2.6941057,-6.7514 l 0,-2.9443 c 0.06978,-0.6243 0.303672,-1.2809 0.810728,-1.339 0.887288,-0.048 1.616232,0.204 2.093724,0.509 0.265692,0.1716 0.85067,0.5481 1.771007,0.5481 l 1.366836,0 0.986636,0 0,-5.0114 -1.141316,0 c -0.805306,0.065 -1.435163,-0.4788 -2.172435,-0.7439 -0.367552,-0.091 -0.998707,-0.2506 -1.755265,-0.2506 -1.095157,0.027 -2.096655,-0.043 -3.227169,0.2506 z"
+ id="path3355"
+ sodipodi:nodetypes="ccccccccccccssccccccc" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_planets.svg b/kstars/data/icons/breeze/default/kstars_planets.svg
new file mode 100755
index 0000000..ffc5b9e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_planets.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3049" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="folder-html.svg" inkscape:export-filename="/home/uri/.kde/share/icons/NITRUX-KDE/16x16/actions/view-right-new.png" inkscape:export-xdpi="30" inkscape:export-ydpi="30">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.615453" inkscape:cx="3.5631263" inkscape:cy="11.458656" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1920" inkscape:window-height="957" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" inkscape:object-nodes="true">
+ <sodipodi:guide position="2.0000044,20.00003" orientation="18,0" id="guide4067"/>
+ <sodipodi:guide position="2.0000044,2.0000296" orientation="0,18" id="guide4069"/>
+ <sodipodi:guide position="20.000004,2.0000296" orientation="-18,0" id="guide4071"/>
+ <sodipodi:guide position="20.000004,20.00003" orientation="0,-18" id="guide4073"/>
+ <sodipodi:guide position="3.0000044,19.00003" orientation="16,0" id="guide4077"/>
+ <sodipodi:guide position="3.0000044,3.0000296" orientation="0,16" id="guide4079"/>
+ <sodipodi:guide position="19.000004,3.0000296" orientation="-16,0" id="guide4081"/>
+ <sodipodi:guide position="19.000004,19.00003" orientation="0,-16" id="guide4083"/>
+ <inkscape:grid type="xygrid" id="grid4085"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3054">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-421.71429,-525.79074)">
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035" width="0" height="10.999983" x="383.45605" y="518.13037" class="ColorScheme-Text"/>
+ <path id="path3011" d="m 432.71834,528.79074 c -0.31896,0 -0.62792,0.026 -0.93788,0.063 -0.30396,0.036 -0.61392,0.087 -0.90589,0.1559 -0.094,0.022 -0.18497,0.067 -0.28096,0.094 -0.084,0.023 -0.16698,0.037 -0.24997,0.063 -0.10499,0.033 -0.21397,0.059 -0.31296,0.094 -0.10699,0.038 -0.20697,0.083 -0.31296,0.1249 -0.20597,0.083 -0.39695,0.182 -0.59393,0.2809 -0.071,0.036 -0.14898,0.056 -0.21897,0.094 -0.22997,0.1209 -0.44094,0.2629 -0.65592,0.4058 -0.082,0.055 -0.16997,0.098 -0.24996,0.1559 -0.033,0.024 -0.061,0.038 -0.094,0.063 -0.094,0.071 -0.19098,0.1418 -0.28097,0.2188 -0.10698,0.089 -0.20997,0.1869 -0.31296,0.2809 -0.032,0.03 -0.062,0.064 -0.094,0.094 -0.011,0.011 -0.02,0.02 -0.031,0.031 -0.016,0.016 -0.015,0.047 -0.031,0.063 -0.20997,0.2039 -0.43894,0.3988 -0.62492,0.6247 -0.005,0.01 0.005,0.025 0,0.031 -0.18098,0.2199 -0.34296,0.4478 -0.49994,0.6877 -0.021,0.032 -0.042,0.061 -0.063,0.094 -0.015,0.024 -0.047,0.037 -0.063,0.063 -0.06,0.098 -0.10099,0.209 -0.15598,0.3129 -0.018,0.033 -0.045,0.061 -0.063,0.094 -0.075,0.1459 -0.14998,0.2898 -0.21897,0.4378 -0.004,0.01 0.004,0.023 0,0.031 -0.11699,0.2528 -0.22198,0.5136 -0.31296,0.7805 -0.019,0.053 -0.045,0.103 -0.063,0.156 -0.003,0.01 0.003,0.022 0,0.031 -0.02,0.062 -0.044,0.125 -0.063,0.188 -0.073,0.2568 -0.13998,0.5137 -0.18798,0.7806 -0.034,0.1919 -0.074,0.3968 -0.094,0.5938 -0.027,0.2648 -0.031,0.5417 -0.031,0.8125 0,0.4038 0.036,0.7996 0.094,1.1875 0.006,0.041 -0.007,0.085 0,0.1249 0.044,0.2659 0.11798,0.5248 0.18798,0.7807 0.026,0.096 0.064,0.1859 0.094,0.2809 0.04,0.1289 0.079,0.2489 0.12499,0.3748 0.077,0.2119 0.15598,0.4218 0.24997,0.6246 0.05,0.106 0.10198,0.2099 0.15598,0.3129 0.15198,0.2919 0.31496,0.5747 0.49993,0.8436 0.016,0.024 0.046,0.039 0.063,0.063 0.19797,0.2809 0.39395,0.5597 0.62492,0.8126 0.04,0.044 0.084,0.082 0.12498,0.125 0.04,0.042 0.084,0.084 0.12499,0.1249 0.21397,0.2139 0.45094,0.4048 0.68791,0.5938 0.30596,0.2438 0.62892,0.4587 0.96888,0.6556 0.012,0.01 0.019,0.024 0.031,0.031 0.053,0.03 0.10299,0.065 0.15598,0.094 0.31596,0.156 0.69192,0.3249 0.93788,0.4378 0.10999,0.042 0.23098,0.057 0.34396,0.094 0.053,0.018 0.10299,0.046 0.15598,0.063 0.13598,0.041 0.26797,0.09 0.40595,0.1249 0.042,0.011 0.083,0.021 0.12499,0.031 0.29196,0.069 0.60192,0.1209 0.90588,0.1559 0.30896,0.036 0.61792,0.063 0.93788,0.063 0.33996,0 0.67092,-0.021 0.99988,-0.063 0.36495,-0.048 0.68091,-0.1239 0.99987,-0.1879 1.69779,-0.4358 3.1616,-1.4213 4.21847,-2.7487 0.028,-0.035 0.067,-0.058 0.094,-0.094 0.009,-0.012 0.022,-0.02 0.031,-0.031 0.014,-0.018 0.018,-0.044 0.031,-0.063 0.62292,-0.8246 1.07686,-1.7801 1.34383,-2.8117 0.056,-0.2169 0.11799,-0.4318 0.15598,-0.6557 0.005,-0.03 -0.005,-0.063 0,-0.094 0.006,-0.04 0.025,-0.079 0.031,-0.125 0.006,-0.043 0.026,-0.082 0.031,-0.1249 l -0.031,0 c 0.044,-0.3289 0.094,-0.6587 0.094,-0.9996 0,-0.5517 -0.05,-1.1034 -0.15598,-1.6242 -0.009,-0.043 -0.022,-0.082 -0.031,-0.1249 -0.046,-0.2079 -0.12398,-0.4229 -0.18798,-0.6248 -0.003,-0.01 0.003,-0.022 0,-0.031 -0.012,-0.038 -0.018,-0.056 -0.031,-0.094 -0.039,-0.119 -0.081,-0.2579 -0.12498,-0.3748 -0.012,-0.032 -0.018,-0.064 -0.031,-0.094 -0.043,-0.109 -0.10799,-0.2059 -0.15598,-0.3128 -0.002,0 0.002,-0.026 0,-0.031 -0.025,-0.054 -0.068,-0.1029 -0.094,-0.1559 -0.098,-0.2029 -0.19797,-0.3998 -0.31296,-0.5937 -0.058,-0.098 -0.094,-0.2169 -0.15598,-0.3129 -0.024,-0.036 -0.069,-0.058 -0.094,-0.094 -0.067,-0.099 -0.14698,-0.185 -0.21897,-0.2809 -0.08,-0.1 -0.13999,-0.2159 -0.21898,-0.3129 -0.005,-0.01 0.005,-0.025 0,-0.031 -0.17197,-0.2089 -0.36995,-0.4028 -0.56292,-0.5937 -0.093,-0.092 -0.18398,-0.1939 -0.28097,-0.2809 -0.028,-0.025 -0.065,-0.038 -0.094,-0.063 -0.20897,-0.1819 -0.42994,-0.3398 -0.65592,-0.4996 -0.055,-0.038 -0.10098,-0.088 -0.15598,-0.125 -0.07,-0.046 -0.14798,-0.081 -0.21897,-0.1249 -0.13498,-0.084 -0.26597,-0.174 -0.40595,-0.2499 -0.12298,-0.067 -0.24797,-0.127 -0.37495,-0.1879 -0.21397,-0.102 -0.43195,-0.198 -0.65592,-0.2809 -0.26596,-0.099 -0.53393,-0.1799 -0.8129,-0.2499 -0.24496,-0.062 -0.49693,-0.118 -0.7499,-0.1559 -0.39695,-0.061 -0.8049,-0.094 -1.21885,-0.094 m 0,0.9996 c 0.29896,0 0.58493,0.027 0.87489,0.063 0.17998,0.023 0.35496,0.058 0.53093,0.094 0.01,0 0.021,0 0.031,0 0.16598,0.035 0.33796,0.079 0.49994,0.1249 0.096,0.027 0.18698,0.063 0.28097,0.094 0.17197,0.057 0.33395,0.1169 0.49993,0.1879 0.19398,0.08 0.37896,0.1528 0.56293,0.2498 -0.031,0.01 -0.063,0.021 -0.094,0.031 -0.047,0.017 -0.11298,0.096 -0.12498,0.1249 -0.02,0.048 0.005,0.115 0,0.188 0.038,0.017 0.06,0.089 0.12498,0.1249 0.025,0.014 0.041,-0.01 0.063,0 0.038,0.021 0.07,0.087 0.063,0.1249 -0.011,0.055 -0.088,0.022 -0.12498,0.063 0.006,0.078 -0.043,0.105 -0.063,0.1559 0.012,0.033 0.057,0.024 0.063,0.063 -0.007,0.043 -0.079,0.049 -0.063,0.094 0.072,0.056 0.15098,-0.022 0.21897,-0.031 0.14898,-0.019 0.28297,0.041 0.37495,-0.031 -0.012,-0.071 0.10099,-0.092 0.094,-0.1559 -0.006,-0.048 -0.09,-0.061 -0.12498,-0.094 -0.019,-0.018 -0.04,-0.059 -0.063,-0.094 -0.026,-0.04 -0.064,-0.087 -0.094,-0.125 -0.039,-0.052 -0.12498,-0.1169 -0.12498,-0.1559 0.001,-0.045 0.052,-0.063 0.063,-0.125 -0.012,-0.057 -0.11699,0 -0.12499,-0.063 0.002,-0.019 0.021,-0.051 0.031,-0.063 0.14998,0.082 0.29796,0.1789 0.43795,0.2809 0.032,0.021 0.062,0.041 0.094,0.063 0.10798,0.081 0.20697,0.17 0.31296,0.2499 -0.067,0.012 -0.10099,0.09 -0.15598,0.156 -0.038,0.046 -0.099,0.1009 -0.15598,0.1249 -0.028,0.012 -0.068,-0.016 -0.094,0 -0.037,0.025 -0.051,0.096 -0.094,0.125 -0.031,0.021 -0.12399,0.094 -0.15598,0.094 -0.038,10e-4 -0.098,-0.04 -0.12499,-0.031 -0.04,0.013 -0.017,0.077 -0.063,0.094 -0.088,0.031 -0.24997,-0.069 -0.28096,0.063 0.038,0.076 0.15298,0.051 0.21897,0.094 0.042,0.026 0.11399,0.143 0.12498,0.1879 0.01,0.038 0.015,0.179 0,0.2189 -0.041,0.106 -0.15898,0.097 -0.28096,0.094 -0.034,-10e-4 -0.063,0 -0.094,0 -0.20697,-0.014 -0.40695,-0.085 -0.49994,0.063 0.007,0.1129 0.025,0.1829 0,0.2808 -0.018,0.072 -0.097,0.125 -0.094,0.188 0.002,0.032 0.055,0.082 0.063,0.1249 0.005,0.023 -0.011,0.073 0,0.094 0.034,0.066 0.12699,-0.01 0.18798,0 0.059,0.01 0.12598,0.1209 0.12498,0.1879 -10e-4,0.046 -0.033,0.1119 -0.063,0.1559 -0.058,0.089 -0.16698,0.077 -0.24997,0.1249 -0.07,0.039 -0.084,0.1189 -0.12498,0.1879 -0.044,0.074 -0.081,0.1109 -0.063,0.2189 -0.06,0.1179 -0.12598,0.1939 -0.24997,0.2499 -0.037,0.017 -0.092,0.039 -0.12498,0.063 -0.027,0.019 -0.056,0.051 -0.094,0.094 -0.047,0.052 -0.1,0.085 -0.12499,0.125 -0.019,0.031 -0.01,0.084 -0.031,0.1249 -0.029,0.056 -0.088,0.1 -0.12498,0.1559 -0.017,0.026 -0.043,0.059 -0.063,0.094 -0.042,0.077 -0.10099,0.1509 -0.094,0.2189 0.007,0.066 0.089,0.068 0.094,0.1249 0.004,0.032 -0.033,0.059 -0.031,0.094 0.001,0.051 0.027,0.086 0.031,0.1249 0.01,0.099 -0.044,0.12 -0.063,0.188 -0.009,0.032 0.008,0.068 0,0.094 -0.016,0.05 -0.093,0.098 -0.094,0.156 -0.001,0.042 0.059,0.097 0.063,0.1559 0.002,0.04 -0.038,0.057 -0.031,0.094 0.014,0.073 0.16198,0.162 0.21897,0.2189 0.075,0.075 0.15498,0.139 0.18798,0.219 0.027,0.067 0.041,0.1678 0.094,0.2188 0.039,0.037 0.10598,0.054 0.15598,0.094 0.047,0.036 0.10698,0.055 0.15598,0.094 0.081,0.064 0.18297,0.1969 0.31296,0.1879 0.068,-0.01 0.14198,-0.05 0.21897,-0.063 0.079,-0.014 0.16998,-0.039 0.24997,-0.031 0.061,0.01 0.12398,0.066 0.18797,0.063 0.067,0 0.14299,-0.061 0.21898,-0.094 0.13198,-0.057 0.33896,-0.1529 0.53093,-0.1249 0.14598,0.021 0.14898,0.2169 0.24997,0.2809 0.11798,0.01 0.21897,-0.054 0.31296,-0.031 0.07,0.017 0.14898,0.1319 0.15598,0.1879 0.007,0.058 -0.054,0.121 -0.063,0.1559 -0.018,0.078 -0.017,0.169 -0.031,0.2189 -0.011,0.038 -0.032,0.086 -0.031,0.125 0,0.035 0.058,0.1419 0.094,0.1879 0.044,0.056 0.10299,0.096 0.15598,0.1559 0.087,0.109 0.15498,0.2359 0.21897,0.3749 0.017,0.037 -0.016,0.077 0,0.1249 -0.029,0.2239 -0.10298,0.3769 -0.24997,0.6247 -0.069,0.08 -0.15798,0.15 -0.15598,0.2499 -0.005,0.2399 0.13599,0.3928 0.12499,0.6247 -0.024,0.3118 0.024,0.3328 0,0.4997 0.10499,0.053 0.031,0.2329 0,0.3439 -0.045,0.1319 -0.1,0.1619 -0.12499,0.2499 0.071,0.031 0.17098,0.019 0.24997,0 0,0 0.096,0.4008 0.094,0.4058 -0.8069,0.7967 -1.81877,1.3874 -2.93763,1.7182 -0.54993,0.1329 -0.71291,0.1329 -0.96888,0.1879 -0.33395,0.055 -0.68291,0.094 -1.03087,0.094 -0.24296,0 -0.48293,-0.01 -0.71891,-0.031 -0.18197,-0.018 -0.35395,-0.062 -0.53093,-0.094 -0.053,-0.01 -0.10398,-0.02 -0.15598,-0.031 -0.16298,-0.055 -0.35095,-0.088 -0.49994,-0.1249 -0.16997,-0.048 -0.33495,-0.096 -0.49993,-0.156 0.014,-0.013 0.027,-0.011 0.031,-0.031 0.009,-0.04 0.002,-0.062 0,-0.1249 0.015,-0.065 0.08,-0.058 0.094,-0.1249 -0.028,-0.048 -0.083,-0.038 -0.12498,-0.063 -0.041,-0.024 -0.068,-0.074 -0.063,-0.125 0.07,-0.029 0.19997,0.066 0.24996,-0.031 0.025,-0.046 -0.034,-0.1409 0,-0.1879 0.023,-0.031 0.16898,-0.055 0.21898,-0.063 0.071,-0.012 0.14798,-0.01 0.18797,-0.031 0.044,-0.029 0.10099,-0.105 0.094,-0.188 -0.004,-0.039 -0.033,-0.059 -0.063,-0.094 -0.025,-0.029 -0.013,-0.066 -0.031,-0.094 -0.031,-0.047 -0.08,-0.058 -0.094,-0.1249 0.096,-0.019 0.23597,0.1019 0.37496,0.063 0.066,-0.019 0.15698,-0.188 0.18797,-0.2499 0.01,-0.019 -0.01,-0.04 0,-0.063 0.012,-0.026 0.059,-0.049 0.063,-0.063 0.01,-0.036 -0.008,-0.071 0,-0.094 0.024,-0.068 0.085,-0.075 0.12498,-0.125 0.03,-0.038 0.065,-0.087 0.094,-0.1249 0.031,-0.041 0.042,-0.089 0.063,-0.125 0.02,-0.1219 -0.06,-0.2059 -0.031,-0.3128 0.032,-0.12 0.19598,-0.165 0.31296,-0.2189 0.04,-0.019 0.092,-0.05 0.12499,-0.063 0.08,-0.028 0.17598,-0.036 0.24997,-0.063 0.12498,-0.046 0.15698,-0.1669 0.21897,-0.2809 0.029,-0.054 0.057,-0.1179 0.063,-0.1559 0.005,-0.035 -0.007,-0.053 0,-0.094 0.006,-0.04 0.02,-0.081 0.031,-0.1248 0.014,-0.058 0.031,-0.1539 0.031,-0.2189 0,-0.053 -0.029,-0.078 -0.031,-0.1249 -0.009,-0.173 0.061,-0.218 0.12498,-0.3129 0.032,-0.047 0.04,-0.091 0.063,-0.125 0.10799,-0.1609 0.29497,-0.2259 0.28097,-0.4688 -0.005,-0.08 -0.035,-0.2558 -0.094,-0.2808 -0.034,-0.015 -0.10699,-0.011 -0.15598,-0.031 -0.15798,-0.059 -0.27397,-0.2689 -0.43795,-0.2809 -0.035,0 -0.055,0.031 -0.094,0.031 -0.065,0 -0.14698,-0.053 -0.21897,-0.063 -0.046,-0.01 -0.12898,0.013 -0.15598,0 -0.042,-0.02 -0.029,-0.1019 -0.063,-0.1249 -0.027,-0.018 -0.084,-0.015 -0.12498,-0.031 -0.066,-0.025 -0.11199,-0.056 -0.18798,-0.063 -0.023,-0.001 -0.067,0 -0.094,0 -0.042,-0.01 -0.086,-0.04 -0.12498,-0.063 -0.048,-0.029 -0.074,-0.052 -0.094,-0.094 0.044,-0.1439 -0.096,-0.1669 -0.12498,-0.2499 -0.014,-0.039 0.013,-0.09 0,-0.1249 -0.017,-0.05 -0.071,-0.084 -0.12499,-0.125 -0.097,-0.074 -0.17398,-0.1389 -0.31296,-0.1559 -0.061,-0.01 -0.14498,0 -0.21897,0 -0.078,-0.01 -0.16098,-0.058 -0.21897,-0.125 -0.056,-0.065 -0.076,-0.1249 -0.12499,-0.1559 -0.047,-0.03 -0.12398,-0.031 -0.15598,-0.063 -0.014,-0.014 -0.017,-0.031 -0.031,-0.063 -0.023,-0.048 -0.061,-0.098 -0.031,-0.156 -0.053,-0.027 -0.035,0.072 -0.094,0.063 -0.052,-0.074 -0.10099,-0.115 -0.21897,-0.094 -0.054,0.01 -0.093,0.06 -0.15598,0.063 -0.052,0 -0.088,-0.053 -0.15598,-0.063 -0.052,-0.01 -0.11999,0.036 -0.15598,0.031 -0.057,-0.011 -0.073,-0.059 -0.12499,-0.094 -0.038,-0.025 -0.10398,-0.095 -0.12498,-0.094 -0.067,0 -0.12598,0.1429 -0.21897,0.094 -0.045,-0.057 0.085,-0.071 0.031,-0.125 -0.04,-0.041 -0.061,0.01 -0.094,0.031 -0.037,0.025 -0.084,0.047 -0.12499,0.063 -0.092,0.034 -0.14698,0.025 -0.21897,0.063 -0.066,0.034 -0.087,0.088 -0.12499,0.156 -0.031,0.056 -0.079,0.1529 -0.12498,0.1559 -0.056,0 -0.10599,-0.072 -0.15598,-0.094 -0.15298,-0.066 -0.24797,0.03 -0.37495,0.031 -0.11799,0 -0.28697,-0.1709 -0.28097,-0.2808 0.004,-0.067 0.054,-0.166 0.063,-0.2499 0.006,-0.066 0.062,-0.127 0.063,-0.1879 0.001,-0.081 -0.13499,-0.147 -0.18798,-0.156 -0.12498,-0.023 -0.29496,0.061 -0.43794,0 -0.027,-0.045 0.047,-0.081 0.063,-0.1249 0.009,-0.025 -0.009,-0.034 0,-0.063 0.016,-0.042 0.074,-0.08 0.094,-0.1249 0.015,-0.034 0.016,-0.082 0.031,-0.125 0.017,-0.049 0.059,-0.091 0.063,-0.1249 0.005,-0.045 -0.027,-0.095 -0.063,-0.125 -0.11098,0.01 -0.18697,0 -0.24997,0.031 -0.14398,0.066 -0.10598,0.2659 -0.24997,0.3129 -0.05,0.016 -0.13298,0.021 -0.18797,0.031 -0.047,0.01 -0.10699,0.032 -0.15598,0.031 -0.058,-0.001 -0.15298,-0.057 -0.18798,-0.094 -0.009,-0.01 -0.024,-0.036 -0.031,-0.063 0.002,-0.01 -0.002,-0.021 0,-0.031 0.046,-0.2229 0.093,-0.4438 0.15598,-0.6557 0.003,-0.01 -0.003,-0.022 0,-0.031 0.042,-0.1389 0.10298,-0.2699 0.15598,-0.4058 0.013,-0.01 0.019,-0.023 0.031,-0.031 0.077,-0.053 0.15598,-0.1189 0.24997,-0.1249 0.057,0 0.16398,0.02 0.21897,0.031 0.05,0.01 0.082,0.059 0.12499,0.063 0.12298,0.01 0.14898,-0.1029 0.24997,-0.1559 0.10398,0.015 0.15598,-0.01 0.24996,0 0.064,0.01 0.13799,0.09 0.18798,0.094 0.042,0 0.053,-0.069 0.094,-0.063 0.04,0.01 0.11898,0.1079 0.12498,0.1559 0.007,0.06 -0.048,0.122 -0.031,0.1879 0.063,0.064 0.19097,0.056 0.28096,0.094 0.059,-0.048 0.009,-0.118 0,-0.1879 -0.002,-0.031 0.004,-0.066 0,-0.094 -0.006,-0.048 -0.031,-0.084 -0.031,-0.1249 -0.001,-0.1899 0.15398,-0.2999 0.28096,-0.3749 0.055,-0.033 0.10799,-0.069 0.15598,-0.094 0.067,-0.034 0.1,-0.063 0.15598,-0.094 0.10099,-0.057 0.20198,-0.092 0.28097,-0.1559 0.037,-0.086 -0.004,-0.1959 0,-0.2809 0.037,-0.022 0.055,0 0.094,0 0.061,-0.013 0.09,-0.091 0.12499,-0.1249 0.02,-0.02 0.069,-0.043 0.094,-0.063 0.061,-0.048 0.072,-0.104 0.12498,-0.125 0.019,-0.01 0.064,-0.017 0.094,-0.031 0.04,-0.011 0.092,-0.04 0.15598,-0.063 0.042,-0.014 0.13998,-0.015 0.15598,-0.031 0.02,-0.02 -0.006,-0.095 0,-0.1249 0.032,-0.151 0.27196,-0.168 0.40595,-0.2189 0.094,-0.036 0.17798,-0.114 0.28096,-0.094 -0.02,0.072 -0.10998,0.038 -0.094,0.1249 0.023,0.121 0.17598,-0.013 0.21898,-0.031 0.081,-0.034 0.23697,-0.055 0.34395,-0.094 0.094,-0.034 0.24497,-0.08 0.15598,-0.1879 -0.074,0 -0.092,0.066 -0.15598,0.094 -0.044,0.01 -0.056,-0.027 -0.094,-0.031 -0.036,0 -0.057,0.038 -0.094,0.031 -0.037,-0.01 -0.088,-0.082 -0.094,-0.1249 -0.015,-0.111 0.10999,-0.136 0.15598,-0.2189 -0.03,-0.101 -0.16598,-0.024 -0.24997,-0.063 0.009,-0.06 0.055,-0.1139 0.12499,-0.1249 0.057,-0.01 0.18497,0.01 0.21897,0.031 0.02,0.017 0,0.066 0.031,0.094 0.034,0.031 0.081,0.01 0.12499,0 0.016,-0.076 -0.10599,-0.043 -0.094,-0.094 0.09,-0.059 0.26497,-0.016 0.37495,-0.031 0.063,-0.01 0.13099,-0.062 0.18798,-0.094 0.054,-0.03 0.099,-0.081 0.15598,-0.031 0.016,0.054 -0.032,0.066 -0.063,0.094 -0.10199,0.091 -0.20198,0.2069 -0.28097,0.3128 0.049,0.048 0.13599,0.022 0.21898,0.031 0.032,0 0.06,0.025 0.094,0.031 0.04,0.01 0.094,-0.012 0.12499,0 0.056,0.014 0.07,0.094 0.12498,0.094 0.091,0 0.083,-0.125 0.031,-0.1879 0.016,-0.063 0.053,-0.08 0.031,-0.125 -0.041,-0.082 -0.21097,0.014 -0.21897,-0.094 -0.005,-0.067 0.07,-0.075 0.094,-0.125 -0.011,-0.1289 0.10598,-0.1349 0.094,-0.2499 -0.006,-0.048 -0.06,-0.049 -0.094,-0.094 -0.017,-0.023 -0.01,-0.076 -0.031,-0.094 -0.07,-0.059 -0.20997,-0.044 -0.21897,-0.1559 -0.004,-0.066 0.01,-0.115 0,-0.1879 -0.009,-0.067 -0.066,-0.2679 -0.12498,-0.2809 -0.075,-0.016 -0.12899,0.1139 -0.21898,0.1559 -0.049,0.023 -0.13898,0.04 -0.18797,0.031 -0.032,-0.01 -0.089,-0.032 -0.094,-0.094 -0.006,-0.07 0.05,-0.082 0.063,-0.1558 -0.011,-0.044 -0.051,-0.029 -0.094,-0.063 -0.049,-0.037 -0.091,-0.1159 -0.15598,-0.1249 -0.033,0 -0.093,0.029 -0.12498,0.031 -0.06,0 -0.10599,-0.015 -0.15598,-0.031 0.021,-0.01 0.041,-0.024 0.063,-0.031 0.12198,-0.042 0.24997,-0.059 0.37495,-0.094 0.022,-0.01 0.041,-0.025 0.063,-0.031 0.031,0.033 0.056,0.1029 0.094,0.1249 0.025,0.014 0.063,-0.01 0.094,0 0.098,0.03 0.17398,0.085 0.28097,0.063 0.037,-0.065 -0.074,-0.074 -0.031,-0.125 0.072,0.01 0.13198,0.04 0.18798,0.063 0.077,-0.056 0.12798,-0.066 0.12498,-0.1559 -0.001,-0.046 -0.062,-0.063 -0.094,-0.094 0.063,-0.011 0.12399,-0.022 0.18798,-0.031 0.005,0.017 0.021,0.03 0.031,0.031 0.038,0.01 0.16498,-0.051 0.18797,-0.063 0.004,0 -0.006,-0.027 0,-0.031 0.25297,-0.027 0.52094,-0.031 0.7809,-0.031 m -2.49968,0.4688 c -0.023,0.043 -0.047,0.079 -0.094,0.094 0.012,0.065 -0.084,0.1049 -0.094,0.1558 -0.006,0.035 -0.002,0.094 0,0.125 0.02,0.3189 -0.25096,0.4768 -0.56293,0.4688 -0.061,0.058 -0.029,0.1699 -0.063,0.2499 -0.028,0.067 -0.11998,0.1309 -0.18797,0.1249 -0.05,0 -0.12499,-0.079 -0.12499,-0.1249 0,-0.057 0.081,-0.091 0.031,-0.156 0.007,-0.044 0.10598,-0.086 0.094,-0.1559 -0.012,-0.074 -0.096,-0.019 -0.18798,-0.031 -0.052,-0.01 -0.13298,-0.037 -0.18798,-0.063 0.10099,-0.067 0.20498,-0.126 0.31296,-0.188 0.094,-0.056 0.18498,-0.1049 0.28097,-0.1559 0.25197,-0.1269 0.52193,-0.2438 0.7809,-0.3437 m 5.37432,0.7495 c -0.027,0 -0.04,0.018 -0.063,0.031 -0.051,0.031 -0.054,0.079 -0.094,0.094 -0.054,0.021 -0.11698,0.01 -0.12498,0.063 -0.006,0.041 0.033,0.055 0.031,0.094 -0.02,0.049 -0.053,0.066 -0.063,0.1249 0.068,0.11 0.22897,-0.01 0.31296,-0.031 0.038,-0.011 0.073,0 0.094,-0.031 0.023,-0.035 0.013,-0.105 0.031,-0.156 0.019,-0.056 0.069,-0.043 0.063,-0.094 -0.006,-0.05 -0.10599,-0.102 -0.18797,-0.094 m -7.31208,0.7807 c 0.061,0.016 0.19597,0.1929 0.063,0.2499 -0.013,0.01 -0.18698,0.036 -0.21897,0.031 -0.046,-0.01 -0.078,-0.086 -0.12499,-0.094 -0.092,-0.016 -0.21797,0.101 -0.28096,0 0.016,-0.059 0.086,-0.043 0.15598,-0.063 0.12498,-0.034 0.29796,-0.1529 0.40595,-0.1249 m 0.24996,0.3128 c 0.031,0 0.056,0.059 0.094,0.063 0.036,0 0.072,-0.036 0.094,-0.031 0.056,0.015 0.084,0.115 0.031,0.156 -0.044,0 -0.061,-0.037 -0.094,-0.031 -0.091,0.016 -0.11999,0.1929 -0.18798,0.1879 -0.064,-0.01 -0.096,-0.1409 -0.031,-0.1879 0.002,-0.04 -0.033,-0.054 -0.031,-0.094 0.02,-0.025 0.072,-0.066 0.12498,-0.063 m -0.31296,0.031 c 0.019,0.001 0.024,0 0.031,0 -0.009,0.071 -0.039,0.091 -0.094,0.125 -0.095,0.057 -0.15698,0.1279 -0.18797,0.2499 -0.009,0.036 -0.11099,0.1339 -0.15598,0.1249 -0.10599,-0.022 0.038,-0.2199 0.063,-0.2499 0.027,-0.033 0.062,-0.056 0.094,-0.094 0.03,-0.037 0.033,-0.105 0.063,-0.125 0.032,-0.022 0.13198,-0.033 0.18797,-0.031 m 9.49881,0.031 c 0.048,0.013 0.058,0.069 0.094,0.094 0.027,0.018 0.064,0.012 0.094,0.031 0.035,0.022 0.054,0.06 0.094,0.094 0.056,0.047 0.13998,0.088 0.21897,0.125 0.016,0.01 0.044,0.023 0.063,0.031 0.055,0.071 0.10399,0.1449 0.15598,0.2189 0.006,0.04 0.012,0.099 0.031,0.1249 0.052,0.071 0.13098,0.1319 0.18798,0.2189 -10e-4,0.083 0.036,0.133 0.094,0.1559 0.073,0.124 0.14898,0.2479 0.21897,0.3748 0.029,0.058 0.035,0.1289 0.063,0.1879 -0.021,0 -0.043,0.01 -0.063,0 -0.066,-0.116 -0.40895,-0.1389 -0.43795,0.031 -0.013,0.075 0.049,0.1749 -0.063,0.1879 -0.071,0.01 -0.15298,-0.073 -0.24997,-0.094 -0.04,-0.01 -0.094,0.014 -0.12498,0 -0.073,-0.025 -0.062,-0.1119 -0.12498,-0.1559 -0.036,-0.025 -0.12999,-0.056 -0.18798,-0.063 -0.036,0 -0.056,0 -0.094,0 -0.045,-0.01 -0.11798,-0.01 -0.15598,-0.031 -0.036,-0.022 -0.11599,-0.062 -0.12498,-0.094 -0.014,-0.049 0.09,-0.1139 0.094,-0.1558 0.002,-0.031 -0.023,-0.045 -0.031,-0.094 -0.005,-0.029 0.006,-0.074 0,-0.094 -0.01,-0.034 -0.071,-0.062 -0.12499,-0.063 -0.048,0 -0.084,0.03 -0.12498,0.031 -0.059,0.001 -0.17698,-0.037 -0.24997,-0.031 -0.044,0 -0.084,0.028 -0.12499,0.031 -0.11598,0.01 -0.19097,-0.01 -0.28096,0 -0.066,0 -0.18898,0.034 -0.24997,0.063 -0.031,0.014 -0.054,0.043 -0.094,0.063 -0.018,0.01 -0.039,0.021 -0.063,0.031 -0.038,0.017 -0.089,0.053 -0.12498,0.063 -0.052,0.013 -0.12399,0 -0.21898,0 -0.068,0 -0.18697,-0.014 -0.18797,-0.094 -10e-4,-0.1229 0.22697,-0.072 0.34396,-0.094 0.044,-0.01 0.073,-0.063 0.12498,-0.094 0.025,-0.015 0.039,-0.015 0.063,-0.031 0.04,-0.028 0.11898,-0.093 0.12498,-0.1249 0.006,-0.03 -0.035,-0.072 -0.031,-0.094 0.005,-0.028 0.057,-0.058 0.094,-0.094 0.056,-0.055 0.087,-0.1199 0.15598,-0.1559 0.047,-0.025 0.13499,-0.024 0.15599,-0.063 0.005,-0.043 -0.001,-0.055 0,-0.094 0.029,-0.027 0.038,-0.058 0.063,-0.063 0.072,-0.016 0.13498,0.035 0.21897,0.031 0.036,0 0.086,-0.01 0.12498,-0.031 0.033,-0.022 0.062,-0.045 0.094,-0.063 0.035,-0.018 0.051,-0.059 0.094,-0.063 0.10499,-0.01 0.17098,0.1239 0.21897,0.1879 0.04,0.053 0.15299,0.1189 0.21898,0.1559 0.037,0.021 0.084,0.045 0.12498,0.063 0.087,0.039 0.24697,0.1649 0.24997,0.2499 0.002,0.042 -0.038,0.054 -0.031,0.094 0.066,0.011 0.12298,-0.059 0.12498,-0.1249 10e-4,-0.041 -0.039,-0.05 -0.031,-0.094 0.031,-0.066 0.14798,-0.01 0.18798,-0.031 -0.007,-0.075 -0.12398,-0.086 -0.18798,-0.1249 -0.034,-0.021 -0.058,-0.048 -0.094,-0.063 -0.052,-0.021 -0.11598,-0.032 -0.15598,-0.063 -0.038,-0.029 -0.057,-0.08 -0.094,-0.1249 -0.054,-0.064 -0.15798,-0.073 -0.12498,-0.2189 0.016,-0.022 0.037,-0.069 0.063,-0.063 m -8.81189,0.2189 0.094,0 c 0.034,10e-4 0.08,-0.018 0.094,0 -0.022,0.088 -0.21197,0.063 -0.28096,0.031 0.004,-0.033 0.05,-0.027 0.094,-0.031 m -0.31296,0.156 c 0.023,0 0.039,-0.01 0.063,0 -0.062,0.052 -0.14398,0.092 -0.24997,0.1249 -0.051,0.016 -0.11598,0.025 -0.12498,-0.031 -0.011,-0.069 0.047,-0.056 0.094,-0.063 0.058,-0.01 0.14999,-0.029 0.21898,-0.031 m 8.6869,0 c -0.043,0.014 -0.066,0.1129 0,0.1249 0.031,-0.018 0.039,-0.068 0.031,-0.1249 -0.017,-0.018 -0.017,0 -0.031,0 m -0.031,0.1879 c -0.021,0.01 -0.04,0.01 -0.063,0.031 10e-4,0.075 0.015,0.1229 0,0.1879 0.043,0.082 0.13398,0.026 0.15598,-0.031 0.026,-0.1389 -0.03,-0.2049 -0.094,-0.1879 m 0.43795,0.3748 c 0.049,0.08 0.14098,0.137 0.24997,0.1559 0.04,-0.03 0.044,-0.1049 0.063,-0.1559 -0.047,10e-4 -0.097,0 -0.15598,0 -0.059,0 -0.12198,-0.028 -0.15598,0 m -11.68652,2.6867 c 0.16398,-0.01 0.21197,0.2159 0.34395,0.2809 0.033,0.017 0.082,0.022 0.12499,0.031 0.035,0.01 0.061,0.02 0.094,0.031 0.071,0.024 0.16198,0.01 0.21897,0.031 0.085,0.038 0.14598,0.2069 0.21897,0.2499 0.004,0.043 -0.013,0.093 0,0.1249 0.035,0.047 0.099,0.064 0.15598,0.094 0.068,0.037 0.092,0.1269 0.15598,0.1559 0.022,0.01 0.059,-0.01 0.094,0 0.088,0.027 0.11199,0.1468 0.18798,0.1248 0.05,-0.014 0.055,-0.078 0.063,-0.1248 0.033,-0.036 0.074,-0.093 0.12498,-0.094 0.083,0 0.095,0.075 0.12499,0.1559 0.017,0.046 0.051,0.1079 0.063,0.1559 0.021,0.083 0.017,0.3249 0,0.3748 -0.021,0.061 -0.10599,0.089 -0.15598,0.156 -0.024,0.031 -0.044,0.071 -0.063,0.094 -0.032,0.04 -0.069,0.057 -0.094,0.094 -0.014,0.021 -0.018,0.066 -0.031,0.094 -0.04,0.085 -0.096,0.148 -0.063,0.2499 0.014,0.042 0.062,0.076 0.063,0.125 0,0.058 -0.11498,0.093 -0.12498,0.1559 -0.007,0.047 0.048,0.126 0.063,0.1879 0.011,0.047 0.097,0.094 0.12498,0.125 0.047,0.053 0.082,0.1209 0.12499,0.1879 0.085,0.1299 0.13598,0.2799 0.21897,0.4058 0.043,0.066 0.12698,0.119 0.15598,0.1879 0.015,0.035 -0.014,0.094 0,0.125 0.048,0.1079 0.26597,0.2279 0.37495,0.2809 0.051,0.025 0.10999,0 0.15598,0.031 0.071,0.039 0.21398,0.1569 0.24997,0.2189 0.032,0.056 0.047,0.1929 0.063,0.2808 0.021,0.117 -0.005,0.2169 0,0.3439 0.004,0.069 0.03,0.1189 0.031,0.1879 0,0.024 10e-4,0.07 0,0.094 -0.002,0.083 0.007,0.1659 0,0.2498 -0.004,0.046 -0.003,0.087 0,0.125 0.004,0.041 0.028,0.057 0.031,0.094 0.002,0.039 -0.035,0.095 -0.031,0.125 0.009,0.084 0.077,0.1419 0.094,0.2189 0.013,0.061 0.039,0.2079 0.031,0.2809 -0.005,0.039 -0.025,0.083 -0.031,0.1249 -0.004,0.033 0.005,0.062 0,0.094 -0.006,0.047 -0.034,0.081 -0.031,0.1249 0.006,0.09 0.08,0.16 0.094,0.2499 0.005,0.03 -10e-4,0.065 0,0.094 10e-4,0.027 0.023,0.038 0.031,0.063 -0.26297,-0.1499 -0.50894,-0.3178 -0.74991,-0.4997 -0.22897,-0.173 -0.45094,-0.3639 -0.65592,-0.5628 -0.01,-0.01 -0.021,-0.021 -0.031,-0.031 -0.20698,-0.2039 -0.41395,-0.4278 -0.59393,-0.6557 -0.10398,-0.1319 -0.21797,-0.2669 -0.31296,-0.4058 -0.056,-0.083 -0.10399,-0.1639 -0.15598,-0.2499 -0.032,-0.051 -0.063,-0.104 -0.094,-0.1559 -0.089,-0.153 -0.17297,-0.3078 -0.24997,-0.4687 -0.049,-0.101 -0.081,-0.2079 -0.12498,-0.3129 -0.10499,-0.2479 -0.20497,-0.4888 -0.28096,-0.7497 -0.054,-0.1849 -0.086,-0.3708 -0.12499,-0.5627 -0.03,-0.146 -0.073,-0.2889 -0.094,-0.4378 -0.011,-0.081 -0.023,-0.168 -0.031,-0.2499 -0.024,-0.2349 -0.031,-0.4768 -0.031,-0.7186 0,-0.3019 0.026,-0.5837 0.063,-0.8746 10e-4,-0.01 -10e-4,-0.021 0,-0.031 0.063,0 0.14899,-0.092 0.21898,-0.094 m 2.68766,0.7497 c 0.064,-0.029 0.084,0.117 0.031,0.125 -0.05,0.01 -0.08,-0.102 -0.031,-0.125" inkscape:connector-curvature="0" style="fill:currentColor;fill-opacity:1" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8" width="0" height="10.999983" x="388.71515" y="535.0567" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0" width="0" height="10.999983" x="390.08517" y="534.26123" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_satellites.svg b/kstars/data/icons/breeze/default/kstars_satellites.svg
new file mode 100755
index 0000000..89e22e1
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_satellites.svg
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_satellites.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="23.227273"
+ inkscape:cx="11"
+ inkscape:cy="11"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 14 3 L 8.7363281 10.177734 A 4.5 4.5 0 0 1 9.6894531 10.570312 L 14.117188 4.53125 L 17.46875 7.8828125 L 11.427734 12.314453 A 4.5 4.5 0 0 1 11.824219 13.261719 L 19 8 L 14 3 z M 3.7480469 16.980469 L 3 18 L 4 19 L 5.0195312 18.251953 A 4.5 4.5 0 0 1 3.7480469 16.980469 z "
+ transform="translate(0,1030.3622)"
+ id="path4179-7-3" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 7.5 10 C 6.3069911 10.0012 5.1632886 10.476121 4.3203125 11.320312 A 4.5 4.5 0 0 0 3.6933594 12.107422 L 9.8945312 18.308594 A 4.5 4.5 0 0 0 10.679688 17.679688 C 11.523882 16.836711 11.998786 15.693009 12 14.5 C 12.000005 12.01472 9.9852847 10 7.5 10 z M 7.5 11 C 9.4329966 11 11 12.567003 11 14.5 C 10.9988 15.427807 10.629304 16.317185 9.9726562 16.972656 L 5.0273438 12.027344 C 5.6828146 11.370696 6.5721925 11.001176 7.5 11 z "
+ transform="translate(0,1030.3622)"
+ id="path4220" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 38,1049.3622 3,-3 -4.0762,-4.0762 -2.539,3.461 3.6152,3.6152 z m -9.3848,-9.3848 3.461,-2.539 -4.0762,-4.0762 -3,3 3.6152,3.6152 z"
+ id="path4179-7-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 5.9140625 3.0859375 L 3.0859375 5.9160156 L 6.7578125 9.5859375 L 9.5859375 6.7578125 L 5.9140625 3.0859375 z M 15.242188 12.414062 L 12.414062 15.244141 L 16.085938 18.916016 L 18.914062 16.085938 L 15.242188 12.414062 z "
+ transform="translate(0,1030.3622)"
+ id="path4312" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 5.7871094 14.201172 L 4.390625 16.105469 A 3.5 3.5 0 0 0 5.8964844 17.607422 L 7.7988281 16.212891 L 5.7871094 14.201172 z "
+ transform="translate(0,1030.3622)"
+ id="path4349" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_solarsystem.svg b/kstars/data/icons/breeze/default/kstars_solarsystem.svg
new file mode 100755
index 0000000..744f1e6
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_solarsystem.svg
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_solarsystem.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.4442098"
+ inkscape:cy="10.43506"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4168-5"
+ cx="11"
+ cy="1041.3622"
+ r="2" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 11 6 A 5 5 0 0 0 6 11 A 5 5 0 0 0 11 16 A 5 5 0 0 0 16 11 A 5 5 0 0 0 11 6 z M 11 7 A 4 4 0 0 1 15 11 A 4 4 0 0 1 11 15 A 4 4 0 0 1 7 11 A 4 4 0 0 1 11 7 z "
+ transform="translate(0,1030.3622)"
+ id="path4185" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4168"
+ cx="896.76117"
+ cy="-534.48846"
+ r="1.5"
+ inkscape:transform-center-x="-3.2411854"
+ inkscape:transform-center-y="2.4486451"
+ transform="matrix(-0.5,0.8660254,-0.8660254,-0.5,0,0)" />
+ <path
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ d="M 11 3 A 8 8 0 0 0 3 11 A 8 8 0 0 0 11 19 A 8 8 0 0 0 19 11 A 8 8 0 0 0 11 3 z M 11 4 A 7 7 0 0 1 18 11 A 7 7 0 0 1 11 18 A 7 7 0 0 1 4 11 A 7 7 0 0 1 11 4 z "
+ transform="translate(0,1030.3622)"
+ id="path4190" />
+ <circle
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none"
+ id="path4168-9"
+ cx="528.19421"
+ cy="903.85925"
+ r="1.5"
+ inkscape:transform-center-x="-2.4486583"
+ inkscape:transform-center-y="-3.2411541"
+ transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,0)" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_stars.svg b/kstars/data/icons/breeze/default/kstars_stars.svg
new file mode 100755
index 0000000..cc809d8
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_stars.svg
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3760" version="1.1" inkscape:version="0.91+devel r" sodipodi:docname="draw-star.svg">
+ <defs id="defs3762">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16.95593" inkscape:cx="15.223149" inkscape:cy="12.337471" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="670" inkscape:window-x="-4" inkscape:window-y="29" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <sodipodi:guide position="-0.99999557,22.999999" orientation="24,0" id="guide4115"/>
+ <sodipodi:guide position="-0.99999557,-1.0000018" orientation="0,24" id="guide4117"/>
+ <sodipodi:guide position="23.000004,-1.0000018" orientation="-24,0" id="guide4119"/>
+ <sodipodi:guide position="23.000004,22.999999" orientation="0,-24" id="guide4121"/>
+ <sodipodi:guide position="2.0000044,19.999999" orientation="18,0" id="guide4123"/>
+ <sodipodi:guide position="2.0000044,1.9999981" orientation="0,18" id="guide4125"/>
+ <sodipodi:guide position="20.000004,1.9999981" orientation="-18,0" id="guide4127"/>
+ <sodipodi:guide position="20.000004,19.999999" orientation="0,-18" id="guide4129"/>
+ <sodipodi:guide position="3.0000044,18.999999" orientation="16,0" id="guide4131"/>
+ <sodipodi:guide position="3.0000044,2.9999981" orientation="0,16" id="guide4133"/>
+ <sodipodi:guide position="19.000004,2.9999981" orientation="-16,0" id="guide4135"/>
+ <sodipodi:guide position="19.000004,18.999999" orientation="0,-16" id="guide4137"/>
+ <inkscape:grid type="xygrid" id="grid4139" originx="-0.99998114" originy="-1.0000137"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3765">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-551.28571,-607.64789)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 12,4 9.5273438,9.2675781 4,10.111328 8,14.210938 7.0566406,20 12,17.267578 16.943359,20 16,14.210938 20,10.111328 14.472656,9.2675781 12,4 Z M 12,6 13.853516,9.9492188 18,10.583984 15,13.658203 15.708984,18 12,15.949219 8.2910156,18 9,13.658203 6,10.583984 10.146484,9.9492188 12,6 Z" transform="translate(550.28572,606.6479)" id="path4116" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_supernovae.svg b/kstars/data/icons/breeze/default/kstars_supernovae.svg
new file mode 100755
index 0000000..82570b7
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_supernovae.svg
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="22"
+ height="22"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ viewBox="0 0 22 22"
+ sodipodi:docname="kstars_supernovae.svg">
+ <defs
+ id="defs4">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3979">
+ <rect
+ style="fill:#000000"
+ id="rect3981"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3975">
+ <rect
+ style="fill:#000000"
+ id="rect3977"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3971">
+ <rect
+ style="fill:#000000"
+ id="rect3973"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3967">
+ <rect
+ style="fill:#000000"
+ id="rect3969"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3963">
+ <rect
+ style="fill:#000000"
+ id="rect3965"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3959">
+ <rect
+ style="fill:#000000"
+ id="rect3961"
+ width="64"
+ height="64"
+ x="0.090115756"
+ y="-0.090114839"
+ clip-path="none" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient3764">
+ <stop
+ style="stop-color:#ffffb7;stop-opacity:1;"
+ offset="0"
+ id="stop3766" />
+ <stop
+ id="stop3772"
+ offset="0.5"
+ style="stop-color:#f4e55b;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ea9a00;stop-opacity:1;"
+ offset="1"
+ id="stop3768" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="19.28473"
+ inkscape:cx="8.0911901"
+ inkscape:cy="10.549441"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ units="px"
+ inkscape:window-width="1024"
+ inkscape:window-height="712"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4120" />
+ <sodipodi:guide
+ position="2,20.000017"
+ orientation="18,0"
+ id="guide4126" />
+ <sodipodi:guide
+ position="2,2.0000174"
+ orientation="0,18"
+ id="guide4128" />
+ <sodipodi:guide
+ position="20,2.0000174"
+ orientation="-18,0"
+ id="guide4130" />
+ <sodipodi:guide
+ position="20,20.000017"
+ orientation="0,-18"
+ id="guide4132" />
+ <sodipodi:guide
+ position="3,19.000017"
+ orientation="16,0"
+ id="guide4134" />
+ <sodipodi:guide
+ position="3,3.0000174"
+ orientation="0,16"
+ id="guide4136" />
+ <sodipodi:guide
+ position="19,3.0000174"
+ orientation="-16,0"
+ id="guide4138" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-16"
+ id="guide4140" />
+ <sodipodi:guide
+ position="19,13.000017"
+ orientation="-6,0"
+ id="guide4199" />
+ <sodipodi:guide
+ position="19,19.000017"
+ orientation="0,-6.0000172"
+ id="guide4201" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1030.3622)">
+ <ellipse
+ cy="1032.5627"
+ cx="-116.09943"
+ style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.48633173;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3714"
+ transform="matrix(0.98988895,-0.14184453,0.1220192,0.99252774,0,0)"
+ rx="5.0134459"
+ ry="5.3982182" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#bdc3c7;fill-opacity:1;stroke:none;stroke-width:0.60000002;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 17.895335,1033.9163 c -0.880866,0.3652 -2.467542,1.1095 -4.343769,2.444 0.128665,0.081 0.254388,0.1709 0.376775,0.2646 1.789584,-1.174 3.035242,-1.6021 3.423843,-1.1371 0.655626,0.7846 -1.896691,3.5806 -5.496245,6.8516 -3.5995549,3.271 -6.6479859,5.4445 -7.3036117,4.6599 -0.3997525,-0.4784 0.2705778,-1.689 1.7100447,-3.4462 -0.070957,-0.1362 -0.1131842,-0.3028 -0.1717131,-0.4435 -2.1823593,2.488 -4.5484417,5.4374 -4.0142641,6.0766 0.7758966,0.9285 6.4025584,-1.9353 10.6624312,-5.8063 4.259872,-3.8711 7.932864,-9.0496 7.156967,-9.9781 -0.14548,-0.1741 -1.55024,0.2677 -2.000458,0.5145 z"
+ id="path3482"
+ sodipodi:nodetypes="cccsssccsssc" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/kstars_xplanet.svg b/kstars/data/icons/breeze/default/kstars_xplanet.svg
new file mode 100755
index 0000000..ffc5b9e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/kstars_xplanet.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3049" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="folder-html.svg" inkscape:export-filename="/home/uri/.kde/share/icons/NITRUX-KDE/16x16/actions/view-right-new.png" inkscape:export-xdpi="30" inkscape:export-ydpi="30">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.615453" inkscape:cx="3.5631263" inkscape:cy="11.458656" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1920" inkscape:window-height="957" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" inkscape:object-nodes="true">
+ <sodipodi:guide position="2.0000044,20.00003" orientation="18,0" id="guide4067"/>
+ <sodipodi:guide position="2.0000044,2.0000296" orientation="0,18" id="guide4069"/>
+ <sodipodi:guide position="20.000004,2.0000296" orientation="-18,0" id="guide4071"/>
+ <sodipodi:guide position="20.000004,20.00003" orientation="0,-18" id="guide4073"/>
+ <sodipodi:guide position="3.0000044,19.00003" orientation="16,0" id="guide4077"/>
+ <sodipodi:guide position="3.0000044,3.0000296" orientation="0,16" id="guide4079"/>
+ <sodipodi:guide position="19.000004,3.0000296" orientation="-16,0" id="guide4081"/>
+ <sodipodi:guide position="19.000004,19.00003" orientation="0,-16" id="guide4083"/>
+ <inkscape:grid type="xygrid" id="grid4085"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3054">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-421.71429,-525.79074)">
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035" width="0" height="10.999983" x="383.45605" y="518.13037" class="ColorScheme-Text"/>
+ <path id="path3011" d="m 432.71834,528.79074 c -0.31896,0 -0.62792,0.026 -0.93788,0.063 -0.30396,0.036 -0.61392,0.087 -0.90589,0.1559 -0.094,0.022 -0.18497,0.067 -0.28096,0.094 -0.084,0.023 -0.16698,0.037 -0.24997,0.063 -0.10499,0.033 -0.21397,0.059 -0.31296,0.094 -0.10699,0.038 -0.20697,0.083 -0.31296,0.1249 -0.20597,0.083 -0.39695,0.182 -0.59393,0.2809 -0.071,0.036 -0.14898,0.056 -0.21897,0.094 -0.22997,0.1209 -0.44094,0.2629 -0.65592,0.4058 -0.082,0.055 -0.16997,0.098 -0.24996,0.1559 -0.033,0.024 -0.061,0.038 -0.094,0.063 -0.094,0.071 -0.19098,0.1418 -0.28097,0.2188 -0.10698,0.089 -0.20997,0.1869 -0.31296,0.2809 -0.032,0.03 -0.062,0.064 -0.094,0.094 -0.011,0.011 -0.02,0.02 -0.031,0.031 -0.016,0.016 -0.015,0.047 -0.031,0.063 -0.20997,0.2039 -0.43894,0.3988 -0.62492,0.6247 -0.005,0.01 0.005,0.025 0,0.031 -0.18098,0.2199 -0.34296,0.4478 -0.49994,0.6877 -0.021,0.032 -0.042,0.061 -0.063,0.094 -0.015,0.024 -0.047,0.037 -0.063,0.063 -0.06,0.098 -0.10099,0.209 -0.15598,0.3129 -0.018,0.033 -0.045,0.061 -0.063,0.094 -0.075,0.1459 -0.14998,0.2898 -0.21897,0.4378 -0.004,0.01 0.004,0.023 0,0.031 -0.11699,0.2528 -0.22198,0.5136 -0.31296,0.7805 -0.019,0.053 -0.045,0.103 -0.063,0.156 -0.003,0.01 0.003,0.022 0,0.031 -0.02,0.062 -0.044,0.125 -0.063,0.188 -0.073,0.2568 -0.13998,0.5137 -0.18798,0.7806 -0.034,0.1919 -0.074,0.3968 -0.094,0.5938 -0.027,0.2648 -0.031,0.5417 -0.031,0.8125 0,0.4038 0.036,0.7996 0.094,1.1875 0.006,0.041 -0.007,0.085 0,0.1249 0.044,0.2659 0.11798,0.5248 0.18798,0.7807 0.026,0.096 0.064,0.1859 0.094,0.2809 0.04,0.1289 0.079,0.2489 0.12499,0.3748 0.077,0.2119 0.15598,0.4218 0.24997,0.6246 0.05,0.106 0.10198,0.2099 0.15598,0.3129 0.15198,0.2919 0.31496,0.5747 0.49993,0.8436 0.016,0.024 0.046,0.039 0.063,0.063 0.19797,0.2809 0.39395,0.5597 0.62492,0.8126 0.04,0.044 0.084,0.082 0.12498,0.125 0.04,0.042 0.084,0.084 0.12499,0.1249 0.21397,0.2139 0.45094,0.4048 0.68791,0.5938 0.30596,0.2438 0.62892,0.4587 0.96888,0.6556 0.012,0.01 0.019,0.024 0.031,0.031 0.053,0.03 0.10299,0.065 0.15598,0.094 0.31596,0.156 0.69192,0.3249 0.93788,0.4378 0.10999,0.042 0.23098,0.057 0.34396,0.094 0.053,0.018 0.10299,0.046 0.15598,0.063 0.13598,0.041 0.26797,0.09 0.40595,0.1249 0.042,0.011 0.083,0.021 0.12499,0.031 0.29196,0.069 0.60192,0.1209 0.90588,0.1559 0.30896,0.036 0.61792,0.063 0.93788,0.063 0.33996,0 0.67092,-0.021 0.99988,-0.063 0.36495,-0.048 0.68091,-0.1239 0.99987,-0.1879 1.69779,-0.4358 3.1616,-1.4213 4.21847,-2.7487 0.028,-0.035 0.067,-0.058 0.094,-0.094 0.009,-0.012 0.022,-0.02 0.031,-0.031 0.014,-0.018 0.018,-0.044 0.031,-0.063 0.62292,-0.8246 1.07686,-1.7801 1.34383,-2.8117 0.056,-0.2169 0.11799,-0.4318 0.15598,-0.6557 0.005,-0.03 -0.005,-0.063 0,-0.094 0.006,-0.04 0.025,-0.079 0.031,-0.125 0.006,-0.043 0.026,-0.082 0.031,-0.1249 l -0.031,0 c 0.044,-0.3289 0.094,-0.6587 0.094,-0.9996 0,-0.5517 -0.05,-1.1034 -0.15598,-1.6242 -0.009,-0.043 -0.022,-0.082 -0.031,-0.1249 -0.046,-0.2079 -0.12398,-0.4229 -0.18798,-0.6248 -0.003,-0.01 0.003,-0.022 0,-0.031 -0.012,-0.038 -0.018,-0.056 -0.031,-0.094 -0.039,-0.119 -0.081,-0.2579 -0.12498,-0.3748 -0.012,-0.032 -0.018,-0.064 -0.031,-0.094 -0.043,-0.109 -0.10799,-0.2059 -0.15598,-0.3128 -0.002,0 0.002,-0.026 0,-0.031 -0.025,-0.054 -0.068,-0.1029 -0.094,-0.1559 -0.098,-0.2029 -0.19797,-0.3998 -0.31296,-0.5937 -0.058,-0.098 -0.094,-0.2169 -0.15598,-0.3129 -0.024,-0.036 -0.069,-0.058 -0.094,-0.094 -0.067,-0.099 -0.14698,-0.185 -0.21897,-0.2809 -0.08,-0.1 -0.13999,-0.2159 -0.21898,-0.3129 -0.005,-0.01 0.005,-0.025 0,-0.031 -0.17197,-0.2089 -0.36995,-0.4028 -0.56292,-0.5937 -0.093,-0.092 -0.18398,-0.1939 -0.28097,-0.2809 -0.028,-0.025 -0.065,-0.038 -0.094,-0.063 -0.20897,-0.1819 -0.42994,-0.3398 -0.65592,-0.4996 -0.055,-0.038 -0.10098,-0.088 -0.15598,-0.125 -0.07,-0.046 -0.14798,-0.081 -0.21897,-0.1249 -0.13498,-0.084 -0.26597,-0.174 -0.40595,-0.2499 -0.12298,-0.067 -0.24797,-0.127 -0.37495,-0.1879 -0.21397,-0.102 -0.43195,-0.198 -0.65592,-0.2809 -0.26596,-0.099 -0.53393,-0.1799 -0.8129,-0.2499 -0.24496,-0.062 -0.49693,-0.118 -0.7499,-0.1559 -0.39695,-0.061 -0.8049,-0.094 -1.21885,-0.094 m 0,0.9996 c 0.29896,0 0.58493,0.027 0.87489,0.063 0.17998,0.023 0.35496,0.058 0.53093,0.094 0.01,0 0.021,0 0.031,0 0.16598,0.035 0.33796,0.079 0.49994,0.1249 0.096,0.027 0.18698,0.063 0.28097,0.094 0.17197,0.057 0.33395,0.1169 0.49993,0.1879 0.19398,0.08 0.37896,0.1528 0.56293,0.2498 -0.031,0.01 -0.063,0.021 -0.094,0.031 -0.047,0.017 -0.11298,0.096 -0.12498,0.1249 -0.02,0.048 0.005,0.115 0,0.188 0.038,0.017 0.06,0.089 0.12498,0.1249 0.025,0.014 0.041,-0.01 0.063,0 0.038,0.021 0.07,0.087 0.063,0.1249 -0.011,0.055 -0.088,0.022 -0.12498,0.063 0.006,0.078 -0.043,0.105 -0.063,0.1559 0.012,0.033 0.057,0.024 0.063,0.063 -0.007,0.043 -0.079,0.049 -0.063,0.094 0.072,0.056 0.15098,-0.022 0.21897,-0.031 0.14898,-0.019 0.28297,0.041 0.37495,-0.031 -0.012,-0.071 0.10099,-0.092 0.094,-0.1559 -0.006,-0.048 -0.09,-0.061 -0.12498,-0.094 -0.019,-0.018 -0.04,-0.059 -0.063,-0.094 -0.026,-0.04 -0.064,-0.087 -0.094,-0.125 -0.039,-0.052 -0.12498,-0.1169 -0.12498,-0.1559 0.001,-0.045 0.052,-0.063 0.063,-0.125 -0.012,-0.057 -0.11699,0 -0.12499,-0.063 0.002,-0.019 0.021,-0.051 0.031,-0.063 0.14998,0.082 0.29796,0.1789 0.43795,0.2809 0.032,0.021 0.062,0.041 0.094,0.063 0.10798,0.081 0.20697,0.17 0.31296,0.2499 -0.067,0.012 -0.10099,0.09 -0.15598,0.156 -0.038,0.046 -0.099,0.1009 -0.15598,0.1249 -0.028,0.012 -0.068,-0.016 -0.094,0 -0.037,0.025 -0.051,0.096 -0.094,0.125 -0.031,0.021 -0.12399,0.094 -0.15598,0.094 -0.038,10e-4 -0.098,-0.04 -0.12499,-0.031 -0.04,0.013 -0.017,0.077 -0.063,0.094 -0.088,0.031 -0.24997,-0.069 -0.28096,0.063 0.038,0.076 0.15298,0.051 0.21897,0.094 0.042,0.026 0.11399,0.143 0.12498,0.1879 0.01,0.038 0.015,0.179 0,0.2189 -0.041,0.106 -0.15898,0.097 -0.28096,0.094 -0.034,-10e-4 -0.063,0 -0.094,0 -0.20697,-0.014 -0.40695,-0.085 -0.49994,0.063 0.007,0.1129 0.025,0.1829 0,0.2808 -0.018,0.072 -0.097,0.125 -0.094,0.188 0.002,0.032 0.055,0.082 0.063,0.1249 0.005,0.023 -0.011,0.073 0,0.094 0.034,0.066 0.12699,-0.01 0.18798,0 0.059,0.01 0.12598,0.1209 0.12498,0.1879 -10e-4,0.046 -0.033,0.1119 -0.063,0.1559 -0.058,0.089 -0.16698,0.077 -0.24997,0.1249 -0.07,0.039 -0.084,0.1189 -0.12498,0.1879 -0.044,0.074 -0.081,0.1109 -0.063,0.2189 -0.06,0.1179 -0.12598,0.1939 -0.24997,0.2499 -0.037,0.017 -0.092,0.039 -0.12498,0.063 -0.027,0.019 -0.056,0.051 -0.094,0.094 -0.047,0.052 -0.1,0.085 -0.12499,0.125 -0.019,0.031 -0.01,0.084 -0.031,0.1249 -0.029,0.056 -0.088,0.1 -0.12498,0.1559 -0.017,0.026 -0.043,0.059 -0.063,0.094 -0.042,0.077 -0.10099,0.1509 -0.094,0.2189 0.007,0.066 0.089,0.068 0.094,0.1249 0.004,0.032 -0.033,0.059 -0.031,0.094 0.001,0.051 0.027,0.086 0.031,0.1249 0.01,0.099 -0.044,0.12 -0.063,0.188 -0.009,0.032 0.008,0.068 0,0.094 -0.016,0.05 -0.093,0.098 -0.094,0.156 -0.001,0.042 0.059,0.097 0.063,0.1559 0.002,0.04 -0.038,0.057 -0.031,0.094 0.014,0.073 0.16198,0.162 0.21897,0.2189 0.075,0.075 0.15498,0.139 0.18798,0.219 0.027,0.067 0.041,0.1678 0.094,0.2188 0.039,0.037 0.10598,0.054 0.15598,0.094 0.047,0.036 0.10698,0.055 0.15598,0.094 0.081,0.064 0.18297,0.1969 0.31296,0.1879 0.068,-0.01 0.14198,-0.05 0.21897,-0.063 0.079,-0.014 0.16998,-0.039 0.24997,-0.031 0.061,0.01 0.12398,0.066 0.18797,0.063 0.067,0 0.14299,-0.061 0.21898,-0.094 0.13198,-0.057 0.33896,-0.1529 0.53093,-0.1249 0.14598,0.021 0.14898,0.2169 0.24997,0.2809 0.11798,0.01 0.21897,-0.054 0.31296,-0.031 0.07,0.017 0.14898,0.1319 0.15598,0.1879 0.007,0.058 -0.054,0.121 -0.063,0.1559 -0.018,0.078 -0.017,0.169 -0.031,0.2189 -0.011,0.038 -0.032,0.086 -0.031,0.125 0,0.035 0.058,0.1419 0.094,0.1879 0.044,0.056 0.10299,0.096 0.15598,0.1559 0.087,0.109 0.15498,0.2359 0.21897,0.3749 0.017,0.037 -0.016,0.077 0,0.1249 -0.029,0.2239 -0.10298,0.3769 -0.24997,0.6247 -0.069,0.08 -0.15798,0.15 -0.15598,0.2499 -0.005,0.2399 0.13599,0.3928 0.12499,0.6247 -0.024,0.3118 0.024,0.3328 0,0.4997 0.10499,0.053 0.031,0.2329 0,0.3439 -0.045,0.1319 -0.1,0.1619 -0.12499,0.2499 0.071,0.031 0.17098,0.019 0.24997,0 0,0 0.096,0.4008 0.094,0.4058 -0.8069,0.7967 -1.81877,1.3874 -2.93763,1.7182 -0.54993,0.1329 -0.71291,0.1329 -0.96888,0.1879 -0.33395,0.055 -0.68291,0.094 -1.03087,0.094 -0.24296,0 -0.48293,-0.01 -0.71891,-0.031 -0.18197,-0.018 -0.35395,-0.062 -0.53093,-0.094 -0.053,-0.01 -0.10398,-0.02 -0.15598,-0.031 -0.16298,-0.055 -0.35095,-0.088 -0.49994,-0.1249 -0.16997,-0.048 -0.33495,-0.096 -0.49993,-0.156 0.014,-0.013 0.027,-0.011 0.031,-0.031 0.009,-0.04 0.002,-0.062 0,-0.1249 0.015,-0.065 0.08,-0.058 0.094,-0.1249 -0.028,-0.048 -0.083,-0.038 -0.12498,-0.063 -0.041,-0.024 -0.068,-0.074 -0.063,-0.125 0.07,-0.029 0.19997,0.066 0.24996,-0.031 0.025,-0.046 -0.034,-0.1409 0,-0.1879 0.023,-0.031 0.16898,-0.055 0.21898,-0.063 0.071,-0.012 0.14798,-0.01 0.18797,-0.031 0.044,-0.029 0.10099,-0.105 0.094,-0.188 -0.004,-0.039 -0.033,-0.059 -0.063,-0.094 -0.025,-0.029 -0.013,-0.066 -0.031,-0.094 -0.031,-0.047 -0.08,-0.058 -0.094,-0.1249 0.096,-0.019 0.23597,0.1019 0.37496,0.063 0.066,-0.019 0.15698,-0.188 0.18797,-0.2499 0.01,-0.019 -0.01,-0.04 0,-0.063 0.012,-0.026 0.059,-0.049 0.063,-0.063 0.01,-0.036 -0.008,-0.071 0,-0.094 0.024,-0.068 0.085,-0.075 0.12498,-0.125 0.03,-0.038 0.065,-0.087 0.094,-0.1249 0.031,-0.041 0.042,-0.089 0.063,-0.125 0.02,-0.1219 -0.06,-0.2059 -0.031,-0.3128 0.032,-0.12 0.19598,-0.165 0.31296,-0.2189 0.04,-0.019 0.092,-0.05 0.12499,-0.063 0.08,-0.028 0.17598,-0.036 0.24997,-0.063 0.12498,-0.046 0.15698,-0.1669 0.21897,-0.2809 0.029,-0.054 0.057,-0.1179 0.063,-0.1559 0.005,-0.035 -0.007,-0.053 0,-0.094 0.006,-0.04 0.02,-0.081 0.031,-0.1248 0.014,-0.058 0.031,-0.1539 0.031,-0.2189 0,-0.053 -0.029,-0.078 -0.031,-0.1249 -0.009,-0.173 0.061,-0.218 0.12498,-0.3129 0.032,-0.047 0.04,-0.091 0.063,-0.125 0.10799,-0.1609 0.29497,-0.2259 0.28097,-0.4688 -0.005,-0.08 -0.035,-0.2558 -0.094,-0.2808 -0.034,-0.015 -0.10699,-0.011 -0.15598,-0.031 -0.15798,-0.059 -0.27397,-0.2689 -0.43795,-0.2809 -0.035,0 -0.055,0.031 -0.094,0.031 -0.065,0 -0.14698,-0.053 -0.21897,-0.063 -0.046,-0.01 -0.12898,0.013 -0.15598,0 -0.042,-0.02 -0.029,-0.1019 -0.063,-0.1249 -0.027,-0.018 -0.084,-0.015 -0.12498,-0.031 -0.066,-0.025 -0.11199,-0.056 -0.18798,-0.063 -0.023,-0.001 -0.067,0 -0.094,0 -0.042,-0.01 -0.086,-0.04 -0.12498,-0.063 -0.048,-0.029 -0.074,-0.052 -0.094,-0.094 0.044,-0.1439 -0.096,-0.1669 -0.12498,-0.2499 -0.014,-0.039 0.013,-0.09 0,-0.1249 -0.017,-0.05 -0.071,-0.084 -0.12499,-0.125 -0.097,-0.074 -0.17398,-0.1389 -0.31296,-0.1559 -0.061,-0.01 -0.14498,0 -0.21897,0 -0.078,-0.01 -0.16098,-0.058 -0.21897,-0.125 -0.056,-0.065 -0.076,-0.1249 -0.12499,-0.1559 -0.047,-0.03 -0.12398,-0.031 -0.15598,-0.063 -0.014,-0.014 -0.017,-0.031 -0.031,-0.063 -0.023,-0.048 -0.061,-0.098 -0.031,-0.156 -0.053,-0.027 -0.035,0.072 -0.094,0.063 -0.052,-0.074 -0.10099,-0.115 -0.21897,-0.094 -0.054,0.01 -0.093,0.06 -0.15598,0.063 -0.052,0 -0.088,-0.053 -0.15598,-0.063 -0.052,-0.01 -0.11999,0.036 -0.15598,0.031 -0.057,-0.011 -0.073,-0.059 -0.12499,-0.094 -0.038,-0.025 -0.10398,-0.095 -0.12498,-0.094 -0.067,0 -0.12598,0.1429 -0.21897,0.094 -0.045,-0.057 0.085,-0.071 0.031,-0.125 -0.04,-0.041 -0.061,0.01 -0.094,0.031 -0.037,0.025 -0.084,0.047 -0.12499,0.063 -0.092,0.034 -0.14698,0.025 -0.21897,0.063 -0.066,0.034 -0.087,0.088 -0.12499,0.156 -0.031,0.056 -0.079,0.1529 -0.12498,0.1559 -0.056,0 -0.10599,-0.072 -0.15598,-0.094 -0.15298,-0.066 -0.24797,0.03 -0.37495,0.031 -0.11799,0 -0.28697,-0.1709 -0.28097,-0.2808 0.004,-0.067 0.054,-0.166 0.063,-0.2499 0.006,-0.066 0.062,-0.127 0.063,-0.1879 0.001,-0.081 -0.13499,-0.147 -0.18798,-0.156 -0.12498,-0.023 -0.29496,0.061 -0.43794,0 -0.027,-0.045 0.047,-0.081 0.063,-0.1249 0.009,-0.025 -0.009,-0.034 0,-0.063 0.016,-0.042 0.074,-0.08 0.094,-0.1249 0.015,-0.034 0.016,-0.082 0.031,-0.125 0.017,-0.049 0.059,-0.091 0.063,-0.1249 0.005,-0.045 -0.027,-0.095 -0.063,-0.125 -0.11098,0.01 -0.18697,0 -0.24997,0.031 -0.14398,0.066 -0.10598,0.2659 -0.24997,0.3129 -0.05,0.016 -0.13298,0.021 -0.18797,0.031 -0.047,0.01 -0.10699,0.032 -0.15598,0.031 -0.058,-0.001 -0.15298,-0.057 -0.18798,-0.094 -0.009,-0.01 -0.024,-0.036 -0.031,-0.063 0.002,-0.01 -0.002,-0.021 0,-0.031 0.046,-0.2229 0.093,-0.4438 0.15598,-0.6557 0.003,-0.01 -0.003,-0.022 0,-0.031 0.042,-0.1389 0.10298,-0.2699 0.15598,-0.4058 0.013,-0.01 0.019,-0.023 0.031,-0.031 0.077,-0.053 0.15598,-0.1189 0.24997,-0.1249 0.057,0 0.16398,0.02 0.21897,0.031 0.05,0.01 0.082,0.059 0.12499,0.063 0.12298,0.01 0.14898,-0.1029 0.24997,-0.1559 0.10398,0.015 0.15598,-0.01 0.24996,0 0.064,0.01 0.13799,0.09 0.18798,0.094 0.042,0 0.053,-0.069 0.094,-0.063 0.04,0.01 0.11898,0.1079 0.12498,0.1559 0.007,0.06 -0.048,0.122 -0.031,0.1879 0.063,0.064 0.19097,0.056 0.28096,0.094 0.059,-0.048 0.009,-0.118 0,-0.1879 -0.002,-0.031 0.004,-0.066 0,-0.094 -0.006,-0.048 -0.031,-0.084 -0.031,-0.1249 -0.001,-0.1899 0.15398,-0.2999 0.28096,-0.3749 0.055,-0.033 0.10799,-0.069 0.15598,-0.094 0.067,-0.034 0.1,-0.063 0.15598,-0.094 0.10099,-0.057 0.20198,-0.092 0.28097,-0.1559 0.037,-0.086 -0.004,-0.1959 0,-0.2809 0.037,-0.022 0.055,0 0.094,0 0.061,-0.013 0.09,-0.091 0.12499,-0.1249 0.02,-0.02 0.069,-0.043 0.094,-0.063 0.061,-0.048 0.072,-0.104 0.12498,-0.125 0.019,-0.01 0.064,-0.017 0.094,-0.031 0.04,-0.011 0.092,-0.04 0.15598,-0.063 0.042,-0.014 0.13998,-0.015 0.15598,-0.031 0.02,-0.02 -0.006,-0.095 0,-0.1249 0.032,-0.151 0.27196,-0.168 0.40595,-0.2189 0.094,-0.036 0.17798,-0.114 0.28096,-0.094 -0.02,0.072 -0.10998,0.038 -0.094,0.1249 0.023,0.121 0.17598,-0.013 0.21898,-0.031 0.081,-0.034 0.23697,-0.055 0.34395,-0.094 0.094,-0.034 0.24497,-0.08 0.15598,-0.1879 -0.074,0 -0.092,0.066 -0.15598,0.094 -0.044,0.01 -0.056,-0.027 -0.094,-0.031 -0.036,0 -0.057,0.038 -0.094,0.031 -0.037,-0.01 -0.088,-0.082 -0.094,-0.1249 -0.015,-0.111 0.10999,-0.136 0.15598,-0.2189 -0.03,-0.101 -0.16598,-0.024 -0.24997,-0.063 0.009,-0.06 0.055,-0.1139 0.12499,-0.1249 0.057,-0.01 0.18497,0.01 0.21897,0.031 0.02,0.017 0,0.066 0.031,0.094 0.034,0.031 0.081,0.01 0.12499,0 0.016,-0.076 -0.10599,-0.043 -0.094,-0.094 0.09,-0.059 0.26497,-0.016 0.37495,-0.031 0.063,-0.01 0.13099,-0.062 0.18798,-0.094 0.054,-0.03 0.099,-0.081 0.15598,-0.031 0.016,0.054 -0.032,0.066 -0.063,0.094 -0.10199,0.091 -0.20198,0.2069 -0.28097,0.3128 0.049,0.048 0.13599,0.022 0.21898,0.031 0.032,0 0.06,0.025 0.094,0.031 0.04,0.01 0.094,-0.012 0.12499,0 0.056,0.014 0.07,0.094 0.12498,0.094 0.091,0 0.083,-0.125 0.031,-0.1879 0.016,-0.063 0.053,-0.08 0.031,-0.125 -0.041,-0.082 -0.21097,0.014 -0.21897,-0.094 -0.005,-0.067 0.07,-0.075 0.094,-0.125 -0.011,-0.1289 0.10598,-0.1349 0.094,-0.2499 -0.006,-0.048 -0.06,-0.049 -0.094,-0.094 -0.017,-0.023 -0.01,-0.076 -0.031,-0.094 -0.07,-0.059 -0.20997,-0.044 -0.21897,-0.1559 -0.004,-0.066 0.01,-0.115 0,-0.1879 -0.009,-0.067 -0.066,-0.2679 -0.12498,-0.2809 -0.075,-0.016 -0.12899,0.1139 -0.21898,0.1559 -0.049,0.023 -0.13898,0.04 -0.18797,0.031 -0.032,-0.01 -0.089,-0.032 -0.094,-0.094 -0.006,-0.07 0.05,-0.082 0.063,-0.1558 -0.011,-0.044 -0.051,-0.029 -0.094,-0.063 -0.049,-0.037 -0.091,-0.1159 -0.15598,-0.1249 -0.033,0 -0.093,0.029 -0.12498,0.031 -0.06,0 -0.10599,-0.015 -0.15598,-0.031 0.021,-0.01 0.041,-0.024 0.063,-0.031 0.12198,-0.042 0.24997,-0.059 0.37495,-0.094 0.022,-0.01 0.041,-0.025 0.063,-0.031 0.031,0.033 0.056,0.1029 0.094,0.1249 0.025,0.014 0.063,-0.01 0.094,0 0.098,0.03 0.17398,0.085 0.28097,0.063 0.037,-0.065 -0.074,-0.074 -0.031,-0.125 0.072,0.01 0.13198,0.04 0.18798,0.063 0.077,-0.056 0.12798,-0.066 0.12498,-0.1559 -0.001,-0.046 -0.062,-0.063 -0.094,-0.094 0.063,-0.011 0.12399,-0.022 0.18798,-0.031 0.005,0.017 0.021,0.03 0.031,0.031 0.038,0.01 0.16498,-0.051 0.18797,-0.063 0.004,0 -0.006,-0.027 0,-0.031 0.25297,-0.027 0.52094,-0.031 0.7809,-0.031 m -2.49968,0.4688 c -0.023,0.043 -0.047,0.079 -0.094,0.094 0.012,0.065 -0.084,0.1049 -0.094,0.1558 -0.006,0.035 -0.002,0.094 0,0.125 0.02,0.3189 -0.25096,0.4768 -0.56293,0.4688 -0.061,0.058 -0.029,0.1699 -0.063,0.2499 -0.028,0.067 -0.11998,0.1309 -0.18797,0.1249 -0.05,0 -0.12499,-0.079 -0.12499,-0.1249 0,-0.057 0.081,-0.091 0.031,-0.156 0.007,-0.044 0.10598,-0.086 0.094,-0.1559 -0.012,-0.074 -0.096,-0.019 -0.18798,-0.031 -0.052,-0.01 -0.13298,-0.037 -0.18798,-0.063 0.10099,-0.067 0.20498,-0.126 0.31296,-0.188 0.094,-0.056 0.18498,-0.1049 0.28097,-0.1559 0.25197,-0.1269 0.52193,-0.2438 0.7809,-0.3437 m 5.37432,0.7495 c -0.027,0 -0.04,0.018 -0.063,0.031 -0.051,0.031 -0.054,0.079 -0.094,0.094 -0.054,0.021 -0.11698,0.01 -0.12498,0.063 -0.006,0.041 0.033,0.055 0.031,0.094 -0.02,0.049 -0.053,0.066 -0.063,0.1249 0.068,0.11 0.22897,-0.01 0.31296,-0.031 0.038,-0.011 0.073,0 0.094,-0.031 0.023,-0.035 0.013,-0.105 0.031,-0.156 0.019,-0.056 0.069,-0.043 0.063,-0.094 -0.006,-0.05 -0.10599,-0.102 -0.18797,-0.094 m -7.31208,0.7807 c 0.061,0.016 0.19597,0.1929 0.063,0.2499 -0.013,0.01 -0.18698,0.036 -0.21897,0.031 -0.046,-0.01 -0.078,-0.086 -0.12499,-0.094 -0.092,-0.016 -0.21797,0.101 -0.28096,0 0.016,-0.059 0.086,-0.043 0.15598,-0.063 0.12498,-0.034 0.29796,-0.1529 0.40595,-0.1249 m 0.24996,0.3128 c 0.031,0 0.056,0.059 0.094,0.063 0.036,0 0.072,-0.036 0.094,-0.031 0.056,0.015 0.084,0.115 0.031,0.156 -0.044,0 -0.061,-0.037 -0.094,-0.031 -0.091,0.016 -0.11999,0.1929 -0.18798,0.1879 -0.064,-0.01 -0.096,-0.1409 -0.031,-0.1879 0.002,-0.04 -0.033,-0.054 -0.031,-0.094 0.02,-0.025 0.072,-0.066 0.12498,-0.063 m -0.31296,0.031 c 0.019,0.001 0.024,0 0.031,0 -0.009,0.071 -0.039,0.091 -0.094,0.125 -0.095,0.057 -0.15698,0.1279 -0.18797,0.2499 -0.009,0.036 -0.11099,0.1339 -0.15598,0.1249 -0.10599,-0.022 0.038,-0.2199 0.063,-0.2499 0.027,-0.033 0.062,-0.056 0.094,-0.094 0.03,-0.037 0.033,-0.105 0.063,-0.125 0.032,-0.022 0.13198,-0.033 0.18797,-0.031 m 9.49881,0.031 c 0.048,0.013 0.058,0.069 0.094,0.094 0.027,0.018 0.064,0.012 0.094,0.031 0.035,0.022 0.054,0.06 0.094,0.094 0.056,0.047 0.13998,0.088 0.21897,0.125 0.016,0.01 0.044,0.023 0.063,0.031 0.055,0.071 0.10399,0.1449 0.15598,0.2189 0.006,0.04 0.012,0.099 0.031,0.1249 0.052,0.071 0.13098,0.1319 0.18798,0.2189 -10e-4,0.083 0.036,0.133 0.094,0.1559 0.073,0.124 0.14898,0.2479 0.21897,0.3748 0.029,0.058 0.035,0.1289 0.063,0.1879 -0.021,0 -0.043,0.01 -0.063,0 -0.066,-0.116 -0.40895,-0.1389 -0.43795,0.031 -0.013,0.075 0.049,0.1749 -0.063,0.1879 -0.071,0.01 -0.15298,-0.073 -0.24997,-0.094 -0.04,-0.01 -0.094,0.014 -0.12498,0 -0.073,-0.025 -0.062,-0.1119 -0.12498,-0.1559 -0.036,-0.025 -0.12999,-0.056 -0.18798,-0.063 -0.036,0 -0.056,0 -0.094,0 -0.045,-0.01 -0.11798,-0.01 -0.15598,-0.031 -0.036,-0.022 -0.11599,-0.062 -0.12498,-0.094 -0.014,-0.049 0.09,-0.1139 0.094,-0.1558 0.002,-0.031 -0.023,-0.045 -0.031,-0.094 -0.005,-0.029 0.006,-0.074 0,-0.094 -0.01,-0.034 -0.071,-0.062 -0.12499,-0.063 -0.048,0 -0.084,0.03 -0.12498,0.031 -0.059,0.001 -0.17698,-0.037 -0.24997,-0.031 -0.044,0 -0.084,0.028 -0.12499,0.031 -0.11598,0.01 -0.19097,-0.01 -0.28096,0 -0.066,0 -0.18898,0.034 -0.24997,0.063 -0.031,0.014 -0.054,0.043 -0.094,0.063 -0.018,0.01 -0.039,0.021 -0.063,0.031 -0.038,0.017 -0.089,0.053 -0.12498,0.063 -0.052,0.013 -0.12399,0 -0.21898,0 -0.068,0 -0.18697,-0.014 -0.18797,-0.094 -10e-4,-0.1229 0.22697,-0.072 0.34396,-0.094 0.044,-0.01 0.073,-0.063 0.12498,-0.094 0.025,-0.015 0.039,-0.015 0.063,-0.031 0.04,-0.028 0.11898,-0.093 0.12498,-0.1249 0.006,-0.03 -0.035,-0.072 -0.031,-0.094 0.005,-0.028 0.057,-0.058 0.094,-0.094 0.056,-0.055 0.087,-0.1199 0.15598,-0.1559 0.047,-0.025 0.13499,-0.024 0.15599,-0.063 0.005,-0.043 -0.001,-0.055 0,-0.094 0.029,-0.027 0.038,-0.058 0.063,-0.063 0.072,-0.016 0.13498,0.035 0.21897,0.031 0.036,0 0.086,-0.01 0.12498,-0.031 0.033,-0.022 0.062,-0.045 0.094,-0.063 0.035,-0.018 0.051,-0.059 0.094,-0.063 0.10499,-0.01 0.17098,0.1239 0.21897,0.1879 0.04,0.053 0.15299,0.1189 0.21898,0.1559 0.037,0.021 0.084,0.045 0.12498,0.063 0.087,0.039 0.24697,0.1649 0.24997,0.2499 0.002,0.042 -0.038,0.054 -0.031,0.094 0.066,0.011 0.12298,-0.059 0.12498,-0.1249 10e-4,-0.041 -0.039,-0.05 -0.031,-0.094 0.031,-0.066 0.14798,-0.01 0.18798,-0.031 -0.007,-0.075 -0.12398,-0.086 -0.18798,-0.1249 -0.034,-0.021 -0.058,-0.048 -0.094,-0.063 -0.052,-0.021 -0.11598,-0.032 -0.15598,-0.063 -0.038,-0.029 -0.057,-0.08 -0.094,-0.1249 -0.054,-0.064 -0.15798,-0.073 -0.12498,-0.2189 0.016,-0.022 0.037,-0.069 0.063,-0.063 m -8.81189,0.2189 0.094,0 c 0.034,10e-4 0.08,-0.018 0.094,0 -0.022,0.088 -0.21197,0.063 -0.28096,0.031 0.004,-0.033 0.05,-0.027 0.094,-0.031 m -0.31296,0.156 c 0.023,0 0.039,-0.01 0.063,0 -0.062,0.052 -0.14398,0.092 -0.24997,0.1249 -0.051,0.016 -0.11598,0.025 -0.12498,-0.031 -0.011,-0.069 0.047,-0.056 0.094,-0.063 0.058,-0.01 0.14999,-0.029 0.21898,-0.031 m 8.6869,0 c -0.043,0.014 -0.066,0.1129 0,0.1249 0.031,-0.018 0.039,-0.068 0.031,-0.1249 -0.017,-0.018 -0.017,0 -0.031,0 m -0.031,0.1879 c -0.021,0.01 -0.04,0.01 -0.063,0.031 10e-4,0.075 0.015,0.1229 0,0.1879 0.043,0.082 0.13398,0.026 0.15598,-0.031 0.026,-0.1389 -0.03,-0.2049 -0.094,-0.1879 m 0.43795,0.3748 c 0.049,0.08 0.14098,0.137 0.24997,0.1559 0.04,-0.03 0.044,-0.1049 0.063,-0.1559 -0.047,10e-4 -0.097,0 -0.15598,0 -0.059,0 -0.12198,-0.028 -0.15598,0 m -11.68652,2.6867 c 0.16398,-0.01 0.21197,0.2159 0.34395,0.2809 0.033,0.017 0.082,0.022 0.12499,0.031 0.035,0.01 0.061,0.02 0.094,0.031 0.071,0.024 0.16198,0.01 0.21897,0.031 0.085,0.038 0.14598,0.2069 0.21897,0.2499 0.004,0.043 -0.013,0.093 0,0.1249 0.035,0.047 0.099,0.064 0.15598,0.094 0.068,0.037 0.092,0.1269 0.15598,0.1559 0.022,0.01 0.059,-0.01 0.094,0 0.088,0.027 0.11199,0.1468 0.18798,0.1248 0.05,-0.014 0.055,-0.078 0.063,-0.1248 0.033,-0.036 0.074,-0.093 0.12498,-0.094 0.083,0 0.095,0.075 0.12499,0.1559 0.017,0.046 0.051,0.1079 0.063,0.1559 0.021,0.083 0.017,0.3249 0,0.3748 -0.021,0.061 -0.10599,0.089 -0.15598,0.156 -0.024,0.031 -0.044,0.071 -0.063,0.094 -0.032,0.04 -0.069,0.057 -0.094,0.094 -0.014,0.021 -0.018,0.066 -0.031,0.094 -0.04,0.085 -0.096,0.148 -0.063,0.2499 0.014,0.042 0.062,0.076 0.063,0.125 0,0.058 -0.11498,0.093 -0.12498,0.1559 -0.007,0.047 0.048,0.126 0.063,0.1879 0.011,0.047 0.097,0.094 0.12498,0.125 0.047,0.053 0.082,0.1209 0.12499,0.1879 0.085,0.1299 0.13598,0.2799 0.21897,0.4058 0.043,0.066 0.12698,0.119 0.15598,0.1879 0.015,0.035 -0.014,0.094 0,0.125 0.048,0.1079 0.26597,0.2279 0.37495,0.2809 0.051,0.025 0.10999,0 0.15598,0.031 0.071,0.039 0.21398,0.1569 0.24997,0.2189 0.032,0.056 0.047,0.1929 0.063,0.2808 0.021,0.117 -0.005,0.2169 0,0.3439 0.004,0.069 0.03,0.1189 0.031,0.1879 0,0.024 10e-4,0.07 0,0.094 -0.002,0.083 0.007,0.1659 0,0.2498 -0.004,0.046 -0.003,0.087 0,0.125 0.004,0.041 0.028,0.057 0.031,0.094 0.002,0.039 -0.035,0.095 -0.031,0.125 0.009,0.084 0.077,0.1419 0.094,0.2189 0.013,0.061 0.039,0.2079 0.031,0.2809 -0.005,0.039 -0.025,0.083 -0.031,0.1249 -0.004,0.033 0.005,0.062 0,0.094 -0.006,0.047 -0.034,0.081 -0.031,0.1249 0.006,0.09 0.08,0.16 0.094,0.2499 0.005,0.03 -10e-4,0.065 0,0.094 10e-4,0.027 0.023,0.038 0.031,0.063 -0.26297,-0.1499 -0.50894,-0.3178 -0.74991,-0.4997 -0.22897,-0.173 -0.45094,-0.3639 -0.65592,-0.5628 -0.01,-0.01 -0.021,-0.021 -0.031,-0.031 -0.20698,-0.2039 -0.41395,-0.4278 -0.59393,-0.6557 -0.10398,-0.1319 -0.21797,-0.2669 -0.31296,-0.4058 -0.056,-0.083 -0.10399,-0.1639 -0.15598,-0.2499 -0.032,-0.051 -0.063,-0.104 -0.094,-0.1559 -0.089,-0.153 -0.17297,-0.3078 -0.24997,-0.4687 -0.049,-0.101 -0.081,-0.2079 -0.12498,-0.3129 -0.10499,-0.2479 -0.20497,-0.4888 -0.28096,-0.7497 -0.054,-0.1849 -0.086,-0.3708 -0.12499,-0.5627 -0.03,-0.146 -0.073,-0.2889 -0.094,-0.4378 -0.011,-0.081 -0.023,-0.168 -0.031,-0.2499 -0.024,-0.2349 -0.031,-0.4768 -0.031,-0.7186 0,-0.3019 0.026,-0.5837 0.063,-0.8746 10e-4,-0.01 -10e-4,-0.021 0,-0.031 0.063,0 0.14899,-0.092 0.21898,-0.094 m 2.68766,0.7497 c 0.064,-0.029 0.084,0.117 0.031,0.125 -0.05,0.01 -0.08,-0.102 -0.031,-0.125" inkscape:connector-curvature="0" style="fill:currentColor;fill-opacity:1" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8" width="0" height="10.999983" x="388.71515" y="535.0567" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0" width="0" height="10.999983" x="390.08517" y="534.26123" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/list-add.svg b/kstars/data/icons/breeze/default/list-add.svg
new file mode 100644
index 0000000..a3a2dc5
--- /dev/null
+++ b/kstars/data/icons/breeze/default/list-add.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 11 5 L 11 12 L 4 12 L 4 13 L 11 13 L 11 20 L 12 20 L 12 13 L 19 13 L 19 12 L 12 12 L 12 5 L 11 5 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/list-remove.svg b/kstars/data/icons/breeze/default/list-remove.svg
new file mode 100644
index 0000000..1b77328
--- /dev/null
+++ b/kstars/data/icons/breeze/default/list-remove.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-NegativeText {
+ color:#da4453;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 13 5 C 10.972402 5 9.12868 5.756694 7.71875 7 C 7.592511 7.11132 7.46272 7.22478 7.34375 7.34375 L 7 7.71875 C 5.756694 9.12868 5 10.972402 5 13 C 5 17.41828 8.58172 21 13 21 C 15.027598 21 16.87132 20.243306 18.28125 19 L 18.65625 18.65625 C 18.77522 18.53728 18.88868 18.407489 19 18.28125 C 20.243306 16.87132 21 15.027598 21 13 C 21 8.58172 17.41828 5 13 5 z M 13 6 C 16.86599 6 20 9.13401 20 13 C 20 14.75366 19.346785 16.334268 18.28125 17.5625 L 8.4375 7.71875 C 9.665731 6.653215 11.24634 6 13 6 z M 7.71875 8.4375 L 17.5625 18.28125 C 16.334268 19.346785 14.75366 20 13 20 C 9.13401 20 6 16.86599 6 13 C 6 11.24634 6.653215 9.665731 7.71875 8.4375 z "
+ class="ColorScheme-NegativeText"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/media-playback-pause.svg b/kstars/data/icons/breeze/default/media-playback-pause.svg
new file mode 100644
index 0000000..4ec8ec4
--- /dev/null
+++ b/kstars/data/icons/breeze/default/media-playback-pause.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 16.001953 3.9980469 A 12 12 0 0 0 4.0019531 15.998047 A 12 12 0 0 0 16.001953 27.998047 A 12 12 0 0 0 28.001953 15.998047 A 12 12 0 0 0 16.001953 3.9980469 z M 16.001953 4.9980469 A 11 11 0 0 1 27.001953 15.998047 A 11 11 0 0 1 16.001953 26.998047 A 11 11 0 0 1 5.0019531 15.998047 A 11 11 0 0 1 16.001953 4.9980469 z M 12 12 L 12 20 L 14 20 L 14 12 L 12 12 z M 18 12 L 18 20 L 20 20 L 20 12 L 18 12 z "
+ id="path8"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/media-playback-start.svg b/kstars/data/icons/breeze/default/media-playback-start.svg
new file mode 100644
index 0000000..0321c55
--- /dev/null
+++ b/kstars/data/icons/breeze/default/media-playback-start.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 16.001953 3.9980469 A 12 12 0 0 0 4.0019531 15.998047 A 12 12 0 0 0 16.001953 27.998047 A 12 12 0 0 0 28.001953 15.998047 A 12 12 0 0 0 16.001953 3.9980469 z M 16.001953 4.9980469 A 11 11 0 0 1 27.001953 15.998047 A 11 11 0 0 1 16.001953 26.998047 A 11 11 0 0 1 5.0019531 15.998047 A 11 11 0 0 1 16.001953 4.9980469 z M 13 12 L 13 20 L 20 16 L 13 12 z "
+ id="path105"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/media-playback-stop.svg b/kstars/data/icons/breeze/default/media-playback-stop.svg
new file mode 100644
index 0000000..81705d0
--- /dev/null
+++ b/kstars/data/icons/breeze/default/media-playback-stop.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 16.001953 3.9980469 A 12 12 0 0 0 4.0019531 15.998047 A 12 12 0 0 0 16.001953 27.998047 A 12 12 0 0 0 28.001953 15.998047 A 12 12 0 0 0 16.001953 3.9980469 z M 16.001953 4.9980469 A 11 11 0 0 1 27.001953 15.998047 A 11 11 0 0 1 16.001953 26.998047 A 11 11 0 0 1 5.0019531 15.998047 A 11 11 0 0 1 16.001953 4.9980469 z M 12 12 L 12 20 L 20 20 L 20 12 L 12 12 z "
+ id="path91"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/media-skip-backward.svg b/kstars/data/icons/breeze/default/media-skip-backward.svg
new file mode 100644
index 0000000..1b96d29
--- /dev/null
+++ b/kstars/data/icons/breeze/default/media-skip-backward.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 16.001953 3.9980469 A 12 12 0 0 0 4.0019531 15.998047 A 12 12 0 0 0 16.001953 27.998047 A 12 12 0 0 0 28.001953 15.998047 A 12 12 0 0 0 16.001953 3.9980469 z M 16.001953 4.9980469 A 11 11 0 0 1 27.001953 15.998047 A 11 11 0 0 1 16.001953 26.998047 A 11 11 0 0 1 5.0019531 15.998047 A 11 11 0 0 1 16.001953 4.9980469 z M 11 12 L 11 20 L 13 20 L 13 12 L 11 12 z M 21 12 L 14 16 L 21 20 L 21 12 z "
+ id="path92"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/media-skip-forward.svg b/kstars/data/icons/breeze/default/media-skip-forward.svg
new file mode 100644
index 0000000..9e94b6c
--- /dev/null
+++ b/kstars/data/icons/breeze/default/media-skip-forward.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs
+ id="defs3051">
+ <style
+ type="text/css"
+ id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 16.001953 3.9980469 A 12 12 0 0 0 4.0019531 15.998047 A 12 12 0 0 0 16.001953 27.998047 A 12 12 0 0 0 28.001953 15.998047 A 12 12 0 0 0 16.001953 3.9980469 z M 16.001953 4.9980469 A 11 11 0 0 1 27.001953 15.998047 A 11 11 0 0 1 16.001953 26.998047 A 11 11 0 0 1 5.0019531 15.998047 A 11 11 0 0 1 16.001953 4.9980469 z M 11 12 L 11 20 L 18 16 L 11 12 z M 19 12 L 19 20 L 21 20 L 21 12 L 19 12 z "
+ id="path76"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/modem.svg b/kstars/data/icons/breeze/default/modem.svg
new file mode 100755
index 0000000..c6b63cb
--- /dev/null
+++ b/kstars/data/icons/breeze/default/modem.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.91 r13725" viewBox="0 0 22 22" sodipodi:docname="network-modem.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="11.552735" inkscape:cx="19.790893" inkscape:cy="4.9833667" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:showpageshadow="false" units="px" inkscape:window-width="1366" inkscape:window-height="709" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:snap-bbox="true" inkscape:object-nodes="true">
+ <inkscape:grid type="xygrid" id="grid4101"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4107"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4109"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4111"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4113"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4115"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4117"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4119"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4121"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" d="m 3,11 0,7 16,0 0,-7 z m 1,1 14,0 0,5 -14,0 z" transform="translate(0,1030.3622)" id="rect3343" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc" class="ColorScheme-Text"/>
+ <rect style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" id="rect4148" width="1" height="1" x="16" y="1045.3622" class="ColorScheme-Text"/>
+ <rect style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" id="rect4150" width="1" height="1" x="14" y="1045.3622" class="ColorScheme-Text"/>
+ <rect style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" id="rect4152" width="1" height="1" x="12" y="1045.3622" class="ColorScheme-Text"/>
+ <circle style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" id="path4154" cx="8" cy="1039.3622" r="1" class="ColorScheme-Text"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" d="m 8,1036.3622 a 3,3 0 0 0 -3,3 l 1,0 a 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 l 1,0 a 3,3 0 0 0 -3,-3 z" id="path4156" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke-linecap:round" d="m 8,1034.3622 a 5,5 0 0 0 -5,5 l 1,0 a 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 l 1,0 a 5,5 0 0 0 -5,-5 z" id="path4164" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/network-connect.svg b/kstars/data/icons/breeze/default/network-connect.svg
new file mode 100644
index 0000000..5f0c0b8
--- /dev/null
+++ b/kstars/data/icons/breeze/default/network-connect.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 19.292969 4 L 15.792969 7.5 L 14.292969 6 L 12.292969 8 L 9 11.292969 L 7 13.292969 L 8.5 14.792969 L 4 19.292969 L 4.7070312 20 L 9.2070312 15.5 L 10.707031 17 L 12.707031 15 L 16 11.707031 L 18 9.7070312 L 16.5 8.2070312 L 20 4.7070312 L 19.292969 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/network-disconnect.svg b/kstars/data/icons/breeze/default/network-disconnect.svg
new file mode 100644
index 0000000..1a1575c
--- /dev/null
+++ b/kstars/data/icons/breeze/default/network-disconnect.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-NegativeText {
+ color:#da4453;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 19.292969 4 L 15.792969 7.5 L 14.292969 6 L 12.292969 8 L 10.5 9.7929688 L 12 11.292969 L 12.707031 12 L 14.207031 13.5 L 16 11.707031 L 18 9.7070312 L 16.5 8.2070312 L 20 4.7070312 L 19.292969 4 z M 9.7929688 10.5 L 9 11.292969 L 7 13.292969 L 8.5 14.792969 L 4 19.292969 L 4.7070312 20 L 9.2070312 15.5 L 10.707031 17 L 12.707031 15 L 13.5 14.207031 L 12 12.707031 L 11.292969 12 L 9.7929688 10.5 z "
+ class="ColorScheme-Text"/>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 14.990234 14 L 14 14.990234 L 16.009766 17 L 14 19.009766 L 14.990234 20 L 17 17.990234 L 19.009766 20 L 20 19.009766 L 17.990234 17 L 20 14.990234 L 19.009766 14 L 17 16.009766 L 14.990234 14 z "
+ class="ColorScheme-NegativeText"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/network-server.svg b/kstars/data/icons/breeze/default/network-server.svg
new file mode 100755
index 0000000..7015003
--- /dev/null
+++ b/kstars/data/icons/breeze/default/network-server.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3049" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="network-workgroup.svg" inkscape:export-filename="/home/uri/.kde/share/icons/NITRUX-KDE/16x16/actions/view-right-new.png" inkscape:export-xdpi="30" inkscape:export-ydpi="30">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="32" inkscape:cx="16.301698" inkscape:cy="12.100921" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1920" inkscape:window-height="957" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true" inkscape:object-nodes="true" inkscape:snap-global="true" inkscape:snap-bbox="true">
+ <sodipodi:guide position="2.0000044,20.00003" orientation="18,0" id="guide4067"/>
+ <sodipodi:guide position="2.0000044,2.0000296" orientation="0,18" id="guide4069"/>
+ <sodipodi:guide position="20.000004,2.0000296" orientation="-18,0" id="guide4071"/>
+ <sodipodi:guide position="35,19.9375" orientation="0,-18" id="guide4073"/>
+ <sodipodi:guide position="3.0000044,19.00003" orientation="16,0" id="guide4077"/>
+ <sodipodi:guide position="3.0000044,3.0000296" orientation="0,16" id="guide4079"/>
+ <sodipodi:guide position="19,6" orientation="-16,0" id="guide4081"/>
+ <sodipodi:guide position="19.000004,19.00003" orientation="0,-16" id="guide4083"/>
+ <inkscape:grid type="xygrid" id="grid4085"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3054">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-421.71429,-525.79074)">
+ <path style="fill:currentColor;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" d="M 3 3 L 3 19 L 19 19 L 19 3 L 3 3 z M 14 4 L 18 4 L 18 5 L 14 5 L 14 4 z M 4 7 L 18 7 L 18 8 L 4 8 L 4 7 z M 14 10 L 18 10 L 18 11 L 14 11 L 14 10 z M 4 13 L 18 13 L 18 14 L 4 14 L 4 13 z M 14 16 L 18 16 L 18 17 L 14 17 L 14 16 z " transform="translate(421.71429,525.79074)" id="rect4678" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035" width="0" height="26.076551" x="310.04709" y="487.55347" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8" width="0" height="26.076551" x="322.42145" y="527.67908" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0" width="0" height="26.076551" x="325.64508" y="525.79333" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-06" width="0" height="26.076551" x="279.54709" y="480.83127" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8-7" width="0" height="26.076551" x="291.92145" y="520.95679" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0-42" width="0" height="26.076551" x="295.14508" y="519.07104" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-3" width="0" height="26.076551" x="279.54709" y="480.83127" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8-9" width="0" height="26.076551" x="291.92145" y="520.95679" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0-4" width="0" height="26.076551" x="295.14508" y="519.07104" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-2" width="0" height="26.076551" x="279.54709" y="480.83127" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8-99" width="0" height="26.076551" x="291.92145" y="520.95679" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0-43" width="0" height="26.076551" x="295.14508" y="519.07104" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-3-9" width="0" height="26.076551" x="279.54709" y="480.83127" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8-9-9" width="0" height="26.076551" x="291.92145" y="520.95679" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0-4-4" width="0" height="26.076551" x="295.14508" y="519.07104" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-5" width="0" height="19.555525" x="404.47174" y="518.67914" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-7" width="0" height="19.555525" x="396.3793" y="523.15759" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-9" width="0" height="19.555525" x="388.36545" y="501.08008" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-96" width="0" height="19.555525" x="389.86594" y="522.83557" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-7-0" width="0" height="19.555525" x="381.7735" y="527.3139" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-9-6" width="0" height="19.555525" x="373.75967" y="505.23642" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-1" width="0" height="19.555525" x="404.47174" y="518.67914" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-7-2" width="0" height="19.555525" x="396.3793" y="523.15759" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-9-0" width="0" height="19.555525" x="388.36545" y="501.08008" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-96-9" width="0" height="19.555525" x="389.86594" y="522.83557" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-7-0-9" width="0" height="19.555525" x="381.7735" y="527.3139" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-9-6-9" width="0" height="19.555525" x="373.75967" y="505.23642" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-70" width="0" height="19.557413" x="343.51505" y="503.02948" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-8-94" width="0" height="19.557413" x="352.79581" y="533.12366" class="ColorScheme-Text"/>
+ <rect style="fill:currentColor;fill-opacity:1;stroke:none" id="rect4035-0-6" width="0" height="19.557413" x="355.21353" y="531.70935" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/object-flip-horizontal.svg b/kstars/data/icons/breeze/default/object-flip-horizontal.svg
new file mode 100644
index 0000000..f65d8e1
--- /dev/null
+++ b/kstars/data/icons/breeze/default/object-flip-horizontal.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 7 4 L 7 5 L 8 5 L 8 4 L 7 4 z M 16 4 L 16 5 L 17 5 L 17 4 L 16 4 z M 7 6 L 7 7 L 4 7 L 4 17 L 7 17 L 7 18 L 8 18 L 8 17 L 11 17 L 11 14 L 13 14 L 13 17 L 16 17 L 16 18 L 17 18 L 17 17 L 20 17 L 20 7 L 17 7 L 17 6 L 16 6 L 16 7 L 13 7 L 13 10 L 11 10 L 11 7 L 8 7 L 8 6 L 7 6 z M 5 8 L 10 8 L 10 16 L 5 16 L 5 8 z M 14 8 L 19 8 L 19 16 L 14 16 L 14 8 z M 15 9 L 15 15 L 18 15 L 18 9 L 15 9 z M 11 11 L 13 11 L 13 13 L 11 13 L 11 11 z M 7 19 L 7 20 L 8 20 L 8 19 L 7 19 z M 16 19 L 16 20 L 17 20 L 17 19 L 16 19 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/object-flip-vertical.svg b/kstars/data/icons/breeze/default/object-flip-vertical.svg
new file mode 100644
index 0000000..557c805
--- /dev/null
+++ b/kstars/data/icons/breeze/default/object-flip-vertical.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 7 4 L 7 7 L 6 7 L 6 8 L 7 8 L 7 11 L 10 11 L 10 13 L 7 13 L 7 16 L 6 16 L 6 17 L 7 17 L 7 20 L 17 20 L 17 17 L 18 17 L 18 16 L 17 16 L 17 13 L 14 13 L 14 11 L 17 11 L 17 8 L 18 8 L 18 7 L 17 7 L 17 4 L 7 4 z M 8 5 L 16 5 L 16 10 L 8 10 L 8 5 z M 4 7 L 4 8 L 5 8 L 5 7 L 4 7 z M 19 7 L 19 8 L 20 8 L 20 7 L 19 7 z M 11 11 L 13 11 L 13 13 L 11 13 L 11 11 z M 8 14 L 16 14 L 16 19 L 8 19 L 8 14 z M 9 15 L 9 18 L 15 18 L 15 15 L 9 15 z M 4 16 L 4 17 L 5 17 L 5 16 L 4 16 z M 19 16 L 19 17 L 20 17 L 20 16 L 19 16 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/object-locked.svg b/kstars/data/icons/breeze/default/object-locked.svg
new file mode 100755
index 0000000..8795525
--- /dev/null
+++ b/kstars/data/icons/breeze/default/object-locked.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg2" version="1.1" inkscape:version="0.48+devel r" sodipodi:docname="document-encrypt.svg">
+ <defs id="defs4">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.95535" inkscape:cx="12.773423" inkscape:cy="11.454379" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1366" inkscape:window-height="668" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4114"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4120"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4122"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4124"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4126"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4128"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4130"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4132"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4134"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 11 3 C 8.784 3 7 4.784 7 7 L 7 11 L 5 11 L 5 12 L 5 19 L 6 19 L 16 19 L 17 19 L 17 11 L 16 11 L 15 11 L 15 7 C 15 4.784 13.216 3 11 3 z M 11 4 C 12.662 4 14 5.561 14 7.5 L 14 11 L 8 11 L 8 7.5 C 8 5.561 9.338 4 11 4 z M 6 12 L 16 12 L 16 18 L 6 18 L 6 12 z " transform="translate(0,1030.3622)" id="rect4136" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/object-rotate-left.svg b/kstars/data/icons/breeze/default/object-rotate-left.svg
new file mode 100644
index 0000000..fcac50b
--- /dev/null
+++ b/kstars/data/icons/breeze/default/object-rotate-left.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 13.400391 4 L 10.107422 7.2929688 L 9.9003906 7.5 L 10.107422 7.7070312 L 13.400391 11 L 14.107422 10.292969 L 11.814453 8 L 14.099609 8 L 15 8 L 15 7 L 14.099609 7 L 11.814453 7 L 14.107422 4.7070312 L 13.400391 4 z M 16.5 7 C 16.223 7 16 7.223 16 7.5 C 16 7.777 16.223 8 16.5 8 C 16.777 8 17 7.777 17 7.5 C 17 7.223 16.777 7 16.5 7 z M 7.9492188 9 L 3 13.949219 L 9.0507812 20 L 14 15.050781 L 7.9492188 9 z M 19.5 9 C 19.223 9 19 9.223 19 9.5 C 19 9.777 19.223 10 19.5 10 C 19.777 10 20 9.777 20 9.5 C 20 9.223 19.777 9 19.5 9 z M 7.9492188 10.414062 L 12.726562 15.191406 L 9.1914062 18.726562 L 4.4140625 13.949219 L 7.9492188 10.414062 z M 20.5 12 C 20.223 12 20 12.223 20 12.5 C 20 12.777 20.223 13 20.5 13 C 20.777 13 21 12.777 21 12.5 C 21 12.223 20.777 12 20.5 12 z M 19.5 15 C 19.223 15 19 15.223 19 15.5 C 19 15.777 19.223 16 19.5 16 C 19.777 16 20 15.777 20 15.5 C 20 15.223 19.777 15 19.5 15 z M 16.5 17 C 16.223 17 16 17.223 16 17.5 C 16 17.777 16.223 18 16.5 18 C 16.777 18 17 17.777 17 17.5 C 17 17.223 16.777 17 16.5 17 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/object-rotate-right.svg b/kstars/data/icons/breeze/default/object-rotate-right.svg
new file mode 100644
index 0000000..617ecd1
--- /dev/null
+++ b/kstars/data/icons/breeze/default/object-rotate-right.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 10.599609 4 L 9.8925781 4.7070312 L 12.185547 7 L 9.9003906 7 L 9 7 L 9 8 L 9.9003906 8 L 12.185547 8 L 9.8925781 10.292969 L 10.599609 11 L 13.892578 7.7070312 L 14.099609 7.5 L 13.892578 7.2929688 L 10.599609 4 z M 7.5 7 C 7.223 7 7 7.223 7 7.5 C 7 7.777 7.223 8 7.5 8 C 7.777 8 8 7.777 8 7.5 C 8 7.223 7.777 7 7.5 7 z M 4.5 9 C 4.223 9 4 9.223 4 9.5 C 4 9.777 4.223 10 4.5 10 C 4.777 10 5 9.777 5 9.5 C 5 9.223 4.777 9 4.5 9 z M 16.050781 9 L 10 15.050781 L 14.949219 20 L 21 13.949219 L 16.050781 9 z M 16.050781 10.414062 L 19.585938 13.949219 L 14.808594 18.726562 L 11.273438 15.191406 L 16.050781 10.414062 z M 3.5 12 C 3.223 12 3 12.223 3 12.5 C 3 12.777 3.223 13 3.5 13 C 3.777 13 4 12.777 4 12.5 C 4 12.223 3.777 12 3.5 12 z M 4.5 15 C 4.223 15 4 15.223 4 15.5 C 4 15.777 4.223 16 4.5 16 C 4.777 16 5 15.777 5 15.5 C 5 15.223 4.777 15 4.5 15 z M 7.5 17 C 7.223 17 7 17.223 7 17.5 C 7 17.777 7.223 18 7.5 18 C 7.777 18 8 17.777 8 17.5 C 8 17.223 7.777 17 7.5 17 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/process-stop.svg b/kstars/data/icons/breeze/default/process-stop.svg
new file mode 100644
index 0000000..16ac3df
--- /dev/null
+++ b/kstars/data/icons/breeze/default/process-stop.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-NegativeText {
+ color:#da4453;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 4 C 10.558286 4 9.2107109 4.3829219 8.0449219 5.0449219 L 8.7832031 5.7832031 C 9.7461101 5.2858031 10.837491 5 12 5 C 15.87797 5 19 8.122 19 12 C 19 13.1625 18.714171 14.253897 18.216797 15.216797 L 18.955078 15.955078 C 19.617129 14.789278 20 13.4417 20 12 C 20 7.568 16.431966 4 12 4 z M 5.0449219 8.0449219 C 4.3828709 9.2107219 4 10.5583 4 12 C 4 16.432 7.568034 20 12 20 C 13.441714 20 14.789289 19.617078 15.955078 18.955078 L 15.216797 18.216797 C 14.25389 18.714197 13.16251 19 12 19 C 8.12203 19 5 15.878 5 12 C 5 10.8375 5.2858281 9.7461031 5.7832031 8.7832031 L 5.0449219 8.0449219 z M 8.5 10.998047 L 8.5 12.998047 L 15.5 12.998047 L 15.5 10.998047 L 8.5 10.998047 z "
+ class="ColorScheme-NegativeText"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/run-build.svg b/kstars/data/icons/breeze/default/run-build.svg
new file mode 100644
index 0000000..9a11989
--- /dev/null
+++ b/kstars/data/icons/breeze/default/run-build.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 4 C 11.32479 4.004 10.65279 4.092995 10 4.265625 L 10 5.2988281 L 10 5.3105469 A 7 7 0 0 0 8.6835938 5.8554688 L 8.6757812 5.8476562 L 7.9433594 5.1152344 C 6.7764094 5.8032844 5.8032844 6.7764094 5.1152344 7.9433594 L 5.6367188 8.4648438 L 5.8554688 8.6835938 A 7 7 0 0 0 5.3085938 10 L 5.2949219 10 L 4.2597656 10 C 4.0891457 10.65304 4.00187 11.32505 4 12 C 4.004 12.67521 4.093005 13.34721 4.265625 14 L 5.2988281 14 L 5.3105469 14 A 7 7 0 0 0 5.8554688 15.316406 L 5.6367188 15.535156 L 5.1152344 16.056641 C 5.8032844 17.223601 6.7763994 18.196716 7.9433594 18.884766 L 8.4648438 18.363281 L 8.6835938 18.144531 A 7 7 0 0 0 10 18.691406 L 10 19 L 10 19.740234 C 10.65304 19.910854 11.32504 19.99813 12 20 C 12.67496 19.9981 13.34696 19.91085 14 19.740234 L 14 19 L 14 18.691406 A 7 7 0 0 0 15.316406 18.144531 L 15.535156 18.363281 L 16.056641 18.884766 C 17.223601 18.196716 18.196716 17.223601 18.884766 16.056641 L 18.363281 15.535156 L 18.144531 15.316406 A 7 7 0 0 0 18.689453 14 L 18.701172 14 L 19.734375 14 C 19.907004 13.34721 19.996 12.67521 20 12 C 19.9981 11.32505 19.91085 10.65304 19.740234 10 L 18.705078 10 L 18.691406 10 A 7 7 0 0 0 18.144531 8.6835938 L 18.363281 8.4648438 L 18.884766 7.9433594 C 18.196716 6.7764094 17.223591 5.8032844 16.056641 5.1152344 L 15.324219 5.8476562 L 15.316406 5.8554688 A 7 7 0 0 0 14 5.3105469 L 14 5.2988281 L 14 4.265625 C 13.34721 4.092995 12.67521 4.004 12 4 z M 12 5 C 12.33491 5.0012 12.66956 5.0273719 13 5.0761719 L 13 5.0800781 L 13 6 L 13 6.0859375 A 6 6 0 0 1 15.470703 7.1152344 L 15.535156 7.0507812 L 16.185547 6.4003906 L 16.1875 6.3984375 C 16.72484 6.7991075 17.201446 7.2742469 17.603516 7.8105469 L 17.599609 7.8144531 L 16.949219 8.4648438 L 16.886719 8.5273438 A 6 6 0 0 1 17.910156 11 L 18 11 L 18.921875 11 L 18.925781 11 C 18.974081 11.33106 18.9995 11.66455 19 12 C 18.9988 12.33491 18.972628 12.66955 18.923828 13 L 18.919922 13 L 18 13 L 17.914062 13 A 6 6 0 0 1 16.884766 15.470703 L 16.949219 15.535156 L 17.599609 16.185547 L 17.601562 16.1875 C 17.200893 16.72484 16.725753 17.201456 16.189453 17.603516 L 16.185547 17.599609 L 15.535156 16.949219 L 15.472656 16.886719 A 6 6 0 0 1 13 17.910156 L 13 18 L 13 18.921875 L 13 18.925781 C 12.66894 18.974081 12.33545 18.9995 12 19 C 11.66455 18.9995 11.33106 18.974081 11 18.925781 L 11 18.921875 L 11 18 L 11 17.910156 A 6 6 0 0 1 8.5273438 16.886719 L 8.4648438 16.949219 L 7.8144531 17.599609 L 7.8105469 17.603516 C 7.2742507 17.201463 6.7991075 16.72484 6.3984375 16.1875 L 6.4003906 16.185547 L 7.0507812 15.535156 L 7.1152344 15.470703 A 6 6 0 0 1 6.0859375 13 L 6 13 L 5.0800781 13 L 5.0761719 13 C 5.0273719 12.66955 5.0012 12.33491 5 12 C 5.0005 11.66455 5.0259187 11.33106 5.0742188 11 L 5.078125 11 L 6 11 L 6.0898438 11 A 6 6 0 0 1 7.1132812 8.5273438 L 7.0507812 8.4648438 L 6.4003906 7.8144531 L 6.3964844 7.8105469 C 6.7985582 7.2742507 7.27516 6.7991075 7.8125 6.3984375 L 7.8144531 6.4003906 L 8.4648438 7.0507812 L 8.5292969 7.1152344 A 6 6 0 0 1 11 6.0859375 L 11 6 L 11 5.0800781 L 11 5.0761719 C 11.33044 5.0273719 11.66509 5.0012 12 5 z M 10 9 L 10 15 L 15 12 L 10 9 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/security-high.svg b/kstars/data/icons/breeze/default/security-high.svg
new file mode 100644
index 0000000..81ed722
--- /dev/null
+++ b/kstars/data/icons/breeze/default/security-high.svg
@@ -0,0 +1,31 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-PositiveText {
+ color:#27ae60;
+ }
+ </style>
+ </defs>
+ <g
+ transform="translate(0,-1030.3622)">
+ <path
+ style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 11 3 C 11 3 9 5.6575188 3 6.3242188 C 3 6.3242188 3 15.6581 11 19 C 19 15.6581 19 6.3242188 19 6.3242188 C 13 5.6575188 11 3 11 3 z M 11 4.3769531 C 12.586995 5.7216531 14.87716 6.6187125 17.845703 7.0703125 C 17.684444 8.5155125 17.529828 9.6030967 17.15625 10.654297 C 16.37116 12.863397 15.455775 14.207328 14.634766 15.173828 C 13.362538 16.671528 12.207192 17.277659 11 17.880859 C 9.792808 17.277659 8.6374614 16.671528 7.3652344 15.173828 C 6.5442254 14.207328 5.62884 12.863397 4.84375 10.654297 C 4.470172 9.6030967 4.3155559 8.5155125 4.1542969 7.0703125 C 7.1228399 6.6187125 9.413005 5.7216531 11 4.3769531 z M 11 5.5761719 C 9.256509 6.7864719 7.2978492 7.3994064 5.3320312 7.8164062 C 6.2628772 13.098406 8.268115 15.357084 11 16.771484 C 13.731885 15.357084 15.737124 13.098406 16.667969 7.8164062 C 14.702151 7.3994063 12.743491 6.7864719 11 5.5761719 z "
+ transform="translate(0,1030.3622)"
+ class="ColorScheme-Text"
+ id="path4943-7" />
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ class="ColorScheme-PositiveText"
+ d="m 15,1041.3622 c 2.216,0 4,1.784 4,4 0,2.216 -1.784,4 -4,4 -2.216,0 -4,-1.784 -4,-4 0,-2.216 1.784,-4 4,-4 z"
+ id="rect4153" />
+ <path
+ style="fill:#ffffff"
+ d="M 17 13 L 14 16 L 13 15 L 12 16 L 13 17 L 14 18 L 18 14 L 17 13 z "
+ transform="translate(0,1030.3622)"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/security-low.svg b/kstars/data/icons/breeze/default/security-low.svg
new file mode 100644
index 0000000..6250536
--- /dev/null
+++ b/kstars/data/icons/breeze/default/security-low.svg
@@ -0,0 +1,25 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-NegativeText {
+ color:#da4453;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 11 3 C 11 3 9 5.6575188 3 6.3242188 C 3 6.3242188 3 15.6581 11 19 C 19 15.6581 19 6.3242188 19 6.3242188 C 13 5.6575188 11 3 11 3 z M 11 4.3769531 C 12.586995 5.7216531 14.87716 6.6187125 17.845703 7.0703125 C 17.684444 8.5155125 17.529828 9.6030969 17.15625 10.654297 C 16.37116 12.863397 15.455775 14.207328 14.634766 15.173828 C 13.362538 16.671528 12.207192 17.277659 11 17.880859 C 9.792808 17.277659 8.6374614 16.671528 7.3652344 15.173828 C 6.5442254 14.207328 5.62884 12.863397 4.84375 10.654297 C 4.470172 9.6030969 4.3155559 8.5155125 4.1542969 7.0703125 C 7.1228399 6.6187125 9.413005 5.7216531 11 4.3769531 z "
+ class="ColorScheme-Text"/>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 11 C 11.445981 11 11 11.446 11 12 L 11 18 C 11 18.5541 11.445981 19 12 19 L 18 19 C 18.554019 19 19 18.5541 19 18 L 19 12 C 19 11.446 18.554019 11 18 11 L 12 11 z "
+ class="ColorScheme-NegativeText"
+ />
+ <path
+ style="fill:#ffffff"
+ d="M 13 12 L 12 13 L 14 15 L 12 17 L 13 18 L 15 16 L 17 18 L 18 17 L 16 15 L 18 13 L 17 12 L 15 14 L 13 12 z "
+ id="path4141" />
+</svg>
diff --git a/kstars/data/icons/breeze/default/security-medium.svg b/kstars/data/icons/breeze/default/security-medium.svg
new file mode 100644
index 0000000..7d48ede
--- /dev/null
+++ b/kstars/data/icons/breeze/default/security-medium.svg
@@ -0,0 +1,31 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-NeutralText {
+ color:#f67400;
+ }
+ </style>
+ </defs>
+ <g
+ transform="translate(0,-1030.3622)">
+ <path
+ style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 11 3 C 11 3 9 5.6575188 3 6.3242188 C 3 6.3242188 3 15.6581 11 19 C 19 15.6581 19 6.3242188 19 6.3242188 C 13 5.6575188 11 3 11 3 z M 11 4.3769531 C 12.586995 5.7217384 14.87716 6.6187292 17.845703 7.0703125 C 17.684444 8.5155125 17.529828 9.6030967 17.15625 10.654297 C 16.37116 12.863397 15.455775 14.207328 14.634766 15.173828 C 13.362538 16.671474 12.207192 17.277691 11 17.880859 C 9.7928082 17.277691 8.6374611 16.671474 7.3652344 15.173828 C 6.544225 14.207328 5.6288398 12.863397 4.84375 10.654297 C 4.4701723 9.6030967 4.3155563 8.5155125 4.1542969 7.0703125 C 7.1228397 6.6187292 9.4130046 5.7217384 11 4.3769531 z M 11 5.5761719 C 9.2565091 6.786444 7.2978494 7.3993841 5.3320312 7.8164062 C 6.2628766 13.098378 8.2681151 15.357097 11 16.771484 L 11 5.5761719 z "
+ transform="translate(0,1030.3622)"
+ class="ColorScheme-Text"
+ id="path4943-9-4-1" />
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ class="ColorScheme-NeutralText"
+ d="m 15.5,1041.3602 0.0039,0 a 0.5,0.5 0 0 1 0.439453,0.2695 l 0.0039,0 3.986328,6.9746 -0.002,0 a 0.5,0.5 0 0 1 0.06836,0.252 0.5,0.5 0 0 1 -0.5,0.5 l -8,0 a 0.5,0.5 0 0 1 -0.5,-0.5 0.5,0.5 0 0 1 0.06836,-0.252 l -0.002,0 3.986328,-6.9727 0.002,0 a 0.5,0.5 0 0 1 0.002,0 0.5,0.5 0 0 1 0.443359,-0.2715 l 0,0 z"
+ id="path4250" />
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="M 15 13 L 15 16 L 16 16 L 16 13 L 15 13 z M 15 17 L 15 18 L 16 18 L 16 17 L 15 17 z "
+ transform="translate(0,1030.3622)"
+ id="rect4241" />
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/snap-orthogonal.svg b/kstars/data/icons/breeze/default/snap-orthogonal.svg
new file mode 100644
index 0000000..2b7180c
--- /dev/null
+++ b/kstars/data/icons/breeze/default/snap-orthogonal.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 4 L 12 5 L 13 5 L 13 4 L 12 4 z M 12 7 L 12 8 L 13 8 L 13 7 L 12 7 z M 10 9 L 10 14 L 15 14 L 15 9 L 10 9 z M 4 11 L 4 12 L 5 12 L 5 11 L 4 11 z M 6 11 L 6 12 L 7 12 L 7 11 L 6 11 z M 8 11 L 8 12 L 9 12 L 9 11 L 8 11 z M 16 11 L 16 12 L 17 12 L 17 11 L 16 11 z M 19 11 L 19 12 L 20 12 L 20 11 L 19 11 z M 12 15 L 12 16 L 13 16 L 13 15 L 12 15 z M 12 17 L 12 18 L 13 18 L 13 17 L 12 17 z M 12 19 L 12 20 L 13 20 L 13 19 L 12 19 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/svn-update.svg b/kstars/data/icons/breeze/default/svn-update.svg
new file mode 100644
index 0000000..b90bc54
--- /dev/null
+++ b/kstars/data/icons/breeze/default/svn-update.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 11.5 4 C 10.84576 4 10.297797 4.41808 10.091797 5 L 6 5 L 5 5 L 5 6 L 5 17.091797 C 4.41808 17.297797 4 17.84576 4 18.5 C 4 19.331 4.669 20 5.5 20 C 6.331 20 7 19.331 7 18.5 C 7 17.84576 6.58192 17.297797 6 17.091797 L 6 6 L 10.091797 6 C 10.242137 6.4247 10.5753 6.7578631 11 6.9082031 L 11 13 L 11 14 L 12 14 L 12.091797 14 C 12.297797 14.58192 12.84576 15 13.5 15 C 14.331 15 15 14.331 15 13.5 C 15 12.669 14.331 12 13.5 12 C 12.84576 12 12.297797 12.41808 12.091797 13 L 12 13 L 12 6.9082031 C 12.58192 6.7022031 13 6.15424 13 5.5 C 13 4.669 12.331 4 11.5 4 z M 11.5 5 C 11.777 5 12 5.223 12 5.5 C 12 5.777 11.777 6 11.5 6 C 11.223 6 11 5.777 11 5.5 C 11 5.223 11.223 5 11.5 5 z M 13.5 13 C 13.777 13 14 13.223 14 13.5 C 14 13.777 13.777 14 13.5 14 C 13.223 14 13 13.777 13 13.5 C 13 13.223 13.223 13 13.5 13 z M 17 14 L 17 18.292969 L 14.707031 16 L 14 16.707031 L 17.292969 20 L 17.5 20.207031 L 17.707031 20 L 21 16.707031 L 20.292969 16 L 18 18.292969 L 18 14 L 17 14 z M 5.5 18 C 5.777 18 6 18.223 6 18.5 C 6 18.777 5.777 19 5.5 19 C 5.223 19 5 18.777 5 18.5 C 5 18.223 5.223 18 5.5 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/system-reboot.svg b/kstars/data/icons/breeze/default/system-reboot.svg
new file mode 100644
index 0000000..ac2c874
--- /dev/null
+++ b/kstars/data/icons/breeze/default/system-reboot.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="32" version="1.1" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <defs id="defs5455">
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4143" id="linearGradient4149" y1="545.79797" y2="517.79797" x2="0" gradientUnits="userSpaceOnUse"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4143">
+ <stop style="stop-color:#197cf1" id="stop4145"/>
+ <stop offset="1" style="stop-color:#20bcfa" id="stop4147"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4290">
+ <stop style="stop-color:#7cbaf8" id="stop4292"/>
+ <stop offset="1" style="stop-color:#f4fcff" id="stop4294"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4290" id="linearGradient4245" y1="22.999973" y2="9" x2="0" gradientUnits="userSpaceOnUse"/>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4227" id="linearGradient4258" y1="8.999974" x1="9" y2="24.999973" x2="25" gradientUnits="userSpaceOnUse"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4227">
+ <stop style="stop-color:#292c2f" id="stop4229"/>
+ <stop offset="1" style="stop-opacity:0" id="stop4231"/>
+ </linearGradient>
+ </defs>
+ <metadata id="metadata5458"/>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1 0 0 1 -384.57143 -515.798)">
+ <rect width="28.00001" x="386.57144" y="517.79797" rx="14.00001" height="28.00003" style="fill:url(#linearGradient4149)" id="rect4130"/>
+ <path style="fill:url(#linearGradient4258);opacity:0.2" id="rect4247" d="M 16 10 C 15.150265 10.0026 14.310777 10.185691 13.537109 10.537109 L 21.464844 18.464844 C 21.81586 17.690428 21.998275 16.850252 22 16 C 22.000003 12.68629 19.31371 9.9999969 16 10 z M 20.949219 11.050781 L 20.947266 11.052734 A 7.0000119 6.9999738 0 0 1 21.021484 11.123047 L 20.949219 11.050781 z M 21.021484 11.123047 A 7.0000119 6.9999738 0 0 1 22.779297 14.285156 L 22.777344 14.283203 C 22.845345 14.546286 22.894715 14.813347 22.931641 15.082031 L 22.931641 15.083984 A 7.0000119 6.9999738 0 0 1 22.945312 15.203125 C 22.976974 15.467501 22.998666 15.73323 23 16 C 22.999768 16.259427 22.981965 16.516963 22.953125 16.773438 C 22.952762 16.776664 22.953492 16.779977 22.953125 16.783203 A 7.0000119 6.9999738 0 0 1 22.820312 17.552734 C 22.819717 17.555344 22.818959 17.557938 22.818359 17.560547 A 7.0000119 6.9999738 0 0 1 22.207031 19.207031 L 27.277344 24.277344 C 28.290772 22.89565 29.062631 21.323303 29.515625 19.615234 L 21.021484 11.123047 z M 9.7382812 12.890625 A 7.000021 6.9999866 0 0 0 9.484375 13.462891 C 9.560175 13.268671 9.6450512 13.078045 9.7382812 12.890625 z M 10.535156 13.535156 C 10.184136 14.309566 10.00173 15.14975 10 16 C 10 19.31371 12.68629 22 16 22 C 16.84974 21.997 17.689221 21.814311 18.462891 21.462891 L 10.535156 13.535156 z M 9.4082031 13.671875 A 7.000021 6.9999866 0 0 0 9.2402344 14.210938 C 9.2885344 14.029187 9.3453731 13.849365 9.4082031 13.671875 z M 9.1816406 14.439453 A 7.000021 6.9999866 0 0 0 9.078125 15.019531 C 9.105925 14.824941 9.1376206 14.630803 9.1816406 14.439453 z M 9.046875 15.216797 A 7.000021 6.9999866 0 0 0 9 16 C 9.00023 15.73731 9.017375 15.476467 9.046875 15.216797 z M 9 16 A 7.000021 6.9999866 0 0 0 9.0546875 16.796875 C 9.0229875 16.532505 9.0013 16.26677 9 16 z M 9.0683594 16.916016 A 7.000021 6.9999866 0 0 0 9.2207031 17.714844 L 9.2226562 17.716797 C 9.1544564 17.453087 9.1053094 17.185336 9.0683594 16.916016 z M 11.052734 20.947266 L 11.050781 20.949219 L 19.615234 29.515625 C 21.323303 29.062631 22.89565 28.290772 24.277344 27.277344 L 19.208984 22.208984 A 7.0000119 6.9999738 0 0 1 16 23 A 7.0000119 6.9999738 0 0 1 11.052734 20.947266 z " transform="matrix(1 0 0 1 384.57143 515.798)"/>
+ <path style="fill:url(#linearGradient4245)" id="path4169" d="M 16 9 C 14.882534 9.00375 13.782205 9.2749861 12.791016 9.7910156 L 13.375 10.375 L 13.539062 10.539062 L 16.203125 13.203125 L 16.910156 12.496094 L 14.591797 10.177734 C 15.052512 10.062982 15.52522 10.00332 16 10 C 19.313715 10.000012 22.000005 12.686301 22 16 C 21.9956 16.8487 21.811208 17.686812 21.458984 18.458984 L 22.214844 19.214844 C 22.729753 18.221387 22.998995 17.118966 23 16 C 23.000007 12.134017 19.866002 9.0000116 16 9 z M 9.7851562 12.785156 C 9.2702463 13.778616 9.00101 14.88103 9 16 C 8.99999 19.86598 12.134 22.99999 16 23 C 17.11747 22.996 18.217794 22.725014 19.208984 22.208984 L 18.625 21.625 L 18.460938 21.460938 L 15.796875 18.796875 L 15.089844 19.503906 L 17.408203 21.822266 C 16.947493 21.937016 16.47478 21.99668 16 22 C 12.68628 21.99999 10 19.3137 10 16 C 10.004 15.1513 10.188796 14.313186 10.541016 13.541016 L 9.7851562 12.785156 z " transform="matrix(1 0 0 1 384.57143 515.798)"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/system-run.svg b/kstars/data/icons/breeze/default/system-run.svg
new file mode 100644
index 0000000..c0af805
--- /dev/null
+++ b/kstars/data/icons/breeze/default/system-run.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="32" version="1.1" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <defs id="defs5455">
+ <linearGradient inkscape:collect="always" id="linearGradient4293">
+ <stop id="stop4295"/>
+ <stop offset="1" style="stop-opacity:0" id="stop4297"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4303-6">
+ <stop style="stop-color:#c6cdd1" id="stop4305-7"/>
+ <stop offset="1" style="stop-color:#e0e5e7" id="stop4307-0"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4298">
+ <stop style="stop-color:#42a603" id="stop4300"/>
+ <stop offset="1" style="stop-color:#78da06" id="stop4302"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4298" id="linearGradient4308" y1="539.79797" y2="527.79797" x2="0" gradientUnits="userSpaceOnUse"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4643-8" xlink:href="#linearGradient4303-6" y1="543.79797" y2="502.65509" x2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.66666726 0 0 0.63518419 141.19014 191.51873)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4183" xlink:href="#linearGradient4293" y1="525.79797" y2="540.79797" x1="391.57144" gradientUnits="userSpaceOnUse" x2="406.57147" gradientTransform="matrix(1 0 0 1 12.999989 -6.99997)"/>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4293" id="linearGradient4256" y1="11" x1="5" y2="27" x2="21" gradientUnits="userSpaceOnUse"/>
+ </defs>
+ <metadata id="metadata5458"/>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1 0 0 1 -384.57143 -515.798)">
+ <g id="g4244" transform="matrix(1 0 0 1 -12.999996 6.999998)">
+ <rect width="32" x="397.57144" y="510.79797" rx="0" height="28" style="fill:url(#linearGradient4643-8)" id="rect4641-5"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4183);opacity:0.2;fill-rule:evenodd" id="path4167" d="m 398.57142,536.79803 30,-20 1.00001,1 -1e-5,20.99997 -29,3e-5 z"/>
+ <rect width="31.999983" x="397.57141" y="537.79797" height="1" style="fill:#99a1a7" id="rect4645-7-7"/>
+ <rect width="32.00001" x="397.57141" y="510.79797" height="4" style="fill:#566069" id="rect4647-8"/>
+ <rect width="31.999968" x="397.57141" y="514.79797" height="1" style="fill:#3daee9" id="rect4649-8"/>
+ <rect width="30" x="398.57141" y="516.79797" height="20.00003" style="fill:#ffffff" id="rect4653-5"/>
+ <rect width="2" x="426.57141" y="511.79797" rx="1" height="2" style="fill:#eff0f1" id="rect4661-1"/>
+ </g>
+ <path style="fill:url(#linearGradient4256);opacity:0.2;fill-rule:evenodd" id="path4242" d="M 21 18 L 12 24 L 18 30 L 25 30 L 32 30 L 21 18 z " transform="matrix(1 0 0 1 384.57143 515.798)"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient4308);fill-rule:evenodd" id="path4237-9" d="m 396.57141,527.79796 0,12 9,-6 z"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/tools-wizard.svg b/kstars/data/icons/breeze/default/tools-wizard.svg
new file mode 100644
index 0000000..e4557bc
--- /dev/null
+++ b/kstars/data/icons/breeze/default/tools-wizard.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 5.5 4 L 4.96875 4.96875 L 4 5.5 L 4.96875 6.03125 L 5.5 7 L 6.03125 6.03125 L 7 5.5 L 6.03125 4.96875 L 5.5 4 z M 10.5 4 L 9.96875 4.96875 L 9 5.5 L 9.96875 6.03125 L 10.5 7 L 11.03125 6.03125 L 12 5.5 L 11.03125 4.96875 L 10.5 4 z M 17.171875 4 L 4 17.171875 L 6.828125 20 L 20 6.828125 L 17.171875 4 z M 17.103516 5.4824219 L 18.517578 6.8964844 L 15.419922 9.9960938 L 14.003906 8.5800781 L 17.103516 5.4824219 z M 7.5 8 L 6.96875 8.96875 L 6 9.5 L 6.96875 10.03125 L 7.5 11 L 8.03125 10.03125 L 9 9.5 L 8.03125 8.96875 L 7.5 8 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/transform-move.svg b/kstars/data/icons/breeze/default/transform-move.svg
new file mode 100644
index 0000000..403840e
--- /dev/null
+++ b/kstars/data/icons/breeze/default/transform-move.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 12 4 L 10 8 L 14 8 L 12 4 z M 8 10 L 4 12 L 8 14 L 8 10 z M 16 10 L 16 14 L 20 12 L 16 10 z M 12 11 C 11.446 11 11 11.446 11 12 C 11 12.554 11.446 13 12 13 C 12.554 13 13 12.554 13 12 C 13 11.446 12.554 11 12 11 z M 10 16 L 12 20 L 14 16 L 10 16 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/view-fullscreen.svg b/kstars/data/icons/breeze/default/view-fullscreen.svg
new file mode 100644
index 0000000..d5d17a1
--- /dev/null
+++ b/kstars/data/icons/breeze/default/view-fullscreen.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 7 L 7 4 L 4 4 z M 17 4 L 20 7 L 20 4 L 17 4 z M 7 7 L 7 10 L 7 16 L 7 17 L 17 17 L 17 16 L 17 7 L 8 7 L 7 7 z M 8 10 L 16 10 L 16 16 L 8 16 L 8 10 z M 4 17 L 4 20 L 7 20 L 4 17 z M 20 17 L 17 20 L 20 20 L 20 17 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/view-history.svg b/kstars/data/icons/breeze/default/view-history.svg
new file mode 100755
index 0000000..7694d71
--- /dev/null
+++ b/kstars/data/icons/breeze/default/view-history.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg952" version="1.1" inkscape:version="0.49 r12742" sodipodi:docname="edit-find.svg">
+ <defs id="defs954">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="16" inkscape:cx="7.1604848" inkscape:cy="2.4777511" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1366" inkscape:window-height="718" inkscape:window-x="-2" inkscape:window-y="23" inkscape:window-maximized="1" showguides="true" inkscape:guide-bbox="true" inkscape:showpageshadow="false" borderlayer="true">
+ <inkscape:grid type="xygrid" id="grid4063"/>
+ <sodipodi:guide position="2,20.000017" orientation="18,0" id="guide4077"/>
+ <sodipodi:guide position="2,2.0000174" orientation="0,18" id="guide4079"/>
+ <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4081"/>
+ <sodipodi:guide position="20,20.000017" orientation="0,-18" id="guide4083"/>
+ <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4085"/>
+ <sodipodi:guide position="3,3.0000174" orientation="0,16" id="guide4087"/>
+ <sodipodi:guide position="19,3.0000174" orientation="-16,0" id="guide4089"/>
+ <sodipodi:guide position="19,19.000017" orientation="0,-16" id="guide4091"/>
+ <sodipodi:guide position="3,19.000017" orientation="12,0" id="guide4099"/>
+ <sodipodi:guide position="3,7.0000174" orientation="0,12.000017" id="guide4101"/>
+ <sodipodi:guide position="15.000017,7.0000174" orientation="-12,0" id="guide4103"/>
+ <sodipodi:guide position="15.000017,19.000017" orientation="0,-12.000017" id="guide4105"/>
+ <sodipodi:guide position="14,9.0000174" orientation="6,0" id="guide4114"/>
+ <sodipodi:guide position="14,3.0000174" orientation="0,6" id="guide4116"/>
+ <sodipodi:guide position="20,3.0000174" orientation="-6,0" id="guide4118"/>
+ <sodipodi:guide position="20,9.0000174" orientation="0,-6" id="guide4120"/>
+ <sodipodi:guide position="13.707315,8.9997763" orientation="0.70710678,-0.70710678" id="guide4138"/>
+ <sodipodi:guide position="13.000208,8.2926696" orientation="5.2926839,5.2926839" id="guide4140"/>
+ <sodipodi:guide position="18.292892,2.9999857" orientation="-0.70710678,0.70710678" id="guide4142"/>
+ <sodipodi:guide position="18.999999,3.7070925" orientation="-5.2926839,-5.2926839" id="guide4144"/>
+ </sodipodi:namedview>
+ <metadata id="metadata957">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1030.3622)">
+ <path style="fill:currentColor;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" d="m 12.29286,1043.3622 0.707107,-0.7071 6.000032,6 -0.707075,0.7071 z" id="path4146" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 9 3 C 5.6759952 3 3 5.6759952 3 9 C 3 12.324005 5.6759952 15 9 15 C 12.324005 15 15 12.324005 15 9 C 15 5.6759952 12.324005 3 9 3 z M 9 4 C 11.770005 4 14 6.2299952 14 9 C 14 11.770005 11.770005 14 9 14 C 6.2299952 14 4 11.770005 4 9 C 4 6.2299952 6.2299952 4 9 4 z " transform="translate(0,1030.3622)" id="rect4095" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/view-preview.svg b/kstars/data/icons/breeze/default/view-preview.svg
new file mode 100644
index 0000000..90e5bee
--- /dev/null
+++ b/kstars/data/icons/breeze/default/view-preview.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 4v24h24v-24zm1 1h22v22h-22zm6 2a4 4 0 0 0 -4 4 4 4 0 0 0 4 4 4 4 0 0 0 4 -4 4 4 0 0 0 -4 -4m0 1a3 3 0 0 1 3 3 3 3 0 0 1 -3 3 3 3 0 0 1 -3 -3 3 3 0 0 1 3 -3m9.5 6.793l-5 5-2-2-6.5 6.5.707.707 5.793-5.793 2 2 5-5 3.793 3.793.707-.707z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/view-refresh.svg b/kstars/data/icons/breeze/default/view-refresh.svg
new file mode 100644
index 0000000..c60eef3
--- /dev/null
+++ b/kstars/data/icons/breeze/default/view-refresh.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M16 4A12 12 0 0 0 9.916016 5.671875L15.293 11.05 16 10.34 11.596 5.936A11 11 0 0 1 16 5 11 11 0 0 1 27 16 11 11 0 0 1 25.595703 21.351562L26.328 22.08A12 12 0 0 0 28 16 12 12 0 0 0 16 4M5.671875 9.916016A12 12 0 0 0 4 16 12 12 0 0 0 16 28 12 12 0 0 0 22.08398 26.328125L16.707 20.949 16 21.656 20.406 26.06A11 11 0 0 1 16 27 11 11 0 0 1 5 16 11 11 0 0 1 6.404297 10.648438z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/view-restore.svg b/kstars/data/icons/breeze/default/view-restore.svg
new file mode 100644
index 0000000..3d15888
--- /dev/null
+++ b/kstars/data/icons/breeze/default/view-restore.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 10 4 L 12 6 L 14 4 L 10 4 z M 7 7 L 7 10 L 7 16 L 7 17 L 17 17 L 17 16 L 17 7 L 8 7 L 7 7 z M 4 10 L 4 14 L 6 12 L 4 10 z M 8 10 L 16 10 L 16 16 L 8 16 L 8 10 z M 20 10 L 18 12 L 20 14 L 20 10 z M 12 18 L 10 20 L 14 20 L 12 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/view-statistics.svg b/kstars/data/icons/breeze/default/view-statistics.svg
new file mode 100644
index 0000000..4447f7c
--- /dev/null
+++ b/kstars/data/icons/breeze/default/view-statistics.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 16 4 L 16 20 L 20 20 L 20 4 L 16 4 z M 10 11 L 10 20 L 14 20 L 14 11 L 10 11 z M 4 15 L 4 20 L 8 20 L 8 15 L 4 15 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/window-close.svg b/kstars/data/icons/breeze/default/window-close.svg
new file mode 100755
index 0000000..b207a4a
--- /dev/null
+++ b/kstars/data/icons/breeze/default/window-close.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg3049" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="window-close.svg" inkscape:export-filename="/home/uri/.kde/share/icons/NITRUX-KDE/16x16/actions/view-right-new.png" inkscape:export-xdpi="30" inkscape:export-ydpi="30">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="15.863636" inkscape:cx="11" inkscape:cy="11" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1024" inkscape:window-height="532" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" borderlayer="true">
+ <sodipodi:guide position="2.0000044,20.00003" orientation="18,0" id="guide4067"/>
+ <sodipodi:guide position="2.0000044,2.0000296" orientation="0,18" id="guide4069"/>
+ <sodipodi:guide position="20.000004,2.0000296" orientation="-18,0" id="guide4071"/>
+ <sodipodi:guide position="20.000004,20.00003" orientation="0,-18" id="guide4073"/>
+ <sodipodi:guide position="3.0000044,19.00003" orientation="16,0" id="guide4077"/>
+ <sodipodi:guide position="3.0000044,3.0000296" orientation="0,16" id="guide4079"/>
+ <sodipodi:guide position="19.000004,3.0000296" orientation="-16,0" id="guide4081"/>
+ <sodipodi:guide position="19.000004,19.00003" orientation="0,-16" id="guide4083"/>
+ <inkscape:grid type="xygrid" id="grid4085"/>
+ </sodipodi:namedview>
+ <metadata id="metadata3054">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-421.71429,-525.79074)">
+ <circle style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none" id="path4145" cx="432.71429" cy="536.79071" r="6"/>
+ <circle r="0" cy="-504.57132" cx="421.71429" id="circle16"/>
+ <path inkscape:connector-curvature="0" style="opacity:1;fill:#da4453;fill-opacity:1" d="m 432.71429,528.79074 a 7.9999995,8.0000081 0 0 0 -8,8 7.9999995,8.0000081 0 0 0 8,8 7.9999995,8.0000081 0 0 0 8,-8 7.9999995,8.0000081 0 0 0 -8,-8 z m -3.29297,4 3.29297,3.29297 3.29297,-3.29297 0.70703,0.70703 -3.29297,3.29297 3.29297,3.29297 -0.70703,0.70703 -3.29297,-3.29297 -3.29297,3.29297 -0.70703,-0.70703 3.29297,-3.29297 -3.29297,-3.29297 0.70703,-0.70703 z" id="path4144"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/zoom-draw.svg b/kstars/data/icons/breeze/default/zoom-draw.svg
new file mode 100755
index 0000000..06de995
--- /dev/null
+++ b/kstars/data/icons/breeze/default/zoom-draw.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="22" height="22" id="svg4355" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="zoom-fit-best.svg">
+ <defs id="defs4357">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ .ColorScheme-Background {
+ color:#eff0f1;
+ }
+ .ColorScheme-Highlight {
+ color:#3daee9;
+ }
+ .ColorScheme-ViewText {
+ color:#31363b;
+ }
+ .ColorScheme-ViewBackground {
+ color:#fcfcfc;
+ }
+ .ColorScheme-ViewHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ViewFocus{
+ color:#3daee9;
+ }
+ .ColorScheme-ButtonText {
+ color:#31363b;
+ }
+ .ColorScheme-ButtonBackground {
+ color:#eff0f1;
+ }
+ .ColorScheme-ButtonHover {
+ color:#93cee9;
+ }
+ .ColorScheme-ButtonFocus{
+ color:#3daee9;
+ }
+ </style>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="23.05398" inkscape:cx="7.4028633" inkscape:cy="11.79776" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" width="0px" height="0px" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="2560" inkscape:window-height="957" inkscape:window-x="0" inkscape:window-y="30" inkscape:window-maximized="1" inkscape:showpageshadow="false">
+ <inkscape:grid type="xygrid" id="grid4114"/>
+ <sodipodi:guide position="2.0000011,19.999996" orientation="18,0" id="guide4120"/>
+ <sodipodi:guide position="2.0000011,1.9999962" orientation="0,18" id="guide4122"/>
+ <sodipodi:guide position="20.000001,1.9999962" orientation="-18,0" id="guide4124"/>
+ <sodipodi:guide position="20.000001,19.999996" orientation="0,-18" id="guide4126"/>
+ <sodipodi:guide position="3.0000011,18.999996" orientation="16,0" id="guide4128"/>
+ <sodipodi:guide position="3.0000011,2.9999962" orientation="0,16" id="guide4130"/>
+ <sodipodi:guide position="19.000001,2.9999962" orientation="-16,0" id="guide4132"/>
+ <sodipodi:guide position="19.000001,18.999996" orientation="0,-16" id="guide4134"/>
+ </sodipodi:namedview>
+ <metadata id="metadata4360">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-544.57141,-742.93359)">
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="m 547.57141,745.93359 0,1 0,3 1,0 0,-3 3,0 0,-1 -3,0 z" id="path4162" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc" class="ColorScheme-Text"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="M 6 6 L 6 16 L 16 16 L 16 6 L 6 6 z M 7 7 L 15 7 L 15 15 L 7 15 L 7 7 z " id="path4176" transform="translate(544.57141,742.93359)" class="ColorScheme-Text"/>
+ <path style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" d="m 562.57141,757.93359 0,3 -3,0 0,1 4,0 0,-1 0,-3 z" id="rect4134" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccc" class="ColorScheme-Text"/>
+ <path sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" id="path4170" d="m 563.57141,745.93359 0,1 0,3 -1,0 0,-3 -3,0 0,-1 3,0 z" style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" class="ColorScheme-Text"/>
+ <path sodipodi:nodetypes="cccccccc" inkscape:connector-curvature="0" id="path4172" d="m 548.57141,757.93359 0,3 3,0 0,1 -4,0 0,-1 0,-3 z" style="opacity:1;fill:currentColor;fill-opacity:1;stroke:none" class="ColorScheme-Text"/>
+ <path style="fill:currentColor;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 549.57141,755.93359 -2,-2 2,-2 z" id="path4181" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ <path inkscape:connector-curvature="0" id="path4183" d="m 561.57141,755.93359 2,-2 -2,-2 z" style="fill:currentColor;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" class="ColorScheme-Text"/>
+ <path inkscape:connector-curvature="0" id="path4185" d="m 553.57141,747.93359 2,-2 2,2 z" style="fill:currentColor;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" class="ColorScheme-Text"/>
+ <path style="fill:currentColor;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 553.57141,759.93359 2,2 2,-2 z" id="path4187" inkscape:connector-curvature="0" class="ColorScheme-Text"/>
+ </g>
+</svg>
diff --git a/kstars/data/icons/breeze/default/zoom-fit-best.svg b/kstars/data/icons/breeze/default/zoom-fit-best.svg
new file mode 100644
index 0000000..9a5f9d1
--- /dev/null
+++ b/kstars/data/icons/breeze/default/zoom-fit-best.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 8 L 5 8 L 5 5 L 8 5 L 8 4 L 5 4 L 4 4 z M 12 4 L 10 6 L 14 6 L 12 4 z M 16 4 L 16 5 L 19 5 L 19 8 L 20 8 L 20 5 L 20 4 L 19 4 L 16 4 z M 7 7 L 7 17 L 17 17 L 17 7 L 7 7 z M 8 8 L 16 8 L 16 16 L 8 16 L 8 8 z M 6 10 L 4 12 L 6 14 L 6 10 z M 18 10 L 18 14 L 20 12 L 18 10 z M 4 16 L 4 19 L 4 20 L 8 20 L 8 19 L 5 19 L 5 16 L 4 16 z M 19 16 L 19 19 L 16 19 L 16 20 L 20 20 L 20 19 L 20 16 L 19 16 z M 10 18 L 12 20 L 14 18 L 10 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/zoom-in.svg b/kstars/data/icons/breeze/default/zoom-in.svg
new file mode 100644
index 0000000..28a9e73
--- /dev/null
+++ b/kstars/data/icons/breeze/default/zoom-in.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 6 L 5 6 L 5 5 L 6 5 L 6 4 L 4 4 z M 9 4 L 9 5 L 11 5 L 11 4 L 9 4 z M 13 4 L 13 5 L 15 5 L 15 4 L 13 4 z M 18 4 L 18 5 L 19 5 L 19 6 L 20 6 L 20 4 L 18 4 z M 12 8 L 12 9 L 14.292969 9 L 11 12.292969 L 11.707031 13 L 15 9.7070312 L 15 12 L 16 12 L 16 8 L 15 8 L 12 8 z M 4 9 L 4 11 L 5 11 L 5 9 L 4 9 z M 19 9 L 19 11 L 20 11 L 20 9 L 19 9 z M 19 13 L 19 15 L 20 15 L 20 13 L 19 13 z M 4 14 L 4 20 L 10 20 L 10 14 L 4 14 z M 5 15 L 9 15 L 9 19 L 5 19 L 5 15 z M 19 18 L 19 19 L 18 19 L 18 20 L 20 20 L 20 18 L 19 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/zoom-original.svg b/kstars/data/icons/breeze/default/zoom-original.svg
new file mode 100644
index 0000000..7ffdc31
--- /dev/null
+++ b/kstars/data/icons/breeze/default/zoom-original.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 7 L 5 7 L 5 5 L 7 5 L 7 4 L 5 4 L 4 4 z M 17 4 L 17 5 L 19 5 L 19 7 L 20 7 L 20 5 L 20 4 L 19 4 L 17 4 z M 6 6 L 6 18 L 18 18 L 18 6 L 6 6 z M 7 7 L 17 7 L 17 17 L 7 17 L 7 7 z M 4 17 L 4 19 L 4 20 L 7 20 L 7 19 L 5 19 L 5 17 L 4 17 z M 19 17 L 19 19 L 17 19 L 17 20 L 20 20 L 20 17 L 19 17 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/default/zoom-out.svg b/kstars/data/icons/breeze/default/zoom-out.svg
new file mode 100644
index 0000000..9cf4b32
--- /dev/null
+++ b/kstars/data/icons/breeze/default/zoom-out.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 11 L 5 11 L 5 5 L 19 5 L 19 19 L 13 19 L 13 20 L 20 20 L 20 19 L 20 5 L 20 4 L 5 4 L 4 4 z M 15.292969 8 L 12 11.292969 L 12 9 L 11 9 L 11 13 L 12 13 L 15 13 L 15 12 L 12.707031 12 L 16 8.7070312 L 15.292969 8 z M 4 14 L 4 16 L 5 16 L 5 15 L 6 15 L 6 14 L 4 14 z M 8 14 L 8 15 L 9 15 L 9 16 L 10 16 L 10 14 L 8 14 z M 4 18 L 4 20 L 6 20 L 6 19 L 5 19 L 5 18 L 4 18 z M 9 18 L 9 19 L 8 19 L 8 20 L 10 20 L 10 18 L 9 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/kstars/data/icons/breeze/index.theme b/kstars/data/icons/breeze/index.theme
new file mode 100644
index 0000000..156dffc
--- /dev/null
+++ b/kstars/data/icons/breeze/index.theme
@@ -0,0 +1,8 @@
+[Icon Theme]
+Name=Breeze
+Inherits=default
+Directories=default
+
+[default]
+Size=32
+
diff --git a/kstars/data/catalog.png b/kstars/data/icons/catalog.png
index 2d6bf22..2d6bf22 100644
--- a/kstars/data/catalog.png
+++ b/kstars/data/icons/catalog.png
Binary files differ
diff --git a/kstars/data/cbound.png b/kstars/data/icons/cbound.png
index b4a8cb4..b4a8cb4 100644
--- a/kstars/data/cbound.png
+++ b/kstars/data/icons/cbound.png
Binary files differ
diff --git a/kstars/data/clines.png b/kstars/data/icons/clines.png
index 935ba26..935ba26 100644
--- a/kstars/data/clines.png
+++ b/kstars/data/icons/clines.png
Binary files differ
diff --git a/kstars/data/cnames.png b/kstars/data/icons/cnames.png
index bec8544..bec8544 100644
--- a/kstars/data/cnames.png
+++ b/kstars/data/icons/cnames.png
Binary files differ
diff --git a/kstars/data/colors.png b/kstars/data/icons/colors.png
index 373e723..373e723 100644
--- a/kstars/data/colors.png
+++ b/kstars/data/icons/colors.png
Binary files differ
diff --git a/kstars/data/constellationart.png b/kstars/data/icons/constellationart.png
index 967b2fc..967b2fc 100644
--- a/kstars/data/constellationart.png
+++ b/kstars/data/icons/constellationart.png
Binary files differ
diff --git a/kstars/data/deepsky.png b/kstars/data/icons/deepsky.png
index c33515f..c33515f 100644
--- a/kstars/data/deepsky.png
+++ b/kstars/data/icons/deepsky.png
Binary files differ
diff --git a/kstars/data/ekos.png b/kstars/data/icons/ekos.png
index cb41f64..cb41f64 100644
--- a/kstars/data/ekos.png
+++ b/kstars/data/icons/ekos.png
Binary files differ
diff --git a/kstars/data/ekos_align.png b/kstars/data/icons/ekos_align.png
index 3293ed6..3293ed6 100644
--- a/kstars/data/ekos_align.png
+++ b/kstars/data/icons/ekos_align.png
Binary files differ
diff --git a/kstars/data/ekos_ccd.png b/kstars/data/icons/ekos_ccd.png
index 9644dbd..9644dbd 100644
--- a/kstars/data/ekos_ccd.png
+++ b/kstars/data/icons/ekos_ccd.png
Binary files differ
diff --git a/kstars/data/ekos_focus.png b/kstars/data/icons/ekos_focus.png
index 20566a9..20566a9 100644
--- a/kstars/data/ekos_focus.png
+++ b/kstars/data/icons/ekos_focus.png
Binary files differ
diff --git a/kstars/data/ekos_guide.png b/kstars/data/icons/ekos_guide.png
index 7241847..7241847 100644
--- a/kstars/data/ekos_guide.png
+++ b/kstars/data/icons/ekos_guide.png
Binary files differ
diff --git a/kstars/data/ekos_mount.png b/kstars/data/icons/ekos_mount.png
index b9feb36..b9feb36 100644
--- a/kstars/data/ekos_mount.png
+++ b/kstars/data/icons/ekos_mount.png
Binary files differ
diff --git a/kstars/data/ekos_scheduler.png b/kstars/data/icons/ekos_scheduler.png
index 7e22d39..7e22d39 100644
--- a/kstars/data/ekos_scheduler.png
+++ b/kstars/data/icons/ekos_scheduler.png
Binary files differ
diff --git a/kstars/data/ekos_setup.png b/kstars/data/icons/ekos_setup.png
index 2270562..2270562 100644
--- a/kstars/data/ekos_setup.png
+++ b/kstars/data/icons/ekos_setup.png
Binary files differ
diff --git a/kstars/data/fitsviewer.png b/kstars/data/icons/fitsviewer.png
index 4e9da94..4e9da94 100644
--- a/kstars/data/fitsviewer.png
+++ b/kstars/data/icons/fitsviewer.png
Binary files differ
diff --git a/kstars/data/flag.png b/kstars/data/icons/flag.png
index 9d5134e..9d5134e 100644
--- a/kstars/data/flag.png
+++ b/kstars/data/icons/flag.png
Binary files differ
diff --git a/kstars/data/fov.png b/kstars/data/icons/fov.png
index 41e1bd7..41e1bd7 100644
--- a/kstars/data/fov.png
+++ b/kstars/data/icons/fov.png
Binary files differ
diff --git a/kstars/data/glstarbase.png b/kstars/data/icons/glstarbase.png
index d9b10c0..d9b10c0 100644
--- a/kstars/data/glstarbase.png
+++ b/kstars/data/icons/glstarbase.png
Binary files differ
diff --git a/kstars/data/go-ne.png b/kstars/data/icons/go-ne.png
index 9dbe354..9dbe354 100644
--- a/kstars/data/go-ne.png
+++ b/kstars/data/icons/go-ne.png
Binary files differ
diff --git a/kstars/data/go-nw.png b/kstars/data/icons/go-nw.png
index 25a4c78..25a4c78 100644
--- a/kstars/data/go-nw.png
+++ b/kstars/data/icons/go-nw.png
Binary files differ
diff --git a/kstars/data/go-se.png b/kstars/data/icons/go-se.png
index 7f2378c..7f2378c 100644
--- a/kstars/data/go-se.png
+++ b/kstars/data/icons/go-se.png
Binary files differ
diff --git a/kstars/data/go-sw.png b/kstars/data/icons/go-sw.png
index 1851b69..1851b69 100644
--- a/kstars/data/go-sw.png
+++ b/kstars/data/icons/go-sw.png
Binary files differ
diff --git a/kstars/data/grid.png b/kstars/data/icons/grid.png
index 61a155a..61a155a 100644
--- a/kstars/data/grid.png
+++ b/kstars/data/icons/grid.png
Binary files differ
diff --git a/kstars/data/guides.png b/kstars/data/icons/guides.png
index 8b4c67c..8b4c67c 100644
--- a/kstars/data/guides.png
+++ b/kstars/data/icons/guides.png
Binary files differ
diff --git a/kstars/data/hgrid.png b/kstars/data/icons/hgrid.png
index cf01f62..cf01f62 100644
--- a/kstars/data/hgrid.png
+++ b/kstars/data/icons/hgrid.png
Binary files differ
diff --git a/kstars/data/histogram.png b/kstars/data/icons/histogram.png
index 2d4f22c..2d4f22c 100644
--- a/kstars/data/histogram.png
+++ b/kstars/data/icons/histogram.png
Binary files differ
diff --git a/kstars/data/horizon.png b/kstars/data/icons/horizon.png
index 0825ff6..0825ff6 100644
--- a/kstars/data/horizon.png
+++ b/kstars/data/icons/horizon.png
Binary files differ
diff --git a/kstars/data/indi.png b/kstars/data/icons/indi.png
index e9c5949..e9c5949 100644
--- a/kstars/data/indi.png
+++ b/kstars/data/icons/indi.png
Binary files differ
diff --git a/kstars/data/mw.png b/kstars/data/icons/mw.png
index 4358107..4358107 100644
--- a/kstars/data/mw.png
+++ b/kstars/data/icons/mw.png
Binary files differ
diff --git a/kstars/data/planets.png b/kstars/data/icons/planets.png
index c7fa497..c7fa497 100644
--- a/kstars/data/planets.png
+++ b/kstars/data/icons/planets.png
Binary files differ
diff --git a/kstars/data/satellites.png b/kstars/data/icons/satellites.png
index abbd209..abbd209 100644
--- a/kstars/data/satellites.png
+++ b/kstars/data/icons/satellites.png
Binary files differ
diff --git a/kstars/data/solarsystem.png b/kstars/data/icons/solarsystem.png
index c7dc711..c7dc711 100644
--- a/kstars/data/solarsystem.png
+++ b/kstars/data/icons/solarsystem.png
Binary files differ
diff --git a/kstars/data/stars.png b/kstars/data/icons/stars.png
index 62bc95f..62bc95f 100644
--- a/kstars/data/stars.png
+++ b/kstars/data/icons/stars.png
Binary files differ
diff --git a/kstars/data/supernovae.png b/kstars/data/icons/supernovae.png
index 68584ef..68584ef 100644
--- a/kstars/data/supernovae.png
+++ b/kstars/data/icons/supernovae.png
Binary files differ
diff --git a/kstars/data/xplanet.png b/kstars/data/icons/xplanet.png
index 599bf75..599bf75 100644
--- a/kstars/data/xplanet.png
+++ b/kstars/data/icons/xplanet.png
Binary files differ
diff --git a/kstars/data/kstars.qrc b/kstars/data/kstars.qrc
index c65f434..7383e90 100644
--- a/kstars/data/kstars.qrc
+++ b/kstars/data/kstars.qrc
@@ -1,37 +1,137 @@
<RCC>
- <qresource prefix="/icons">
- <file>catalog.png</file>
- <file>cbound.png</file>
- <file>clines.png</file>
- <file>cnames.png</file>
- <file>colors.png</file>
- <file>constellationart.png</file>
- <file>deepsky.png</file>
- <file>ekos_align.png</file>
- <file>ekos_ccd.png</file>
- <file>ekos_focus.png</file>
- <file>ekos_guide.png</file>
- <file>ekos_mount.png</file>
- <file>ekos_scheduler.png</file>
- <file>ekos_setup.png</file>
- <file>ekos.png</file>
- <file>fitsviewer.png</file>
- <file>flag.png</file>
- <file>fov.png</file>
- <file>grid.png</file>
- <file>guides.png</file>
- <file>hgrid.png</file>
- <file>horizon.png</file>
- <file>indi.png</file>
- <file>kstars.png</file>
- <file>mw.png</file>
- <file>planets.png</file>
- <file>satellites.png</file>
- <file>solarsystem.png</file>
- <file>stars.png</file>
- <file>supernovae.png</file>
- <file>xplanet.png</file>
- <file>advanced.png</file>
+ <qresource prefix="/">
+ <file>icons/catalog.png</file>
+ <file>icons/cbound.png</file>
+ <file>icons/clines.png</file>
+ <file>icons/cnames.png</file>
+ <file>icons/colors.png</file>
+ <file>icons/constellationart.png</file>
+ <file>icons/deepsky.png</file>
+ <file>icons/ekos_align.png</file>
+ <file>icons/ekos_ccd.png</file>
+ <file>icons/ekos_focus.png</file>
+ <file>icons/ekos_guide.png</file>
+ <file>icons/ekos_mount.png</file>
+ <file>icons/ekos_scheduler.png</file>
+ <file>icons/ekos_setup.png</file>
+ <file>icons/ekos.png</file>
+ <file>icons/fitsviewer.png</file>
+ <file>icons/flag.png</file>
+ <file>icons/fov.png</file>
+ <file>icons/grid.png</file>
+ <file>icons/guides.png</file>
+ <file>icons/hgrid.png</file>
+ <file>icons/horizon.png</file>
+ <file>icons/indi.png</file>
+ <file>icons/mw.png</file>
+ <file>icons/planets.png</file>
+ <file>icons/satellites.png</file>
+ <file>icons/solarsystem.png</file>
+ <file>icons/stars.png</file>
+ <file>icons/supernovae.png</file>
+ <file>icons/xplanet.png</file>
+ <file>icons/advanced.png</file>
+ <file>icons/breeze/index.theme</file>
+ <file>icons/breeze/default/accessories-calculator.svg</file>
+ <file>icons/breeze/default/application-exit.svg</file>
+ <file>icons/breeze/default/applications-internet.svg</file>
+ <file>icons/breeze/default/arrow-down.svg</file>
+ <file>icons/breeze/default/arrow-right.svg</file>
+ <file>icons/breeze/default/arrow-right-double.svg</file>
+ <file>icons/breeze/default/arrow-left.svg</file>
+ <file>icons/breeze/default/arrow-left-double.svg</file>
+ <file>icons/breeze/default/arrow-up.svg</file>
+ <file>icons/breeze/default/chronometer.svg</file>
+ <file>icons/breeze/default/clock.svg</file>
+ <file>icons/breeze/default/computer.svg</file>
+ <file>icons/breeze/default/crosshairs.svg</file>
+ <file>icons/breeze/default/dialog-cancel.svg</file>
+ <file>icons/breeze/default/dialog-ok-apply.svg</file>
+ <file>icons/breeze/default/document-edit.svg</file>
+ <file>icons/breeze/default/document-encrypt.svg</file>
+ <file>icons/breeze/default/document-export.svg</file>
+ <file>icons/breeze/default/document-new.svg</file>
+ <file>icons/breeze/default/document-open-folder.svg</file>
+ <file>icons/breeze/default/document-open.svg</file>
+ <file>icons/breeze/default/document-print.svg</file>
+ <file>icons/breeze/default/document-properties.svg</file>
+ <file>icons/breeze/default/document-save-as.svg</file>
+ <file>icons/breeze/default/document-save.svg</file>
+ <file>icons/breeze/default/download.svg</file>
+ <file>icons/breeze/default/edit-clear.svg</file>
+ <file>icons/breeze/default/edit-copy.svg</file>
+ <file>icons/breeze/default/edit-delete.svg</file>
+ <file>icons/breeze/default/edit-find.svg</file>
+ <file>icons/breeze/default/edit-undo.svg</file>
+ <file>icons/breeze/default/edit-redo.svg</file>
+ <file>icons/breeze/default/favorites.svg</file>
+ <file>icons/breeze/default/go-down.svg</file>
+ <file>icons/breeze/default/go-next.svg</file>
+ <file>icons/breeze/default/go-previous.svg</file>
+ <file>icons/breeze/default/go-up.svg</file>
+ <file>icons/breeze/default/help-hint.svg</file>
+ <file>icons/breeze/default/list-add.svg</file>
+ <file>icons/breeze/default/list-remove.svg</file>
+ <file>icons/breeze/default/media-playback-pause.svg</file>
+ <file>icons/breeze/default/media-playback-start.svg</file>
+ <file>icons/breeze/default/media-playback-stop.svg</file>
+ <file>icons/breeze/default/media-skip-backward.svg</file>
+ <file>icons/breeze/default/media-skip-forward.svg</file>
+ <file>icons/breeze/default/modem.svg</file>
+ <file>icons/breeze/default/network-connect.svg</file>
+ <file>icons/breeze/default/network-disconnect.svg</file>
+ <file>icons/breeze/default/network-server.svg</file>
+ <file>icons/breeze/default/object-flip-horizontal.svg</file>
+ <file>icons/breeze/default/object-flip-vertical.svg</file>
+ <file>icons/breeze/default/object-locked.svg</file>
+ <file>icons/breeze/default/object-rotate-left.svg</file>
+ <file>icons/breeze/default/object-rotate-right.svg</file>
+ <file>icons/breeze/default/process-stop.svg</file>
+ <file>icons/breeze/default/run-build.svg</file>
+ <file>icons/breeze/default/security-high.svg</file>
+ <file>icons/breeze/default/security-low.svg</file>
+ <file>icons/breeze/default/security-medium.svg</file>
+ <file>icons/breeze/default/snap-orthogonal.svg</file>
+ <file>icons/breeze/default/svn-update.svg</file>
+ <file>icons/breeze/default/system-reboot.svg</file>
+ <file>icons/breeze/default/system-run.svg</file>
+ <file>icons/breeze/default/tools-wizard.svg</file>
+ <file>icons/breeze/default/transform-move.svg</file>
+ <file>icons/breeze/default/view-fullscreen.svg</file>
+ <file>icons/breeze/default/view-history.svg</file>
+ <file>icons/breeze/default/view-preview.svg</file>
+ <file>icons/breeze/default/view-refresh.svg</file>
+ <file>icons/breeze/default/view-restore.svg</file>
+ <file>icons/breeze/default/view-statistics.svg</file>
+ <file>icons/breeze/default/window-close.svg</file>
+ <file>icons/breeze/default/zoom-draw.svg</file>
+ <file>icons/breeze/default/zoom-fit-best.svg</file>
+ <file>icons/breeze/default/zoom-in.svg</file>
+ <file>icons/breeze/default/zoom-original.svg</file>
+ <file>icons/breeze/default/zoom-out.svg</file>
+ <file>icons/breeze/default/kstars_grid.svg</file>
+ <file>icons/breeze/default/kstars_guides.svg</file>
+ <file>icons/breeze/default/kstars_advanced.svg</file>
+ <file>icons/breeze/default/kstars_hgrid.svg</file>
+ <file>icons/breeze/default/kstars_catalog.svg</file>
+ <file>icons/breeze/default/kstars_horizon.svg</file>
+ <file>icons/breeze/default/kstars_cbound.svg</file>
+ <file>icons/breeze/default/kstars_indi.svg</file>
+ <file>icons/breeze/default/kstars_clines.svg</file>
+ <file>icons/breeze/default/kstars_mw.svg</file>
+ <file>icons/breeze/default/kstars_cnames.svg</file>
+ <file>icons/breeze/default/kstars_planets.svg</file>
+ <file>icons/breeze/default/kstars_colors.svg</file>
+ <file>icons/breeze/default/kstars_satellites.svg</file>
+ <file>icons/breeze/default/kstars_constellationart.svg</file>
+ <file>icons/breeze/default/kstars_solarsystem.svg</file>
+ <file>icons/breeze/default/kstars_deepsky.svg</file>
+ <file>icons/breeze/default/kstars_stars.svg</file>
+ <file>icons/breeze/default/kstars_ekos.svg</file>
+ <file>icons/breeze/default/kstars_supernovae.svg</file>
+ <file>icons/breeze/default/kstars_fitsviewer.svg</file>
+ <file>icons/breeze/default/kstars_xplanet.svg</file>
+ <file>icons/breeze/default/kstars_flag.svg</file>
</qresource>
<qresource prefix="/kconfig">
<file>kstars.knsrc</file>
diff --git a/kstars/dialogs/detaildialog.h b/kstars/dialogs/detaildialog.h
index d3156f5..700d753 100644
--- a/kstars/dialogs/detaildialog.h
+++ b/kstars/dialogs/detaildialog.h
@@ -28,7 +28,6 @@
#include <kpagedialog.h>
-#include "skyobjects/skyobject.h"
//UI headers
#include "ui_details_data.h"
#include "ui_details_data_comet.h"
@@ -45,6 +44,7 @@ class QString;
class QStringList;
class KStars;
class KStarsDateTime;
+class SkyObject;
class DataWidget;
class DataCometWidget;
diff --git a/kstars/dialogs/finddialog.cpp b/kstars/dialogs/finddialog.cpp
index f0c8c36..198428a 100644
--- a/kstars/dialogs/finddialog.cpp
+++ b/kstars/dialogs/finddialog.cpp
@@ -21,6 +21,7 @@
#include "Options.h"
#include "detaildialog.h"
#include "skyobjects/skyobject.h"
+#include "skyobjects/deepskyobject.h"
#include "skycomponents/starcomponent.h"
#include "skycomponents/syncedcatalogcomponent.h"
#include "skycomponents/skymapcomposite.h"
diff --git a/kstars/dialogs/finddialog.h b/kstars/dialogs/finddialog.h
index dc64e87..17da0fc 100644
--- a/kstars/dialogs/finddialog.h
+++ b/kstars/dialogs/finddialog.h
@@ -22,12 +22,12 @@
#include <QDialog>
#include "ui_finddialog.h"
-#include "skyobjects/skyobject.h"
class QTimer;
class QStringListModel;
class QSortFilterProxyModel;
class SkyObjectListModel;
+class SkyObject;
class FindDialogUI : public QFrame, public Ui::FindDialog {
Q_OBJECT
diff --git a/kstars/dialogs/focusdialog.cpp b/kstars/dialogs/focusdialog.cpp
index c9ceb89..78f1c79 100644
--- a/kstars/dialogs/focusdialog.cpp
+++ b/kstars/dialogs/focusdialog.cpp
@@ -103,8 +103,9 @@ void FocusDialog::validatePoint() {
}
Point.set( ra, dec );
- double epoch0 = getEpoch( fd->epochBox->text() );
- long double jd0 = epochToJd ( epoch0 );
+ bool ok; // Ignored. FIXME: Make a version of KStarsDateTime::stringToEpoch that doesn't mandate the ok arg
+ double epoch0 = KStarsDateTime::stringToEpoch( fd->epochBox->text(), ok );
+ long double jd0 = KStarsDateTime::epochToJd ( epoch0 );
Point.apparentCoord(jd0, ks->data()->ut().djd() );
Point.EquatorialToHorizontal( ks->data()->lst(), ks->data()->geo()->lat() );
@@ -137,31 +138,6 @@ void FocusDialog::validatePoint() {
}
}
-double FocusDialog::getEpoch (const QString &eName) {
- //If eName is empty (or not a number) assume 2000.0
- bool ok(false);
- double epoch = eName.toDouble( &ok );
- if ( eName.isEmpty() || ! ok )
- return 2000.0;
-
- return epoch;
-}
-
-long double FocusDialog::epochToJd (double epoch) {
-
- double yearsTo2000 = 2000.0 - epoch;
-
- if (epoch == 1950.0) {
- return 2433282.4235;
- } else if ( epoch == 2000.0 ) {
- return J2000;
- } else {
- return ( J2000 - yearsTo2000 * 365.2425 );
- }
-
-}
-
-
QSize FocusDialog::sizeHint() const
{
return QSize(240,210);
diff --git a/kstars/dialogs/focusdialog.h b/kstars/dialogs/focusdialog.h
index 8f86111..8256ef5 100644
--- a/kstars/dialogs/focusdialog.h
+++ b/kstars/dialogs/focusdialog.h
@@ -60,23 +60,6 @@ public:
*/
void activateAzAltPage() const;
- /**
- *@short Convenience function to convert an epoch number (e.g., 2000.0)
- *to the corresponding Julian Day number (e.g., 2451545.0).
- *@param epoch the epoch value to be converted.
- *FIXME: This should probably move to KStarsDateTime
- */
- long double epochToJd (double epoch);
-
- /**
- *@short Convert a string to an epoch number; essentially just
- *converts the string to a double.
- *@param eName the tring representation of the epoch number.
- *@return the epoch number described by the string argument.
- *FIXME: This should probably move to KStarsDateTime
- */
- double getEpoch (const QString &eName);
-
public slots:
/**If text has been entered in both KLineEdits, enable the Ok button. */
void checkLineEdits();
diff --git a/kstars/dialogs/locationdialog.cpp b/kstars/dialogs/locationdialog.cpp
index 146f2f9..40e8838 100644
--- a/kstars/dialogs/locationdialog.cpp
+++ b/kstars/dialogs/locationdialog.cpp
@@ -68,9 +68,9 @@ LocationDialog::LocationDialog( QWidget* parent ) :
ld->DSTRuleBox->addItem( key );
}
- ld->AddCityButton->setIcon(QIcon::fromTheme("list-add"));
- ld->RemoveButton->setIcon(QIcon::fromTheme("list-remove"));
- ld->UpdateButton->setIcon(QIcon::fromTheme("svn-update"));
+ ld->AddCityButton->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
+ ld->RemoveButton->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png")));
+ ld->UpdateButton->setIcon(QIcon::fromTheme("svn-update", QIcon(":/icons/breeze/default/svn-update.png")));
connect( ld->CityFilter, SIGNAL( textChanged( const QString & ) ), this, SLOT( enqueueFilterCity() ) );
connect( ld->ProvinceFilter, SIGNAL( textChanged( const QString & ) ), this, SLOT( enqueueFilterCity() ) );
diff --git a/kstars/ekos/align/align.cpp b/kstars/ekos/align/align.cpp
index dc6430f..bc04608 100644
--- a/kstars/ekos/align/align.cpp
+++ b/kstars/ekos/align/align.cpp
@@ -117,8 +117,8 @@ Align::Align()
currentGotoMode = static_cast<GotoMode>(Options::solverGotoOption());
gotoModeButtonGroup->button(currentGotoMode)->setChecked(true);
- syncBoxesB->setIcon(QIcon::fromTheme("edit-copy"));
- clearBoxesB->setIcon(QIcon::fromTheme("edit-clear"));
+ syncBoxesB->setIcon(QIcon::fromTheme("edit-copy", QIcon(":/icons/breeze/default/edit-copy.png")));
+ clearBoxesB->setIcon(QIcon::fromTheme("edit-clear", QIcon(":/icons/breeze/default/edit-clear.png")));
raBox->setDegType(false); //RA box should be HMS-style
diff --git a/kstars/ekos/capture/capture.cpp b/kstars/ekos/capture/capture.cpp
index 8e373ce..ce457b5 100644
--- a/kstars/ekos/capture/capture.cpp
+++ b/kstars/ekos/capture/capture.cpp
@@ -121,8 +121,8 @@ Capture::Capture()
connect(startB, SIGNAL(clicked()), this, SLOT(toggleSequence()));
connect(pauseB, SIGNAL(clicked()), this, SLOT(pause()));
- startB->setIcon(QIcon::fromTheme("media-playback-start"));
- pauseB->setIcon(QIcon::fromTheme("media-playback-pause"));
+ startB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png") ));
+ pauseB->setIcon(QIcon::fromTheme("media-playback-pause", QIcon(":/icons/breeze/default/media-playback-pause.png") ));
connect(binXIN, SIGNAL(valueChanged(int)), binYIN, SLOT(setValue(int)));
@@ -153,17 +153,17 @@ Capture::Capture()
connect(resetFrameB, SIGNAL(clicked()), this, SLOT(resetFrame()));
connect(calibrationB, SIGNAL(clicked()), this, SLOT(openCalibrationDialog()));
- addToQueueB->setIcon(QIcon::fromTheme("list-add"));
- removeFromQueueB->setIcon(QIcon::fromTheme("list-remove"));
- queueUpB->setIcon(QIcon::fromTheme("go-up"));
- queueDownB->setIcon(QIcon::fromTheme("go-down"));
- selectFITSDirB->setIcon(QIcon::fromTheme("document-open-folder"));
- queueLoadB->setIcon(QIcon::fromTheme("document-open"));
- queueSaveB->setIcon(QIcon::fromTheme("document-save"));
- queueSaveAsB->setIcon(QIcon::fromTheme("document-save-as"));
- resetB->setIcon(QIcon::fromTheme("system-reboot"));
- resetFrameB->setIcon(QIcon::fromTheme("view-refresh"));
- calibrationB->setIcon(QIcon::fromTheme("run-build"));
+ addToQueueB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png") ));
+ removeFromQueueB->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png") ));
+ queueUpB->setIcon(QIcon::fromTheme("go-up", QIcon(":/icons/breeze/default/go-up.png") ));
+ queueDownB->setIcon(QIcon::fromTheme("go-down", QIcon(":/icons/go-down.png") ));
+ selectFITSDirB->setIcon(QIcon::fromTheme("document-open-folder", QIcon(":/icons/breeze/default/document-open-folder.png") ));
+ queueLoadB->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png") ));
+ queueSaveB->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/breeze/default/document-save.png") ));
+ queueSaveAsB->setIcon(QIcon::fromTheme("document-save-as", QIcon(":/icons/breeze/default/document-save-as.png") ));
+ resetB->setIcon(QIcon::fromTheme("system-reboot", QIcon(":/icons/breeze/default/system-reboot.png") ));
+ resetFrameB->setIcon(QIcon::fromTheme("view-refresh", QIcon(":/icons/breeze/default/view-refresh.png") ));
+ calibrationB->setIcon(QIcon::fromTheme("run-build", QIcon(":/icons/breeze/default/run-build.png") ));
addToQueueB->setToolTip(i18n("Add job to sequence queue"));
removeFromQueueB->setToolTip(i18n("Remove job from sequence queue"));
@@ -266,7 +266,7 @@ void Capture::pause()
appendLogText(i18n("Sequence shall be paused after current exposure is complete."));
pauseB->setEnabled(false);
- startB->setIcon(QIcon::fromTheme("media-playback-start"));
+ startB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png") ));
startB->setToolTip(i18n("Resume Sequence"));
}
@@ -274,7 +274,7 @@ void Capture::toggleSequence()
{
if (state == CAPTURE_PAUSED)
{
- startB->setIcon(QIcon::fromTheme("media-playback-stop"));
+ startB->setIcon(QIcon::fromTheme("media-playback-stop", QIcon(":/icons/breeze/default/media-playback-stop.png") ));
startB->setToolTip(i18n("Stop Sequence"));
pauseB->setEnabled(true);
@@ -373,7 +373,7 @@ void Capture::start()
state = CAPTURE_PROGRESS;
emit newStatus(Ekos::CAPTURE_PROGRESS);
- startB->setIcon(QIcon::fromTheme("media-playback-stop"));
+ startB->setIcon(QIcon::fromTheme("media-playback-stop", QIcon(":/icons/breeze/default/media-playback-stop.png") ));
startB->setToolTip(i18n("Stop Sequence"));
pauseB->setEnabled(true);
@@ -442,7 +442,7 @@ void Capture::stop(bool abort)
if (abort)
{
- startB->setIcon(QIcon::fromTheme("media-playback-start"));
+ startB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png") ));
startB->setToolTip(i18n("Start Sequence"));
pauseB->setEnabled(false);
}
@@ -2584,7 +2584,7 @@ void Capture::editJob(QModelIndex i)
appendLogText(i18n("Editing job #%1...", i.row()+1));
- addToQueueB->setIcon(QIcon::fromTheme("dialog-ok-apply"));
+ addToQueueB->setIcon(QIcon::fromTheme("dialog-ok-apply", QIcon(":/icons/breeze/default/dialog-ok-apply.png") ));
addToQueueB->setToolTip(i18n("Apply job changes."));
removeFromQueueB->setToolTip(i18n("Cancel job changes."));
@@ -2598,7 +2598,7 @@ void Capture::resetJobEdit()
appendLogText(i18n("Editing job canceled."));
jobUnderEdit = false;
- addToQueueB->setIcon(QIcon::fromTheme("list-add"));
+ addToQueueB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png") ));
addToQueueB->setToolTip(i18n("Add job to sequence queue"));
removeFromQueueB->setToolTip(i18n("Remove job from sequence queue"));
diff --git a/kstars/ekos/ekosmanager.cpp b/kstars/ekos/ekosmanager.cpp
index c2baf86..7559b10 100644
--- a/kstars/ekos/ekosmanager.cpp
+++ b/kstars/ekos/ekosmanager.cpp
@@ -123,9 +123,9 @@ EkosManager::EkosManager(QWidget *parent) : QDialog(parent)
connect(profileCombo, SIGNAL(activated(QString)), this, SLOT(saveDefaultProfile(QString)));
// Set Profile icons
- addProfileB->setIcon(QIcon::fromTheme("list-add"));
- editProfileB->setIcon(QIcon::fromTheme("edit-entry"));
- deleteProfileB->setIcon(QIcon::fromTheme("list-remove"));
+ addProfileB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
+ editProfileB->setIcon(QIcon::fromTheme("document-edit", QIcon(":/icons/indi.png")));
+ deleteProfileB->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png")));
// Load all drivers
loadDrivers();
diff --git a/kstars/ekos/mount/mount.cpp b/kstars/ekos/mount/mount.cpp
index 9949817..725b642 100644
--- a/kstars/ekos/mount/mount.cpp
+++ b/kstars/ekos/mount/mount.cpp
@@ -42,43 +42,21 @@ Mount::Mount()
currentTelescope = NULL;
- stopB->setIcon(QIcon::fromTheme("process-stop"));
- northB->setIcon(QIcon::fromTheme("go-up"));
- westB->setIcon(QIcon::fromTheme("go-previous"));
- eastB->setIcon(QIcon::fromTheme("go-next"));
- southB->setIcon(QIcon::fromTheme("go-down"));
+ stopB->setIcon(QIcon::fromTheme("process-stop", QIcon(":/icons/breeze/default/process-stop.png")));
+ northB->setIcon(QIcon::fromTheme("go-up", QIcon(":/icons/breeze/default/go-up.png")));
+ westB->setIcon(QIcon::fromTheme("go-previous", QIcon(":/icons/breeze/default/go-previous.png")));
+ eastB->setIcon(QIcon::fromTheme("go-next", QIcon(":/icons/breeze/default/go-next.png")));
+ southB->setIcon(QIcon::fromTheme("go-down", QIcon(":/icons/breeze/default/go-down.png")));
abortDispatch = -1;
minAltLimit->setValue(Options::minimumAltLimit());
maxAltLimit->setValue(Options::maximumAltLimit());
-
- QFile tempFile;
-
- if (KSUtils::openDataFile( tempFile, "go-nw.png" ) )
- {
- northwestB->setIcon(QIcon(tempFile.fileName()));
- tempFile.close();
- }
-
- if (KSUtils::openDataFile( tempFile, "go-ne.png" ) )
- {
- northeastB->setIcon(QIcon(tempFile.fileName()));
- tempFile.close();
- }
-
- if (KSUtils::openDataFile( tempFile, "go-sw.png" ) )
- {
- southwestB->setIcon(QIcon(tempFile.fileName()));
- tempFile.close();
- }
-
- if (KSUtils::openDataFile( tempFile, "go-se.png" ) )
- {
- southeastB->setIcon(QIcon(tempFile.fileName()));
- tempFile.close();
- }
+ northwestB->setIcon(QIcon(":/icons/go-nw.png"));
+ northeastB->setIcon(QIcon(":/icons/go-nw.png"));
+ southwestB->setIcon(QIcon(":/icons/go-sw.png"));
+ southeastB->setIcon(QIcon(":/icons/go-se.png"));
connect(northB, SIGNAL(pressed()), this, SLOT(move()));
connect(northB, SIGNAL(released()), this, SLOT(stop()));
diff --git a/kstars/ekos/opsekos.cpp b/kstars/ekos/opsekos.cpp
index 276ac47..001f672 100644
--- a/kstars/ekos/opsekos.cpp
+++ b/kstars/ekos/opsekos.cpp
@@ -52,30 +52,3 @@ void OpsEkos::slotApply()
}
}
-void OpsEkos::slotCancel()
-{
-}
-
-/*
-void OpsEkos::slotCheckAlignModule()
-{
- EkosManager *ekosManager = KStars::Instance()->ekosManager();
-
- if (ekosManager)
- {
- Ekos::Guide *guideModule = ekosManager->guideModule();
-
- if (guideModule == NULL)
- return;
-
- if (guideModule->isCalibrating() || guideModule->isGuiding())
- {
- kcfg_UseEkosGuider->disconnect();
- kcfg_UseEkosGuider->setChecked(!kcfg_UseEkosGuider->isChecked());
- connect( kcfg_UseEkosGuider, SIGNAL(toggled(bool)), this, SLOT(slotCheckGuideModule()));
-
- KMessageBox::error(KStars::Instance(), i18n("Cannot change guider while guiding process is busy."));
- }
- }
-}
-*/
diff --git a/kstars/ekos/opsekos.h b/kstars/ekos/opsekos.h
index 5a14513..9764414 100644
--- a/kstars/ekos/opsekos.h
+++ b/kstars/ekos/opsekos.h
@@ -33,8 +33,6 @@ public:
private slots:
void slotApply();
- void slotCancel();
- //void slotCheckAlignModule();
private:
KConfigDialog *m_ConfigDialog;
diff --git a/kstars/ekos/scheduler/mosaic.cpp b/kstars/ekos/scheduler/mosaic.cpp
index 362b41f..ef4514d 100644
--- a/kstars/ekos/scheduler/mosaic.cpp
+++ b/kstars/ekos/scheduler/mosaic.cpp
@@ -220,7 +220,7 @@ Mosaic::Mosaic(Scheduler *scheduler)
scene.addItem(mosaicTile);
mosaicView->setScene(&scene);
- selectJobsDirB->setIcon(QIcon::fromTheme("document-open-folder"));
+ selectJobsDirB->setIcon(QIcon::fromTheme("document-open-folder", QIcon(":/icons/breeze/default/document-open-folder.png")));
//mosaicView->setResizeAnchor(QGraphicsView::AnchorViewCenter);
diff --git a/kstars/ekos/scheduler/scheduler.cpp b/kstars/ekos/scheduler/scheduler.cpp
index 163bf1c..60eca6e 100644
--- a/kstars/ekos/scheduler/scheduler.cpp
+++ b/kstars/ekos/scheduler/scheduler.cpp
@@ -32,6 +32,7 @@
#include "ksalmanac.h"
#include "ksutils.h"
#include "mosaic.h"
+#include "skyobjects/starobject.h"
#define BAD_SCORE -1000
#define MAX_FAILURE_ATTEMPTS 3
@@ -128,7 +129,7 @@ Scheduler::Scheduler()
moon = dynamic_cast<KSMoon*> (KStarsData::Instance()->skyComposite()->findByName("Moon"));
- sleepLabel->setPixmap(QIcon::fromTheme("chronometer").pixmap(QSize(32,32)));
+ sleepLabel->setPixmap(QIcon::fromTheme("chronometer", QIcon(":/icons/breeze/default/chronometer.png")).pixmap(QSize(32,32)));
sleepLabel->hide();
schedulerTimer.setInterval(UPDATE_PERIOD_MS);
@@ -145,26 +146,26 @@ Scheduler::Scheduler()
raBox->setDegType(false); //RA box should be HMS-style
- addToQueueB->setIcon(QIcon::fromTheme("list-add"));
+ addToQueueB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
addToQueueB->setToolTip(i18n("Add observation job to list."));
- removeFromQueueB->setIcon(QIcon::fromTheme("list-remove"));
+ removeFromQueueB->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png")));
removeFromQueueB->setToolTip(i18n("Remove observation job from list."));
- evaluateOnlyB->setIcon(QIcon::fromTheme("tools-wizard"));
- mosaicB->setIcon(QIcon::fromTheme("zoom-draw"));
+ evaluateOnlyB->setIcon(QIcon::fromTheme("tools-wizard", QIcon(":/icons/breeze/default/tools-wizard.png")));
+ mosaicB->setIcon(QIcon::fromTheme("zoom-draw", QIcon(":/icons/breeze/default/zoom-draw.png")));
- queueSaveAsB->setIcon(QIcon::fromTheme("document-save-as"));
- queueSaveB->setIcon(QIcon::fromTheme("document-save"));
- queueLoadB->setIcon(QIcon::fromTheme("document-open"));
+ queueSaveAsB->setIcon(QIcon::fromTheme("document-save-as", QIcon(":/icons/breeze/default/document-save-as.png")));
+ queueSaveB->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/breeze/default/document-save.png")));
+ queueLoadB->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")));
- loadSequenceB->setIcon(QIcon::fromTheme("document-open"));
- selectStartupScriptB->setIcon(QIcon::fromTheme("document-open"));
- selectShutdownScriptB->setIcon(QIcon::fromTheme("document-open"));
- selectFITSB->setIcon(QIcon::fromTheme("document-open"));
+ loadSequenceB->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")));
+ selectStartupScriptB->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")));
+ selectShutdownScriptB->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")));
+ selectFITSB->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")));
- startupB->setIcon(QIcon::fromTheme("media-playback-start"));
- shutdownB->setIcon(QIcon::fromTheme("media-playback-start"));
+ startupB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
+ shutdownB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
connect(startupB, SIGNAL(clicked()), this, SLOT(runStartupProcedure()));
connect(shutdownB, SIGNAL(clicked()), this, SLOT(runShutdownProcedure()));
@@ -182,8 +183,8 @@ Scheduler::Scheduler()
connect(queueTable, SIGNAL(clicked(QModelIndex)), this, SLOT(loadJob(QModelIndex)));
connect(queueTable, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(resetJobState(QModelIndex)));
- startB->setIcon(QIcon::fromTheme("media-playback-start"));
- pauseB->setIcon(QIcon::fromTheme("media-playback-pause"));
+ startB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
+ pauseB->setIcon(QIcon::fromTheme("media-playback-pause", QIcon(":/icons/breeze/default/media-playback-pause.png")));
connect(startB,SIGNAL(clicked()),this,SLOT(toggleScheduler()));
connect(pauseB,SIGNAL(clicked()),this,SLOT(pause()));
@@ -731,7 +732,7 @@ void Scheduler::loadJob(QModelIndex i)
appendLogText(i18n("Editing job #%1...", i.row()+1));
- addToQueueB->setIcon(QIcon::fromTheme("edit-undo"));
+ addToQueueB->setIcon(QIcon::fromTheme("edit-undo", QIcon(":/icons/breeze/default/edit-undo.png")));
addToQueueB->setStyleSheet("background-color:orange;}");
addToQueueB->setEnabled(true);
startB->setEnabled(false);
@@ -754,7 +755,7 @@ void Scheduler::resetJobEdit()
watchJobChanges(false);
- addToQueueB->setIcon(QIcon::fromTheme("list-add"));
+ addToQueueB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
addToQueueB->setStyleSheet(QString());
addToQueueB->setToolTip(i18n("Add observation job to list."));
queueTable->clearSelection();
@@ -917,7 +918,7 @@ void Scheduler::stop()
sleepLabel->hide();
pi->stopAnimation();
- startB->setIcon(QIcon::fromTheme("media-playback-start"));
+ startB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
startB->setToolTip(i18n("Start Scheduler"));
pauseB->setEnabled(false);
//startB->setText("Start Scheduler");
@@ -938,7 +939,7 @@ void Scheduler::start()
state = SCHEDULER_RUNNIG;
appendLogText(i18n("Scheduler resumed."));
- startB->setIcon(QIcon::fromTheme("media-playback-stop"));
+ startB->setIcon(QIcon::fromTheme("media-playback-stop", QIcon(":/icons/breeze/default/media-playback-stop.png")));
startB->setToolTip(i18n("Stop Scheduler"));
return;
}
@@ -965,7 +966,7 @@ void Scheduler::start()
sleepLabel->hide();
//startB->setText("Stop Scheduler");
- startB->setIcon(QIcon::fromTheme("media-playback-stop"));
+ startB->setIcon(QIcon::fromTheme("media-playback-stop", QIcon(":/icons/breeze/default/media-playback-stop.png")));
startB->setToolTip(i18n("Stop Scheduler"));
pauseB->setEnabled(true);
@@ -1005,7 +1006,7 @@ void Scheduler::pause()
appendLogText(i18n("Scheduler paused."));
pauseB->setEnabled(false);
- startB->setIcon(QIcon::fromTheme("media-playback-start"));
+ startB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
startB->setToolTip(i18n("Resume Scheduler"));
}
@@ -1462,7 +1463,7 @@ double Scheduler::findAltitude(const SkyPoint & target, const QDateTime when)
KStarsDateTime myUT = ut.addSecs(when.time().msecsSinceStartOfDay()/1000);
- dms LST = KStarsData::Instance()->geo()->GSTtoLST( myUT.gst() );
+ CachingDms LST = KStarsData::Instance()->geo()->GSTtoLST( myUT.gst() );
p.EquatorialToHorizontal( &LST, KStarsData::Instance()->geo()->lat() );
return p.alt().Degrees();
@@ -1490,7 +1491,7 @@ bool Scheduler::calculateAltitudeTime(SchedulerJob *job, double minAltitude, dou
if (rawFrac < Dawn || rawFrac > Dusk)
{
- dms LST = geo->GSTtoLST( myUT.gst() );
+ CachingDms LST = geo->GSTtoLST( myUT.gst() );
target.EquatorialToHorizontal( &LST, geo->lat() );
altitude = target.alt().Degrees();
@@ -1614,19 +1615,19 @@ void Scheduler::checkWeather()
qDebug() << "Scheduler: " << statusString;
if (weatherStatus == IPS_OK)
- weatherLabel->setPixmap(QIcon::fromTheme("security-high").pixmap(QSize(32,32)));
+ weatherLabel->setPixmap(QIcon::fromTheme("security-high", QIcon(":/icons/breeze/default/security-high.png")).pixmap(QSize(32,32)));
else if (weatherStatus == IPS_BUSY)
{
- weatherLabel->setPixmap(QIcon::fromTheme("security-medium").pixmap(QSize(32,32)));
+ weatherLabel->setPixmap(QIcon::fromTheme("security-medium", QIcon(":/icons/breeze/default/security-medium.png")).pixmap(QSize(32,32)));
KNotification::event( QLatin1String( "WeatherWarning" ) , i18n("Weather conditions in warning zone"));
}
else if (weatherStatus == IPS_ALERT)
{
- weatherLabel->setPixmap(QIcon::fromTheme("security-low").pixmap(QSize(32,32)));
+ weatherLabel->setPixmap(QIcon::fromTheme("security-low", QIcon(":/icons/breeze/default/security-low.png")).pixmap(QSize(32,32)));
KNotification::event( QLatin1String( "WeatherAlert" ) , i18n("Weather conditions are critical. Observatory shutdown is imminent"));
}
else
- weatherLabel->setPixmap(QIcon::fromTheme("chronometer").pixmap(QSize(32,32)));
+ weatherLabel->setPixmap(QIcon::fromTheme("chronometer", QIcon(":/icons/breeze/default/chronometer.png")).pixmap(QSize(32,32)));
weatherLabel->show();
weatherLabel->setToolTip(statusString);
@@ -1761,7 +1762,7 @@ double Scheduler::getCurrentMoonSeparation(SchedulerJob *job)
QDateTime midnight( KStarsData::Instance()->lt().date(), QTime() );
KStarsDateTime ut = geo->LTtoUT( midnight );
KStarsDateTime myUT = ut.addSecs(KStarsData::Instance()->lt().time().msecsSinceStartOfDay()/1000);
- dms LST = geo->GSTtoLST( myUT.gst() );
+ CachingDms LST = geo->GSTtoLST( myUT.gst() );
p.EquatorialToHorizontal( &LST, geo->lat() );
// Update moon
@@ -1783,7 +1784,7 @@ int16_t Scheduler::getMoonSeparationScore(SchedulerJob *job, QDateTime when)
QDateTime midnight( when.date(), QTime() );
KStarsDateTime ut = geo->LTtoUT( midnight );
KStarsDateTime myUT = ut.addSecs(when.time().msecsSinceStartOfDay()/1000);
- dms LST = geo->GSTtoLST( myUT.gst() );
+ CachingDms LST = geo->GSTtoLST( myUT.gst() );
p.EquatorialToHorizontal( &LST, geo->lat() );
double currentAlt = p.alt().Degrees();
@@ -4500,7 +4501,7 @@ void Scheduler::checkStartupProcedure()
else if (startupState == STARTUP_ERROR)
appendLogText(i18n("Manual startup procedure terminated due to errors."));
- startupB->setIcon(QIcon::fromTheme("media-playback-start"));
+ startupB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
}
}
@@ -4511,7 +4512,7 @@ void Scheduler::runStartupProcedure()
if (KMessageBox::questionYesNo(NULL, i18n("Are you sure you want to execute the startup procedure manually?")) == KMessageBox::Yes)
{
appendLogText(i18n("Warning! Executing startup procedure manually..."));
- startupB->setIcon(QIcon::fromTheme("media-playback-stop"));
+ startupB->setIcon(QIcon::fromTheme("media-playback-stop", QIcon(":/icons/breeze/default/media-playback-stop.png")));
startupState = STARTUP_IDLE;
checkStartupState();
QTimer::singleShot(1000, this, SLOT(checkStartupProcedure()));
@@ -4576,7 +4577,7 @@ void Scheduler::checkShutdownProcedure()
appendLogText(i18n("Manual shutdown procedure terminated due to errors."));
shutdownState = SHUTDOWN_IDLE;
- shutdownB->setIcon(QIcon::fromTheme("media-playback-start"));
+ shutdownB->setIcon(QIcon::fromTheme("media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png")));
}
}
@@ -4588,7 +4589,7 @@ void Scheduler::runShutdownProcedure()
if (KMessageBox::questionYesNo(NULL, i18n("Are you sure you want to execute the shutdown procedure manually?")) == KMessageBox::Yes)
{
appendLogText(i18n("Warning! Executing shutdown procedure manually..."));
- shutdownB->setIcon(QIcon::fromTheme("media-playback-stop"));
+ shutdownB->setIcon(QIcon::fromTheme("media-playback-stop", QIcon(":/icons/breeze/default/media-playback-stop.png")));
shutdownState = SHUTDOWN_IDLE;
checkShutdownState();
QTimer::singleShot(1000, this, SLOT(checkShutdownProcedure()));
diff --git a/kstars/fitsviewer/fitsviewer.cpp b/kstars/fitsviewer/fitsviewer.cpp
index 5a5d7a9..222fb1a 100644
--- a/kstars/fitsviewer/fitsviewer.cpp
+++ b/kstars/fitsviewer/fitsviewer.cpp
@@ -77,7 +77,7 @@ FITSViewer::FITSViewer (QWidget *parent)
fitsTab->setTabsClosable(true);
- setWindowIcon(QIcon::fromTheme("kstars_fitsviewer"));
+ setWindowIcon(QIcon::fromTheme("kstars_fitsviewer", QIcon(":/icons/fitsviewer.png")));
setCentralWidget(fitsTab);
@@ -104,48 +104,45 @@ FITSViewer::FITSViewer (QWidget *parent)
action = actionCollection()->addAction("rotate_right", this, SLOT(rotateCW()));
action->setText(i18n("Rotate Right"));
- action->setIcon(QIcon::fromTheme("object-rotate-right"));
+ action->setIcon(QIcon::fromTheme("object-rotate-right", QIcon(":/icons/breeze/default/object-rotate-right.png")));
action = actionCollection()->addAction("rotate_left", this, SLOT(rotateCCW()));
action->setText(i18n("Rotate Left"));
- action->setIcon(QIcon::fromTheme("object-rotate-left"));
+ action->setIcon(QIcon::fromTheme("object-rotate-left", QIcon(":/icons/breeze/default/object-rotate-left.png")));
action = actionCollection()->addAction("flip_horizontal", this, SLOT(flipHorizontal()));
action->setText(i18n("Flip Horizontal"));
- action->setIcon(QIcon::fromTheme("object-flip-horizontal"));
+ action->setIcon(QIcon::fromTheme("object-flip-horizontal", QIcon(":/icons/breeze/default/object-flip-horizontal.png")));
action = actionCollection()->addAction("flip_vertical", this, SLOT(flipVertical()));
action->setText(i18n("Flip Vertical"));
- action->setIcon(QIcon::fromTheme("object-flip-vertical"));
-
- QFile tempFile;
+ action->setIcon(QIcon::fromTheme("object-flip-vertical", QIcon(":/icons/breeze/default/object-flip-vertical.png")));
action = actionCollection()->addAction("image_histogram");
action->setText(i18n("Histogram"));
connect(action, SIGNAL(triggered(bool)), SLOT (histoFITS()));
actionCollection()->setDefaultShortcut(action, QKeySequence::Replace);
- if (KSUtils::openDataFile( tempFile, "histogram.png" ) )
- {
- action->setIcon(QIcon(tempFile.fileName()));
- tempFile.close();
- }
- else
- action->setIcon(QIcon::fromTheme("tools-wizard"));
+ action->setIcon(QIcon(":/icons/histogram.png"));
- KStandardAction::open(this, SLOT(openFile()), actionCollection());
+ action = KStandardAction::open(this, SLOT(openFile()), actionCollection());
+ action->setIcon(QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")));
+
saveFileAction = KStandardAction::save(this, SLOT(saveFile()), actionCollection());
- saveFileAsAction = KStandardAction::saveAs(this, SLOT(saveFileAs()), actionCollection());
+ saveFileAction->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/breeze/default/document-save.png")));
+
+ action=saveFileAsAction = KStandardAction::saveAs(this, SLOT(saveFileAs()), actionCollection());
+ saveFileAsAction->setIcon(QIcon::fromTheme("document-save_as", QIcon(":/icons/breeze/default/document-save-as.png")));
action = actionCollection()->addAction("fits_header");
actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::CTRL+Qt::Key_H));
- action->setIcon(QIcon::fromTheme("document-properties"));
+ action->setIcon(QIcon::fromTheme("document-properties", QIcon(":/icons/breeze/default/document-properties.png")));
action->setText(i18n( "FITS Header"));
connect(action, SIGNAL(triggered(bool) ), SLOT(headerFITS()));
action = actionCollection()->addAction("fits_debayer");
actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::CTRL+Qt::Key_D));
- action->setIcon(QIcon::fromTheme("view-preview"));
+ action->setIcon(QIcon::fromTheme("view-preview", QIcon(":/icons/breeze/default/view-preview.png")));
action->setText(i18n( "Debayer..."));
connect(action, SIGNAL(triggered(bool) ), SLOT(debayerFITS()));
@@ -153,24 +150,34 @@ FITSViewer::FITSViewer (QWidget *parent)
action->setText(i18n("Auto stretch"));
connect(action, SIGNAL(triggered(bool)), SLOT (stretchFITS()));
actionCollection()->setDefaultShortcut(action, QKeySequence::SelectAll);
- action->setIcon(QIcon::fromTheme("transform-move"));
-
- KStandardAction::close(this, SLOT(close()), actionCollection());
-
- KStandardAction::copy(this, SLOT(copyFITS()), actionCollection());
-
- KStandardAction::zoomIn(this, SLOT(ZoomIn()), actionCollection());
- KStandardAction::zoomOut(this, SLOT(ZoomOut()), actionCollection());
- KStandardAction::actualSize(this, SLOT(ZoomDefault()), actionCollection());
+ action->setIcon(QIcon::fromTheme("transform-move", QIcon(":/icons/breeze/default/transform-move.png")));
+
+ action = KStandardAction::close(this, SLOT(close()), actionCollection());
+ action->setIcon(QIcon::fromTheme("window-close", QIcon(":/icons/breeze/default/window-close.png")));
+
+ action = KStandardAction::copy(this, SLOT(copyFITS()), actionCollection());
+ action->setIcon(QIcon::fromTheme("edit-copy", QIcon(":/icons/breeze/default/edit-copy.png")));
+
+ action=KStandardAction::zoomIn(this, SLOT(ZoomIn()), actionCollection());
+ action->setIcon(QIcon::fromTheme("zoom-in", QIcon(":/icons/breeze/default/zoom-in.png")));
+
+ action=KStandardAction::zoomOut(this, SLOT(ZoomOut()), actionCollection());
+ action->setIcon(QIcon::fromTheme("zoom-out", QIcon(":/icons/breeze/default/zoom-out.png")));
+
+ action=KStandardAction::actualSize(this, SLOT(ZoomDefault()), actionCollection());
+ action->setIcon(QIcon::fromTheme("zoom-fit-best", QIcon(":/icons/breeze/default/zoom-fit-best.svg")));
QAction *kundo = KStandardAction::undo(undoGroup, SLOT(undo()), actionCollection());
+ kundo->setIcon(QIcon::fromTheme("edit-undo", QIcon(":/icons/breeze/default/edit-undo.png")));
+
QAction *kredo = KStandardAction::redo(undoGroup, SLOT(redo()), actionCollection());
+ kredo->setIcon(QIcon::fromTheme("edit-redo", QIcon(":/icons/breeze/default/edit-redo.png")));
connect(undoGroup, SIGNAL(canUndoChanged(bool)), kundo, SLOT(setEnabled(bool)));
connect(undoGroup, SIGNAL(canRedoChanged(bool)), kredo, SLOT(setEnabled(bool)));
action = actionCollection()->addAction("image_stats");
- action->setIcon(QIcon::fromTheme("view-statistics"));
+ action->setIcon(QIcon::fromTheme("view-statistics", QIcon(":/icons/breeze/default/view-statistics.png")));
action->setText(i18n( "Statistics"));
connect(action, SIGNAL(triggered(bool)), SLOT(statFITS()));
diff --git a/kstars/indi/drivermanager.cpp b/kstars/indi/drivermanager.cpp
index 4d55653..70ac9eb 100644
--- a/kstars/indi/drivermanager.cpp
+++ b/kstars/indi/drivermanager.cpp
@@ -60,13 +60,13 @@ DriverManagerUI::DriverManagerUI(QWidget *parent) : QFrame(parent)
clientTreeWidget->setSortingEnabled(false);
- runningPix = QIcon::fromTheme( "system-run" );
- stopPix = QIcon::fromTheme( "dialog-cancel" );
- localMode = QIcon::fromTheme( "computer" );
- serverMode = QIcon::fromTheme( "network-server" );
+ runningPix = QIcon::fromTheme( "system-run" , QIcon(":/icons/breeze/default/system-run.png"));
+ stopPix = QIcon::fromTheme( "dialog-cancel" , QIcon(":/icons/breeze/default/dialog-cancel.png"));
+ localMode = QIcon::fromTheme( "computer" , QIcon(":/icons/breeze/default/computer.png"));
+ serverMode = QIcon::fromTheme( "network-server" , QIcon(":/icons/breeze/default/network-server.png"));
- connected = QIcon::fromTheme( "network-connect" );
- disconnected = QIcon::fromTheme( "network-disconnect" );
+ connected = QIcon::fromTheme( "network-connect" , QIcon(":/icons/breeze/default/network-connect.png"));
+ disconnected = QIcon::fromTheme( "network-disconnect" , QIcon(":/icons/breeze/default/network-disconnect.png"));
connect(localTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(makePortEditable(QTreeWidgetItem*,int)));
}
diff --git a/kstars/indi/guimanager.cpp b/kstars/indi/guimanager.cpp
index ca80b1f..cdee8c9 100644
--- a/kstars/indi/guimanager.cpp
+++ b/kstars/indi/guimanager.cpp
@@ -64,7 +64,7 @@ GUIManager::GUIManager(QWidget *parent) : QWidget(parent, Qt::Window)
mainLayout->addWidget(mainTabWidget);
- setWindowIcon(QIcon::fromTheme("kstars_indi"));
+ setWindowIcon(QIcon::fromTheme("kstars_indi", QIcon(":/icons/indi.png")));
setWindowTitle(i18n("INDI Control Panel"));
setAttribute(Qt::WA_ShowModal, false);
diff --git a/kstars/indi/indiproperty.cpp b/kstars/indi/indiproperty.cpp
index 03ce9b6..3fc5494 100644
--- a/kstars/indi/indiproperty.cpp
+++ b/kstars/indi/indiproperty.cpp
@@ -341,7 +341,7 @@ void INDI_P::buildBLOBGUI()
PHBox->addItem(horSpacer);
enableBLOBC = new QCheckBox();
- enableBLOBC->setIcon(QIcon::fromTheme("modem"));
+ enableBLOBC->setIcon(QIcon::fromTheme("modem", QIcon(":/icons/breeze/default/modem.png")));
enableBLOBC->setChecked(true);
enableBLOBC->setToolTip(i18n("Enable binary data transfer from this property to KStars and vice-versa."));
diff --git a/kstars/indi/indistd.cpp b/kstars/indi/indistd.cpp
index 031f38f..5e5bf3d 100644
--- a/kstars/indi/indistd.cpp
+++ b/kstars/indi/indistd.cpp
@@ -135,8 +135,8 @@ void GenericDevice::registerProperty(INDI::Property *prop)
if (connected && nvp->np[0].value > 0)
{
- // Reset timer 15 seconds before it is due
- watchDogTimer->start(nvp->np[0].value*60*1000 - 15*1000);
+ // Send immediately a heart beat
+ watchDogTimer->start(0);
}
}
}
@@ -167,8 +167,8 @@ void GenericDevice::processSwitch(ISwitchVectorProperty * svp)
INumberVectorProperty *nvp = baseDevice->getNumber("WATCHDOG_HEARTBEAT");
if (nvp && nvp->np[0].value > 0)
{
- // Reset timer 15 seconds before it is due
- watchDogTimer->start(nvp->np[0].value*60*1000 - 15*1000);
+ // Send immediately
+ watchDogTimer->start(0);
}
}
}
@@ -648,11 +648,8 @@ void GenericDevice::resetWatchdog()
INumberVectorProperty *nvp = baseDevice->getNumber("WATCHDOG_HEARTBEAT");
if (nvp)
- {
- // Reset timer 15 seconds before it is due
- watchDogTimer->start(nvp->np[0].value*60*1000 - 15*1000);
- clientManager->sendNewNumber(nvp);
- }
+ // Send heartbeat to driver
+ clientManager->sendNewNumber(nvp);
}
DeviceDecorator::DeviceDecorator(GDInterface *iPtr)
diff --git a/kstars/indi/opsindi.cpp b/kstars/indi/opsindi.cpp
index 48272f8..f75b667 100644
--- a/kstars/indi/opsindi.cpp
+++ b/kstars/indi/opsindi.cpp
@@ -39,8 +39,8 @@ OpsINDI::OpsINDI()
else
kcfg_fitsDir->setText ( Options::fitsDir());
- selectFITSDirB->setIcon( QIcon::fromTheme( "document-open-folder" ) );
- selectDriversDirB->setIcon( QIcon::fromTheme( "document-open-folder" ) );
+ selectFITSDirB->setIcon( QIcon::fromTheme( "document-open-folder", QIcon(":/icons/breeze/default/document-open-folder.png")) );
+ selectDriversDirB->setIcon( QIcon::fromTheme( "document-open-folder", QIcon(":/icons/breeze/default/document-open-folder.png")) );
connect(selectFITSDirB, SIGNAL(clicked()), this, SLOT(saveFITSDirectory()));
connect(selectDriversDirB, SIGNAL(clicked()), this, SLOT(saveDriversDirectory()));
diff --git a/kstars/indi/streamwg.cpp b/kstars/indi/streamwg.cpp
index 5cbc2f2..202219a 100644
--- a/kstars/indi/streamwg.cpp
+++ b/kstars/indi/streamwg.cpp
@@ -49,9 +49,9 @@ StreamWG::StreamWG(QWidget * parent) : QWidget(parent)
streamFrame = new VideoWG(videoFrame);
- playPix = QIcon::fromTheme( "media-playback-start" );
- pausePix = QIcon::fromTheme( "media-playback-pause" );
- capturePix = QIcon::fromTheme( "media-record" );
+ playPix = QIcon::fromTheme( "media-playback-start", QIcon(":/icons/breeze/default/media-playback-start.png"));
+ pausePix = QIcon::fromTheme( "media-playback-pause", QIcon(":/icons/breeze/default/media-playback-pause.png"));
+ capturePix = QIcon::fromTheme( "media-record", QIcon(":/icons/breeze/default/media-record.png"));
foreach (const QByteArray &format, QImageWriter::supportedImageFormats())
imgFormatCombo->addItem(QString(format));
diff --git a/kstars/ksalmanac.cpp b/kstars/ksalmanac.cpp
index 614fd54..bd76cc3 100644
--- a/kstars/ksalmanac.cpp
+++ b/kstars/ksalmanac.cpp
@@ -73,7 +73,7 @@ void KSAlmanac::RiseSetTime( SkyObject *o, double *riseTime, double *setTime, QT
// them back.
KSNumbers num( dt.djd() );
- dms LST = geo->GSTtoLST( dt.gst() );
+ CachingDms LST = geo->GSTtoLST( dt.gst() );
o->updateCoords( &num, true, geo->lat(), &LST, true );
if ( o->checkCircumpolar( geo->lat() ) ) {
if ( o->alt().Degrees() > 0.0 ) {
@@ -96,7 +96,7 @@ void KSAlmanac::findDawnDusk() {
KStarsDateTime today = dt;
KSNumbers num( today.djd() );
- dms LST = geo->GSTtoLST( today.gst() );
+ CachingDms LST = geo->GSTtoLST( today.gst() );
m_Sun.updateCoords( &num, true, geo->lat(), &LST, true ); // We can abuse our own copy of the sun
double dawn, da, dusk, du, max_alt, min_alt;
@@ -140,7 +140,7 @@ void KSAlmanac::findDawnDusk() {
void KSAlmanac::findMoonPhase() {
const KStarsDateTime today = dt;
KSNumbers num( today.djd() );
- dms LST = geo->GSTtoLST( today.gst() );
+ CachingDms LST = geo->GSTtoLST( today.gst() );
m_Sun.updateCoords( &num, true, geo->lat(), &LST, true ); // We can abuse our own copy of the sun and/or moon
m_Moon.updateCoords( &num, true, geo->lat(), &LST, true );
diff --git a/kstars/ksnumbers.cpp b/kstars/ksnumbers.cpp
index dff36c4..5193472 100644
--- a/kstars/ksnumbers.cpp
+++ b/kstars/ksnumbers.cpp
@@ -157,13 +157,14 @@ const int KSNumbers::amp[NUTTERMS][4] = {
KSNumbers::KSNumbers( long double jd ){
K.setD( 20.49552 / 3600. ); //set the constant of aberration
P.setD( 102.94719 ); // ecliptic longitude of earth's perihelion, source: http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html; FIXME: We should correct this, as it changes with time. See the commit log for an order of magnitude estimate of the error.
+ // FIXME: FIXME above seems to have been addressed? What is deltaEcLong? -- asimha
computeConstantValues();
updateValues( jd );
}
void KSNumbers::computeConstantValues() {
- // Compute those nubmers that need to be computed only
+ // Compute those numbers that need to be computed only
// once.
//
// Ideally, these should be computed at compile-time. When we
@@ -182,27 +183,27 @@ void KSNumbers::computeConstantValues() {
//P1B is used to precess from 1984 to B1950:
- P1B[0][0] = CXB*CYB*CZB - SXB*SZB;
- P1B[1][0] = CXB*CYB*SZB + SXB*CZB;
- P1B[2][0] = CXB*SYB;
- P1B[0][1] = -1.0*SXB*CYB*CZB - CXB*SZB;
- P1B[1][1] = -1.0*SXB*CYB*SZB + CXB*CZB;
- P1B[2][1] = -1.0*SXB*SYB;
- P1B[0][2] = -1.0*SYB*CZB;
- P1B[1][2] = -1.0*SYB*SZB;
- P1B[2][2] = CYB;
+ P1B(0, 0) = CXB*CYB*CZB - SXB*SZB;
+ P1B(1, 0) = CXB*CYB*SZB + SXB*CZB;
+ P1B(2, 0) = CXB*SYB;
+ P1B(0, 1) = -1.0*SXB*CYB*CZB - CXB*SZB;
+ P1B(1, 1) = -1.0*SXB*CYB*SZB + CXB*CZB;
+ P1B(2, 1) = -1.0*SXB*SYB;
+ P1B(0, 2) = -1.0*SYB*CZB;
+ P1B(1, 2) = -1.0*SYB*SZB;
+ P1B(2, 2) = CYB;
//P2 is used to precess from B1950 to 1984 (it is the transpose of P1)
// FIXME: This can be optimized by taking the transpose of P1 instead of recomputing it from scratch
- P2B[0][0] = CXB*CYB*CZB - SXB*SZB;
- P2B[1][0] = -1.0*SXB*CYB*CZB - CXB*SZB;
- P2B[2][0] = -1.0*SYB*CZB;
- P2B[0][1] = CXB*CYB*SZB + SXB*CZB;
- P2B[1][1] = -1.0*SXB*CYB*SZB + CXB*CZB;
- P2B[2][1] = -1.0*SYB*SZB;
- P2B[0][2] = CXB*SYB;
- P2B[1][2] = -1.0*SXB*SYB;
- P2B[2][2] = CYB;
+ P2B(0, 0) = CXB*CYB*CZB - SXB*SZB;
+ P2B(1, 0) = -1.0*SXB*CYB*CZB - CXB*SZB;
+ P2B(2, 0) = -1.0*SYB*CZB;
+ P2B(0, 1) = CXB*CYB*SZB + SXB*CZB;
+ P2B(1, 1) = -1.0*SXB*CYB*SZB + CXB*CZB;
+ P2B(2, 1) = -1.0*SYB*SZB;
+ P2B(0, 2) = CXB*SYB;
+ P2B(1, 2) = -1.0*SXB*SYB;
+ P2B(2, 2) = CYB;
}
KSNumbers::~KSNumbers(){
@@ -214,6 +215,8 @@ void KSNumbers::updateValues( long double jd ) {
days = jd;
+ // FIXME: What is the source for these algorithms / polynomials / numbers? -- asimha
+
//Julian Centuries since J2000.0
T = ( jd - J2000 ) / 36525.;
@@ -310,29 +313,30 @@ void KSNumbers::updateValues( long double jd ) {
ZP.SinCos( SZ, CZ );
//P1 is used to precess from any epoch to J2000
- // FIXME: Is this a rotation matrix? If so, quaternions might be more efficient
- // A: Yes, it has to be, because the inverse is the transpose, so the matrix is orthogonal 3x3
- P1[0][0] = CX*CY*CZ - SX*SZ;
- P1[1][0] = CX*CY*SZ + SX*CZ;
- P1[2][0] = CX*SY;
- P1[0][1] = -1.0*SX*CY*CZ - CX*SZ;
- P1[1][1] = -1.0*SX*CY*SZ + CX*CZ;
- P1[2][1] = -1.0*SX*SY;
- P1[0][2] = -1.0*SY*CZ;
- P1[1][2] = -1.0*SY*SZ;
- P1[2][2] = CY;
+ // Note: P1 is a rotation matrix, and P2 is its transpose = inverse (also a rotation matrix)
+ P1(0, 0) = CX*CY*CZ - SX*SZ;
+ P1(1, 0) = CX*CY*SZ + SX*CZ;
+ P1(2, 0) = CX*SY;
+ P1(0, 1) = -1.0*SX*CY*CZ - CX*SZ;
+ P1(1, 1) = -1.0*SX*CY*SZ + CX*CZ;
+ P1(2, 1) = -1.0*SX*SY;
+ P1(0, 2) = -1.0*SY*CZ;
+ P1(1, 2) = -1.0*SY*SZ;
+ P1(2, 2) = CY;
//P2 is used to precess from J2000 to any other epoch (it is the transpose of P1)
- // FIXME: More optimization -- just use P1[j][i] instead of P2[i][j] in code
- P2[0][0] = P1[0][0];
- P2[1][0] = P1[0][1];
- P2[2][0] = P1[0][2];
- P2[0][1] = P1[1][0];
- P2[1][1] = P1[1][1];
- P2[2][1] = P1[1][2];
- P2[0][2] = P1[2][0];
- P2[1][2] = P1[2][1];
- P2[2][2] = P1[2][2];
+ // FIXME: More optimization -- just use P1(j, i) instead of P2(i, j) in code
+ P2(0, 0) = P1(0, 0);
+ P2(1, 0) = P1(0, 1);
+ P2(2, 0) = P1(0, 2);
+ P2(0, 1) = P1(1, 0);
+ P2(1, 1) = P1(1, 1);
+ P2(2, 1) = P1(1, 2);
+ P2(0, 2) = P1(2, 0);
+ P2(1, 2) = P1(2, 1);
+ P2(2, 2) = P1(2, 2);
+
+
// Mean longitudes for the planets. radians
//
diff --git a/kstars/ksnumbers.h b/kstars/ksnumbers.h
index b988d89..5d3c74a 100644
--- a/kstars/ksnumbers.h
+++ b/kstars/ksnumbers.h
@@ -22,7 +22,9 @@
#define NUTTERMS 63
-#include "dms.h"
+#include "cachingdms.h"
+
+#include <Eigen/Dense>
/** @class KSNumbers
*
@@ -55,57 +57,63 @@ public:
/** @return the current Obliquity (the angle of inclination between
*the celestial equator and the ecliptic)
*/
- const dms* obliquity() const { return &Obliquity; }
+ inline const CachingDms* obliquity() const { return &Obliquity; }
/** @return the constant of aberration (20.49 arcsec). */
- dms constAberr() const { return K; }
+ inline dms constAberr() const { return K; }
/** @return the mean solar anomaly. */
- dms sunMeanAnomaly() const { return M; }
+ inline dms sunMeanAnomaly() const { return M; }
/** @return the mean solar longitude. */
- dms sunMeanLongitude() const { return L; }
+ inline dms sunMeanLongitude() const { return L; }
/** @return the true solar anomaly. */
- dms sunTrueAnomaly() const { return M0; }
+ inline dms sunTrueAnomaly() const { return M0; }
/** @return the true solar longitude. */
- dms sunTrueLongitude() const { return L0; }
+ inline CachingDms sunTrueLongitude() const { return L0; }
/** @return the longitude of the Earth's perihelion point. */
- dms earthPerihelionLongitude() const { return P; }
+ inline CachingDms earthPerihelionLongitude() const { return P; }
/** @return eccentricity of Earth's orbit.*/
- double earthEccentricity() const { return e; }
+ inline double earthEccentricity() const { return e; }
/** @return the change in obliquity due to the nutation of
* Earth's orbit. Value is in degrees */
- double dObliq() const { return deltaObliquity; }
+ inline double dObliq() const { return deltaObliquity; }
/** @return the change in Ecliptic Longitude due to nutation.
* Value is in degrees. */
- double dEcLong() const { return deltaEcLong; }
+ inline double dEcLong() const { return deltaEcLong; }
/** @return Julian centuries since J2000*/
- double julianCenturies() const { return T; }
+ inline double julianCenturies() const { return T; }
/** @return Julian Day*/
- long double julianDay() const { return days; }
+ inline long double julianDay() const { return days; }
/** @return Julian Millenia since J2000*/
- double julianMillenia() const { return jm; }
+ inline double julianMillenia() const { return jm; }
+
+ /** @return element of P1 precession array at position (i1, i2) */
+ inline double p1( int i1, int i2 ) const { return P1(i1, i2); }
- /** @return element of P1 precession array at position [i1][i2] */
- double p1( int i1, int i2 ) const { return P1[i1][i2]; }
+ /** @return element of P2 precession array at position (i1, i2) */
+ inline double p2( int i1, int i2 ) const { return P2(i1, i2); }
- /** @return element of P2 precession array at position [i1][i2] */
- double p2( int i1, int i2 ) const { return P2[i1][i2]; }
+ /** @return element of P1B precession array at position (i1, i2) */
+ inline double p1b( int i1, int i2 ) const { return P1B(i1, i2); }
- /** @return element of P1B precession array at position [i1][i2] */
- double p1b( int i1, int i2 ) const { return P1B[i1][i2]; }
+ /** @return element of P2B precession array at position (i1, i2) */
+ inline double p2b( int i1, int i2 ) const { return P2B(i1, i2); }
- /** @return element of P2B precession array at position [i1][i2] */
- double p2b( int i1, int i2 ) const { return P2B[i1][i2]; }
+ /** @return the precession matrix directly **/
+ inline const Eigen::Matrix3d &p2() const { return P1; }
+ inline const Eigen::Matrix3d &p1() const { return P2; }
+ inline const Eigen::Matrix3d &p1b() const { return P1B; }
+ inline const Eigen::Matrix3d &p2b() const { return P2B; }
/**
*@short compute constant values that need to be computed only once per instance of the application
@@ -122,14 +130,15 @@ public:
*/
inline long double getJD() const { return days; }
- double vEarth(int i) const {return vearth[i];}
+ inline double vEarth(int i) const {return vearth[i];}
private:
- dms Obliquity, K, L, L0, LM, M, M0, O, P, D, MM, F;
+ CachingDms Obliquity, L0, P;
+ dms K, L, LM, M, M0, O, D, MM, F;
dms XP, YP, ZP, XB, YB, ZB;
double CX, SX, CY, SY, CZ, SZ;
double CXB, SXB, CYB, SYB, CZB, SZB;
- double P1[3][3], P2[3][3], P1B[3][3], P2B[3][3];
+ Eigen::Matrix3d P1, P2, P1B, P2B;
double deltaObliquity, deltaEcLong;
double e, T;
long double days; // JD for which the last update was called
diff --git a/kstars/kstars.cpp b/kstars/kstars.cpp
index 63ce484..6e8ce58 100644
--- a/kstars/kstars.cpp
+++ b/kstars/kstars.cpp
@@ -42,6 +42,10 @@
#include "observinglist.h"
//#include "whatsinteresting/wiview.h"
+// For profiling only
+#include "auxiliary/dms.h"
+#include "skyobjects/skypoint.h"
+
#include "kstarsadaptor.h"
#include <config-kstars.h>
@@ -173,6 +177,17 @@ KStars::~KStars()
QSqlDatabase::removeDatabase("userdb");
QSqlDatabase::removeDatabase("skydb");
+
+#ifdef PROFILE_COORDINATE_CONVERSION
+ qDebug() << "Spent " << SkyPoint::cpuTime_EqToHz << " seconds in " << SkyPoint::eqToHzCalls << " calls to SkyPoint::EquatorialToHorizontal, for an average of " << 1000.*( SkyPoint::cpuTime_EqToHz / SkyPoint::eqToHzCalls ) << " ms per call";
+#endif
+
+#ifdef COUNT_DMS_SINCOS_CALLS
+ qDebug() << "Constructed " << dms::dms_constructor_calls << " dms objects, of which " << dms::dms_with_sincos_called << " had trigonometric functions called on them = " << ( float( dms::dms_with_sincos_called ) / float( dms::dms_constructor_calls ) ) * 100. << "%";
+ qDebug() << "Of the " << dms::trig_function_calls << " calls to sin/cos/sincos on dms objects, " << dms::redundant_trig_function_calls << " were redundant = " << ( ( float( dms::redundant_trig_function_calls ) / float( dms::trig_function_calls ) ) * 100. ) << "%";
+ qDebug() << "We had " << CachingDms::cachingdms_bad_uses << " bad uses of CachingDms in all, compared to " << CachingDms::cachingdms_constructor_calls << " constructed CachingDms objects = " << ( float( CachingDms::cachingdms_bad_uses ) / float( CachingDms::cachingdms_constructor_calls ) ) * 100. << "% bad uses";
+#endif
+
}
void KStars::clearCachedFindDialog() {
@@ -191,11 +206,11 @@ void KStars::clearCachedFindDialog() {
void KStars::applyConfig( bool doApplyFocus ) {
if ( Options::isTracking() ) {
actionCollection()->action("track_object")->setText( i18n( "Stop &Tracking" ) );
- actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-encrypt") );
+ actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-encrypt", QIcon(":/icons/breeze/default/document-encrypt.png")) );
}
actionCollection()->action("coordsys")->setText(
- Options::useAltAz() ? i18n("Switch to star globe view (Equatorial &Coordinates)"): i18n("Switch to horizonal view (Horizontal &Coordinates)") );
+ Options::useAltAz() ? i18n("Switch to star globe view (Equatorial &Coordinates)"): i18n("Switch to horizonal view (Horizontal &Coordinates)") );
actionCollection()->action("show_time_box" )->setChecked( Options::showTimeBox() );
actionCollection()->action("show_location_box" )->setChecked( Options::showGeoBox() );
diff --git a/kstars/kstarsactions.cpp b/kstars/kstarsactions.cpp
index 5378f00..291b95f 100644
--- a/kstars/kstarsactions.cpp
+++ b/kstars/kstarsactions.cpp
@@ -653,20 +653,35 @@ void KStars::slotViewOps() {
opcolors = new OpsColors();
opadvanced = new OpsAdvanced();
- dialog->addPage(opcatalog, i18n("Catalogs"), "kstars_catalog");
- dialog->addPage(opsolsys, i18n("Solar System"), "kstars_solarsystem");
- dialog->addPage(opssatellites, i18n("Satellites"), "kstars_satellites");
- dialog->addPage(opssupernovae, i18n("Supernovae"), "kstars_supernovae");
- dialog->addPage(opguides, i18n("Guides"), "kstars_guides");
- dialog->addPage(opcolors, i18n("Colors"), "kstars_colors");
+ KPageWidgetItem *page;
+
+ page = dialog->addPage(opcatalog, i18n("Catalogs"), "kstars_catalog");
+ page->setIcon(QIcon::fromTheme("kstars_catalog", QIcon(":/icons/catalog.png")));
+
+ page = dialog->addPage(opsolsys, i18n("Solar System"), "kstars_solarsystem");
+ page->setIcon(QIcon::fromTheme("kstars_solarsystem", QIcon(":/icons/solarsystem.png")));
+
+ page = dialog->addPage(opssatellites, i18n("Satellites"), "kstars_satellites");
+ page->setIcon(QIcon::fromTheme("kstars_satellites", QIcon(":/icons/satellites.png")));
+
+ page = dialog->addPage(opssupernovae, i18n("Supernovae"), "kstars_supernovae");
+ page->setIcon(QIcon::fromTheme("kstars_supernovae", QIcon(":/icons/supernovae.png")));
+
+ page = dialog->addPage(opguides, i18n("Guides"), "kstars_guides");
+ page->setIcon(QIcon::fromTheme("kstars_guides", QIcon(":/icons/guides.png")));
+
+ page = dialog->addPage(opcolors, i18n("Colors"), "kstars_colors");
+ page->setIcon(QIcon::fromTheme("kstars_colors", QIcon(":/icons/colors.png")));
#ifdef HAVE_INDI
opsindi = new OpsINDI();
- dialog->addPage(opsindi, i18n("INDI"), "kstars_indi");
+ page= dialog->addPage(opsindi, i18n("INDI"), "kstars_indi");
+ page->setIcon(QIcon::fromTheme("kstars_indi", QIcon(":/icons/indi.png")));
#ifdef HAVE_CFITSIO
opsekos = new OpsEkos();
KPageWidgetItem *ekosOption = dialog->addPage(opsekos, i18n("Ekos"), "kstars_ekos");
+ ekosOption->setIcon(QIcon::fromTheme("kstars_ekos", QIcon(":/icons/ekos.png")));
if (m_EkosManager)
m_EkosManager->setOptionsWidget(ekosOption);
#endif
@@ -675,10 +690,12 @@ void KStars::slotViewOps() {
#ifdef HAVE_XPLANET
opsxplanet = new OpsXplanet( this );
- dialog->addPage(opsxplanet, i18n("Xplanet"), "kstars_xplanet");
+ page = dialog->addPage(opsxplanet, i18n("Xplanet"), "kstars_xplanet");
+ page->setIcon(QIcon::fromTheme("kstars_xplanet", QIcon(":/icons/xplanet.png")));
#endif
- dialog->addPage(opadvanced, i18n("Advanced"), "kstars_advanced");
+ page=dialog->addPage(opadvanced, i18n("Advanced"), "kstars_advanced");
+ page->setIcon(QIcon::fromTheme("kstars_advanced", QIcon(":/icons/advanced.png")));
dialog->show();
}
@@ -1086,7 +1103,7 @@ void KStars::slotTrack() {
if ( Options::isTracking() ) {
Options::setIsTracking( false );
actionCollection()->action("track_object")->setText( i18n( "Engage &Tracking" ) );
- actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-decrypt") );
+ actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-decrypt", QIcon(":/icons/breeze/default/document-encrypt.png")) );
KSPlanetBase* planet = dynamic_cast<KSPlanetBase*>( map()->focusObject() );
if( planet && data()->temporaryTrail ) {
@@ -1104,7 +1121,7 @@ void KStars::slotTrack() {
map()->setFocusPoint( map()->clickedPoint() );
Options::setIsTracking( true );
actionCollection()->action("track_object")->setText( i18n( "Stop &Tracking" ) );
- actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-encrypt") );
+ actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-encrypt", QIcon(":/icons/breeze/default/document-encrypt.png")) );
}
map()->forceUpdate();
diff --git a/kstars/kstarsdata.h b/kstars/kstarsdata.h
index b3b0f12..6d36e62 100644
--- a/kstars/kstarsdata.h
+++ b/kstars/kstarsdata.h
@@ -168,7 +168,7 @@ public:
Q_INVOKABLE SimClock *clock() { return &Clock; }
/** @return pointer to the local sidereal time: a dms object */
- dms *lst() { return &LST; }
+ CachingDms *lst() { return &LST; }
/** @return pointer to the GeoLocation object*/
GeoLocation *geo() { return &m_Geo; }
@@ -370,7 +370,7 @@ private:
//KLocale *locale;
- dms LST;
+ CachingDms LST;
QKeySequence resumeKey;
diff --git a/kstars/kstarsdbus.cpp b/kstars/kstarsdbus.cpp
index a3de595..62f5f3c 100644
--- a/kstars/kstarsdbus.cpp
+++ b/kstars/kstarsdbus.cpp
@@ -38,6 +38,8 @@
#include "ksdssdownloader.h"
#include "skymap.h"
#include "skyobjects/skyobject.h"
+#include "skyobjects/starobject.h"
+#include "skyobjects/deepskyobject.h"
#include "skyobjects/ksplanetbase.h"
#include "skycomponents/skymapcomposite.h"
#include "simclock.h"
@@ -230,7 +232,7 @@ bool KStars::setGeoLocation( const QString &city, const QString &province, const
if ( province.isEmpty() )
qDebug() << QString("Error [D-Bus setGeoLocation]: city %1, %2 not found in database.").arg(city).arg(country);
else
- qDebug() << QString("Error [D-Bus setGeoLocation]: city %1, %2, %3 not found in database.").arg(city).arg(province).arg(country);
+ qDebug() << QString("Error [D-Bus setGeoLocation]: city %1, %2, %3 not found in database.").arg(city).arg(province).arg(country);
}
return cityFound;
diff --git a/kstars/kstarsinit.cpp b/kstars/kstarsinit.cpp
index 3357c4a..cdbcf0b 100644
--- a/kstars/kstarsinit.cpp
+++ b/kstars/kstarsinit.cpp
@@ -133,49 +133,63 @@ namespace {
void KStars::initActions() {
//KIconLoader::global()->addAppDir( "kstars" );
+
+ //This will check if there is an icon for a very common action to see if a theme is loaded.
+ //If one is not detected, it tries to set the theme to the one specified here.
+ static const char * GENERIC_ICON_TO_CHECK = "document-open";
+ static const char * ICON_THEME = "breeze";
+ if (!QIcon::hasThemeIcon(GENERIC_ICON_TO_CHECK)) {
+ QIcon::setThemeName(ICON_THEME);
+ }
+
+
QAction *ka;
// ==== File menu ================
ka = KNS3::standardAction(i18n("Download New Data..."), this, SLOT(slotDownload()), actionCollection(), "get_data")
<< QKeySequence( Qt::CTRL+Qt::Key_N );
+ ka ->setIcon(QIcon::fromTheme("favorites" , QIcon(":/icons/breeze/default/favorites.png")));
ka->setWhatsThis(i18n("Downloads new data"));
ka->setToolTip(ka->whatsThis());
ka->setStatusTip(ka->whatsThis());
+
#ifdef HAVE_CFITSIO
actionCollection()->addAction("open_file", this, SLOT(slotOpenFITS()) )
<< i18n("Open FITS...")
- << QIcon::fromTheme("document-open")
+ << QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png"))
<< QKeySequence( Qt::CTRL+Qt::Key_O );
#endif
actionCollection()->addAction("export_image", this, SLOT( slotExportImage() ) )
<< i18n("&Save Sky Image...")
- << QIcon::fromTheme("document-export-image")
+ << QIcon::fromTheme("document-export-image", QIcon(":/icons/breeze/default/document-export.png"))
<< QKeySequence( Qt::CTRL+Qt::Key_I );
actionCollection()->addAction("run_script", this, SLOT( slotRunScript() ))
<< i18n("&Run Script...")
- << QIcon::fromTheme("system-run" )
+ << QIcon::fromTheme("system-run", QIcon(":/icons/breeze/default/system-run.png"))
<< QKeySequence( Qt::CTRL+Qt::Key_R );
actionCollection()->addAction("printing_wizard", this, SLOT(slotPrintingWizard() ) )
<< i18nc("start Printing Wizard", "Printing &Wizard");
- actionCollection()->addAction( KStandardAction::Print, "print", this, SLOT( slotPrint() ) );
+ ka = actionCollection()->addAction( KStandardAction::Print, "print", this, SLOT( slotPrint() ) );
+ ka->setIcon( QIcon::fromTheme("document-print", QIcon(":/icons/breeze/default/document-print.png")));
//actionCollection()->addAction( KStandardAction::Quit, "quit", this, SLOT(close) );
- actionCollection()->addAction( KStandardAction::Quit, "quit", qApp, SLOT(closeAllWindows()));
+ ka = actionCollection()->addAction( KStandardAction::Quit, "quit", qApp, SLOT(closeAllWindows()));
+ ka->setIcon( QIcon::fromTheme("application-exit", QIcon(":/icons/breeze/default/application-exit.png")));
// ==== Time Menu ================
actionCollection()->addAction("time_to_now", this, SLOT( slotSetTimeToNow() ))
<< i18n("Set Time to &Now")
<< QKeySequence( Qt::CTRL+Qt::Key_E )
- << QIcon::fromTheme("clock");
+ << QIcon::fromTheme("clock", QIcon(":/icons/breeze/default/clock.png"));
actionCollection()->addAction("time_dialog", this, SLOT( slotSetTime() ) )
<< i18nc("set Clock to New Time", "&Set Time..." )
<< QKeySequence( Qt::CTRL+Qt::Key_S )
- << QIcon::fromTheme("view-history");
+ << QIcon::fromTheme("view-history", QIcon(":/icons/breeze/default/view-history.png"));
ka = actionCollection()->add<KToggleAction>("clock_startstop")
<< i18n("Stop &Clock" )
- << QIcon::fromTheme("media-playback-pause" );
+ << QIcon::fromTheme("media-playback-pause" , QIcon(":/icons/breeze/default/media-playback-pause.png"));
if ( ! StartClockRunning )
ka->toggle();
QObject::connect( ka, SIGNAL( triggered() ), this, SLOT( slotToggleTimer() ) );
@@ -184,11 +198,11 @@ void KStars::initActions() {
QObject::connect(data()->clock(), SIGNAL(clockToggled(bool)), this, SLOT(updateTime()) );
actionCollection()->addAction("time_step_forward", this, SLOT( slotStepForward() ) )
<< i18n("Advance one step forward in time")
- << QIcon::fromTheme("media-skip-forward" )
+ << QIcon::fromTheme("media-skip-forward" , QIcon(":/icons/breeze/default/media-skip-forward.png"))
<< QKeySequence( Qt::Key_Greater, Qt::Key_Period );
actionCollection()->addAction("time_step_backward", this, SLOT( slotStepBackward() ) )
<< i18n("Advance one step backward in time")
- << QIcon::fromTheme("media-skip-backward" )
+ << QIcon::fromTheme("media-skip-backward" , QIcon(":/icons/breeze/default/media-skip-backward.png"))
<< QKeySequence( Qt::Key_Less, Qt::Key_Comma );
// ==== Pointing Menu ================
@@ -210,29 +224,36 @@ void KStars::initActions() {
actionCollection()->addAction("find_object", this, SLOT( slotFind() ) )
<< i18n("&Find Object...")
- << QIcon::fromTheme("edit-find")
+ << QIcon::fromTheme("edit-find", QIcon(":/icons/breeze/default/edit-find.png") )
<< QKeySequence( Qt::CTRL+Qt::Key_F );
actionCollection()->addAction("track_object", this, SLOT( slotTrack() ) )
<< i18n("Engage &Tracking")
- << QIcon::fromTheme("object-locked" )
+ << QIcon::fromTheme("object-locked", QIcon(":/icons/breeze/default/object-locked.png"))
<< QKeySequence( Qt::CTRL+Qt::Key_T );
actionCollection()->addAction("manual_focus", this, SLOT( slotManualFocus() ) )
<< i18n("Set Coordinates &Manually..." )
<< QKeySequence( Qt::CTRL+Qt::Key_M );
+ QAction *action;
+
// ==== View Menu ================
- actionCollection()->addAction( KStandardAction::ZoomIn, "zoom_in", map(), SLOT( slotZoomIn() ) );
- actionCollection()->addAction( KStandardAction::ZoomOut, "zoom_out", map(), SLOT( slotZoomOut() ) );
+ action = actionCollection()->addAction( KStandardAction::ZoomIn, "zoom_in", map(), SLOT( slotZoomIn() ) );
+ action->setIcon(QIcon::fromTheme("zoom-in", QIcon(":/icons/breeze/default/zoom-in.png")));
+
+ action = actionCollection()->addAction( KStandardAction::ZoomOut, "zoom_out", map(), SLOT( slotZoomOut() ) );
+ action->setIcon(QIcon::fromTheme("zoom-out", QIcon(":/icons/breeze/default/zoom-out.png")));
+
actionCollection()->addAction("zoom_default", map(), SLOT( slotZoomDefault() ) )
<< i18n("&Default Zoom")
- << QIcon::fromTheme("zoom-fit-best" )
+ << QIcon::fromTheme("zoom-fit-best", QIcon(":/icons/breeze/default/zoom-fit-best.svg"))
<< QKeySequence( Qt::CTRL+Qt::Key_Z );
actionCollection()->addAction("zoom_set", this, SLOT( slotSetZoom() ) )
<< i18n("&Zoom to Angular Size..." )
- << QIcon::fromTheme("zoom-original" )
+ << QIcon::fromTheme("zoom-original", QIcon(":/icons/breeze/default/zoom-original.png"))
<< QKeySequence( Qt::CTRL+Qt::SHIFT+Qt::Key_Z );
- actionCollection()->addAction( KStandardAction::FullScreen, this, SLOT( slotFullScreen() ) );
+ action = actionCollection()->addAction( KStandardAction::FullScreen, this, SLOT( slotFullScreen() ) );
+ action->setIcon( QIcon::fromTheme("view-fullscreen", QIcon(":/icons/breeze/default/view-fullscreen.png")));
actionCollection()->addAction("coordsys", this, SLOT( slotCoordSys() ) )
<< (Options::useAltAz() ? i18n("Switch to star globe view (Equatorial &Coordinates)"): i18n("Switch to horizonal view (Horizontal &Coordinates)"))
@@ -340,18 +361,21 @@ void KStars::initActions() {
fovActionMenu = actionCollection()->add<KActionMenu>("fovsymbols" );
fovActionMenu->setText( i18n("&FOV Symbols" ) );
fovActionMenu->setDelayed(false);
- fovActionMenu->setIcon(QIcon::fromTheme("crosshairs"));
+ fovActionMenu->setIcon(QIcon::fromTheme("crosshairs", QIcon(":/icons/breeze/default/crosshairs.png")));
FOVManager::readFOVs();
repopulateFOV();
actionCollection()->addAction("geolocation", this, SLOT( slotGeoLocator() ) )
<< i18nc("Location on Earth", "&Geographic..." )
- << QIcon::fromTheme("applications-internet" )
+ << QIcon::fromTheme("kstars_planets" , QIcon(":/icons/breeze/default/applications-internet.png"))
<< QKeySequence( Qt::CTRL+Qt::Key_G );
- actionCollection()->addAction( KStandardAction::Preferences, "configure", this, SLOT( slotViewOps() ) );
+ ka = actionCollection()->addAction( KStandardAction::Preferences, "configure", this, SLOT( slotViewOps() ) );
+ //I am not sure what icon preferences is supposed to be.
+ //ka->setIcon( QIcon::fromTheme("", QIcon(":/icons/breeze/default/.png")));
+
actionCollection()->addAction("startwizard", this, SLOT( slotWizard() ) )
<< i18n("Startup Wizard..." )
- << QIcon::fromTheme("tools-wizard" );
+ << QIcon::fromTheme("tools-wizard", QIcon(":/icons/breeze/default/tools-wizard.png"));
// Manual data entry
actionCollection()->addAction( "manual_add_dso", this, SLOT( slotAddDeepSkyObject() ) )
@@ -370,7 +394,7 @@ void KStars::initActions() {
//Tools Menu:
actionCollection()->addAction("astrocalculator", this, SLOT( slotCalculator() ) )
<< i18n("Calculator")
- << QIcon::fromTheme("accessories-calculator" )
+ << QIcon::fromTheme("accessories-calculator", QIcon(":/icons/breeze/default/accessories-calculator.png"))
<< QKeySequence( Qt::CTRL+Qt::Key_C );
/* FIXME Enable once port to KF5 is complete for moonphasetool
@@ -446,11 +470,11 @@ void KStars::initActions() {
#ifndef Q_OS_WIN
actionCollection()->addAction("telescope_wizard", this, SLOT( slotTelescopeWizard() ) )
<< i18n("Telescope Wizard...")
- << QIcon::fromTheme("tools-wizard" );
+ << QIcon::fromTheme("tools-wizard", QIcon(":/icons/breeze/default/tools-wizard.png"));
#endif
actionCollection()->addAction("device_manager", this, SLOT( slotINDIDriver() ) )
<< i18n("Device Manager...")
- << QIcon::fromTheme("network-server" )
+ << QIcon::fromTheme("network-server", QIcon(":/icons/breeze/default/network-server.png"))
<< QKeySequence(Qt::CTRL+Qt::Key_D);
ka = actionCollection()->addAction("indi_cpl", this, SLOT( slotINDIPanel() ) )
<< i18n("INDI Control Panel...");
@@ -462,9 +486,9 @@ void KStars::initActions() {
#endif
//Help Menu:
- actionCollection()->addAction( KStandardAction::TipofDay, "help_tipofday", this, SLOT( slotTipOfDay() ) )
- ->setWhatsThis(i18n("Displays the Tip of the Day"));
-
+ ka = actionCollection()->addAction( KStandardAction::TipofDay, "help_tipofday", this, SLOT( slotTipOfDay() ) );
+ ka->setWhatsThis(i18n("Displays the Tip of the Day"));
+ ka->setIcon( QIcon::fromTheme("help-hint", QIcon(":/icons/breeze/default/help-hint.png")));
// KStandardAction::help(this, SLOT( appHelpActivated() ), actionCollection(), "help_contents" );
//Add timestep widget for toolbar
diff --git a/kstars/main.cpp b/kstars/main.cpp
index 08b32b3..5a3c236 100644
--- a/kstars/main.cpp
+++ b/kstars/main.cpp
@@ -57,7 +57,9 @@ static const char notice[] =
int main(int argc, char *argv[])
{
+#ifdef KSTARS_LITE
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+#endif
QApplication app(argc, argv);
app.setApplicationVersion(KSTARS_VERSION);
/**
@@ -259,8 +261,6 @@ int main(int argc, char *argv[])
}
QObject::connect(qApp, SIGNAL(lastWindowClosed()), qApp, SLOT(quit()));
#else
- //KStarsLite::createInstance( true, ! parser.isSet( "paused" ), datestring );
- //TODO decide whether KStars Lite should have command line parser
KStarsLite::createInstance( true );
#endif
return app.exec();
diff --git a/kstars/oal/execute.cpp b/kstars/oal/execute.cpp
index 73a0c08..752628d 100644
--- a/kstars/oal/execute.cpp
+++ b/kstars/oal/execute.cpp
@@ -31,6 +31,7 @@
#include "oal/lens.h"
#include "oal/filter.h"
#include "skyobjects/skyobject.h"
+#include "skyobjects/starobject.h"
#include "dialogs/locationdialog.h"
#include "dialogs/finddialog.h"
#include "skycomponents/skymapcomposite.h"
diff --git a/kstars/oal/log.cpp b/kstars/oal/log.cpp
index e4e5b8f..b1c1e2c 100644
--- a/kstars/oal/log.cpp
+++ b/kstars/oal/log.cpp
@@ -20,6 +20,7 @@
#include "kstars.h"
#include "kstarsdata.h"
#include "skyobjects/skyobject.h"
+#include "skyobjects/starobject.h"
#include "skymap.h"
#include "skycomponents/constellationboundarylines.h"
#include "skycomponents/skymapcomposite.h"
@@ -226,7 +227,7 @@ void OAL::Log::writeSite( OAL::Site *s ) {
}
void OAL::Log::writeSession( OAL::Session *s ) {
writer->writeStartElement( "session" );
- writer->writeAttribute( "id", s->id() );
+ writer->writeAttribute( "id", s->id() );
writer->writeStartElement( "begin" );
writer->writeCharacters( s->begin().date().toString( "yyyy-MM-dd" ) + 'T' + s->begin().time().toString( "hh:mm:ss" ) );
writer->writeEndElement();
@@ -249,7 +250,7 @@ void OAL::Log::writeSession( OAL::Session *s ) {
}
void OAL::Log::writeScope( OAL::Scope *s ) {
writer->writeStartElement( "scope" );
- writer->writeAttribute( "id", s->id() );
+ writer->writeAttribute( "id", s->id() );
writer->writeStartElement( "model" );
writer->writeCDATA( s->model() );
writer->writeEndElement();
@@ -277,7 +278,7 @@ void OAL::Log::writeScope( OAL::Scope *s ) {
}
void OAL::Log::writeEyepiece( OAL::Eyepiece *ep ) {
writer->writeStartElement( "eyepiece" );
- writer->writeAttribute( "id", ep->id() );
+ writer->writeAttribute( "id", ep->id() );
writer->writeStartElement( "model" );
writer->writeCDATA( ep->model() );
writer->writeEndElement();
@@ -400,7 +401,7 @@ void OAL::Log::readBegin( QString input ) {
void OAL::Log::readUnknownElement() {
while( ! reader->atEnd() ) {
reader->readNext();
-
+
if( reader->isEndElement() )
break;
diff --git a/kstars/oal/observeradd.cpp b/kstars/oal/observeradd.cpp
index 33bfe20..77ca08b 100644
--- a/kstars/oal/observeradd.cpp
+++ b/kstars/oal/observeradd.cpp
@@ -41,8 +41,8 @@ ObserverAdd::ObserverAdd() {
mainLayout->addWidget(buttonBox);
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
- ui.AddObserverB->setIcon(QIcon::fromTheme("list-add"));
- ui.RemoveObserverB->setIcon(QIcon::fromTheme("list-remove"));
+ ui.AddObserverB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
+ ui.RemoveObserverB->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png")));
nextObserver = 0;
diff --git a/kstars/projections/lambertprojector.h b/kstars/projections/lambertprojector.h
index 27a569f..9725814 100644
--- a/kstars/projections/lambertprojector.h
+++ b/kstars/projections/lambertprojector.h
@@ -21,7 +21,6 @@
#define LAMBERTPROJECTOR_H
#include "projector.h"
-#include "skymap.h"
/**
* @class LambertProjector
diff --git a/kstars/skycomponents/catalogcomponent.cpp b/kstars/skycomponents/catalogcomponent.cpp
index 7fa7bbb..037294a 100644
--- a/kstars/skycomponents/catalogcomponent.cpp
+++ b/kstars/skycomponents/catalogcomponent.cpp
@@ -17,6 +17,8 @@
#include "catalogcomponent.h"
+#include "catalogdata.h"
+
#include <QDebug>
#include <KLocalizedString>
#ifndef KSTARS_LITE
@@ -36,6 +38,7 @@
#include "skypainter.h"
#include "skyobjects/starobject.h"
#include "skyobjects/deepskyobject.h"
+#include "catalogdb.h"
QStringList CatalogComponent::m_Columns
diff --git a/kstars/skycomponents/catalogcomponent.h b/kstars/skycomponents/catalogcomponent.h
index 4531d56..66f7bb0 100644
--- a/kstars/skycomponents/catalogcomponent.h
+++ b/kstars/skycomponents/catalogcomponent.h
@@ -21,7 +21,6 @@
#include "listcomponent.h"
#include "Options.h"
-#include "catalogdb.h"
struct stat;
diff --git a/kstars/skycomponents/deepstarcomponent.cpp b/kstars/skycomponents/deepstarcomponent.cpp
index d1f432d..dfe6449 100644
--- a/kstars/skycomponents/deepstarcomponent.cpp
+++ b/kstars/skycomponents/deepstarcomponent.cpp
@@ -47,7 +47,7 @@ DeepStarComponent::DeepStarComponent( SkyComposite *parent, QString fileName, fl
ListComponent(parent),
m_reindexNum( J2000 ),
triggerMag( trigMag ),
- m_FaintMagnitude(-5.0),
+ m_FaintMagnitude(-5.0),
staticStars( staticstars ),
dataFileName( fileName )
{
@@ -108,7 +108,7 @@ bool DeepStarComponent::loadStaticStars() {
if( !SB )
qDebug() << "ERROR: Could not allocate new StarBlock to hold shallow unnamed stars for trixel " << trixel << endl;
m_starBlockList.at( trixel )->setStaticBlock( SB );
-
+
for(unsigned long j = 0; j < (unsigned long) starReader.getRecordCount(i); ++j) {
bool fread_success = false;
if( starReader.guessRecordSize() == 32 )
@@ -120,7 +120,7 @@ bool DeepStarComponent::loadStaticStars() {
qDebug() << "ERROR: Could not read starData structure for star #" << j << " under trixel #" << trixel << endl;
}
- /* Swap Bytes when required */
+ /* Swap Bytes when required */
if( starReader.getByteSwap() ) {
if( starReader.guessRecordSize() == 32 )
byteSwap( &stardata );
@@ -175,7 +175,7 @@ bool openIndexFile( ) {
return 0;
}
-//This function is empty for a reason; we override the normal
+//This function is empty for a reason; we override the normal
//update function in favor of JiT updates for stars.
void DeepStarComponent::update( KSNumbers * )
{}
@@ -185,6 +185,17 @@ void DeepStarComponent::draw( SkyPainter *skyp ) {
#ifndef KSTARS_LITE
if ( !fileOpened ) return;
+#ifdef PROFILE_SINCOS
+ long trig_calls_here = - dms::trig_function_calls;
+ long trig_redundancy_here = - dms::redundant_trig_function_calls;
+ long cachingdms_bad_uses = -CachingDms::cachingdms_bad_uses;
+ dms::seconds_in_trig = 0.;
+#endif
+
+#ifdef PROFILE_UPDATECOORDS
+ StarObject::updateCoordsCpuTime = 0.;
+ StarObject::starsUpdated = 0;
+#endif
SkyMap *map = SkyMap::Instance();
KStarsData* data = KStarsData::Instance();
UpdateID updateID = data->updateID();
@@ -249,15 +260,15 @@ void DeepStarComponent::draw( SkyPainter *skyp ) {
for( int i = 0; i < m_starBlockList.at( currentRegion )->getBlockCount(); ++i ) {
StarBlock *prevBlock = ( ( i >= 1 ) ? m_starBlockList.at( currentRegion )->block( i - 1 ) : NULL );
StarBlock *block = m_starBlockList.at( currentRegion )->block( i );
-
+
if( i == 0 && !m_StarBlockFactory->markFirst( block ) )
qDebug() << "markFirst failed in trixel" << currentRegion;
if( i > 0 && !m_StarBlockFactory->markNext( prevBlock, block ) )
qDebug() << "markNext failed in trixel" << currentRegion << "while marking block" << i;
- if( i < m_starBlockList.at( currentRegion )->getBlockCount()
+ if( i < m_starBlockList.at( currentRegion )->getBlockCount()
&& m_starBlockList.at( currentRegion )->block( i )->getFaintMag() < maglim )
break;
-
+
}
}
t_updateCache = t.restart();
@@ -274,24 +285,24 @@ void DeepStarComponent::draw( SkyPainter *skyp ) {
// Static stars need not execute fillToMag
if( !staticStars && !m_starBlockList.at( currentRegion )->fillToMag( maglim ) && maglim <= m_FaintMagnitude * ( 1 - 1.5/16 ) ) {
- qDebug() << "SBL::fillToMag( " << maglim << " ) failed for trixel "
+ qDebug() << "SBL::fillToMag( " << maglim << " ) failed for trixel "
<< currentRegion << " !"<< endl;
}
t_dynamicLoad += t.restart();
- // qDebug() << "Drawing SBL for trixel " << currentRegion << ", SBL has "
+ // qDebug() << "Drawing SBL for trixel " << currentRegion << ", SBL has "
// << m_starBlockList[ currentRegion ]->getBlockCount() << " blocks" << endl;
for( int i = 0; i < m_starBlockList.at( currentRegion )->getBlockCount(); ++i ) {
StarBlock *block = m_starBlockList.at( currentRegion )->block( i );
- // qDebug() << "---> Drawing stars from block " << i << " of trixel " <<
+ // qDebug() << "---> Drawing stars from block " << i << " of trixel " <<
// currentRegion << ". SB has " << block->getStarCount() << " stars" << endl;
for( int j = 0; j < block->getStarCount(); j++ ) {
StarObject *curStar = block->star( j );
- // qDebug() << "We claim that he's from trixel " << currentRegion
+ // qDebug() << "We claim that he's from trixel " << currentRegion
//<< ", and indexStar says he's from " << m_skyMesh->indexStar( curStar );
if ( curStar->updateID != updateID )
@@ -308,11 +319,25 @@ void DeepStarComponent::draw( SkyPainter *skyp ) {
}
// DEBUG: Uncomment to identify problems with Star Block Factory / preservation of Magnitude Order in the LRU Cache
- // verifySBLIntegrity();
+ // verifySBLIntegrity();
t_drawUnnamed += t.restart();
}
m_skyMesh->inDraw( false );
+#ifdef PROFILE_SINCOS
+ trig_calls_here += dms::trig_function_calls;
+ trig_redundancy_here += dms::redundant_trig_function_calls;
+ cachingdms_bad_uses += CachingDms::cachingdms_bad_uses;
+ qDebug() << "Spent " << dms::seconds_in_trig << " seconds doing " << trig_calls_here << " trigonometric function calls amounting to an average of " << 1000.0 * dms::seconds_in_trig/double( trig_calls_here ) << " ms per call";
+ qDebug() << "Redundancy of trig calls in this draw: " << double( trig_redundancy_here ) / double( trig_calls_here ) * 100. << "%";
+ qDebug() << "CachedDms constructor calls so far: " << CachingDms::cachingdms_constructor_calls;
+ qDebug() << "Caching has prevented " << CachingDms::cachingdms_delta << " redundant trig function calls";
+ qDebug() << "Bad cache uses in this draw: " << cachingdms_bad_uses;
+#endif
+#ifdef PROFILE_UPDATECOORDS
+ qDebug() << "Spent " << StarObject::updateCoordsCpuTime << " seconds updating " << StarObject::starsUpdated << " stars' coordinates (StarObject::updateCoords) for an average of " << double( StarObject::updateCoordsCpuTime )/double( StarObject::starsUpdated ) * 1.e6 << " us per star.";
+#endif
+
#else
Q_UNUSED(skyp)
#endif
@@ -406,7 +431,7 @@ SkyObject* DeepStarComponent::objectNearest( SkyPoint *p, double &maxrad )
#endif
if( !star ) continue;
if ( star->mag() > m_zoomMagLimit ) continue;
-
+
double r = star->angularDistanceTo( p ).Degrees();
if ( r < maxrad ) {
oBest = star;
@@ -423,7 +448,7 @@ SkyObject* DeepStarComponent::objectNearest( SkyPoint *p, double &maxrad )
// different method and should be called after all other
// candidates (eg: DeepSkyObject::objectNearest()) have been
// called.
-
+
return oBest;
}
@@ -504,13 +529,13 @@ bool DeepStarComponent::verifySBLIntegrity() {
faintMag = block->getBrightMag();
// NOTE: Assumes 2 decimal places in magnitude field. TODO: Change if it ever does change
if( block->getBrightMag() != faintMag && ( block->getBrightMag() - faintMag ) > 0.5) {
- qDebug() << "Trixel " << trixel << ": ERROR: faintMag of prev block = " << faintMag
+ qDebug() << "Trixel " << trixel << ": ERROR: faintMag of prev block = " << faintMag
<< ", brightMag of block #" << i << " = " << block->getBrightMag();
integrity = false;
}
if( i > 1 && ( !block->prev ) )
qDebug() << "Trixel " << trixel << ": ERROR: Block" << i << "is unlinked in LRU Cache";
- if( block->prev && block->prev->parent == m_starBlockList[ trixel ]
+ if( block->prev && block->prev->parent == m_starBlockList[ trixel ]
&& block->prev != m_starBlockList[ trixel ]->block( i - 1 ) ) {
qDebug() << "Trixel " << trixel << ": ERROR: SBF LRU Cache linked list seems to be broken at before block " << i << endl;
integrity = false;
diff --git a/kstars/skycomponents/syncedcatalogcomponent.cpp b/kstars/skycomponents/syncedcatalogcomponent.cpp
index 7d67a5d..1966655 100644
--- a/kstars/skycomponents/syncedcatalogcomponent.cpp
+++ b/kstars/skycomponents/syncedcatalogcomponent.cpp
@@ -18,9 +18,10 @@
/* Project Includes */
#include "syncedcatalogcomponent.h"
-#include "catalogdb.h"
#include "kstarsdata.h"
+#include "deepskyobject.h"
#include "Options.h"
+#include "catalogdata.h"
/* KDE Includes */
diff --git a/kstars/skycomponents/syncedcatalogcomponent.h b/kstars/skycomponents/syncedcatalogcomponent.h
index 9bf4851..d9d1ba7 100644
--- a/kstars/skycomponents/syncedcatalogcomponent.h
+++ b/kstars/skycomponents/syncedcatalogcomponent.h
@@ -21,7 +21,10 @@
#define SYNCEDCATALOGCOMPONENT_H
#include "catalogcomponent.h"
+#include "catalogentrydata.h"
+class DeepSkyObject;
+class SkyComposite;
/**
* @class SyncedCatalogComponent
*
diff --git a/kstars/skymap.cpp b/kstars/skymap.cpp
index dde5fb0..c3692e0 100644
--- a/kstars/skymap.cpp
+++ b/kstars/skymap.cpp
@@ -377,7 +377,7 @@ void SkyMap::slotCenter() {
setFocusObject( ClickedObject );
Options::setIsTracking( true );
if ( kstars ) {
- kstars->actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-encrypt") );
+ kstars->actionCollection()->action("track_object")->setIcon( QIcon::fromTheme("document-encrypt", QIcon(":/icons/breeze/default/document-encrypt.png")) );
kstars->actionCollection()->action("track_object")->setText( i18n( "Stop &Tracking" ) );
}
diff --git a/kstars/skyobjects/ksplanetbase.cpp b/kstars/skyobjects/ksplanetbase.cpp
index 0fc5a4b..c623398 100644
--- a/kstars/skyobjects/ksplanetbase.cpp
+++ b/kstars/skyobjects/ksplanetbase.cpp
@@ -95,15 +95,15 @@ KSPlanetBase* KSPlanetBase::createPlanet( int n ) {
return 0;
}
-void KSPlanetBase::EquatorialToEcliptic( const dms *Obliquity ) {
+void KSPlanetBase::EquatorialToEcliptic( const CachingDms *Obliquity ) {
findEcliptic( Obliquity, ep.longitude, ep.latitude );
}
-void KSPlanetBase::EclipticToEquatorial( const dms *Obliquity ) {
+void KSPlanetBase::EclipticToEquatorial( const CachingDms *Obliquity ) {
setFromEcliptic( Obliquity, ep.longitude, ep.latitude );
}
-void KSPlanetBase::updateCoords( const KSNumbers *num, bool includePlanets, const dms *lat, const dms *LST, bool )
+void KSPlanetBase::updateCoords( const KSNumbers *num, bool includePlanets, const CachingDms *lat, const CachingDms *LST, bool )
{
KStarsData *kd = KStarsData::Instance();
if ( includePlanets ) {
@@ -120,7 +120,7 @@ void KSPlanetBase::updateCoords( const KSNumbers *num, bool includePlanets, cons
}
}
-void KSPlanetBase::findPosition( const KSNumbers *num, const dms *lat, const dms *LST, const KSPlanetBase *Earth ) {
+void KSPlanetBase::findPosition( const KSNumbers *num, const CachingDms *lat, const CachingDms *LST, const KSPlanetBase *Earth ) {
// DEBUG edit
findGeocentricPosition( num, Earth ); //private function, reimplemented in each subclass
findPhase();
@@ -157,7 +157,7 @@ bool KSPlanetBase::isMajorPlanet() const {
return false;
}
-void KSPlanetBase::localizeCoords( const KSNumbers *num, const dms *lat, const dms *LST ) {
+void KSPlanetBase::localizeCoords( const KSNumbers *num, const CachingDms *lat, const CachingDms *LST ) {
//convert geocentric coordinates to local apparent coordinates (topocentric coordinates)
dms HA, HA2; //Hour Angle, before and after correction
double rsinp, rcosp, u, sinHA, cosHA, sinDec, cosDec, D;
@@ -245,7 +245,7 @@ void KSPlanetBase::findPA( const KSNumbers *num ) {
SkyPoint test;
dms newELat( ecLat().Degrees() + 1.0 );
test.setFromEcliptic( num->obliquity(), ecLong(), newELat );
- double dx = ra().Degrees() - test.ra().Degrees();
+ double dx = ra().Degrees() - test.ra().Degrees();
double dy = test.dec().Degrees() - dec().Degrees();
double pa;
if ( dy ) {
diff --git a/kstars/skyobjects/ksplanetbase.h b/kstars/skyobjects/ksplanetbase.h
index 9816707..e405c50 100644
--- a/kstars/skyobjects/ksplanetbase.h
+++ b/kstars/skyobjects/ksplanetbase.h
@@ -111,12 +111,12 @@ public:
/** @short Convert Ecliptic logitude/latitude to Right Ascension/Declination.
* @param Obliquity current Obliquity of the Ecliptic (angle from Equator)
*/
- void EclipticToEquatorial( const dms *Obliquity );
+ void EclipticToEquatorial( const CachingDms *Obliquity );
/** @short Convert Right Ascension/Declination to Ecliptic logitude/latitude.
* @param Obliquity current Obliquity of the Ecliptic (angle from Equator)
*/
- void EquatorialToEcliptic( const dms *Obliquity );
+ void EquatorialToEcliptic( const CachingDms *Obliquity );
/** @return pointer to this planet's texture */
const QImage& image() const { return m_image; }
@@ -148,7 +148,7 @@ public:
* @param lat pointer to the geographic latitude; if NULL, we skip localizeCoords()
* @param LST pointer to the local sidereal time; if NULL, we skip localizeCoords()
*/
- virtual void updateCoords( const KSNumbers *num, bool includePlanets=true, const dms *lat=0, const dms *LST=0, bool forceRecompute = false );
+ virtual void updateCoords( const KSNumbers *num, bool includePlanets=true, const CachingDms *lat=0, const CachingDms *LST=0, bool forceRecompute = false );
/** @short Find position, including correction for Figure-of-the-Earth.
* @param num KSNumbers pointer for the target date/time
@@ -156,7 +156,7 @@ public:
* @param LST pointer to the local sidereal time; if NULL, we skip localizeCoords()
* @param Earth pointer to the Earth (not used for the Moon)
*/
- void findPosition( const KSNumbers *num, const dms *lat=0, const dms *LST=0, const KSPlanetBase *Earth = 0 );
+ void findPosition( const KSNumbers *num, const CachingDms *lat=0, const CachingDms *LST=0, const KSPlanetBase *Earth = 0 );
/** @return the Planet's position angle. */
virtual double pa() const { return PositionAngle; }
@@ -253,7 +253,7 @@ private:
* @param lat pointer to the geographic latitude of the location.
* @param LST pointer to the local sidereal time.
*/
- void localizeCoords( const KSNumbers *num, const dms *lat, const dms *LST );
+ void localizeCoords( const KSNumbers *num, const CachingDms *lat, const CachingDms *LST );
double PositionAngle, AngularSize, PhysicalSize;
QColor m_Color;
diff --git a/kstars/skyobjects/skyobject.cpp b/kstars/skyobjects/skyobject.cpp
index c064d47..3efb3b1 100644
--- a/kstars/skyobjects/skyobject.cpp
+++ b/kstars/skyobjects/skyobject.cpp
@@ -323,7 +323,7 @@ SkyPoint SkyObject::recomputeCoords( const KStarsDateTime &dt, const GeoLocation
// the passing of lat and LST
if ( isSolarSystem() && geo ) {
- dms LST = geo->GSTtoLST( dt.gst() );
+ CachingDms LST = geo->GSTtoLST( dt.gst() );
c->updateCoords( &num, true, geo->lat(), &LST );
} else {
c->updateCoords( &num );
diff --git a/kstars/skyobjects/skypoint.cpp b/kstars/skyobjects/skypoint.cpp
index 01d2bd4..0b21b22 100644
--- a/kstars/skyobjects/skypoint.cpp
+++ b/kstars/skyobjects/skypoint.cpp
@@ -19,9 +19,6 @@
#include "skypoint.h"
-#include <QDebug>
-#include <KLocalizedString>
-
#include "skyobject.h"
#include "dms.h"
#include "ksnumbers.h"
@@ -31,6 +28,18 @@
#include "Options.h"
#include "skycomponents/skymapcomposite.h"
+#include <KLocalizedString>
+
+#include <QDebug>
+
+#include <cmath>
+
+#ifdef PROFILE_COORDINATE_CONVERSION
+#include <ctime> // For profiling, remove if not profiling.
+long unsigned SkyPoint::eqToHzCalls = 0;
+double SkyPoint::cpuTime_EqToHz = 0.;
+#endif
+
KSSun *SkyPoint::m_Sun = 0;
const double SkyPoint::altCrit = -1.0;
@@ -53,12 +62,21 @@ SkyPoint::~SkyPoint(){
}
void SkyPoint::EquatorialToHorizontal( const dms *LST, const dms *lat ) {
+ qDebug() << "NOTE: This EquatorialToHorizontal overload (using dms pointers instead of CachingDms pointers) is deprecated and should be replaced with CachingDms prototype wherever speed is desirable!";
+ CachingDms _LST( *LST ), _lat( *lat );
+ EquatorialToHorizontal( &_LST, &_lat );
+}
+
+void SkyPoint::EquatorialToHorizontal( const CachingDms *LST, const CachingDms *lat ) {
+#ifdef PROFILE_COORDINATE_CONVERSION
+ std::clock_t start = std::clock();
+#endif
//Uncomment for spherical trig version
double AltRad, AzRad;
double sindec, cosdec, sinlat, coslat, sinHA, cosHA;
double sinAlt, cosAlt;
- dms HourAngle = (*LST) - ra();
+ CachingDms HourAngle = (*LST) - ra(); // Using CachingDms subtraction operator to find cos/sin of HourAngle without calling sincos()
lat->SinCos( sinlat, coslat );
dec().SinCos( sindec, cosdec );
@@ -66,7 +84,9 @@ void SkyPoint::EquatorialToHorizontal( const dms *LST, const dms *lat ) {
sinAlt = sindec*sinlat + cosdec*coslat*cosHA;
AltRad = asin( sinAlt );
- cosAlt = cos( AltRad );
+
+ // cosAlt = cos( AltRad );
+ cosAlt = sqrt( 1 - sinAlt * sinAlt ); // Avoid trigonometric function. Return value of asin is always in [-pi/2, pi/2] and in this domain cosine is always non-negative, so we can use this.
double arg = ( sindec - sinlat*sinAlt )/( coslat*cosAlt );
if ( arg <= -1.0 ) AzRad = dms::PI;
@@ -77,6 +97,11 @@ void SkyPoint::EquatorialToHorizontal( const dms *LST, const dms *lat ) {
Alt.setRadians( AltRad );
Az.setRadians( AzRad );
+#ifdef PROFILE_COORDINATE_CONVERSION
+ std::clock_t stop = std::clock();
+ cpuTime_EqToHz += double( stop - start )/double( CLOCKS_PER_SEC ); // Accumulate time in seconds
+ ++eqToHzCalls;
+#endif
// //Uncomment for XYZ version
// double xr, yr, zr, xr1, zr1, sa, ca;
@@ -131,10 +156,10 @@ void SkyPoint::HorizontalToEquatorial( const dms *LST, const dms *lat ) {
if ( sinAz > 0.0 ) HARad = 2.0*dms::PI - HARad; // resolve acos() ambiguity
RA.setRadians( LST->radians() - HARad );
- RA.setD( RA.reduce().Degrees() ); // 0 <= RA < 24
+ RA.reduceToRange( dms::ZERO_TO_2PI );
}
-void SkyPoint::findEcliptic( const dms *Obliquity, dms &EcLong, dms &EcLat ) {
+void SkyPoint::findEcliptic( const CachingDms *Obliquity, dms &EcLong, dms &EcLat ) {
double sinRA, cosRA, sinOb, cosOb, sinDec, cosDec, tanDec;
ra().SinCos( sinRA, cosRA );
dec().SinCos( sinDec, cosDec );
@@ -144,11 +169,11 @@ void SkyPoint::findEcliptic( const dms *Obliquity, dms &EcLong, dms &EcLat ) {
double y = sinRA*cosOb + tanDec*sinOb;
double ELongRad = atan2( y, cosRA );
EcLong.setRadians( ELongRad );
- EcLong.reduce();
+ EcLong.reduceToRange( dms::ZERO_TO_2PI );
EcLat.setRadians( asin( sinDec*cosOb - cosDec*sinOb*sinRA ) );
}
-void SkyPoint::setFromEcliptic( const dms *Obliquity, const dms& EcLong, const dms& EcLat ) {
+void SkyPoint::setFromEcliptic( const CachingDms *Obliquity, const dms& EcLong, const dms& EcLat ) {
double sinLong, cosLong, sinLat, cosLat, sinObliq, cosObliq;
EcLong.SinCos( sinLong, cosLong );
EcLat.SinCos( sinLat, cosLat );
@@ -157,15 +182,16 @@ void SkyPoint::setFromEcliptic( const dms *Obliquity, const dms& EcLong, const d
double sinDec = sinLat*cosObliq + cosLat*sinObliq*sinLong;
double y = sinLong*cosObliq - (sinLat/cosLat)*sinObliq;
- double RARad = atan2( y, cosLong );
- RA.setRadians( RARad );
- RA.reduce();
- Dec.setRadians( asin(sinDec) );
+// double RARad = atan2( y, cosLong );
+ RA.setUsing_atan2( y, cosLong );
+ RA.reduceToRange( dms::ZERO_TO_2PI );
+ Dec.setUsing_asin( sinDec );
}
void SkyPoint::precess( const KSNumbers *num ) {
double cosRA0, sinRA0, cosDec0, sinDec0;
- double v[3], s[3];
+ const Eigen::Matrix3d &precessionMatrix = num->p2();
+ Eigen::Vector3d v, s;
RA0.SinCos( sinRA0, cosRA0 );
Dec0.SinCos( sinDec0, cosDec0 );
@@ -173,18 +199,27 @@ void SkyPoint::precess( const KSNumbers *num ) {
s[0] = cosRA0*cosDec0;
s[1] = sinRA0*cosDec0;
s[2] = sinDec0;
+
+
+ // NOTE: Rotation matrices are the fastest way to do rotations on
+ // a vector. Quaternions need more multiplications. The rotation
+ // matrix compensates in some sense by having more 'precomputed'
+ // multiplications. The matrix elements seem to cache nicely, so
+ // there isn't much overhead in accessing them.
+
//Multiply P2 and s to get v, the vector representing the new coords.
- for ( unsigned int i=0; i<3; ++i ) {
- v[i] = 0.0;
- for (uint j=0; j< 3; ++j) {
- v[i] += num->p2( j, i )*s[j];
- }
- }
+ // for ( unsigned int i=0; i<3; ++i ) {
+ // v[i] = 0.0;
+ // for (uint j=0; j< 3; ++j) {
+ // v[i] += num->p2( j, i )*s[j];
+ // }
+ // }
+ v.noalias() = precessionMatrix * s;
//Extract RA, Dec from the vector:
- RA.setRadians( atan2( v[1], v[0] ) );
- RA.reduce();
- Dec.setRadians( asin( v[2] ) );
+ RA.setUsing_atan2( v[1], v[0] );
+ RA.reduceToRange( dms::ZERO_TO_2PI );
+ Dec.setUsing_asin( v[2] );
}
SkyPoint SkyPoint::deprecess( const KSNumbers *num, long double epoch ) {
@@ -229,7 +264,7 @@ void SkyPoint::nutate(const KSNumbers *num) {
}
SkyPoint SkyPoint::moveAway( const SkyPoint &from, double dist ) const {
- dms lat1, dtheta;
+ CachingDms lat1, dtheta;
if( dist == 0.0 ) {
qDebug() << "moveAway called with zero distance!";
@@ -239,19 +274,21 @@ SkyPoint SkyPoint::moveAway( const SkyPoint &from, double dist ) const {
double dst = fabs( dist * dms::DegToRad / 3600.0 ); // In radian
// Compute the bearing angle w.r.t. the RA axis ("latitude")
- dms dRA( ra() - from.ra() );
- dms dDec( dec() - from.dec() );
+ CachingDms dRA( ra() - from.ra() );
+ CachingDms dDec( dec() - from.dec() );
double bearing = atan2( dRA.sin() / dRA.cos(), dDec.sin() ); // Do not use dRA = PI / 2!!
//double bearing = atan2( dDec.radians() , dRA.radians() );
- double dir0 = (dist >= 0 ) ? bearing : bearing + dms::PI; // in radian
- dist = fabs( dist ); // in radian
+// double dir0 = (dist >= 0 ) ? bearing : bearing + dms::PI; // in radian
+ double dir0 = bearing + std::signbit( dist ) * dms::PI; // might be faster?
+ dist = fabs( dist ); // in radian
+ double sinDst = sin( dst ), cosDst = cos( dst );
- lat1.setRadians( asin( dec().sin() * cos( dst ) +
- dec().cos() * sin( dst ) * cos( dir0 ) ) );
- dtheta.setRadians( atan2( sin( dir0 ) * sin( dst ) * dec().cos(),
- cos( dst ) - dec().sin() * lat1.sin() ) );
+ lat1.setUsing_asin( dec().sin() * cosDst +
+ dec().cos() * sinDst * cos( dir0 ) );
+ dtheta.setUsing_atan2( sin( dir0 ) * sinDst * dec().cos(),
+ cosDst - dec().sin() * lat1.sin() );
return SkyPoint( ra() + dtheta, lat1 );
}
@@ -308,18 +345,21 @@ void SkyPoint::aberrate(const KSNumbers *num) {
Dec.SinCos( sinDec, cosDec );
num->obliquity()->SinCos( sinOb, cosOb );
- double tanOb = sinOb/cosOb;
+ // double tanOb = sinOb/cosOb;
num->sunTrueLongitude().SinCos( sinL, cosL );
num->earthPerihelionLongitude().SinCos( sinP, cosP );
//Step 3: Aberration
- double dRA = -1.0 * K * ( cosRA * cosL * cosOb + sinRA * sinL )/cosDec
- + e * K * ( cosRA * cosP * cosOb + sinRA * sinP )/cosDec;
+ // double dRA = -1.0 * K * ( cosRA * cosL * cosOb + sinRA * sinL )/cosDec
+ // + e * K * ( cosRA * cosP * cosOb + sinRA * sinP )/cosDec;
+
+ // double dDec = -1.0 * K * ( cosL * cosOb * ( tanOb * cosDec - sinRA * sinDec ) + cosRA * sinDec * sinL )
+ // + e * K * ( cosP * cosOb * ( tanOb * cosDec - sinRA * sinDec ) + cosRA * sinDec * sinP );
- double dDec = -1.0 * K * ( cosL * cosOb * ( tanOb * cosDec - sinRA * sinDec ) + cosRA * sinDec * sinL )
- + e * K * ( cosP * cosOb * ( tanOb * cosDec - sinRA * sinDec ) + cosRA * sinDec * sinP );
+ double dRA = K * ( cosRA * cosOb / cosDec ) * ( e * cosP - cosL );
+ double dDec = K * ( sinRA * ( sinOb * cosDec - cosOb * sinDec ) * ( e * cosP - cosL ) + cosRA * sinDec * ( e * sinP - sinL ) );
RA.setD( RA.Degrees() + dRA );
Dec.setD( Dec.Degrees() + dDec );
@@ -327,7 +367,7 @@ void SkyPoint::aberrate(const KSNumbers *num) {
}
// Note: This method is one of the major rate determining factors in how fast the map pans / zooms in or out
-void SkyPoint::updateCoords( const KSNumbers *num, bool /*includePlanets*/, const dms *lat, const dms *LST, bool forceRecompute ) {
+void SkyPoint::updateCoords( const KSNumbers *num, bool /*includePlanets*/, const CachingDms *lat, const CachingDms *LST, bool forceRecompute ) {
//Correct the catalog coordinates for the time-dependent effects
//of precession, nutation and aberration
bool recompute, lens;
@@ -371,15 +411,15 @@ void SkyPoint::precessFromAnyEpoch(long double jd0, long double jdf){
double cosRA, sinRA, cosDec, sinDec;
double v[3], s[3];
- RA.setD( RA0.Degrees() );
- Dec.setD( Dec0.Degrees() );
-
- RA.SinCos( sinRA, cosRA );
- Dec.SinCos( sinDec, cosDec );
+ RA = RA0;
+ Dec = Dec0; // Is this necessary?
if (jd0 == jdf)
return;
+ RA.SinCos( sinRA, cosRA );
+ Dec.SinCos( sinDec, cosDec );
+
if ( jd0 == B1950) {
B1950ToJ2000();
jd0 = J2000;
@@ -432,11 +472,10 @@ void SkyPoint::precessFromAnyEpoch(long double jd0, long double jdf){
num.p2( 2, i )*s[2];
}
- RA.setRadians( atan2( v[1],v[0] ) );
- Dec.setRadians( asin( v[2] ) );
+ RA.setUsing_atan2( v[1], v[0] );
+ Dec.setUsing_asin( v[2] );
- if (RA.Degrees() < 0.0 )
- RA.setD( RA.Degrees() + 360.0 );
+ RA.reduceToRange( dms::ZERO_TO_2PI );
return;
}
@@ -466,7 +505,7 @@ void SkyPoint::Equatorial1950ToGalactic(dms &galLong, dms &galLat) {
Dec.SinCos(sinDEC,cosDEC);
galLong.setRadians( c.radians() - atan2( sina_RA, cosa_RA*sinb-tanDEC*cosb) );
- galLong = galLong.reduce();
+ galLong.reduceToRange( dms::ZERO_TO_2PI );
galLat.setRadians( asin(sinDEC*sinb+cosDEC*cosb*cosa_RA) );
}
@@ -485,7 +524,7 @@ void SkyPoint::GalacticToEquatorial1950(const dms* galLong, const dms* galLat) {
b.SinCos(sinb,cosb);
RA.setRadians(c.radians() + atan2(singLong_a,cosgLong_a*sinb-tangLat*cosb) );
- RA = RA.reduce();
+ RA.reduceToRange( dms::ZERO_TO_2PI );
Dec.setRadians( asin(singLat*sinb+cosgLat*cosb*cosgLong_a) );
}
@@ -620,20 +659,26 @@ void SkyPoint::subtractEterms(void) {
dms SkyPoint::angularDistanceTo(const SkyPoint *sp, double * const positionAngle) const {
- double dalpha = sp->ra().radians() - ra().radians() ;
- double ddelta = sp->dec().radians() - dec().radians();
+ // double dalpha = sp->ra().radians() - ra().radians() ;
+ // double ddelta = sp->dec().radians() - dec().radians();
+ CachingDms dalpha = sp->ra() - ra();
+ CachingDms ddelta = sp->dec() - dec();
- double sa = sin(dalpha/2.);
- double sd = sin(ddelta/2.);
+ // double sa = sin(dalpha/2.);
+ // double sd = sin(ddelta/2.);
- double hava = sa*sa;
- double havd = sd*sd;
+ // double hava = sa*sa;
+ // double havd = sd*sd;
+
+ // Compute the haversin directly:
+ double hava = ( 1 - dalpha.cos() )/2.;
+ double havd = ( 1 - ddelta.cos() )/2.;
// Haversine law
- double aux = havd + cos (sp->dec().radians()) * cos(dec().radians()) * hava;
+ double aux = havd + (sp->dec().cos()) * dec().cos() * hava;
dms angDist;
- angDist.setRadians( 2 * fabs(asin( sqrt(aux) )) );
+ angDist.setRadians( 2. * fabs(asin( sqrt(aux) )) );
if( positionAngle )
{
@@ -641,7 +686,7 @@ dms SkyPoint::angularDistanceTo(const SkyPoint *sp, double * const positionAngle
//*positionAngle = acos( tan(-ddelta)/tan( angDist.radians() ) ); // FIXME: Might fail for large ddelta / zero angDist
//if( -dalpha < 0 )
// *positionAngle = 2*M_PI - *positionAngle;
- *positionAngle = atan2f(sin(dalpha), cos(dec().radians()) * tan(sp->dec().radians()) - sin(dec().radians()) * cos(dalpha)) * 180/M_PI;
+ *positionAngle = atan2f(dalpha.sin(), (dec().cos()) * tan(sp->dec().radians()) - (dec().sin()) * dalpha.cos()) * 180/M_PI;
}
return angDist;
}
@@ -826,3 +871,18 @@ SkyPoint SkyPoint::timeTransformed( const SkyPoint *p, const KStarsDateTime &dt,
return sp;
}
+
+
+double SkyPoint::maxAlt(const dms& lat) const {
+ double retval = ( lat.Degrees() + 90. - dec().Degrees() );
+ if ( retval > 90. )
+ retval = 180. - retval;
+ return retval;
+}
+
+double SkyPoint::minAlt(const dms& lat) const {
+ double retval = ( lat.Degrees() - 90. + dec().Degrees() );
+ if ( retval < -90. )
+ retval = 180. + retval;
+ return retval;
+}
diff --git a/kstars/skyobjects/skypoint.h b/kstars/skyobjects/skypoint.h
index a617be9..acd9d8b 100644
--- a/kstars/skyobjects/skypoint.h
+++ b/kstars/skyobjects/skypoint.h
@@ -23,9 +23,11 @@
#include <QList>
-#include "dms.h"
+#include "cachingdms.h"
#include "kstarsdatetime.h"
+//#define PROFILE_COORDINATE_CONVERSION
+
class KSNumbers;
class KSSun;
class GeoLocation;
@@ -62,7 +64,13 @@ public:
, lastPrecessJD( J2000 )
{}
-
+ SkyPoint( const CachingDms& r, const CachingDms& d ) : RA0(r)
+ , Dec0(d)
+ , RA(r)
+ , Dec(d)
+ , lastPrecessJD( J2000 )
+ {}
+
/** Alternate constructor using double arguments, for convenience.
*It behaves essentially like the default constructor.
*@param r Right Ascension, expressed as a double
@@ -103,6 +111,7 @@ public:
*@param r catalog Right Ascension.
*/
inline void setRA0( dms r ) { RA0 = r; }
+ inline void setRA0( CachingDms r ) { RA0 = r; }
/** Overloaded member function, provided for convenience.
*It behaves essentially like the above function.
@@ -114,6 +123,7 @@ public:
*@param d catalog Declination.
*/
inline void setDec0( dms d ) { Dec0 = d; }
+ inline void setDec0( const CachingDms &d ) { Dec0 = d; }
/** Overloaded member function, provided for convenience.
*It behaves essentially like the above function.
@@ -125,6 +135,7 @@ public:
*@param r Right Ascension.
*/
inline void setRA( dms r ) { RA = r; }
+ inline void setRA( const CachingDms &r ) { RA = r; }
/** Overloaded member function, provided for convenience.
*It behaves essentially like the above function.
@@ -136,6 +147,7 @@ public:
*@param d Declination.
*/
inline void setDec( dms d ) { Dec = d; }
+ inline void setDec( const CachingDms &d ) { Dec = d; }
/** Overloaded member function, provided for convenience.
*It behaves essentially like the above function.
@@ -170,16 +182,16 @@ public:
//// =========================
/** @return a pointer to the catalog Right Ascension. */
- inline const dms& ra0() const { return RA0; }
+ inline const CachingDms& ra0() const { return RA0; }
/** @return a pointer to the catalog Declination. */
- inline const dms& dec0() const { return Dec0; }
+ inline const CachingDms& dec0() const { return Dec0; }
/** @returns a pointer to the current Right Ascension. */
- inline const dms& ra() const { return RA; }
+ inline const CachingDms& ra() const { return RA; }
/** @return a pointer to the current Declination. */
- inline const dms& dec() const { return Dec; }
+ inline const CachingDms& dec() const { return Dec; }
/** @return a pointer to the current Azimuth. */
inline const dms& az() const { return Az; }
@@ -213,6 +225,9 @@ public:
*@param LST pointer to the local sidereal time
*@param lat pointer to the geographic latitude
*/
+ void EquatorialToHorizontal( const CachingDms* LST, const CachingDms* lat );
+
+ // Deprecated method provided for compatibility
void EquatorialToHorizontal( const dms* LST, const dms* lat );
/** Determine the (RA, Dec) coordinates of the
@@ -227,13 +242,13 @@ public:
*The ecliptic coordinates are returned as reference arguments (since
*they are not stored internally)
*/
- void findEcliptic( const dms *Obliquity, dms &EcLong, dms &EcLat );
+ void findEcliptic( const CachingDms *Obliquity, dms &EcLong, dms &EcLat );
/** Set the current (RA, Dec) coordinates of the
*SkyPoint, given pointers to its Ecliptic (Long, Lat) coordinates, and
*to the current obliquity angle (the angle between the equator and ecliptic).
*/
- void setFromEcliptic( const dms *Obliquity, const dms& EcLong, const dms& EcLat );
+ void setFromEcliptic( const CachingDms *Obliquity, const dms& EcLong, const dms& EcLat );
/** Computes galactic coordinates from equatorial coordinates referred to
* epoch 1950. RA and Dec are, therefore assumed to be B1950
@@ -259,7 +274,7 @@ public:
*@param LST does nothing in this implementation (see KSPlanetBase::updateCoords()).
*@param forceRecompute reapplies precession, nutation and aberration even if the time passed since the last computation is not significant.
*/
- virtual void updateCoords( const KSNumbers *num, bool includePlanets=true, const dms *lat=0, const dms *LST=0, bool forceRecompute = false );
+ virtual void updateCoords( const KSNumbers *num, bool includePlanets=true, const CachingDms *lat=0, const CachingDms *LST=0, bool forceRecompute = false );
/**
* @brief updateCoordsNow Shortcut for updateCoords( const KSNumbers *num, false, NULL, NULL, true)
@@ -540,6 +555,25 @@ public:
*/
static const double altCrit;
+ /**
+ * @short Return the object's altitude at the upper culmination for the given latitude
+ * @return the maximum altitude in degrees
+ */
+ double maxAlt( const dms &lat ) const;
+
+ /**
+ * @short Return the object's altitude at the lower culmination for the given latitude
+ * @return the minimum altitude in degrees
+ */
+ double minAlt( const dms &lat ) const;
+
+
+
+#ifdef PROFILE_COORDINATE_CONVERSION
+ static double cpuTime_EqToHz;
+ static long unsigned eqToHzCalls;
+#endif
+
protected:
/**
* Precess this SkyPoint's catalog coordinates to the epoch described by the
@@ -548,9 +582,13 @@ protected:
*/
void precess(const KSNumbers *num);
+#ifdef UNIT_TEST
+ friend class TestSkyPoint; // Test class
+#endif
+
private:
- dms RA0, Dec0; //catalog coordinates
- dms RA, Dec; //current true sky coordinates
+ CachingDms RA0, Dec0; //catalog coordinates
+ CachingDms RA, Dec; //current true sky coordinates
dms Alt, Az;
static KSSun *m_Sun;
protected:
diff --git a/kstars/skyobjects/starobject.cpp b/kstars/skyobjects/starobject.cpp
index 19d38e3..22f5e7c 100644
--- a/kstars/skyobjects/starobject.cpp
+++ b/kstars/skyobjects/starobject.cpp
@@ -36,6 +36,13 @@
#include "skymap.h"
#include "ksutils.h"
+#ifdef PROFILE_UPDATECOORDS
+double StarObject::updateCoordsCpuTime = 0.;
+unsigned int StarObject::starsUpdated = 0;
+#include <cstdlib>
+#include <ctime>
+#endif
+
// DEBUG EDIT. Uncomment for testing Proper Motion
//#include "skycomponents/skymesh.h"
// END DEBUG
@@ -147,8 +154,8 @@ void StarObject::init( const starData *stardata )
setMag( stardata->mag / 100.0 );
setRA0( ra );
setDec0( dec );
- setRA( ra );
- setDec( dec );
+ setRA( ra0() );
+ setDec( dec0() );
SpType[0] = stardata->spec_type[0];
SpType[1] = stardata->spec_type[1];
PM_RA = stardata->dRA / 10.0;
@@ -254,7 +261,7 @@ void StarObject::initPopupMenu( KSPopupMenu *pmenu ) {
#endif
}
-void StarObject::updateCoords( const KSNumbers *num, bool , const dms*, const dms*, bool ) {
+void StarObject::updateCoords( const KSNumbers *num, bool , const CachingDms*, const CachingDms*, bool ) {
//Correct for proper motion of stars. Determine RA and Dec offsets.
//Proper motion is given im milliarcsec per year by the pmRA() and pmDec() functions.
//That is numerically identical to the number of arcsec per millenium, so multiply by
@@ -263,25 +270,129 @@ void StarObject::updateCoords( const KSNumbers *num, bool , const dms*, const dm
// Correction: The method below computes the proper motion before the
// precession. If we precessed first then the direction of the proper
// motion correction would depend on how far we've precessed. -jbb
- double saveRA = ra0().Hours();
- double saveDec = dec0().Degrees();
+#ifdef PROFILE_UPDATECOORDS
+ std::clock_t start, stop;
+ start = std::clock();
+#endif
+ CachingDms saveRA = ra0(), saveDec = dec0();
+ CachingDms newRA, newDec;
- double newRA, newDec;
+ getIndexCoords( num, newRA, newDec );
- getIndexCoords( num, &newRA, &newDec );
- newRA /= 15.0; // getIndexCoords returns in Degrees, while we want the RA in Hours
setRA0( newRA );
setDec0( newDec );
-
SkyPoint::updateCoords( num );
setRA0( saveRA );
setDec0( saveDec );
+
+#ifdef PROFILE_UPDATECOORDS
+ stop = std::clock();
+ updateCoordsCpuTime += double( stop - start )/double( CLOCKS_PER_SEC );
+ ++starsUpdated;
+#endif
+}
+
+bool StarObject::getIndexCoords( const KSNumbers *num, CachingDms &ra, CachingDms &dec )
+{
+ static double pmms;
+
+ // =================== NOTE: CODE DUPLICATION ====================
+ // If you modify this, please also modify the other getIndexCoords
+ // ===============================================================
+ //
+ // Reason for code duplication is as follows:
+ //
+ // This method is designed to use CachingDms, i.e. we know we are
+ // going to use the sine and cosine of the returned values.
+ //
+ // The other method is designed to avoid CachingDms and try to
+ // compute as little trigonometry as possible when the ra/dec has
+ // to be returned in double (used in SkyMesh::indexStar() for
+ // example)
+ //
+ // Thus, the philosophy of writing code is different. Granted, we
+ // don't need to optimize for the smaller star catalogs (which use
+ // SkyMesh::indexStar()), but it is nevertheless a good idea,
+ // given that getIndexCoords() shows up in callgrind as one of the
+ // slightly more expensive operations.
+
+ // Old, Incorrect Proper motion Computation. We retain this in a
+ // comment because we might want to use it to come up with a
+ // linear approximation that's faster.
+ // double dra = pmRA() * num->julianMillenia() / ( cos( dec0().radians() ) * 3600.0 );
+ // double ddec = pmDec() * num->julianMillenia() / 3600.0;
+
+ // Proper Motion Correction should be implemented as motion along a great
+ // circle passing through the given (ra0, dec0) in a direction of
+ // atan2( pmRA(), pmDec() ) to an angular distance given by the Magnitude of
+ // PM times the number of Julian millenia since J2000.0
+
+ pmms = pmMagnitudeSquared();
+
+ if( std::isnan( pmms ) || pmms * num->julianMillenia() * num->julianMillenia() < 1. ) {
+ // Ignore corrections
+ ra = ra0();
+ dec = dec0();
+ return false;
+ }
+
+ double pm = pmMagnitude() * num->julianMillenia(); // Proper Motion in arcseconds
+
+ double dir0 = ( ( pm > 0 ) ? atan2( pmRA(), pmDec() ) : atan2( -pmRA(), -pmDec() ) ); // Bearing, in radian
+
+ ( pm < 0 ) && ( pm = -pm );
+
+ double dst = ( pm * M_PI / ( 180.0 * 3600.0 ) );
+ // double phi = M_PI / 2.0 - dec0().radians();
+
+
+ // Note: According to callgrind, dms::dms() + dms::setRadians()
+ // takes ~ 40 CPU cycles, whereas, the advantage afforded by using
+ // sincos() instead of sin() and cos() calls seems to be about 30
+ // CPU cycles.
+
+ // So it seems like it is not worth turning dir0 and dst into dms
+ // objects and using SinCos(). However, caching the values of sin
+ // and cos if we are going to reuse them avoids expensive (~120
+ // CPU cycle) recomputation!
+ CachingDms lat1, dtheta;
+ double sinDst = sin( dst ), cosDst = cos( dst );
+ lat1.setUsing_asin( dec0().sin() * cosDst + dec0().cos() * sinDst * cos( dir0 ) );
+ dtheta.setUsing_atan2( sin( dir0 ) * sinDst * dec0().cos(),
+ cosDst - dec0().sin() * lat1.sin() );
+
+ ra = ra0() + dtheta; // Use operator + to avoid trigonometry
+ dec = lat1; // Need variable lat1 because dec may refer to dec0, so cannot construct result in-place
+
+ // *ra = ra0().Degrees() + dra;
+ // *dec = dec0().Degrees() + ddec;
+ return true;
}
-void StarObject::getIndexCoords( const KSNumbers *num, double *ra, double *dec )
+
+bool StarObject::getIndexCoords( const KSNumbers *num, double *ra, double *dec )
{
static double pmms;
+ // =================== NOTE: CODE DUPLICATION ====================
+ // If you modify this, please also modify the other getIndexCoords
+ // ===============================================================
+ //
+ // Reason for code duplication is as follows:
+ //
+ // This method is designed to avoid CachingDms and try to compute
+ // as little trigonometry as possible when the ra/dec has to be
+ // returned in double (used in SkyMesh::indexStar() for example)
+ //
+ // The other method is designed to use CachingDms, i.e. we know we
+ // are going to use the sine and cosine of the returned values.
+ //
+ // Thus, the philosophy of writing code is different. Granted, we
+ // don't need to optimize for the smaller star catalogs (which use
+ // SkyMesh::indexStar()), but it is nevertheless a good idea,
+ // given that getIndexCoords() shows up in callgrind as one of the
+ // slightly more expensive operations.
+
// Old, Incorrect Proper motion Computation. We retain this in a
// comment because we might want to use it to come up with a
// linear approximation that's faster.
@@ -299,23 +410,34 @@ void StarObject::getIndexCoords( const KSNumbers *num, double *ra, double *dec )
// Ignore corrections
*ra = ra0().Degrees();
*dec = dec0().Degrees();
- return;
+ return false;
}
double pm = pmMagnitude() * num->julianMillenia(); // Proper Motion in arcseconds
- double dir0 = ( pm > 0 ) ? atan2( pmRA(), pmDec() ) : atan2( -pmRA(), -pmDec() ); // Bearing, in radian
+ double dir0 = ( ( pm > 0 ) ? atan2( pmRA(), pmDec() ) : atan2( -pmRA(), -pmDec() ) ); // Bearing, in radian
( pm < 0 ) && ( pm = -pm );
- double dst = pm * M_PI / ( 180.0 * 3600.0 );
+ double dst = ( pm * M_PI / ( 180.0 * 3600.0 ) );
// double phi = M_PI / 2.0 - dec0().radians();
+
+ // Note: According to callgrind, dms::dms() + dms::setRadians()
+ // takes ~ 40 CPU cycles, whereas, the advantage afforded by using
+ // sincos() instead of sin() and cos() calls seems to be about 30
+ // CPU cycles.
+
+ // So it seems like it is not worth turning dir0 and dst into dms
+ // objects and using SinCos(). However, caching the values of sin
+ // and cos if we are going to reuse them avoids expensive (~120
+ // CPU cycle) recomputation!
dms lat1, dtheta;
- lat1.setRadians( asin( dec0().sin() * cos( dst ) +
- dec0().cos() * sin( dst ) * cos( dir0 ) ) );
- dtheta.setRadians( atan2( sin( dir0 ) * sin( dst ) * dec0().cos(),
- cos( dst ) - dec0().sin() * lat1.sin() ) );
+ double sinDst = sin( dst ), cosDst = cos( dst );
+ double sinLat1 = dec0().sin() * cosDst + dec0().cos() * sinDst * cos( dir0 );
+ lat1.setRadians( asin( sinLat1 ) );
+ dtheta.setRadians( atan2( sin( dir0 ) * sinDst * dec0().cos(),
+ cosDst - dec0().sin() * sinLat1 ) );
// Using dms instead, to ensure that the numbers are in the right range.
dms finalRA( ra0().Degrees() + dtheta.Degrees() );
@@ -325,6 +447,7 @@ void StarObject::getIndexCoords( const KSNumbers *num, double *ra, double *dec )
// *ra = ra0().Degrees() + dra;
// *dec = dec0().Degrees() + ddec;
+ return true;
}
void StarObject::JITupdate()
diff --git a/kstars/skyobjects/starobject.h b/kstars/skyobjects/starobject.h
index b3bd72c..aea004d 100644
--- a/kstars/skyobjects/starobject.h
+++ b/kstars/skyobjects/starobject.h
@@ -25,6 +25,8 @@
#include "stardata.h"
#include "deepstardata.h"
+//#define PROFILE_UPDATECOORDS
+
class KSPopupMenu;
/** @class StarObject
@@ -162,15 +164,17 @@ public:
* @param lat does nothing in this implementation (see KSPlanetBase::updateCoords()).
* @param LST does nothing in this implementation (see KSPlanetBase::updateCoords()).
*/
- virtual void updateCoords( const KSNumbers *num, bool includePlanets=true, const dms *lat=0, const dms *LST=0, bool forceRecompute = false );
+ virtual void updateCoords( const KSNumbers *num, bool includePlanets=true, const CachingDms *lat=0, const CachingDms *LST=0, bool forceRecompute = false );
/** @short fills ra and dec with the coordinates of the star with the proper
* motion correction but without precesion and its friends. It is used
* in StarComponent to re-index all the stars.
*
+ * @return true if we changed the coordinates, false otherwise
* NOTE: ra and dec both in degrees.
*/
- void getIndexCoords( const KSNumbers *num, double *ra, double *dec );
+ bool getIndexCoords( const KSNumbers *num, CachingDms &ra, CachingDms &dec );
+ bool getIndexCoords( const KSNumbers *num, double *ra, double *dec );
/** @short added for JIT updates from both StarComponent and ConstellationLines */
void JITupdate();
@@ -264,6 +268,12 @@ public:
quint64 updateID;
quint64 updateNumID;
+#ifdef PROFILE_UPDATECOORDS
+ static double updateCoordsCpuTime;
+ static unsigned int starsUpdated;
+#endif
+
+
protected:
// DEBUG EDIT. For testing proper motion, uncomment this, and related blocks
// See starobject.cpp for further info.
diff --git a/kstars/time/kstarsdatetime.cpp b/kstars/time/kstarsdatetime.cpp
index 76ed422..10a1e1a 100644
--- a/kstars/time/kstarsdatetime.cpp
+++ b/kstars/time/kstarsdatetime.cpp
@@ -138,7 +138,7 @@ void KStarsDateTime::setDate( const QDate &_d ) {
setDJD( (long double)_d.toJulianDay() + jdFrac );
}
-KStarsDateTime KStarsDateTime::addSecs( double s ) const {
+KStarsDateTime KStarsDateTime::addSecs( double s ) const {
long double ds = (long double)s/86400.;
KStarsDateTime kdt( djd() + ds );
return kdt;
@@ -206,31 +206,73 @@ QTime KStarsDateTime::GSTtoUT( dms GST ) const {
return( QTime( hr, mn, sc, ms ) );
}
-bool KStarsDateTime::setFromEpoch( double epoch ) {
- if (epoch == 1950.0) {
- setDJD( 2433282.4235 );
- return true;
- } else if ( epoch == 2000.0 ) {
- setDJD( J2000 );
- return true;
- } else {
- int year = int( epoch );
- KStarsDateTime dt( QDate( year, 1, 1 ), QTime( 0, 0, 0 ) );
- double days = (double)(dt.date().daysInYear())*( epoch - (double)year );
- dt = dt.addSecs( days*86400. ); //set date and time based on the number of days into the year
-
- if ( dt.isValid() ) {
- setDJD( dt.djd() );
- return true;
- } else
- return false;
- }
+void KStarsDateTime::setFromEpoch( double epoch ) {
+ if ( epoch == 1950.0 ) // Assume Besselian
+ setFromEpoch( epoch, BESSELIAN );
+ else
+ setFromEpoch( epoch, JULIAN ); // Assume Julian
+}
+
+bool KStarsDateTime::setFromEpoch( double epoch, EpochType type ) {
+ if ( type != JULIAN && type != BESSELIAN )
+ return false;
+ else
+ setDJD( epochToJd( epoch, type ) );
+ return true;
}
bool KStarsDateTime::setFromEpoch( const QString &eName ) {
bool result;
- double epoch = eName.toDouble(&result);
+ double epoch;
+ epoch = stringToEpoch( eName, result );
+
if( !result )
return false;
- return setFromEpoch( epoch );
+ return setFromEpoch( epoch, JULIAN ); // We've already converted
+}
+
+
+long double KStarsDateTime::epochToJd(double epoch, EpochType type) {
+ switch( type ) {
+ case BESSELIAN:
+ return B1900 + ( epoch - 1900.0 ) * JD_PER_BYEAR;
+ case JULIAN:
+ return J2000 + ( epoch - 2000.0 ) * 365.25;
+ default:
+ return NaN::d;
+ }
+}
+
+
+double KStarsDateTime::jdToEpoch(long double jd, KStarsDateTime::EpochType type) {
+ // Definitions for conversion formulas are from:
+ //
+ // * http://scienceworld.wolfram.com/astronomy/BesselianEpoch.html
+ // * http://scienceworld.wolfram.com/astronomy/JulianEpoch.html
+ //
+
+ switch( type ) {
+ case KStarsDateTime::BESSELIAN:
+ return 1900.0 + ( jd - KStarsDateTime::B1900 )/KStarsDateTime::JD_PER_BYEAR;
+ case KStarsDateTime::JULIAN:
+ return 2000.0 + ( jd - J2000 )/365.24;
+ default:
+ return NaN::d;
+ }
+}
+
+
+double KStarsDateTime::stringToEpoch(const QString& eName, bool &ok) {
+ double epoch;
+ if ( eName.isEmpty() ) // By default, assume J2000
+ return J2000;
+
+ if ( eName.startsWith( 'J' ) )
+ epoch = eName.mid( 1 ).toDouble(&ok);
+ else if ( eName.startsWith( 'B' ) ) {
+ epoch = eName.mid( 1 ).toDouble(&ok);
+ epoch = jdToEpoch( epochToJd( epoch, BESSELIAN ), JULIAN ); // Convert Besselian epoch to Julian epoch
+ }
+
+ return epoch;
}
diff --git a/kstars/time/kstarsdatetime.h b/kstars/time/kstarsdatetime.h
index d89613c..faca3da 100644
--- a/kstars/time/kstarsdatetime.h
+++ b/kstars/time/kstarsdatetime.h
@@ -153,22 +153,29 @@ public:
*/
QTime GSTtoUT( dms GST ) const; // FIXME: Shouldn't this be static?
+ /**
+ *@enum Epoch description options
+ *@note After 1976, the IAU standard for epochs is Julian Years.
+ */
+ enum EpochType {
+ JULIAN, /**< Julian epoch (see http://scienceworld.wolfram.com/astronomy/JulianEpoch.html) */
+ BESSELIAN, /**< Besselian epoch (see http://scienceworld.wolfram.com/astronomy/BesselianEpoch.html) */
+ };
/**
- *@return the epoch value of the Date/Time.
- *@note the epoch is shorthand for the date, expressed as a floating-point year value.
+ *@return the (Julian) epoch value of the Date/Time.
+ *@short This is (approximately) the year expressed as a floating-point value
*@sa setFromEpoch()
+ *@note The definition of Julian Epoch used here comes from http://scienceworld.wolfram.com/astronomy/JulianEpoch.html
*/
- inline double epoch() const { return ( double( date().year() )
- + double( date().dayOfYear() )/double( date().daysInYear() ) ); }
+ inline double epoch() const { return 2000.0 + (djd() - J2000)/365.25; }
/**
*Set the Date/Time from an epoch value, represented as a double.
*@p e the epoch value
- *@return true if date set successfully
*@sa epoch()
*/
- bool setFromEpoch( double e );
+ bool setFromEpoch( double e, EpochType type );
/**
*Set the Date/Time from an epoch value, represented as a string.
@@ -178,7 +185,41 @@ public:
*/
bool setFromEpoch( const QString &e );
+ /**
+ *Set the Date/Time from an epoch value, represented as a double.
+ *@p e the epoch value
+ *@note This method assumes that the epoch 1950.0 is Besselian, otherwise assumes that the epoch is a Julian epoch. This is provided for backward compatibility, and because custom catalogs may still use 1950.0 to mean B1950.0 despite the IAU standard for epochs being Julian.
+ *@sa epoch()
+ */
+ void setFromEpoch( double e );
+
+ /**
+ *@short Takes in an epoch and returns a Julian Date
+ *@return the Julian Date (date with fraction)
+ *@param epoch A floating-point year value specifying the Epoch
+ *@param type JULIAN or BESSELIAN depending on what convention the epoch is specified in
+ */
+ static long double epochToJd( double epoch, EpochType type=JULIAN );
+ /**
+ *@short Takes in a Julian Date and returns the corresponding epoch year in the given system
+ *@return the epoch as a floating-point year value
+ *@param jd Julian date
+ *@param type Epoch system (KStarsDateTime::JULIAN or KStarsDateTime::BESSELIAN)
+ */
+ static double jdToEpoch( long double jd, EpochType type=JULIAN );
+
+ /**
+ *@short Takes in a string and returns a Julian epoch
+ */
+ static double stringToEpoch( const QString &eName, bool &ok );
+
+ /**
+ * The following values were obtained from Eric Weisstein's world of science:
+ * http://scienceworld.wolfram.com/astronomy/BesselianEpoch.html
+ */
+ constexpr static const double B1900 = 2415020.31352; // Julian date of B1900 epoch
+ constexpr static const double JD_PER_BYEAR = 365.242198781; // Julian days in a Besselian year
private:
/**
*@return the Greenwich Sidereal Time at 0h UT on this object's Date
@@ -187,7 +228,7 @@ private:
dms GSTat0hUT() const;
long double DJD;
+
};
#endif //KSTARSDATETIME_H_
-
diff --git a/kstars/tools/adddeepskyobject.cpp b/kstars/tools/adddeepskyobject.cpp
index cedb54c..30e585b 100644
--- a/kstars/tools/adddeepskyobject.cpp
+++ b/kstars/tools/adddeepskyobject.cpp
@@ -18,6 +18,7 @@
/* Project Includes */
#include "adddeepskyobject.h"
+#include "skyobjects/skyobject.h"
/* KDE Includes */
#include <KMessageBox>
diff --git a/kstars/tools/altvstime.cpp b/kstars/tools/altvstime.cpp
index 2769cfc..5a2ffda 100644
--- a/kstars/tools/altvstime.cpp
+++ b/kstars/tools/altvstime.cpp
@@ -41,6 +41,7 @@
#include "geolocation.h"
#include "skyobjects/skypoint.h"
#include "skyobjects/skyobject.h"
+#include "skyobjects/starobject.h"
#include <kplotwidget.h>
#include "avtplotwidget.h"
@@ -163,7 +164,7 @@ AltVsTime::AltVsTime( QWidget* parent) :
topLayout->addWidget(buttonBox);
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
- QPushButton *printB = new QPushButton(QIcon::fromTheme("document-print"), i18n("&Print..."));
+ QPushButton *printB = new QPushButton(QIcon::fromTheme("document-print", QIcon(":/icons/breeze/default/document-print.png")), i18n("&Print..."));
printB->setToolTip(i18n("Print the Altitude vs. time plot"));
buttonBox->addButton(printB, QDialogButtonBox::ActionRole);
connect(printB, SIGNAL(clicked()), this, SLOT(slotPrint()));
@@ -433,7 +434,7 @@ void AltVsTime::processObject( SkyObject *o, bool forceAdd ) {
//restore original position
if ( o->isSolarSystem() ) {
- o->updateCoords( oldNum, true, data->geo()->lat(), data->lst(), true );
+ o->updateCoords( oldNum, true, data->geo()->lat(), data->lst(), true );
delete oldNum;
}
o->EquatorialToHorizontal( data->lst(), data->geo()->lat() );
@@ -446,7 +447,7 @@ double AltVsTime::findAltitude( SkyPoint *p, double hour ) {
//getDate converts the user-entered local time to UT
KStarsDateTime ut = getDate().addSecs( hour*3600.0 );
- dms LST = geo->GSTtoLST( ut.gst() );
+ CachingDms LST = geo->GSTtoLST( ut.gst() );
p->EquatorialToHorizontal( &LST, geo->lat() );
return p->alt().Degrees();
}
@@ -972,7 +973,7 @@ void AltVsTime::slotUpdateDateLoc() {
KStarsDateTime today = getDate();
KSNumbers *num = new KSNumbers( today.djd() );
KSNumbers *oldNum = 0;
- dms LST = geo->GSTtoLST( today.gst() );
+ CachingDms LST = geo->GSTtoLST( today.gst() );
//First determine time of sunset and sunrise
computeSunRiseSetTimes();
@@ -1231,7 +1232,7 @@ void AltVsTime::drawGradient(){
p.setClipping(false);
- //Add vertical line indicating "now"
+ //Add vertical line indicating "now"
if( geoLoc )
{
QTime t = geoLoc->UTtoLT( KStarsDateTime::currentDateTimeUtc() ).time(); // convert the current system clock time to the TZ corresponding to geo
@@ -1278,7 +1279,7 @@ void AltVsTime::setDawnDusk()
{
KStarsDateTime today = getDate();
KSNumbers num( today.djd() );
- dms LST = geo->GSTtoLST( today.gst() );
+ CachingDms LST = geo->GSTtoLST( today.gst() );
KSSun sun;
sun.updateCoords( &num, true, geo->lat(), &LST, true );
@@ -1407,6 +1408,3 @@ QString AltVsTime::getObjectName(const SkyObject *o, bool translated)
return finalObjectName;
}
-
-
-
diff --git a/kstars/tools/conjunctions.cpp b/kstars/tools/conjunctions.cpp
index 85efa94..92f6006 100644
--- a/kstars/tools/conjunctions.cpp
+++ b/kstars/tools/conjunctions.cpp
@@ -120,7 +120,7 @@ ConjunctionsTool::ConjunctionsTool(QWidget *parentSplit)
OutputList->horizontalHeader()->resizeSection(4, 120); //is it bad way to fix default size of columns ?
//FilterEdit->showClearButton = true;
- ClearFilterButton->setIcon( QIcon::fromTheme( "edit-clear" ) );
+ ClearFilterButton->setIcon( QIcon::fromTheme( "edit-clear" , QIcon(":/icons/breeze/default/edit-clear.png") ) );
m_index = 0;
diff --git a/kstars/tools/horizonmanager.cpp b/kstars/tools/horizonmanager.cpp
index c7af4ad..bd90c3b 100644
--- a/kstars/tools/horizonmanager.cpp
+++ b/kstars/tools/horizonmanager.cpp
@@ -41,17 +41,17 @@ HorizonManager::HorizonManager( QWidget *w )
ui->setStyleSheet("QPushButton:checked { background-color: red; }");
- ui->addRegionB->setIcon(QIcon::fromTheme("list-add"));
- ui->addPointB->setIcon(QIcon::fromTheme("list-add"));
- ui->removeRegionB->setIcon(QIcon::fromTheme("list-remove"));
- ui->removePointB->setIcon(QIcon::fromTheme("list-remove"));
- ui->clearPointsB->setIcon(QIcon::fromTheme("edit-clear"));
- ui->saveB->setIcon(QIcon::fromTheme("document-save"));
- ui->selectPointsB->setIcon(QIcon::fromTheme("snap-orthogonal"));
+ ui->addRegionB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
+ ui->addPointB->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/breeze/default/list-add.png")));
+ ui->removeRegionB->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png")));
+ ui->removePointB->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/breeze/default/list-remove.png")));
+ ui->clearPointsB->setIcon(QIcon::fromTheme("edit-clear", QIcon(":/icons/breeze/default/edit-clear.png")));
+ ui->saveB->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/breeze/default/document-save.png")));
+ ui->selectPointsB->setIcon(QIcon::fromTheme("snap-orthogonal", QIcon(":/icons/breeze/default/snap-orthogonal.png")));
- ui->tipLabel->setPixmap((QIcon::fromTheme("help-hint").pixmap(64,64)));
+ ui->tipLabel->setPixmap((QIcon::fromTheme("help-hint", QIcon(":/icons/breeze/default/help-hint.png")).pixmap(64,64)));
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop", QIcon(":/icons/breeze/default/process-stop.png")).pixmap(32,32));
ui->polygonValidatoin->setToolTip(i18n("Region is invalid. The polygon must be closed and located at the horizon"));
ui->polygonValidatoin->hide();
@@ -151,13 +151,13 @@ void HorizonManager::showRegion( int regionID )
{
if (validatePolygon(regionID))
{
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("dialog-ok").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("dialog-ok", QIcon(":/icons/breeze/default/dialog-ok.png")).pixmap(32,32));
ui->polygonValidatoin->setEnabled(true);
ui->polygonValidatoin->setToolTip(i18n("Region is valid"));
}
else
{
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop", QIcon(":/icons/breeze/default/process-stop.png")).pixmap(32,32));
ui->polygonValidatoin->setEnabled(false);
ui->polygonValidatoin->setToolTip(i18n("Region is invalid. The polygon must be closed"));
}
@@ -406,13 +406,13 @@ void HorizonManager::processSkyPoint(QStandardItem *item, int row)
{
if (validatePolygon(ui->regionsList->currentIndex().row()))
{
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("dialog-ok").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("dialog-ok", QIcon(":/icons/breeze/default/dialog-ok.png")).pixmap(32,32));
ui->polygonValidatoin->setEnabled(true);
ui->polygonValidatoin->setToolTip(i18n("Region is valid"));
}
else
{
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop", QIcon(":/icons/breeze/default/process-stop.png")).pixmap(32,32));
ui->polygonValidatoin->setEnabled(false);
ui->polygonValidatoin->setToolTip(i18n("Region is invalid. The polygon must be closed and located at the horizon"));
}
@@ -474,13 +474,13 @@ void HorizonManager::slotRemovePoint()
{
if (validatePolygon(ui->regionsList->currentIndex().row()))
{
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("dialog-ok").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("dialog-ok", QIcon(":/icons/breeze/default/dialog-ok.png")).pixmap(32,32));
ui->polygonValidatoin->setEnabled(true);
ui->polygonValidatoin->setToolTip(i18n("Region is valid"));
}
else
{
- ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop").pixmap(32,32));
+ ui->polygonValidatoin->setPixmap(QIcon::fromTheme("process-stop", QIcon(":/icons/breeze/default/process-stop.png")).pixmap(32,32));
ui->polygonValidatoin->setEnabled(false);
ui->polygonValidatoin->setToolTip(i18n("Region is invalid. The polygon must be closed"));
}
diff --git a/kstars/tools/ksconjunct.cpp b/kstars/tools/ksconjunct.cpp
index 40d6987..bdb12da 100644
--- a/kstars/tools/ksconjunct.cpp
+++ b/kstars/tools/ksconjunct.cpp
@@ -51,7 +51,7 @@ QMap<long double, dms> KSConjunct::findClosestApproach(SkyObject& Object1, KSPla
// qDebug() << Object1.name() << ": RA = " << Object1.ra() -> toHMSString() << "; Dec = " << Object1.dec() -> toDMSString() << "\n";
// qDebug() << Object2.name() << ": RA = " << Object2.ra() -> toHMSString() << "; Dec = " << Object2.dec() -> toDMSString() << "\n";
prevSign = 0;
-
+
step0 = (stopJD - startJD) / 4.0; // I'm an idiot for having done this without having the lines that follow -- asimha
// TODO: Work out a solid footing on which one can decide step0. -- asimha
@@ -68,7 +68,7 @@ QMap<long double, dms> KSConjunct::findClosestApproach(SkyObject& Object1, KSPla
if(Object1.name() == i18n( "Mars" ) || Object2.name() == i18n( "Mars" ))
if (step0 > 10.0)
step0 = 10.0;
- if(Object1.name() == i18n( "Venus" ) || Object1.name() == i18n( "Mercury" ) || Object2.name() == i18n( "Mercury" ) || Object2.name() == i18n( "Venus" ))
+ if(Object1.name() == i18n( "Venus" ) || Object1.name() == i18n( "Mercury" ) || Object2.name() == i18n( "Mercury" ) || Object2.name() == i18n( "Venus" ))
if (step0 > 5.0)
step0 = 5.0;
if(Object1.name() == "Moon" || Object2.name() == "Moon")
@@ -76,7 +76,7 @@ QMap<long double, dms> KSConjunct::findClosestApproach(SkyObject& Object1, KSPla
step0 = 0.25;
step = step0;
-
+
// qDebug() << "Initial Separation between " << Object1.name() << " and " << Object2.name() << " = " << (prevDist.toDMSString());
long double jd = startJD;
@@ -85,9 +85,9 @@ QMap<long double, dms> KSConjunct::findClosestApproach(SkyObject& Object1, KSPla
while ( jd <= stopJD ) {
int progress = int( 100.0*(jd - startJD)/(stopJD - startJD) );
emit madeProgress( progress );
-
+
Dist = findDistance(jd, &Object1, &Object2);
- Sign = sgn(Dist - prevDist);
+ Sign = sgn(Dist - prevDist);
// qDebug() << "Dist = " << Dist.toDMSString() << "; prevDist = " << prevDist.toDMSString() << "; Difference = " << (Dist.Degrees() - prevDist.Degrees()) << "; Step = " << step;
//How close are we to a conjunction, and how fast are we approaching one?
@@ -97,7 +97,7 @@ QMap<long double, dms> KSConjunct::findClosestApproach(SkyObject& Object1, KSPla
} else { //slow down, we're getting close!
step = step0;
}
-
+
if( Sign != prevSign && prevSign == -1) { //all right, we may have just passed a conjunction
if ( step > step0 ) { //mini-loop to back up and make sure we're close enough
// qDebug() << "Entering slow loop: " << endl;
@@ -106,16 +106,16 @@ QMap<long double, dms> KSConjunct::findClosestApproach(SkyObject& Object1, KSPla
Sign = prevSign;
while ( jd <= stopJD ) {
Dist = findDistance(jd, &Object1, &Object2);
- Sign = sgn(Dist - prevDist);
+ Sign = sgn(Dist - prevDist);
// qDebug() << "Dist=" << Dist.toDMSString() << "; prevDist=" << prevDist.toDMSString() << "; Diff=" << (Dist.Degrees() - prevDist.Degrees()) << "djd=" << (int)(jd - startJD);
if ( Sign != prevSign ) break;
-
+
prevDist = Dist;
prevSign = Sign;
jd += step;
}
}
-
+
// qDebug() << "Sign = " << Sign << " and " << "prevSign = " << prevSign << ": Entering findPrecise()\n";
if(findPrecise(&extremum, &Object1, &Object2, jd, step, Sign))
if(extremum.second.radians() < maxSeparation.radians())
@@ -139,7 +139,7 @@ dms KSConjunct::findDistance(long double jd, SkyObject *Object1, KSPlanetBase *O
KSPlanet *m_Earth = new KSPlanet( I18N_NOOP( "Earth" ), QString(), QColor( "white" ), 12756.28 /*diameter in km*/ );
m_Earth -> findPosition( &num );
- dms LST(geoPlace->GSTtoLST(t.gst()));
+ CachingDms LST(geoPlace->GSTtoLST(t.gst()));
KSPlanetBase* p = dynamic_cast<KSPlanetBase*>(Object1);
if( p )
@@ -195,7 +195,7 @@ bool KSConjunct::findPrecise(QPair<long double, dms> *out, SkyObject *Object1, K
int KSConjunct::sgn(dms a) {
- // Auxiliary function used by the KSConjunct::findClosestApproach(...)
+ // Auxiliary function used by the KSConjunct::findClosestApproach(...)
// method and the KSConjunct::findPrecise(...) method
return ((a.radians() > 0)?1:((a.radians() < 0)?-1:0));
diff --git a/kstars/tools/modcalcangdist.cpp b/kstars/tools/modcalcangdist.cpp
index 497d9e1..29321e4 100644
--- a/kstars/tools/modcalcangdist.cpp
+++ b/kstars/tools/modcalcangdist.cpp
@@ -25,6 +25,7 @@
#include "dms.h"
#include "widgets/dmsbox.h"
#include "skyobjects/skypoint.h"
+#include "skyobjects/skyobject.h"
#include "dialogs/finddialog.h"
#include "kstars.h"
diff --git a/kstars/tools/modcalcapcoord.cpp b/kstars/tools/modcalcapcoord.cpp
index dae3e0d..22b2303 100644
--- a/kstars/tools/modcalcapcoord.cpp
+++ b/kstars/tools/modcalcapcoord.cpp
@@ -26,6 +26,7 @@
#include "kstars.h"
#include "dms.h"
#include "skyobjects/skypoint.h"
+#include "skyobjects/skyobject.h"
#include "kstarsdatetime.h"
#include "dialogs/finddialog.h"
#include "widgets/dmsbox.h"
diff --git a/kstars/tools/modcalcgalcoord.cpp b/kstars/tools/modcalcgalcoord.cpp
index 355e1ea..4896ad2 100644
--- a/kstars/tools/modcalcgalcoord.cpp
+++ b/kstars/tools/modcalcgalcoord.cpp
@@ -24,6 +24,7 @@
#include "dms.h"
#include "skyobjects/skypoint.h"
+#include "skyobjects/skyobject.h"
#include "kstars.h"
#include "dialogs/finddialog.h"
#include "widgets/dmsbox.h"
diff --git a/kstars/tools/modcalcplanets.cpp b/kstars/tools/modcalcplanets.cpp
index 4b249b6..1a4044b 100644
--- a/kstars/tools/modcalcplanets.cpp
+++ b/kstars/tools/modcalcplanets.cpp
@@ -84,7 +84,7 @@ void modCalcPlanets::slotComputePosition (void)
KStarsDateTime dt = DateTimeBox->dateTime();
long double julianDay = dt.djd();
KSNumbers num( julianDay );
- dms LST( geoPlace->GSTtoLST( dt.gst() ) );
+ CachingDms LST( geoPlace->GSTtoLST( dt.gst() ) );
// Earth
KSPlanet Earth( I18N_NOOP( "Earth" ));
@@ -99,10 +99,10 @@ void modCalcPlanets::slotComputePosition (void)
// Pointer to hold planet data. Pointer is used since it has to
// hold objects of different type. It's safe to use new/delete
// because exceptions are disallowed.
- KSPlanetBase* p = 0;
+ KSPlanetBase* p = 0;
switch( PlanetComboBox->currentIndex() ) {
- case 0 :
+ case 0 :
p = new KSPlanet(KSPlanetBase::MERCURY); break;
case 1:
p = new KSPlanet(KSPlanetBase::VENUS); break;
@@ -127,10 +127,10 @@ void modCalcPlanets::slotComputePosition (void)
}
// Show data.
- p->findPosition( &num, geoPlace->lat(), &LST, &Earth);
- p->EquatorialToHorizontal( &LST, geoPlace->lat());
+ p->findPosition( &num, geoPlace->lat(), &LST, &Earth);
+ p->EquatorialToHorizontal( &LST, geoPlace->lat());
showCoordinates( *p );
- // Cleanup.
+ // Cleanup.
delete p;
}
@@ -250,7 +250,7 @@ void modCalcPlanets::processLines( QTextStream &istream )
unsigned int i = 0, nline = 0;
QTime utB;
QDate dtB;
- dms longB, latB, hlongB, hlatB, glongB, glatB, raB, decB, azmB, altB;
+ CachingDms longB, latB, hlongB, hlatB, glongB, glatB, raB, decB, azmB, altB;
double rSunB(0.0), rEarthB(0.0);
//Initialize planet names
@@ -341,7 +341,7 @@ void modCalcPlanets::processLines( QTextStream &istream )
// Read Longitude and write in ostream if corresponds
if (LongCheckBatch->isChecked() ) {
- longB = dms::fromString( fields[i],true);
+ longB = CachingDms::fromString( fields[i],true);
i++;
} else {
longB = LongBoxBatch->createDms(true);
@@ -351,17 +351,17 @@ void modCalcPlanets::processLines( QTextStream &istream )
// Read Latitude
if (LatCheckBatch->isChecked() ) {
- latB = dms::fromString( fields[i], true);
+ latB = CachingDms::fromString( fields[i], true);
i++;
} else {
latB = LatBoxBatch->createDms(true);
}
- if ( AllRadioBatch->isChecked() || LatCheckBatch->isChecked() )
+ if ( AllRadioBatch->isChecked() || LatCheckBatch->isChecked() )
lineToWrite += latB.toDMSString() + space;
KStarsDateTime edt( dtB, utB );
- dms LST = edt.gst() + longB;
+ CachingDms LST = edt.gst() + longB;
KSNumbers num( edt.djd() );
KSPlanet Earth( I18N_NOOP( "Earth" ));
@@ -411,7 +411,7 @@ void modCalcPlanets::processLines( QTextStream &istream )
// Delete object
delete kspb;
-
+
nline++;
}
diff --git a/kstars/tools/observinglist.cpp b/kstars/tools/observinglist.cpp
index 4c14f8a..09af72e 100644
--- a/kstars/tools/observinglist.cpp
+++ b/kstars/tools/observinglist.cpp
@@ -65,6 +65,7 @@
#include <QDir>
#include <QFrame>
#include <QTextStream>
+#include <QStandardItem>
#include <QStandardItemModel>
#include <QSortFilterProxyModel>
#include <QHeaderView>
@@ -117,25 +118,33 @@ ObservingList::ObservingList()
//Set up the Table Views
m_WishListModel = new QStandardItemModel( 0, 5, this );
m_SessionModel = new QStandardItemModel( 0, 5 );
- m_WishListModel->setHorizontalHeaderLabels( QStringList() << i18n( "Name" )
- << i18n( "Alternate Name" )
- << i18nc( "Right Ascension", "RA" )
- << i18nc( "Declination", "Dec" )
- << i18nc( "Magnitude", "Mag" )
- << i18n( "Type" ) );
- m_SessionModel->setHorizontalHeaderLabels( QStringList() << i18n( "Name" )
- << i18n( "Alternate Name" )
- << i18nc( "Right Ascension", "RA" )
- << i18nc( "Declination", "Dec" )
- << i18nc( "Magnitude", "Mag" )
- << i18n( "Type" )
- << i18nc( "Constellation", "Constell." )
- << i18n( "Time" )
- << i18nc( "Altitude", "Alt" )
- << i18nc( "Azimuth", "Az" ));
+
+ m_WishListModel->setHorizontalHeaderLabels(
+ QStringList() << i18n( "Name" )
+ << i18n( "Alternate Name" )
+ << i18nc( "Right Ascension", "RA" )
+ << i18nc( "Declination", "Dec" )
+ << i18nc( "Magnitude", "Mag" )
+ << i18n( "Type" )
+ << i18n( "Current Altitude" )
+ );
+ m_SessionModel->setHorizontalHeaderLabels(
+ QStringList() << i18n( "Name" )
+ << i18n( "Alternate Name" )
+ << i18nc( "Right Ascension", "RA" )
+ << i18nc( "Declination", "Dec" )
+ << i18nc( "Magnitude", "Mag" )
+ << i18n( "Type" )
+ << i18nc( "Constellation", "Constell." )
+ << i18n( "Time" )
+ << i18nc( "Altitude", "Alt" )
+ << i18nc( "Azimuth", "Az" )
+ );
+
m_WishListSortModel = new QSortFilterProxyModel( this );
m_WishListSortModel->setSourceModel( m_WishListModel );
m_WishListSortModel->setDynamicSortFilter( true );
+ m_WishListSortModel->setSortRole( Qt::UserRole );
ui->WishListView->setModel( m_WishListSortModel );
ui->WishListView->horizontalHeader()->setStretchLastSection( true );
@@ -205,11 +214,11 @@ ObservingList::ObservingList()
connect( ui->OALExport, SIGNAL( clicked() ),
this, SLOT( slotOALExport() ) );
//Add icons to Push Buttons
- ui->OpenButton->setIcon( QIcon::fromTheme("document-open") );
- ui->SaveButton->setIcon( QIcon::fromTheme("document-save") );
- ui->SaveAsButton->setIcon( QIcon::fromTheme("document-save-as") );
- ui->WizardButton->setIcon( QIcon::fromTheme("tools-wizard") );
- ui->MiniButton->setIcon( QIcon::fromTheme("view-restore") );
+ ui->OpenButton->setIcon( QIcon::fromTheme("document-open", QIcon(":/icons/breeze/default/document-open.png")) );
+ ui->SaveButton->setIcon( QIcon::fromTheme("document-save", QIcon(":/icons/breeze/default/document-save.png")) );
+ ui->SaveAsButton->setIcon( QIcon::fromTheme("document-save-as", QIcon(":/icons/breeze/default/document-save-as.png")) );
+ ui->WizardButton->setIcon( QIcon::fromTheme("tools-wizard", QIcon(":/icons/breeze/default/tools-wizard.png")) );
+ ui->MiniButton->setIcon( QIcon::fromTheme("view-restore", QIcon(":/icons/breeze/default/view-restore.png")) );
noSelection = true;
showScope = false;
ui->NotesLabel->setEnabled( false );
@@ -223,6 +232,28 @@ ObservingList::ObservingList()
m_NoImagePixmap = QPixmap(":/images/noimage.png").scaledToHeight(ui->ImagePreview->width());
+ m_altCostHelper = [ this ]( const SkyPoint &p ) -> QStandardItem * {
+ double inf = std::numeric_limits<double>::infinity();
+ double altCost = 0.;
+ QString itemText;
+ qDebug() << "p has Dec" << p.dec().toDMSString() << "and p.maxAlt( " << geo->lat()->toDMSString() << " ) returns " << p.maxAlt( *( geo->lat() ) );
+ if ( p.maxAlt( *( geo->lat() ) ) <= 0. ) {
+ altCost = -inf;
+ itemText = i18n( "Never rises" );
+ }
+ else {
+ altCost = ( p.alt().Degrees() / p.maxAlt( *( geo->lat() ) ) ) * 100.;
+ if ( altCost < 0 )
+ itemText = i18nc( "Short text to describe that object has not risen yet", "Not risen" );
+ else
+ itemText = QString::number( altCost, 'f', 0 ) + '%';
+ }
+
+ QStandardItem *altItem = new QStandardItem( itemText );
+ altItem->setData( altCost, Qt::UserRole );
+ return altItem;
+ };
+
slotLoadWishList(); //Load the wishlist from disk if present
m_CurrentObject = 0;
setSaveImagesButton();
@@ -232,6 +263,11 @@ ObservingList::ObservingList()
// Set up for the large-size view
bIsLarge = false;
slotToggleSize();
+
+ m_altitudeUpdater = new QTimer( this );
+ connect( m_altitudeUpdater, SIGNAL( timeout() ), this, SLOT( slotUpdateAltitudes() ) );
+ m_altitudeUpdater->start( 120000 ); // update altitudes every 2 minutes
+
}
ObservingList::~ObservingList()
@@ -282,7 +318,7 @@ void ObservingList::slotAddObject( SkyObject *obj, bool session, bool update ) {
obj->type() == SkyObject::PLANET) && obj->mag() == 0)
{
KSNumbers num( dt.djd() );
- dms LST = geo->GSTtoLST( dt.gst() );
+ CachingDms LST = geo->GSTtoLST( dt.gst() );
obj->updateCoords(&num, true, geo->lat(), &LST, true);
}
@@ -292,24 +328,46 @@ void ObservingList::slotAddObject( SkyObject *obj, bool session, bool update ) {
SkyPoint p = obj->recomputeCoords( dt, geo );
+ QList<QStandardItem*> itemList;
+
+ auto getItemWithUserRole = [] ( const QString &itemText ) -> QStandardItem * {
+ QStandardItem *ret = new QStandardItem( itemText );
+ ret->setData( itemText, Qt::UserRole );
+ return ret;
+ };
+
+ // Fill itemlist with items that are common to both wishlist additions and session plan additions
+ auto populateItemList = [ &getItemWithUserRole, &itemList, &finalObjectName, &obj, &p, &smag ]() {
+ itemList.clear();
+ QStandardItem *keyItem = getItemWithUserRole( finalObjectName );
+ keyItem->setData( QVariant::fromValue<void *>( static_cast<void *>( obj ) ), Qt::UserRole + 1 );
+ itemList << keyItem // NOTE: The rest of the methods assume that the SkyObject pointer is available in the first column!
+ << getItemWithUserRole( obj->translatedLongName() )
+ << getItemWithUserRole( p.ra().toHMSString() )
+ << getItemWithUserRole( p.dec().toDMSString() )
+ << getItemWithUserRole( smag )
+ << getItemWithUserRole( obj->typeName() );
+ };
+
//Insert object in the Wish List
if( addToWishList ) {
+
m_WishList.append( obj );
m_CurrentObject = obj;
- QList<QStandardItem*> itemList;
//QString ra, dec;
//ra = "";//p.ra().toHMSString();
//dec = p.dec().toDMSString();
- itemList<< new QStandardItem( finalObjectName )
- << new QStandardItem( obj->translatedLongName() )
- << new QStandardItem( p.ra().toHMSString() )
- << new QStandardItem( p.dec().toDMSString() )
- << new QStandardItem( smag )
- << new QStandardItem( obj->typeName() );
-
+ populateItemList();
+ // FIXME: Instead sort by a "clever" observability score, calculated as follows:
+ // - First sort by (max altitude) - (current altitude) rounded off to the nearest
+ // - Weight by declination - latitude (in the northern hemisphere, southern objects get higher precedence)
+ // - Demote objects in the hole
+ SkyPoint p = obj->recomputeCoords( KStarsDateTime( QDateTime::currentDateTime() ), geo ); // Current => now
+ itemList << m_altCostHelper( p );
m_WishListModel->appendRow( itemList );
+
//Note addition in statusbar
KStars::Instance()->statusBar()->showMessage( i18n( "Added %1 to observing list.", finalObjectName ), 0 );
ui->WishListView->resizeColumnsToContents();
@@ -332,23 +390,16 @@ void ObservingList::slotAddObject( SkyObject *obj, bool session, bool update ) {
BestTime->setData( QString( "--" ), Qt::DisplayRole );
}
else {*/
- ra = p.ra().toHMSString();
- dec = p.dec().toDMSString();
- BestTime->setData( TimeHash.value( finalObjectName, obj->transitTime( dt, geo ) ), Qt::DisplayRole );
- alt = p.alt().toDMSString();
- az = p.az().toDMSString();
+ BestTime->setData( TimeHash.value( finalObjectName, obj->transitTime( dt, geo ) ), Qt::DisplayRole );
+ alt = p.alt().toDMSString();
+ az = p.az().toDMSString();
//}
// TODO: Change the rest of the parameters to their appropriate datatypes.
- itemList<< new QStandardItem( finalObjectName )
- << new QStandardItem( obj->translatedLongName() )
- << new QStandardItem( ra )
- << new QStandardItem( dec )
- << new QStandardItem( smag )
- << new QStandardItem( obj->typeName() )
- << new QStandardItem( KSUtils::constNameToAbbrev( KStarsData::Instance()->skyComposite()->constellationBoundary()->constellationName( obj ) ) )
- << BestTime
- << new QStandardItem( alt )
- << new QStandardItem( az );
+ populateItemList();
+ itemList << getItemWithUserRole( KSUtils::constNameToAbbrev( KStarsData::Instance()->skyComposite()->constellationBoundary()->constellationName( obj ) ) )
+ << BestTime
+ << getItemWithUserRole( alt )
+ << getItemWithUserRole( az );
m_SessionModel->appendRow( itemList );
//Adding an object should trigger the modified flag
@@ -361,7 +412,7 @@ void ObservingList::slotAddObject( SkyObject *obj, bool session, bool update ) {
}
void ObservingList::slotRemoveObject( SkyObject *o, bool session, bool update ) {
- if( ! update ) {
+ if( ! update ) { // EH?!
if ( ! o )
o = SkyMap::Instance()->clickedObject();
else if( sessionView ) //else if is needed as clickedObject should not be removed from the session list.
@@ -424,14 +475,9 @@ void ObservingList::slotRemoveSelectedObjects() {
QModelIndex sortIndex, index;
sortIndex = getActiveSortModel()->index( irow, 0 );
index = getActiveSortModel()->mapToSource( sortIndex );
-
- foreach ( SkyObject *o, getActiveList() ) {
- //Stars named "star" must be matched by coordinates
- if (getObjectName(o) == index.data().toString() ) {
- slotRemoveObject(o, sessionView);
- break;
- }
- }
+ SkyObject *o = static_cast<SkyObject *>( index.data( Qt::UserRole + 1 ).value<void *>() );
+ Q_ASSERT( o );
+ slotRemoveObject(o, sessionView);
}
}
@@ -692,34 +738,19 @@ void ObservingList::slotEyepieceView() {
void ObservingList::slotAVT() {
QModelIndexList selectedItems;
// TODO: Think and see if there's a more effecient way to do this. I can't seem to think of any, but this code looks like it could be improved. - Akarsh
- if( sessionView ) {
+ selectedItems = ( sessionView ? m_SessionSortModel->mapSelectionToSource( ui->SessionView->selectionModel()->selection() ).indexes() : m_WishListSortModel->mapSelectionToSource( ui->WishListView->selectionModel()->selection() ).indexes() );
+
+ if ( selectedItems.size() ) {
QPointer<AltVsTime> avt = new AltVsTime( KStars::Instance() );
- for ( int irow = m_SessionModel->rowCount()-1; irow >= 0; --irow ) {
- if ( ui->SessionView->selectionModel()->isRowSelected( irow, QModelIndex() ) ) {
- QModelIndex mSortIndex = m_SessionSortModel->index( irow, 0 );
- QModelIndex mIndex = m_SessionSortModel->mapToSource( mSortIndex );
- foreach ( SkyObject *o, sessionList() ) {
- if ( getObjectName(o) == mIndex.data().toString() ) {
- avt->processObject( o );
- break;
- }
- }
+ foreach ( const QModelIndex &i, selectedItems ) {
+ if ( i.column() == 0 ) {
+ SkyObject *o = static_cast<SkyObject *>( i.data( Qt::UserRole + 1 ).value<void *>() );
+ Q_ASSERT( o );
+ avt->processObject( o );
}
}
avt->exec();
delete avt;
- } else {
- selectedItems = m_WishListSortModel->mapSelectionToSource( ui->WishListView->selectionModel()->selection() ).indexes();
- if ( selectedItems.size() ) {
- QPointer<AltVsTime> avt = new AltVsTime( KStars::Instance() );
- foreach ( const QModelIndex &i, selectedItems ) { // FIXME: This code is repeated too many times. We should find a better way to do it.
- foreach ( SkyObject *o, obsList() )
- if ( getObjectName(o) == i.data().toString() )
- avt->processObject( o );
- }
- avt->exec();
- delete avt;
- }
}
}
@@ -975,15 +1006,15 @@ double ObservingList::findAltitude( SkyPoint *p, double hour ) {
void ObservingList::slotToggleSize() {
if ( isLarge() ) {
- ui->MiniButton->setIcon( QIcon::fromTheme("view-fullscreen") );
+ ui->MiniButton->setIcon( QIcon::fromTheme("view-fullscreen", QIcon(":/icons/breeze/default/view-fullscreen.png")) );
//Abbreviate text on each button
ui->FindButton->setText( "" );
- ui->FindButton->setIcon( QIcon::fromTheme("edit-find") );
+ ui->FindButton->setIcon( QIcon::fromTheme("edit-find", QIcon(":/icons/breeze/default/edit-find.png")) );
ui->WUTButton->setText( i18nc( "Abbreviation of What's Up Tonight", "WUT" ) );
ui->saveImages->setText( "" );
ui->DeleteAllImages->setText( "" );
- ui->saveImages->setIcon( QIcon::fromTheme( "download" ) );
- ui->DeleteAllImages->setIcon( QIcon::fromTheme( "edit-delete" ) );
+ ui->saveImages->setIcon( QIcon::fromTheme( "download", QIcon(":/icons/breeze/default/download.png")) );
+ ui->DeleteAllImages->setIcon( QIcon::fromTheme( "edit-delete", QIcon(":/icons/breeze/default/edit-delete.png")) );
ui->refLabel->setText( i18nc( "Abbreviation for Reference Images:", "RefImg:" ) );
ui->addLabel->setText( i18nc( "Add objects to a list", "Add:" ) );
//Hide columns 1-5
@@ -1021,7 +1052,7 @@ void ObservingList::slotToggleSize() {
this->resize( 400, this->height() );
update();
} else {
- ui->MiniButton->setIcon( QIcon::fromTheme( "view-restore" ) );
+ ui->MiniButton->setIcon( QIcon::fromTheme( "view-restore", QIcon(":/icons/breeze/default/view-restore.png")) );
//Show columns 1-5
ui->WishListView->showColumn(1);
ui->WishListView->showColumn(2);
@@ -1460,3 +1491,21 @@ QString ObservingList::getObjectName(const SkyObject *o, bool translated)
return finalObjectName;
}
+
+
+void ObservingList::slotUpdateAltitudes() {
+ // FIXME: Update upon gaining visibility, do not update when not visible
+ KStarsDateTime now( QDateTime::currentDateTime() );
+ qDebug() << "Updating altitudes in observation planner.";
+ for ( int irow = m_WishListModel->rowCount() - 1; irow >= 0; --irow ) {
+ QModelIndex idx = m_WishListSortModel->mapToSource( m_WishListSortModel->index( irow, 0 ) );
+ SkyObject *o = static_cast<SkyObject *>( idx.data( Qt::UserRole + 1 ).value<void *>() );
+ Q_ASSERT( o );
+ SkyPoint p = o->recomputeCoords( now, geo );
+ idx = m_WishListSortModel->mapToSource( m_WishListSortModel->index( irow, m_WishListSortModel->columnCount() - 1 ) );
+ QStandardItem *replacement = m_altCostHelper( p );
+ m_WishListModel->setData( idx, replacement->data( Qt::DisplayRole ), Qt::DisplayRole );
+ m_WishListModel->setData( idx, replacement->data( Qt::UserRole ), Qt::UserRole );
+ delete replacement;
+ }
+}
diff --git a/kstars/tools/observinglist.h b/kstars/tools/observinglist.h
index 619fb5e..4838816 100644
--- a/kstars/tools/observinglist.h
+++ b/kstars/tools/observinglist.h
@@ -18,14 +18,18 @@
#ifndef OBSERVINGLIST_H_
#define OBSERVINGLIST_H_
+#include "kstarsdatetime.h"
+
#include <QList>
#include <QAbstractTableModel>
#include <QDialog>
+#include <QTimer>
//#include <KIO/CopyJob>
#include "ui_observinglist.h"
-#include "kstarsdatetime.h"
+
+#include <functional>