summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-10-02 08:53:43 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-10-02 09:02:15 (GMT)
commit087bc243ffb53e3273580bce5ce66305841a3bff (patch)
treea09a7fd1d564f0e7164198c501d95c949f20b8dd /Swiften
parent2fb3d3266bd22d84604688dc9ee18b17b211b91d (diff)
downloadswift-contrib-087bc243ffb53e3273580bce5ce66305841a3bff.zip
swift-contrib-087bc243ffb53e3273580bce5ce66305841a3bff.tar.bz2
Persist roster group expandiness.
Release-Notes: Whether roster groups are expanded or collapsed is now persisted between sessions. Resolves: #399
Diffstat (limited to 'Swiften')
-rw-r--r--Swiften/Roster/GroupRosterItem.cpp4
-rw-r--r--Swiften/Roster/GroupRosterItem.h1
-rw-r--r--Swiften/Settings/DummySettingsProvider.h29
3 files changed, 34 insertions, 0 deletions
diff --git a/Swiften/Roster/GroupRosterItem.cpp b/Swiften/Roster/GroupRosterItem.cpp
index aa9fdd4..325c890 100644
--- a/Swiften/Roster/GroupRosterItem.cpp
+++ b/Swiften/Roster/GroupRosterItem.cpp
@@ -31,7 +31,11 @@ bool GroupRosterItem::isExpanded() const {
to avoid a loop in this case.
*/
void GroupRosterItem::setExpanded(bool expanded) {
+ bool old = expanded_;
expanded_ = expanded;
+ if (expanded != old) {
+ onExpandedChanged(expanded);
+ }
}
const std::vector<RosterItem*>& GroupRosterItem::getChildren() const {
diff --git a/Swiften/Roster/GroupRosterItem.h b/Swiften/Roster/GroupRosterItem.h
index 67ced97..b306b59 100644
--- a/Swiften/Roster/GroupRosterItem.h
+++ b/Swiften/Roster/GroupRosterItem.h
@@ -29,6 +29,7 @@ class GroupRosterItem : public RosterItem {
static bool itemLessThanWithoutStatus(const RosterItem* left, const RosterItem* right);
void setExpanded(bool expanded);
bool isExpanded() const;
+ boost::signal<void (bool)> onExpandedChanged;
private:
void handleChildrenChanged(GroupRosterItem* group);
void handleDataChanged(RosterItem* item);
diff --git a/Swiften/Settings/DummySettingsProvider.h b/Swiften/Settings/DummySettingsProvider.h
new file mode 100644
index 0000000..33f02b7
--- /dev/null
+++ b/Swiften/Settings/DummySettingsProvider.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2010 Kevin Smith
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include "Swiften/Settings/SettingsProvider.h"
+
+namespace Swift {
+
+class DummySettingsProvider : public SettingsProvider {
+ public:
+ virtual ~DummySettingsProvider() {}
+ virtual String getStringSetting(const String&) {return "";}
+ virtual void storeString(const String &, const String &) {}
+ virtual bool getBoolSetting(const String &, bool ) {return true;}
+ virtual void storeBool(const String &, bool ) {}
+ virtual int getIntSetting(const String &, int ) {return 0;}
+ virtual void storeInt(const String &, int ) {}
+ virtual std::vector<String> getAvailableProfiles() {return std::vector<String>();}
+ virtual void createProfile(const String& ) {}
+};
+
+}
+
+
+