X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbacklogsettings.h;h=3c51e7ec24aeafa7ea49d32fa9af26395d26e97f;hp=21f946f7f7f21429e657305c4c70a0f1885f6e74;hb=HEAD;hpb=f824db0e31b54969e0b7fa0b5405b1e9173d482c diff --git a/src/client/backlogsettings.h b/src/client/backlogsettings.h index 21f946f7..fb1d2b44 100644 --- a/src/client/backlogsettings.h +++ b/src/client/backlogsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,35 +15,68 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 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); -#endif //BACKLOGSETTINGS_H + int perBufferUnreadBacklogLimit() const; + void setPerBufferUnreadBacklogLimit(int limit); + int perBufferUnreadBacklogAdditional() const; + void setPerBufferUnreadBacklogAdditional(int additional); + + /** + * 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); +};