From 60c6384aae4035545cd02f6032dd810e98ddba37 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Mon, 27 Oct 2008 16:06:12 +0100 Subject: [PATCH] Backlog amount (initial and dynamic) can now be configured (Settings -> behavior -> general). Requests are now more verbose (status bar) so one know, that the request really did trigger. --- src/client/backlogrequester.cpp | 6 +- src/client/messagemodel.cpp | 10 ++- .../settingspages/generalsettingspage.cpp | 19 +++++ src/qtui/settingspages/generalsettingspage.ui | 79 ++++++++++++++++--- 4 files changed, 96 insertions(+), 18 deletions(-) diff --git a/src/client/backlogrequester.cpp b/src/client/backlogrequester.cpp index 8b4d374b..920e5647 100644 --- a/src/client/backlogrequester.cpp +++ b/src/client/backlogrequester.cpp @@ -22,6 +22,7 @@ #include +#include "backlogsettings.h" #include "clientbacklogmanager.h" BacklogRequester::BacklogRequester(bool buffering, ClientBacklogManager *backlogManager) @@ -41,9 +42,10 @@ bool BacklogRequester::buffer(BufferId bufferId, const MessageList &messages) { // FIXED BACKLOG REQUESTER // ======================================== FixedBacklogRequester::FixedBacklogRequester(ClientBacklogManager *backlogManager) - : BacklogRequester(true, backlogManager), - _backlogCount(500) + : BacklogRequester(true, backlogManager) { + BacklogSettings backlogSettings; + _backlogCount = backlogSettings.fixedBacklogAmount(); } void FixedBacklogRequester::requestBacklog() { diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index fd0ae3e6..82fd71b1 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -22,6 +22,7 @@ #include +#include "backlogsettings.h" #include "clientbacklogmanager.h" #include "client.h" #include "message.h" @@ -349,16 +350,17 @@ void MessageModel::requestBacklog(BufferId bufferId) { if(_messagesWaiting.contains(bufferId)) return; - static const int REQUEST_COUNT = 500; + BacklogSettings backlogSettings; + int requestCount = backlogSettings.dynamicBacklogAmount(); for(int i = 0; i < _messageList.count(); i++) { if(_messageList.at(i)->bufferId() == bufferId) { - _messagesWaiting[bufferId] = REQUEST_COUNT; + _messagesWaiting[bufferId] = requestCount; Client::backlogManager()->emitMessagesRequested(tr("Requesting %1 messages from backlog for buffer %2:%3") - .arg(REQUEST_COUNT) + .arg(requestCount) .arg(Client::networkModel()->networkName(bufferId)) .arg(Client::networkModel()->bufferName(bufferId))); - Client::backlogManager()->requestBacklog(bufferId, REQUEST_COUNT, _messageList.at(i)->msgId().toInt()); + Client::backlogManager()->requestBacklog(bufferId, requestCount, _messageList.at(i)->msgId().toInt()); return; } } diff --git a/src/qtui/settingspages/generalsettingspage.cpp b/src/qtui/settingspages/generalsettingspage.cpp index cac26c09..ce7bacc9 100644 --- a/src/qtui/settingspages/generalsettingspage.cpp +++ b/src/qtui/settingspages/generalsettingspage.cpp @@ -22,6 +22,7 @@ #include "qtui.h" #include "qtuisettings.h" +#include "backlogsettings.h" #include "buffersettings.h" GeneralSettingsPage::GeneralSettingsPage(QWidget *parent) @@ -50,6 +51,8 @@ GeneralSettingsPage::GeneralSettingsPage(QWidget *parent) connect(ui.displayTopicInTooltip, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.mouseWheelChangesBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.completionSuffix, SIGNAL(textEdited(const QString&)), this, SLOT(widgetHasChanged())); + connect(ui.fixedBacklogAmount, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged())); + connect(ui.dynamicBacklogAmount, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged())); } bool GeneralSettingsPage::hasDefaults() const { @@ -109,6 +112,14 @@ void GeneralSettingsPage::load() { settings["CompletionSuffix"] = uiSettings.value("CompletionSuffix", QString(": ")); ui.completionSuffix->setText(settings["CompletionSuffix"].toString()); + // backlogSettings: + BacklogSettings backlogSettings; + settings["FixedBacklogAmount"] = backlogSettings.fixedBacklogAmount(); + ui.fixedBacklogAmount->setValue(backlogSettings.fixedBacklogAmount()); + + settings["DynamicBacklogAmount"] = backlogSettings.dynamicBacklogAmount(); + ui.dynamicBacklogAmount->setValue(backlogSettings.dynamicBacklogAmount()); + setChangedState(false); } @@ -130,6 +141,11 @@ void GeneralSettingsPage::save() { uiSettings.setValue("CompletionSuffix", ui.completionSuffix->text()); + + BacklogSettings backlogSettings; + backlogSettings.setFixedBacklogAmount(ui.fixedBacklogAmount->value()); + backlogSettings.setDynamicBacklogAmount(ui.dynamicBacklogAmount->value()); + load(); setChangedState(false); } @@ -153,5 +169,8 @@ bool GeneralSettingsPage::testHasChanged() { if(settings["CompletionSuffix"].toString() != ui.completionSuffix->text()) return true; + if(settings["FixedBacklogAmount"].toInt() != ui.fixedBacklogAmount->value()) return true; + if(settings["DynamicBacklogAmount"].toInt() != ui.dynamicBacklogAmount->value()) return true; + return false; } diff --git a/src/qtui/settingspages/generalsettingspage.ui b/src/qtui/settingspages/generalsettingspage.ui index d35bce19..317c2f07 100644 --- a/src/qtui/settingspages/generalsettingspage.ui +++ b/src/qtui/settingspages/generalsettingspage.ui @@ -5,8 +5,8 @@ 0 0 - 453 - 467 + 542 + 599 @@ -176,17 +176,72 @@ - - - Qt::Vertical - - - - 20 - 40 - + + + Backlog - + + + + + amount of messages per buffer that are requested after the core connection has been established. + + + Initial backlog amount: + + + + + + + 1000 + + + 10 + + + 500 + + + + + + + Number of messages to be requested from the core when using scrolling up in the buffer view. + + + Dynamic backlog amount: + + + + + + + 1000 + + + 10 + + + 200 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + -- 2.20.1