1 /* 2 SPDX-FileCopyrightText: 2002 Pablo de Vicente <vicente@oan.es> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include "ui_modcalcdaylength.h" 10 11 #include <QFrame> 12 13 class QDate; 14 class QTextStream; 15 class QTime; 16 17 class GeoLocation; 18 19 /** 20 * Module to compute the equatorial coordinates for a given date and time 21 * from a given epoch or equinox 22 * 23 * @author Pablo de Vicente 24 */ 25 class modCalcDayLength : public QFrame, public Ui::modCalcDayLengthDlg 26 { 27 Q_OBJECT 28 29 public: 30 explicit modCalcDayLength(QWidget *p); 31 32 virtual ~modCalcDayLength() override = default; 33 34 public slots: 35 void slotLocation(); 36 void slotLocationBatch(); 37 void slotComputeAlmanac(); 38 void slotRunBatch(); 39 void slotViewBatch(); 40 void slotCheckFiles(); 41 42 private: 43 void updateAlmanac(const QDate &d, GeoLocation *geo); 44 QTime lengthOfDay(const QTime &setQTime, const QTime &riseQTime); 45 46 void showCurrentDate(); 47 void initGeo(); 48 void processLines(QTextStream &istream); 49 50 GeoLocation *geoPlace { nullptr }; 51 GeoLocation *geoBatch { nullptr }; 52 QString srTimeString, stTimeString, ssTimeString; 53 QString mrTimeString, mtTimeString, msTimeString; 54 QString srAzString, stAltString, ssAzString; 55 QString mrAzString, mtAltString, msAzString; 56 QString daylengthString, lunarphaseString; 57 }; 58