diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-10-02 08:53:43 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-10-02 09:02:15 (GMT) |
commit | 087bc243ffb53e3273580bce5ce66305841a3bff (patch) | |
tree | a09a7fd1d564f0e7164198c501d95c949f20b8dd /Swiften | |
parent | 2fb3d3266bd22d84604688dc9ee18b17b211b91d (diff) | |
download | swift-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.cpp | 4 | ||||
-rw-r--r-- | Swiften/Roster/GroupRosterItem.h | 1 | ||||
-rw-r--r-- | Swiften/Settings/DummySettingsProvider.h | 29 |
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& ) {} +}; + +} + + + |