cmake: avoid de-duplication of user's CXXFLAGS
[quassel.git] / src / client / backlogsettings.h
index eec7772..fb1d2b4 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 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  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef BACKLOGSETTINGS_H
-#define BACKLOGSETTINGS_H
+#pragma once
 
-#include "clientsettings.h"
+#include "client-export.h"
 
-// For backlog requester types
 #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", BacklogRequester::PerBufferUnread).toInt(); }
+    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.
-    inline void setRequesterType(int requesterType) { setLocalValue("RequesterType", requesterType); }
+    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);
+};