File indexing completed on 2024-05-12 16:25:36

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "command.h"
0010 #include "libruqola_private_export.h"
0011 #include <QDebug>
0012 #include <QVector>
0013 class DownloadAppsLanguagesManager;
0014 class LIBRUQOLACORE_TESTS_EXPORT Commands
0015 {
0016 public:
0017     Commands();
0018 
0019     [[nodiscard]] bool isEmpty() const;
0020     void clear();
0021     [[nodiscard]] int count() const;
0022     [[nodiscard]] Command at(int index) const;
0023 
0024     [[nodiscard]] int offset() const;
0025     void setOffset(int offset);
0026 
0027     [[nodiscard]] int total() const;
0028     void setTotal(int total);
0029 
0030     void parseCommands(const QJsonObject &commandsObj);
0031     void parseMoreCommands(const QJsonObject &commandsObj);
0032 
0033     [[nodiscard]] QVector<Command> commands() const;
0034     void setCommands(const QVector<Command> &commands);
0035 
0036     [[nodiscard]] int commandsCount() const;
0037     void setCommandsCount(int commandsCount);
0038 
0039     DownloadAppsLanguagesManager *downloadManager() const;
0040     void setDownloadManager(DownloadAppsLanguagesManager *downloadManager);
0041 
0042 private:
0043     void parseListCommands(const QJsonObject &commandsObj);
0044     QVector<Command> mCommands;
0045     int mCommandsCount = 0;
0046     int mOffset = 0;
0047     int mTotal = 0;
0048     DownloadAppsLanguagesManager *mDownloadManager = nullptr;
0049 };
0050 
0051 Q_DECLARE_METATYPE(Commands)
0052 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const Commands &t);