File indexing completed on 2024-03-24 15:17:05

0001 /*
0002     SPDX-FileCopyrightText: 2017 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "ui_opships.h"
0010 #include "ui_opshipsdisplay.h"
0011 #include "ui_opshipscache.h"
0012 
0013 class KConfigDialog;
0014 class FileDownloader;
0015 
0016 class OpsHIPSDisplay : public QFrame, public Ui::OpsHIPSDisplay
0017 {
0018     Q_OBJECT
0019 
0020   public:
0021     explicit OpsHIPSDisplay();
0022 };
0023 
0024 class OpsHIPSCache : public QFrame, public Ui::OpsHIPSCache
0025 {
0026     Q_OBJECT
0027 
0028   public:
0029     explicit OpsHIPSCache();
0030 };
0031 
0032 /**
0033  * @class OpsHIPS
0034  *
0035  * HIPS Settings including download of external sources and enabling/disabling them accordingly.
0036  *
0037  * @author Jasem Mutlaq
0038  */
0039 class OpsHIPS : public QFrame, public Ui::OpsHIPS
0040 {
0041     Q_OBJECT
0042 
0043   public:
0044     explicit OpsHIPS();
0045     virtual ~OpsHIPS() override = default;
0046 
0047   public slots:
0048     void slotRefresh();    
0049 
0050   protected slots:
0051     void downloadReady();
0052     void downloadError(const QString &errorString);
0053     void previewReady();
0054     void slotItemUpdated(QListWidgetItem *item);
0055     void slotItemClicked(QListWidgetItem *item);
0056 
0057   private:
0058 
0059     void setPreview(const QString &id, const QString &url);
0060 
0061     KConfigDialog *m_ConfigDialog { nullptr };
0062     FileDownloader *downloadJob { nullptr };
0063     FileDownloader *previewJob { nullptr };
0064 
0065     QList<QMap<QString,QString>> sources;
0066     bool dirty { false };
0067 };