X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbacklogsettings.h;h=76f51adcb20b3d4e93f00df9d778104bd00bdbaf;hp=d1d8d9f910acc3d8a0a15da860c12e1df1d025cc;hb=6c561d2b7b1bb303cfcd8a013179b1838d315910;hpb=0a43227b8cd44625f4881cc1545d42c8c8a4876c diff --git a/src/client/backlogsettings.h b/src/client/backlogsettings.h index d1d8d9f9..76f51adc 100644 --- a/src/client/backlogsettings.h +++ b/src/client/backlogsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,34 +18,65 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef BACKLOGSETTINGS_H -#define BACKLOGSETTINGS_H +#pragma once +#include "client-export.h" + +#include "backlogrequester.h" #include "clientsettings.h" -class BacklogSettings : public ClientSettings +class CLIENT_EXPORT BacklogSettings : public ClientSettings { public: - BacklogSettings() : ClientSettings("Backlog") {} - inline int requesterType() { return localValue("RequesterType", 1).toInt(); } - inline void setRequesterType(int requesterType) { setLocalValue("RequesterType", requesterType); } + BacklogSettings(); + int requesterType() const; + // Default to PerBufferUnread to help work around performance problems on connect when there's + // many buffers that don't have much activity. + void setRequesterType(int requesterType); - inline int dynamicBacklogAmount() { return localValue("DynamicBacklogAmount", 200).toInt(); } - inline void setDynamicBacklogAmount(int amount) { return setLocalValue("DynamicBacklogAmount", amount); } + int dynamicBacklogAmount() const; + void setDynamicBacklogAmount(int amount); - inline int fixedBacklogAmount() { return localValue("FixedBacklogAmount", 500).toInt(); } - inline void setFixedBacklogAmount(int amount) { return setLocalValue("FixedBacklogAmount", amount); } + /** + * Gets if a buffer should fetch backlog upon show to provide a scrollable amount of backlog + * + * @return True if showing a buffer without scrollbar visible fetches backlog, otherwise false + */ + bool ensureBacklogOnBufferShow() const; + /** + * Sets if a buffer should fetch backlog upon show to provide a scrollable amount of backlog + * + * @param enabled True if showing a buffer without scrollbar fetches backlog, otherwise false + */ + void setEnsureBacklogOnBufferShow(bool enabled); - inline int globalUnreadBacklogLimit() { return localValue("GlobalUnreadBacklogLimit", 5000).toInt(); } - inline void setGlobalUnreadBacklogLimit(int limit) { return setLocalValue("GlobalUnreadBacklogLimit", limit); } - inline int globalUnreadBacklogAdditional() { return localValue("GlobalUnreadBacklogAdditional", 100).toInt(); } - inline void setGlobalUnreadBacklogAdditional(int Additional) { return setLocalValue("GlobalUnreadBacklogAdditional", Additional); } + int fixedBacklogAmount() const; + void setFixedBacklogAmount(int amount); - inline int perBufferUnreadBacklogLimit() { return localValue("PerBufferUnreadBacklogLimit", 200).toInt(); } - inline void setPerBufferUnreadBacklogLimit(int limit) { return setLocalValue("PerBufferUnreadBacklogLimit", limit); } - inline int perBufferUnreadBacklogAdditional() { return localValue("PerBufferUnreadBacklogAdditional", 50).toInt(); } - inline void setPerBufferUnreadBacklogAdditional(int Additional) { return setLocalValue("PerBufferUnreadBacklogAdditional", Additional); } -}; + int globalUnreadBacklogLimit() const; + void setGlobalUnreadBacklogLimit(int limit); + int globalUnreadBacklogAdditional() const; + void setGlobalUnreadBacklogAdditional(int additional); + int perBufferUnreadBacklogLimit() const; + void setPerBufferUnreadBacklogLimit(int limit); + int perBufferUnreadBacklogAdditional() const; + void setPerBufferUnreadBacklogAdditional(int additional); -#endif //BACKLOGSETTINGS_H + /** + * Get the initial amount of backlog fetched across all buffers for legacy cores that do not + * support Quassel::Feature::BufferActivitySync + * + * @seealso Quassel::Feature::BufferActivitySync + * @return The amount of backlog to fetch per buffer + */ + int asNeededLegacyBacklogAmount() const; + /** + * Set the initial amount of backlog fetched across all buffers for legacy cores that do not + * support Quassel::Feature::BufferActivitySync + * + * @seealso BacklogSettings::asNeededLegacyBacklogAmount() + * @param amount The amount of backlog to fetch per buffer + */ + void setAsNeededLegacyBacklogAmount(int amount); +};