Kstars
9 #include "kstars_debug.h"
10 #include "kstarsdata.h"
11 #include "ksnotification.h"
12 #include "kstarsdatetime.h"
13 #include "catalogsdb.h"
14 #if defined(KSTARS_LITE)
15 #include "kstarslite.h"
21 #if !defined(KSTARS_LITE)
26 #if !defined(KSTARS_LITE)
30 #include <KLocalizedString>
32 #include <QApplication>
33 #if !defined(KSTARS_LITE)
34 #include <QCommandLineParser>
35 #include <QCommandLineOption>
41 #include <QTranslator>
43 #if defined(Q_OS_LINUX) || defined(Q_OS_OSX)
48 static const char description[] =
I18N_NOOP(
"Desktop Planetarium");
50 "Some images in KStars are for non-commercial use only. See README.images.");
53 #if defined(Q_OS_ANDROID)
57 int main(
int argc,
char *argv[])
59 #if defined(Q_OS_LINUX) || defined(Q_OS_OSX)
61 signal(SIGPIPE, SIG_IGN);
64 #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
71 if (!KSUtils::setupMacKStarsIfNeeded())
73 KSNotification::sorry(
i18n(
"Sorry, without a KStars Data Directory, KStars "
74 "cannot operate. Exiting program now."));
78 Options::setKStarsFirstRun(
false);
79 app.setApplicationVersion(KSTARS_VERSION);
86 #if defined(KSTARS_LITE)
87 #if defined(__ANDROID__)
89 "kstars",
"/data/data/org.kde.kstars.lite/qt-reserved-files/share/kstars/locale");
104 QString(
"%1 %2").
arg(KSTARS_VERSION).
arg(KSTARS_BUILD_RELEASE);
108 i18n(
" (c), The KStars Team\n\nThe Gaussian Process Guider Algorithm: (c) "
109 "2014-2017 Max Planck Society"),
110 i18nc(
"Build number followed by copyright notice",
"Build: %1\n\n%2\n\n%3",
113 "Pre-release beta snapshot. Do not use in production." :
116 "https://edu.kde.org/kstars");
117 aboutData.addAuthor(
i18n(
"Jason Harris"),
i18n(
"Original Author"),
119 aboutData.addAuthor(
i18n(
"Jasem Mutlaq"),
i18n(
"Current Maintainer"),
124 "http://www.ph.utexas.edu/~asimha");
125 aboutData.addAuthor(
i18n(
"Robert Lancaster"),
126 i18n(
"FITSViewer & Ekos Improvements. KStars OSX Port"),
130 i18n(
"Ekos Scheduler Improvements"));
131 aboutData.addAuthor(
i18n(
"Wolfgang Reissenberger"),
QString(),
133 i18n(
"Ekos Scheduler & Observatory Improvements"));
135 i18n(
"FITS, Focus, Guide Improvements"));
137 i18n(
"Binary Asteroid List, DSO Database & Catalogs"));
140 aboutData.addAuthor(
i18n(
"Artem Fedoskin"),
i18n(
"KStars Lite"),
146 "https://www.evermann.de");
150 aboutData.addAuthor(
i18n(
"Médéric Boquien"),
QString(),
152 aboutData.addAuthor(
i18n(
"Jérôme Sonrier"),
QString(),
157 aboutData.addAuthor(
i18n(
"Samikshan Bairagya"),
QString(),
164 i18n(
"Valery Kharitonov"),
165 i18n(
"Converted labels containing technical terms to links to documentation"));
166 aboutData.addCredit(
i18n(
"Ana-Maria Constantin"),
167 i18n(
"Technical documentation on Astronomy and KStars"));
168 aboutData.addCredit(
i18n(
"Andrew Stepanenko"),
169 i18n(
"Guiding code based on lin_guider"));
170 aboutData.addCredit(
i18n(
"Nuno Pinheiro"),
i18n(
"Artwork"));
172 i18n(
"Utkarsh Simha"),
173 i18n(
"Improvements to observation plan execution, star hopper etc."));
174 aboutData.addCredit(
i18n(
"Daniel Holler"),
175 i18n(
"Extensive testing and suggestions for Ekos/INDI."));
177 i18n(
"Stephane Lucas"),
178 i18n(
"Extensive testing and suggestions for Ekos Scheduler. KStars OSX Port"));
179 aboutData.addCredit(
i18n(
"Yuri Fabirovsky"),
180 i18n(
"Splash screen for both regular KStars and KStars Lite."));
181 aboutData.addCredit(
i18n(
"Jamie Smith"),
i18n(
"KStars OSX Port."));
182 aboutData.addCredit(
i18n(
"Patrick Molenaar"),
i18n(
"Bahtinov Focus Assistant."));
187 aboutData.setupCommandLine(&parser);
200 QStringLiteral(
"[urls...]"));
203 aboutData.processCommandLine(&parser);
205 if (parser.
isSet(
"dump"))
207 qCDebug(KSTARS) <<
"Dumping sky image";
210 const char *format =
"PNG";
221 else if (ext.
toLower() ==
"gif")
225 else if (ext.
toLower() ==
"pnm")
229 else if (ext.
toLower() ==
"bmp")
235 qCWarning(KSTARS) <<
i18n(
"Could not parse image format of %1; assuming PNG.",
247 qCWarning(KSTARS) <<
"Unable to parse arguments Width: "
248 << parser.
value(
"width")
249 <<
" Height: " << parser.
value(
"height");
255 SLOT(slotConsoleMessage(
QString)));
286 kdt = dat->
geo()->LTtoUT(
292 qCWarning(KSTARS) <<
i18n(
293 "Supplied date string is invalid: %1. Using CPU date/time instead.",
312 SkyPoint dest(Options::focusRA(), Options::focusDec());
313 map->setDestination(dest);
314 map->destination()->EquatorialToHorizontal(dat->
lst(), dat->
geo()->
lat());
315 map->setFocus(
map->destination());
316 map->focus()->EquatorialToHorizontal(dat->
lst(), dat->
geo()->
lat());
324 std::cout <<
i18n(
"Script executed.").
toUtf8().
data() << std::endl;
328 qCWarning(KSTARS) <<
i18n(
"Could not execute script.");
332 qApp->processEvents();
333 map->setupProjector();
334 map->exportSkyImage(&sky);
335 qApp->processEvents();
337 if (!sky.save(fname, format))
338 qCWarning(KSTARS) <<
"Unable to save image: " << fname;
340 qCDebug(KSTARS) <<
"Saved to file: %1" << fname;
352 qWarning() <<
i18n(
"Using CPU date/time instead.");
373 foreach (
const QString &url, urls)
Extension of QDateTime for KStars KStarsDateTime can represent the date/time as a Julian Day,...
const char * versionString()
QString number(int n, int base)
void updateTime(GeoLocation *geo, const bool automaticDSTchange=true)
Update the Simulation Clock.
void setLocationFromOptions()
Set the GeoLocation according to the values stored in the configuration file.
void setApplicationDescription(const QString &description)
KCRASH_EXPORT void initialize()
Stores dms coordinates for a point in the sky. for converting between coordinate systems.
static void setApplicationData(const KAboutData &aboutData)
void loadFromConfig()
Read color-scheme data from the Config object.
bool mkdir(const QString &dirName) const const
static KStarsDateTime fromString(const QString &s)
void addPositionalArgument(const QString &name, const QString &description, const QString &syntax)
static KStarsDateTime currentDateTimeUtc()
QStringList positionalArguments() const const
static void addDomainLocaleDir(const QByteArray &domain, const QString &path)
void setFullTimeUpdate()
The Sky is updated more frequently than the moon, which is updated more frequently than the planets.
int lastIndexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
static KStars * Instance()
void setTime(const QTime &t)
Assign the Time according to a QTime object.
bool initialize()
Initialize KStarsData while running splash screen.
QString i18n(const char *text, const TYPE &arg...)
const CachingDms * lat() const
void process(const QStringList &arguments)
ColorScheme * colorScheme()
bool isEmpty() const const
QByteArray toUtf8() const const
bool mkpath(const QString &dirPath) const const
Q_INVOKABLE SimClock * clock()
QString value(const QString &optionName) const const
int toInt(bool *ok, int base) const const
bool isEmpty() const const
bool executeScript(const QString &name, SkyMap *map)
Execute a script.
QDateTime fromString(const QString &string, Qt::DateFormat format)
bool isSet(const QString &name) const const
void setDate(const QDate &d)
Assign the Date according to a QDate object.
QString toLower() const const
Q_SCRIPTABLE Q_NOREPLY void openFITS(const QUrl &imageUrl)
DBUS interface function.
QDate fromString(const QString &string, Qt::DateFormat format)
const QList< QKeySequence > & quit()
void setAttribute(Qt::ApplicationAttribute attribute, bool on)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
Q_SCRIPTABLE Q_NOREPLY void setUTC(const KStarsDateTime &newtime)
DBUS function to set the time of the SimClock.
Canvas widget for displaying the sky bitmap; also handles user interaction events.
bool isValid() const const
QString i18nc(const char *context, const char *text, const TYPE &arg...)
bool addOption(const QCommandLineOption &option)
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
static void setApplicationDomain(const char *domain)
QFuture< void > map(Sequence &sequence, MapFunctor function)
QString mid(int position, int n) const const
static KStarsLite * createInstance(bool doSplash, bool clockrunning=true, const QString &startDateString=QString())
Create an instance of this class.
static KStars * createInstance(bool doSplash, bool clockrunning=true, const QString &startDateString=QString())
Create an instance of this class.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sat Aug 13 2022 04:01:55 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.