File indexing completed on 2024-04-28 15:09:03

0001 
0002 #pragma once
0003 
0004 #include "ui_opsastrometryindexfiles.h"
0005 
0006 #include <QDialog>
0007 #include <QMap>
0008 #include <QString>
0009 #include <QDir>
0010 #include <QTimer>
0011 
0012 class QNetworkAccessManager;
0013 
0014 class Align;
0015 class KConfigDialog;
0016 
0017 namespace Ekos
0018 {
0019 class Align;
0020 
0021 class OpsAstrometryIndexFiles : public QDialog, public Ui::OpsAstrometryIndexFiles
0022 {
0023     Q_OBJECT
0024 
0025   public:
0026     explicit OpsAstrometryIndexFiles(Align *parent);
0027     virtual ~OpsAstrometryIndexFiles() override = default;
0028 
0029   protected:
0030     void showEvent(QShowEvent *) override;
0031 
0032   public slots:
0033     void slotUpdate();
0034     void slotOpenIndexFileDirectory();
0035     void downloadOrDeleteIndexFiles(bool checked);
0036     void addDirectoryToList(QString directory);
0037     void removeDirectoryFromList(QString directory);
0038     void updateIndexDirectoryList();
0039 
0040   private:
0041     void downloadIndexFile(const QString &URL, const QString &fileN, QCheckBox *checkBox, int currentIndex,
0042                            int maxIndex, double fileSize);
0043     bool astrometryIndicesAreAvailable();
0044     void setDownloadInfoVisible(QString indexSeriesName,QCheckBox *checkBox, bool set);
0045     int indexFileCount(QString indexName);
0046     bool fileCountMatches(QDir directory, QString indexName);
0047     void disconnectDownload(QMetaObject::Connection *cancelConnection, QMetaObject::Connection *replyConnection, QMetaObject::Connection *percentConnection);
0048 
0049     KConfigDialog *m_ConfigDialog { nullptr };
0050     Align *alignModule { nullptr };
0051     QNetworkAccessManager *manager { nullptr };
0052     QMap<float, QString> astrometryIndex;
0053     QTimer timeoutTimer;
0054     int downloadSpeed { 0 }; //bytes per millisecond
0055     int actualdownloadSpeed { 0 }; //bytes per millisecond
0056 };
0057 }