11 #include "mainwindow.hpp"
12 #include "ui_mainwindow.h"
14 using namespace Huggle;
18 QDateTime load = QDateTime::currentDateTime();
23 this->fScoreWord = NULL;
24 this->fSessionData = NULL;
25 this->fReportForm = NULL;
32 this->fWaiting = NULL;
33 this->EditablePage =
false;
37 this->Status =
new QLabel();
38 ui->statusBar->addWidget(this->Status);
39 this->showMaximized();
49 this->addDockWidget(Qt::LeftDockWidgetArea, this->
Queue1);
50 this->addDockWidget(Qt::BottomDockWidgetArea, this->
SystemLog);
51 this->addDockWidget(Qt::TopDockWidgetArea, this->
tb);
52 this->addDockWidget(Qt::BottomDockWidgetArea, this->
Queries);
53 this->addDockWidget(Qt::TopDockWidgetArea, this->wHistory);
54 this->addDockWidget(Qt::TopDockWidgetArea, this->wUserInfo);
55 this->addDockWidget(Qt::BottomDockWidgetArea, this->
VandalDock);
58 this->ui->actionBlock_user->setEnabled(Configuration::Rights.contains(
"block"));
59 this->ui->actionDelete->setEnabled(Configuration::Rights.contains(
"delete"));
60 this->ui->actionProtect->setEnabled(Configuration::Rights.contains(
"protect"));
61 this->addDockWidget(Qt::LeftDockWidgetArea, this->
_History);
65 while (c<_log.count())
72 ui->verticalLayout->addWidget(this->
Browser);
74 DisplayWelcomeMessage();
76 if (!Configuration::LocalConfig_UseIrc)
79 Core::Log(
"Feed: irc is disabled by project config");
84 ui->actionIRC->setChecked(
true);
88 Core::Log(
"ERROR: primary feed provider has failed, fallback to wiki provider");
90 ui->actionIRC->setChecked(
false);
91 ui->actionWiki->setChecked(
true);
97 ui->actionIRC->setChecked(
false);
98 ui->actionWiki->setChecked(
true);
102 if (Configuration::LocalConfig_WarningTypes.count() > 0)
108 while (r<Configuration::LocalConfig_WarningTypes.count())
110 QAction *action =
new QAction(Core::GetValueFromKey(Configuration::LocalConfig_WarningTypes.at(r)),
this);
111 QAction *actiona =
new QAction(Core::GetValueFromKey(Configuration::LocalConfig_WarningTypes.at(r)),
this);
112 QAction *actionb =
new QAction(Core::GetValueFromKey(Configuration::LocalConfig_WarningTypes.at(r)),
this);
117 connect(action, SIGNAL(triggered()),
this, SLOT(CustomRevert()));
118 connect(actiona, SIGNAL(triggered()),
this, SLOT(CustomRevertWarn()));
119 connect(actionb, SIGNAL(triggered()),
this, SLOT(CustomWarn()));
121 ui->actionWarn->setMenu(this->
WarnMenu);
123 ui->actionRevert_and_warn->setMenu(this->
RevertWarn);
126 this->timer1 =
new QTimer(
this);
127 this->ui->actionTag_2->setVisible(
false);
129 this->ui->actionTag->setVisible(
false);
131 connect(this->timer1, SIGNAL(timeout()),
this, SLOT(on_Tick()));
132 this->timer1->start(200);
133 this->fRemove = NULL;
135 QFile *layout = NULL;
140 if (!layout->open(QIODevice::ReadOnly))
143 Core::Log(
"ERROR: Unable to read state from a config file");
146 if (!this->restoreState(layout->readAll()))
158 if (!layout->open(QIODevice::ReadOnly))
160 Core::Log(
"ERROR: Unable to read geometry from a config file");
163 if (!this->restoreGeometry(layout->readAll()))
173 ui->menuDebug->setVisible(
false);
175 Core::Log(
"Main form was loaded in " + QString::number(load.secsTo(QDateTime::currentDateTime())) +
" whee");
179 MainWindow::~MainWindow()
181 delete this->fRemove;
182 delete this->wUserInfo;
183 delete this->wHistory;
185 delete this->fWaiting;
194 delete this->fSessionData;
195 delete this->fScoreWord;
201 #if !PRODUCTION_BUILD
226 Core::Log(
"ERROR: This user is already reported");
230 if (!Configuration::LocalConfig_AIV)
234 mb.setText(
"This project doesn't support AIV system");
236 mb.setWindowTitle(
"Function not available");
237 mb.setIcon(QMessageBox::Information);
247 if (this->fReportForm != NULL)
249 delete this->fReportForm;
250 this->fReportForm = NULL;
254 this->fReportForm->show();
260 if (e == NULL || this->ShuttingDown)
289 while (latest->Next != NULL)
291 latest = latest->Next;
294 e->Previous = latest;
303 this->EditablePage =
true;
304 this->wUserInfo->ChangeUser(e->
User);
305 this->wHistory->
Update(e);
317 throw new Exception(
"Page of CurrentEdit can't be NULL at MainWindow::Render()");
329 word += this->
CurrentEdit->ScoreWords.at(x) +
", ";
332 if (word.endsWith(
", "))
334 word = word.mid(0, word.length() - 2);
340 +
" (score: " + QString::number(this->CurrentEdit->Score)
344 this->
tb->SetTitle(this->
Browser->CurrentPageName());
363 if (this->fRemove != NULL)
365 delete this->fRemove;
370 this->fRemove->show();
373 void MainWindow::closeEvent(QCloseEvent *event)
375 if (this->ShuttingDown)
386 bool rollback =
true;
390 Core::Log(
"ERROR: Unable to revert, edit is null");
397 Core::Log(
"ERROR: This edit is still being processed, please wait");
449 if (Core::ReportPreFlightCheck())
458 QString warning = Core::RetrieveTemplateToWarn(__template);
463 Core::Log(
"There is no such warning template " + __template);
474 title = Configuration::LocalConfig_WarnSummary;
477 title = Configuration::LocalConfig_WarnSummary2;
480 title = Configuration::LocalConfig_WarnSummary3;
483 title = Configuration::LocalConfig_WarnSummary4;
490 title,
true, dependency);
496 QString MainWindow::GetSummaryKey(QString item)
498 if (item.contains(
";"))
500 QString type = item.mid(0, item.indexOf(
";"));
502 while(c < Configuration::LocalConfig_WarningTypes.count())
504 QString x = Configuration::LocalConfig_WarningTypes.at(c);
505 if (x.startsWith(type +
";"))
507 x = Configuration::LocalConfig_WarningTypes.at(c);
508 x = x.mid(x.indexOf(
";") + 1);
511 x = x.mid(0, x.length() - 1);
521 void MainWindow::on_actionExit_triggered()
526 void MainWindow::DisplayWelcomeMessage()
530 this->EditablePage =
false;
534 void MainWindow::on_actionPreferences_triggered()
539 void MainWindow::on_actionContents_triggered()
541 QDesktopServices::openUrl(Configuration::GlobalConfig_DocumentationPath);
544 void MainWindow::on_actionAbout_triggered()
549 void MainWindow::on_MainWindow_destroyed()
554 void MainWindow::on_Tick()
556 Core::FinalizeMessages();
557 bool RetrieveEdit =
true;
562 Core::Log(
"Failure of primary feed provider, trying to recover");
573 if (ui->actionStop_feed->isChecked())
576 RetrieveEdit =
false;
583 if (ui->actionStop_feed->isChecked())
620 QString t =
"All systems go! - currently processing " + QString::number(
Core::ProcessingEdits.count())
621 +
" edits and " + QString::number(Core::RunningQueriesGetCount()) +
" queries."
623 +
" whitelisted users and you have "
624 + QString::number(HuggleQueueItemLabel::Count)
625 +
" edits waiting in queue.";
628 t +=
" QGC: " + QString::number(
GC::list.count())
631 this->Status->setText(t);
663 this->
Queries->RemoveExpired();
666 void MainWindow::on_Tick2()
670 if (this->
wq == NULL)
686 list = list.replace(
"<!-- list -->",
"");
687 QStringList wl = list.split(
"|");
689 fWaiting->Status(40,
"Merging");
690 while (c < wl.count())
699 this->fWaiting->Status(60,
"Updating whitelist");
704 this->
wq->Save =
true;
716 this->fWaiting->Status(80,
"Updating user config");
719 QString page = Configuration::GlobalConfig_UserConf;
742 void MainWindow::on_actionNext_triggered()
747 void MainWindow::on_actionNext_2_triggered()
752 void MainWindow::on_actionWarn_triggered()
763 this->
Warn(
"warning", NULL);
766 void MainWindow::on_actionRevert_currently_displayed_edit_triggered()
781 void MainWindow::on_actionWarn_the_user_triggered()
792 this->
Warn(
"warning", NULL);
795 void MainWindow::on_actionRevert_currently_displayed_edit_and_warn_the_user_triggered()
811 this->
Warn(
"warning", result);
814 if (Configuration::NextOnRv)
820 void MainWindow::on_actionRevert_and_warn_triggered()
836 this->
Warn(
"warning", result);
839 if (Configuration::NextOnRv)
845 void MainWindow::on_actionRevert_triggered()
859 void MainWindow::on_actionShow_ignore_list_of_current_wiki_triggered()
869 void MainWindow::on_actionForward_triggered()
882 void MainWindow::on_actionBack_triggered()
895 void MainWindow::CustomRevert()
906 QAction *revert = (QAction*) QObject::sender();
907 QString k = Core::GetKeyOfWarningTypeFromWarningName(revert->text());
908 QString rs = Core::GetSummaryOfWarningTypeFromWarningKey(k);
912 void MainWindow::CustomRevertWarn()
924 QAction *revert = (QAction*) QObject::sender();
925 QString k = Core::GetKeyOfWarningTypeFromWarningName(revert->text());
926 QString rs = Core::GetSummaryOfWarningTypeFromWarningKey(k);
931 this->
Warn(k, result);
934 if (Configuration::NextOnRv)
940 void MainWindow::CustomWarn()
948 QAction *revert = (QAction*) QObject::sender();
949 QString k = Core::GetKeyOfWarningTypeFromWarningName(revert->text());
954 QString MainWindow::GetSummaryText(QString text)
957 while (
id<Configuration::LocalConfig_RevertSummaries.count())
959 if (text == this->GetSummaryKey(Configuration::LocalConfig_RevertSummaries.at(
id)))
961 QString data = Configuration::LocalConfig_RevertSummaries.at(
id);
962 if (data.contains(
";"))
964 data = data.mid(data.indexOf(
";") + 1);
970 return Configuration::LocalConfig_DefaultSummary;
991 QString __template =
"warning" + QString::number(level);
993 QString warning = Core::RetrieveTemplateToWarn(__template);
998 Core::Log(
"There is no such warning template " + __template);
1009 title = Configuration::LocalConfig_WarnSummary;
1012 title = Configuration::LocalConfig_WarnSummary2;
1015 title = Configuration::LocalConfig_WarnSummary3;
1018 title = Configuration::LocalConfig_WarnSummary4;
1033 ShuttingDown =
true;
1036 if (!layout->open(QIODevice::ReadWrite | QIODevice::Truncate))
1039 Core::Log(
"ERROR: Unable to write state to a config file");
1042 layout->write(this->saveState());
1047 if (!layout->open(QIODevice::ReadWrite | QIODevice::Truncate))
1050 Core::Log(
"ERROR: Unable to write geometry to a config file");
1053 layout->write(this->saveGeometry());
1062 if (this->fWaiting != NULL)
1064 delete this->fWaiting;
1067 this->fWaiting->show();
1069 this->fWaiting->Status(10,
"Downloading new whitelist");
1073 this->wlt =
new QTimer(
this);
1074 connect(this->wlt, SIGNAL(timeout()),
this, SLOT(on_Tick2()));
1075 this->wlt->start(800);
1087 Core::Log(
"IRC is disabled by project or huggle configuration, you need to enable it first");
1095 Core::Log(
"Waiting for primary feed provider to stop");
1096 Sleeper::usleep(200000);
1099 ui->actionIRC->setChecked(
true);
1100 ui->actionWiki->setChecked(
false);
1104 ui->actionIRC->setChecked(
false);
1105 ui->actionWiki->setChecked(
true);
1107 Core::Log(
"ERROR: primary feed provider has failed, fallback to wiki provider");
1116 return this->EditablePage;
1121 if (!this->EditablePage)
1124 mb.setWindowTitle(
"Cannot perform action");
1126 mb.setText(
"The action you have requested requires a page to be loaded. Please load a page before trying again.");
1134 void MainWindow::SuspiciousEdit()
1146 if (Configuration::NextOnRv)
1157 mb.setWindowTitle(
"Error");
1159 mb.setText(
"Huggle is shutting down, ignored");
1188 if (QMessageBox::question(
this,
"Welcome :o",
"This user doesn't have empty talk page, are you sure you want to send a message to him?", QMessageBox::Yes|QMessageBox::No) == QMessageBox::No)
1202 , Configuration::LocalConfig_WelcomeTitle, Configuration::LocalConfig_WelcomeSummary,
true);
1206 if (Configuration::LocalConfig_WelcomeTypes.count() == 0)
1209 Core::Log(
"There are no welcome messages defined for this project");
1213 QString message = Core::GetValueFromKey(Configuration::LocalConfig_WelcomeTypes.at(0));
1218 Core::Log(
"ERROR: Invalid welcome template, ignored message");
1227 void MainWindow::on_actionWelcome_user_triggered()
1232 void MainWindow::on_actionOpen_in_a_browser_triggered()
1240 void MainWindow::on_actionIncrease_badness_score_by_20_triggered()
1249 void MainWindow::on_actionDecrease_badness_score_by_20_triggered()
1258 void MainWindow::on_actionGood_edit_triggered()
1270 if (Configuration::NextOnRv)
1276 void MainWindow::on_actionTalk_page_triggered()
1287 void MainWindow::on_actionFlag_as_a_good_edit_triggered()
1303 if (Configuration::NextOnRv)
1309 void MainWindow::on_actionDisplay_this_page_in_browser_triggered()
1323 void MainWindow::on_actionEdit_page_in_browser_triggered()
1332 void MainWindow::on_actionDisplay_history_in_browser_triggered()
1337 +
"?action=history");
1341 void MainWindow::on_actionStop_feed_triggered()
1343 ui->actionRemove_old_edits->setChecked(
false);
1344 ui->actionStop_feed->setChecked(
true);
1347 void MainWindow::on_actionRemove_old_edits_triggered()
1349 ui->actionRemove_old_edits->setChecked(
true);
1350 ui->actionStop_feed->setChecked(
false);
1374 Core::Log(
"This feature is for ip users only");
1381 Core::EditPage(page, Configuration::LocalConfig_ClearTalkPageTemp
1382 +
"\n" + Configuration::LocalConfig_WelcomeAnon,
1388 void MainWindow::on_actionList_all_QGC_items_triggered()
1399 void MainWindow::on_actionRevert_currently_displayed_edit_warn_user_and_stay_on_page_triggered()
1410 this->
Revert(
"",
false,
false);
1413 void MainWindow::on_actionRevert_currently_displayed_edit_and_stay_on_page_triggered()
1425 this->
Revert(
"",
true,
false);
1428 void MainWindow::on_actionWelcome_user_2_triggered()
1455 void MainWindow::on_actionWarning_1_triggered()
1460 void MainWindow::on_actionWarning_2_triggered()
1465 void MainWindow::on_actionWarning_3_triggered()
1470 void MainWindow::on_actionWarning_4_triggered()
1475 void MainWindow::on_actionEdit_user_talk_triggered()
1484 void MainWindow::on_actionReconnect_IRC_triggered()
1489 void MainWindow::on_actionRequest_speedy_deletion_triggered()
1496 #if !PRODUCTION_BUILD
1504 Core::Log(
"ERROR: No, you cannot delete an NULL page :)");
1515 #if !PRODUCTION_BUILD
1516 if (!CheckExit() || !CheckEditableBrowserPage())
1521 if(this->CurrentEdit == NULL)
1528 this->CurrentEdit->User->Resync();
1529 fBlockForm->SetWikiUser(this->CurrentEdit->User);
1534 void Huggle::MainWindow::on_actionIRC_triggered()
1541 if (!CheckExit() || !CheckEditableBrowserPage())
1546 Core::Log(
"Switching to wiki provider");
1548 ui->actionIRC->setChecked(
false);
1549 ui->actionWiki->setChecked(
true);
1553 Core::Log(
"Waiting for primary feed provider to stop");
1554 Sleeper::usleep(200000);
1561 void Huggle::MainWindow::on_actionShow_talk_triggered()
1563 this->EditablePage =
false;
1576 Core::Log(
"ERROR: Cannot protect NULL page");
1590 void Huggle::MainWindow::on_actionFlag_as_suspicious_edit_triggered()
1592 this->SuspiciousEdit();
1595 void Huggle::MainWindow::on_actionDisconnect_triggered()
1597 this->VandalDock->Disconnect();
1610 if (Configuration::LocalConfig_UAAavailable)
1613 dd.setIcon(dd.Information);
1615 dd.setWindowTitle(
"UAA not available");
1617 dd.setText(
"The usernames for administrator attention noticeboard is not available on your wiki.");
1623 Core::Log(
"ERROR: You can't report an IP to UAA!");
1631 void Huggle::MainWindow::on_actionShow_list_of_score_words_triggered()
1633 if (this->fScoreWord != NULL)
1635 delete this->fScoreWord;
1638 this->fScoreWord->show();
1641 void Huggle::MainWindow::on_actionRevert_AGF_triggered()
1652 this->Revert(Configuration::LocalConfig_AgfRevert);
1655 void Huggle::MainWindow::on_actionDisplay_a_session_data_triggered()
1657 if (this->fSessionData != NULL)
1659 delete this->fSessionData;
1662 this->fSessionData->show();
QString GetContentsOfTalkPage()
GetContentsOfTalkPage returns a precached content of this users talk page If there is a global instan...
static QString GetProjectScriptURL()
Return a script url like http://en.wikipedia.org/w/.
void Process()
Execute query.
Huggle is updating a config of user.
static QString GetProjectWikiURL()
Return a full url like http://en.wikipedia.org/wiki/.
void on_actionProtect_triggered()
void setPageToProtect(WikiPage *Page)
set a page that is supposed to be protected, this needs to be called by owner who created this form ...
bool BrowserPageIsEditable()
Returns true if current page can be edited.
QMenu * RevertSummaries
Revert menu.
bool Warn(QString WarningType, RevertQuery *dependency)
static void Log(QString Message)
Write text to terminal as well as ring log.
Base for all items that are supposed to be collected by garbage collector.
History * _History
Pointer to history.
void on_actionReport_user_2_triggered()
QMenu * WarnMenu
Warning menu.
void on_actionDelete_triggered()
static QString UserName
User name.
List of processes in a main window.
QList< WikiEdit * > PendingEdits
List of edits that are being saved.
void on_actionReport_user_triggered()
HuggleWeb * Browser
Pointer to browser.
QList< WikiEdit * > Historical
List of all edits that are kept in history, so that we can track them and delete them.
static QString GetConfigurationPath()
Return a configuration path.
static bool Restricted
When this is true most of functions will not work.
static void PostProcessEdit(WikiEdit *_e)
void setUserForUAA(WikiUser *user)
I don't have much of a clue why this is here lol, but I know the dialog can't be initialised from mai...
EditQuery * eq
Pointer to query that is used to store user config on exit of huggle.
virtual bool Processed()
Returns true in case that query is processed.
void on_actionWiki_triggered()
BlockUser * fBlockForm
Pointer to a form to block user.
This form can be used to block users from editing, which requires the block permission.
bool IsIP()
Returns true in case the current user is IP user.
void UnregisterConsumer(const int consumer)
This function will remove a string which prevent the object from being removed.
void RegisterConsumer(const int consumer)
Registers a consumer.
void DisplayPreFormattedPage(WikiPage *page)
Retrieve a page in render mode on currently selected project.
bool SetUser(WikiUser *u)
Set a user.
Preferences * preferencesForm
Pointer to options.
RevertQuery * Revert(QString summary="", bool nd=false, bool next=true)
VandalNw * VandalDock
Pointer to vandal network.
void ProcessEdit(WikiEdit *e, bool IgnoreHistory=false)
Recreate interface, should be called everytime you do anything with main form.
QLabel * Status
Status bar.
The RevertQuery class can be used to rollback any edit.
QString Username
Username.
static Message * MessageUser(WikiUser *user, QString message, QString title, QString summary, bool section=true, Query *dependency=NULL)
MessageUser Message user.
long getBadnessScore(bool _resync=true)
Retrieve a badness score for current user, see WikiUser::BadnessScore for more.
This window contains all the messages that are stored in ring log.
AboutForm * aboutForm
Pointer to about dialog (see aboutform.h)
History of actions done by user.
static QList< WikiEdit * > EditList
This list contains reference to all existing edits in memory.
static void DeleteEdit(WikiEdit *edit)
Remove edit in proper manner.
static void CheckQueries()
Check if all running queries are finished and if so it removes them from list.
int WarningLevel
Current warning level of user.
This is a very simple provider of changes that basically refresh recent changes every 6 seconds...
QString DebugHgc()
DebugHgc.
Huggle is downloading a whitelist in order to update it.
static void Shutdown()
Terminate the process, call this after you release all resources and finish all queries.
Huggle is updating the whitelist.
static RevertQuery * RevertEdit(WikiEdit *_e, QString summary="", bool minor=false, bool rollback=true, bool keep=false)
RevertEdit Reverts the edit.
static bool UsingIRC
Whether IRC is being used.
WLQuery * wq
This query is used to refresh white list.
static HuggleFeed * PrimaryFeedProvider
Pointer to primary feed provider.
void Resync()
Update the information of this user based on global user list.
void on_actionBlock_user_triggered()
void on_actionReport_username_triggered()
Huggle is not shutting down.
QStringList UnwrittenLogs
static QStringList WhiteList
Data of wl.
virtual bool Start()
Start the feed engine.
static void DeleteOld()
Function that walks through the list and delete these that can be deleted.
virtual void Stop()
Stop the feed engine.
static int Cache_InfoSize
Size of info cache.
HuggleQueue * Queue1
Pointer to queue.
ProcessList * Queries
Pointer to processes.
bool IsPostProcessed()
Return true in case this edit was post processed already.
IgnoreList * Ignore
Pointer to ignore list (see ignorelist.h)
static QList< WikiUser * > ProblematicUsers
List of users that are scored in this instance of huggle.
Every exception raised by huggle is defined by this class.
static int HistorySize
Number of edits to keep in history stack.
virtual void Resume()
Resume edit parsing.
static QString MakeLocalUserConfig()
This function creates a user configuration that is stored on wiki.
UAAReport * fUaaReportForm
Pointer to UAA dialog.
static unsigned int Verbosity
Verbosity for debugging to terminal etc, can be switched with parameter –verbosity.
ShutdownOp Shutdown
If system is shutting down this is displaying which part of shutdown is currently being executed...
static void DeveloperError()
Display a message box telling user that function is not allowed during developer mode.
bool Processed()
Returns true in case that query is processed.
HuggleLog * SystemLog
Pointer to syslog.
The ProtectPage class display a window where user can protect a page given they have the permissions ...
QMutex lUnwrittenLogs
Mutex we lock unwritten logs with so that only 1 thread can write to it.
static WikiSite Project
currently selected project
static QList< WikiEdit * > ProcessingEdits
void on_actionEdit_info_triggered()
static QString EditSuffixOfHuggle
Suffix used by huggle.
WikiUser * User
User who changed the page.
static void DebugLog(QString Message, unsigned int Verbosity=1)
This log is only shown if verbosity is same or larger than requested verbosity.
WikiEdit * CurrentEdit
Pointer to current edit, if it's NULL there is no edit being displayed.
Provider that uses a wikimedia irc recent changes feed to retrieve information about edits...
A window that contains ignore list.
QMenu * RevertWarn
Pointer to menu of revert warn button.
void ForceWarn(int level)
Send a template to user no matter if they can be messaged or not.
MainWindow(QWidget *parent=0)
QString GetFullUrl()
Return a full url to edit.
virtual WikiEdit * RetrieveEdit()
Return a last edit from cache or NULL.
HuggleTool * tb
Pointer to toolbar.
static bool WhitelistDisabled
Whitelist is not useable.
DeleteForm * fDeleteForm
Pointer to a form to delete a page.
static QStringList RingLogToQStringList()
Return a ring log as qstring list.
QString GetTalk()
Return a link to talk page of this user (like User talk:Jimbo)
void Welcome()
Welcome user.
void RequestPD()
Request a page deletion csd or afd and so on.
Form to report users to UAA.
void on_actionClear_talk_page_of_user_triggered()
void DisplayDiff(WikiEdit *edit)
void Update(WikiEdit *edit)
bool CheckEditableBrowserPage()
CheckEditableBrowserPage will check if current page is editable and if it's not it display a message ...
static bool PreflightCheck(WikiEdit *_e)
Check if we can revert this edit.
static QString WelcomeMP
Where the welcome message is stored.
QString PageName
Name of page.
WikiPage * Page
Page that was changed by edit.
void SetContentsOfTalkPage(QString text)
SetContentsOfTalkPage Change a cache for talk page in local and global cache.
static void UpdateUser(WikiUser *us)
Update a list of problematic users.
It can be used to retrieve a history of currently displayed page.
QString Data
Data retrieved by query.
static QList< Collectable * > list
List of all managed queries that qgc keeps track of.
QueryResult * Result
Result of query, see documentation of QueryResult for more.
ProtectPage * fProtectForm
Pointer to a form to protect a page.
virtual void Pause()
This is useful to stop parsing edits from irc and like in case that queue is full.