/usr/include/libmediawiki/queryrevision.h is in libmediawiki-dev 1.0~digikam3.5.0-0ubuntu10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | /** ===========================================================
* @file
*
* This file is a part of KDE project
* <a href="https://projects.kde.org/projects/extragear/libs/libmediawiki">libmediawiki</a>
*
* @date 2011-03-22
* @brief a MediaWiki C++ interface for KDE
*
* @author Copyright (C) 2011-2013 by Gilles Caulier
* <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a>
* @author Copyright (C) 2011 by Manuel Campomanes
* <a href="mailto:campomanes dot manuel at gmail dot com">campomanes dot manuel at gmail dot com</a>
* @author Copyright (C) 2010 by Hormiere Guillaume
* <a href="mailto:hormiere dot guillaume at gmail dot com">hormiere dot guillaume at gmail dot com</a>
*
* 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 QUERYREVISION_H
#define QUERYREVISION_H
// Qt includes
#include <QtCore/QDateTime>
#include <QtCore/QList>
#include <QtCore/QString>
// Local includes
#include "job.h"
#include "revision.h"
#include "mediawiki_export.h"
namespace mediawiki
{
class MediaWiki;
class QueryRevisionPrivate;
/**
* @brief QueryRevision job.
*
* Uses for fetch a revision information about one pages of the wiki.
*/
class MEDIAWIKI_EXPORT QueryRevision : public Job
{
Q_OBJECT
Q_DECLARE_PRIVATE(QueryRevision)
public:
/**
* @brief Direction to list revisions.
*/
enum Direction
{
/**
* @brief List newest revisions first.
*/
Older,
/**
* @brief List oldest revisions first.
*/
Newer
};
/**
* @brief Tokens can get for each revision.
*/
enum Token
{
/**
* @brief Rollback token.
*/
Rollback
};
/**
* @brief Indicates all possible error conditions found during the processing of the job.
*/
enum
{
/**
* @brief The revids= parameter may not be used with the list options (limit, startid, endid, dirNewer, start, end).
*/
WrongRevisionId = Job::UserDefinedError + 1,
/**
* @brief titles, pageids or a generator was used to supply multiple pages, but the limit, startid, endid, dirNewer, user, excludeuser, start and end parameters may only be used on a single page.
*/
MultiPagesNotAllowed,
/**
* @brief The current user is not allowed to read title.
*/
TitleAccessDenied,
/**
* @brief start and startid or end and endid or user and excludeuser cannot be used together
*/
TooManyParams,
/**
* @brief There is no section section in rrevid
*/
SectionNotFound
};
/**
* @brief Property.
*/
enum Property
{
Ids = 0x01,
Flags = 0x02,
Timestamp = 0x04,
User = 0x08,
Comment = 0x10,
Size = 0x20,
Content = 0x40
};
Q_DECLARE_FLAGS(Properties, Property)
public:
/**
* @brief Constructs a Revision job.
* @param mediawiki the mediawiki concerned by the job
* @param parent the QObject parent
*/
explicit QueryRevision(MediaWiki& mediawiki, QObject* const parent = 0);
/**
* @brief Destroys the QueryRevision job.
*/
virtual ~QueryRevision();
/**
* @brief Starts the job asynchronously.
*/
virtual void start();
/**
* @brief Set the page id.
* @param pageId the page id
*/
void setPageId(unsigned int pageId);
/**
* @param Set the revision id.
* @param revisionId the revision id
*/
void setRevisionId(unsigned int revisionId);
/**
* @brief Set the page name.
* @param pageName the page name
*/
void setPageName(const QString& pageName);
/**
* @brief Which properties to get for each revision.
* @param properties properties to get for each revision
*/
void setProperties(Properties properties);
/**
* @brief Set the maximum number of revisions to return.
* @param limit the maximum number of revisions to return
*/
void setLimit(int limit);
/**
* @brief Set the revision ID to start listing from.
* @param startId the revision ID to start listing from
*/
void setStartId(int startId);
/**
* @brief Set the revision ID to stop listing at.
* @param endId the revision ID to stop listing at
*/
void setEndId(int endId);
/**
* @brief Set the timestamp to start listing from.
* @param start the timestamp to start listing from
*/
void setStartTimestamp(const QDateTime& start);
/**
* @brief Set the timestamp to end listing at.
* @param end the timestamp to end listing at
*/
void setEndTimestamp(const QDateTime& end);
/**
* @brief Set the user.
*
* Do list revisions made by this user.
*
* @param user the user
*/
void setUser(const QString& user);
/**
* @brief Set the user to exclude.
*
* Do not list revisions made by this user
*
* @param excludeUser the user to exclude
*/
void setExcludeUser(const QString& excludeUser);
/**
* @brief Set the direction to list revisions.
* @param direction the direction to list revisions
*/
void setDirection(QueryRevision::Direction direction);
/**
* @brief Set XML generation to parse tree for revision content.
* @param generateXML if true set XML generation to parse tree for revision content
*/
void setGenerateXML(bool generateXML);
/**
* @brief Set the section.
*
* If the property content is set, only retrieve the contents of this section.
*
* @param section the section
*/
void setSection(int section);
/**
* @brief Set the token to get for each revision.
* @param token the token to get for each revision
*/
void setToken(QueryRevision::Token token);
/**
* @brief Set expand templates.
*
* Only if the property content is set.
*
* @param expandTemplates if true set expand templates
*/
void setExpandTemplates(bool expandTemplates);
Q_SIGNALS:
/**
* @brief Provides a list of all user groups.
* @param revision list of all user groups
*/
void revision(const QList<Revision>& revision);
private Q_SLOTS:
void doWorkSendRequest();
void doWorkProcessReply();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QueryRevision::Properties)
} // namespace mediawiki
#endif //QUERYREVISION_H
|