1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
/* ============================================================
*
* This file is a part of digiKam project
* https://www.digikam.org
*
* Date : 2011-03-22
* Description : a Iface C++ interface
*
* Copyright (C) 2011-2022 by Gilles Caulier <caulier dot gilles at gmail dot com>
* Copyright (C) 2011 by Ludovic Delfau <ludovicdelfau at gmail dot com>
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* ============================================================ */
#ifndef DIGIKAM_MEDIAWIKI_QUERYSITEINFOUSERGROUPS_H
#define DIGIKAM_MEDIAWIKI_QUERYSITEINFOUSERGROUPS_H
// Local includes
#include "mediawiki_job.h"
#include "mediawiki_usergroup.h"
namespace MediaWiki
{
class Iface;
class QuerySiteinfoUsergroupsPrivate;
/**
* @brief UserGroups job.
*
* Uses for fetch a list of all user groups and their permissions.
*/
class QuerySiteinfoUsergroups : public Job
{
Q_OBJECT
Q_DECLARE_PRIVATE(QuerySiteinfoUsergroups)
public:
/**
* @brief Constructs a UserGroups job.
* @param MediaWiki the MediaWiki concerned by the job
* @param parent the QObject parent
*/
explicit QuerySiteinfoUsergroups(Iface& MediaWiki, QObject* const parent = nullptr);
/**
* @brief Destroys the UserGroups job.
*/
~QuerySiteinfoUsergroups() override;
/**
* @brief If true number of users of each user group is included
* @param includeNumber if true number of users of each user group is included
*/
void setIncludeNumber(bool includeNumber);
/**
* @brief Starts the job asynchronously.
*/
void start() override;
Q_SIGNALS:
/**
* @brief Provides a list of all user groups.
* @param usergroups list of all user groups
* @see QuerySiteinfoUsergroups::Result
*/
void usergroups(const QList<UserGroup>& usergroups);
private Q_SLOTS:
void doWorkSendRequest();
void doWorkProcessReply();
};
} // namespace MediaWiki
#endif // DIGIKAM_MEDIAWIKI_QUERYSITEINFOUSERGROUPS_H
|