File indexing completed on 2024-03-24 03:47:36
0001 /* 0002 SPDX-FileCopyrightText: 2002 Pablo de Vicente <vicente@oan.es> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "ui_modcalcdaylength.h" 0010 0011 #include <QFrame> 0012 0013 class QDate; 0014 class QTextStream; 0015 class QTime; 0016 0017 class GeoLocation; 0018 0019 /** 0020 * Module to compute the equatorial coordinates for a given date and time 0021 * from a given epoch or equinox 0022 * 0023 * @author Pablo de Vicente 0024 */ 0025 class modCalcDayLength : public QFrame, public Ui::modCalcDayLengthDlg 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 explicit modCalcDayLength(QWidget *p); 0031 0032 virtual ~modCalcDayLength() override = default; 0033 0034 public slots: 0035 void slotLocation(); 0036 void slotLocationBatch(); 0037 void slotComputeAlmanac(); 0038 void slotRunBatch(); 0039 void slotViewBatch(); 0040 void slotCheckFiles(); 0041 0042 private: 0043 void updateAlmanac(const QDate &d, GeoLocation *geo); 0044 QTime lengthOfDay(const QTime &setQTime, const QTime &riseQTime); 0045 0046 void showCurrentDate(); 0047 void initGeo(); 0048 void processLines(QTextStream &istream); 0049 0050 GeoLocation *geoPlace { nullptr }; 0051 GeoLocation *geoBatch { nullptr }; 0052 QString srTimeString, stTimeString, ssTimeString; 0053 QString mrTimeString, mtTimeString, msTimeString; 0054 QString srAzString, stAltString, ssAzString; 0055 QString mrAzString, mtAltString, msAzString; 0056 QString daylengthString, lunarphaseString; 0057 };