File indexing completed on 2024-05-12 16:58:59

0001 /*
0002  *   SPDX-FileCopyrightText: 2011 Jonathan Thomas <echidnaman@kubuntu.org>
0003  *
0004  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 // Qt includes
0010 #include "discovercommon_export.h"
0011 #include "resources/AbstractBackendUpdater.h"
0012 #include <QSet>
0013 #include <QString>
0014 
0015 #include <QIcon>
0016 
0017 class AbstractResource;
0018 class DISCOVERCOMMON_EXPORT UpdateItem
0019 {
0020 public:
0021     explicit UpdateItem(AbstractResource *app);
0022 
0023     ~UpdateItem();
0024 
0025     void setProgress(qreal progress);
0026     qreal progress() const;
0027 
0028     AbstractBackendUpdater::State state() const
0029     {
0030         return m_state;
0031     }
0032     void setState(AbstractBackendUpdater::State state)
0033     {
0034         m_state = state;
0035     }
0036 
0037     QString changelog() const;
0038     void setChangelog(const QString &changelog);
0039 
0040     AbstractResource *app() const;
0041     QString name() const;
0042     QVariant icon() const;
0043     qint64 size() const;
0044     Qt::CheckState checked() const;
0045 
0046     void setExtended(bool extended)
0047     {
0048         m_isExtended = extended;
0049     }
0050     AbstractResource *resource() const
0051     {
0052         return m_app;
0053     }
0054     bool isVisible() const
0055     {
0056         return m_visible;
0057     }
0058     bool isExtended() const
0059     {
0060         return m_isExtended;
0061     }
0062     void setVisible(bool visible)
0063     {
0064         m_visible = visible;
0065     }
0066 
0067 private:
0068     AbstractResource *const m_app;
0069 
0070     const QString m_categoryName;
0071     const QIcon m_categoryIcon;
0072     qreal m_progress = 0.;
0073     bool m_visible = true;
0074     AbstractBackendUpdater::State m_state = AbstractBackendUpdater::None;
0075     QString m_changelog;
0076     bool m_isExtended = false;
0077 };