diff options
Diffstat (limited to 'Swift/Controllers/Roster/GroupRosterItem.h')
-rw-r--r-- | Swift/Controllers/Roster/GroupRosterItem.h | 78 |
1 files changed, 43 insertions, 35 deletions
diff --git a/Swift/Controllers/Roster/GroupRosterItem.h b/Swift/Controllers/Roster/GroupRosterItem.h index beb7705..ebb3849 100644 --- a/Swift/Controllers/Roster/GroupRosterItem.h +++ b/Swift/Controllers/Roster/GroupRosterItem.h @@ -1,49 +1,57 @@ /* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once -#include "Swift/Controllers/Roster/RosterItem.h" #include <string> -#include "Swift/Controllers/Roster/ContactRosterItem.h" - #include <vector> +#include <Swift/Controllers/Roster/ContactRosterItem.h> +#include <Swift/Controllers/Roster/RosterItem.h> + namespace Swift { class GroupRosterItem : public RosterItem { - public: - GroupRosterItem(const std::string& name, GroupRosterItem* parent, bool sortByStatus); - virtual ~GroupRosterItem(); - const std::vector<RosterItem*>& getChildren() const; - const std::vector<RosterItem*>& getDisplayedChildren() const; - void addChild(RosterItem* item); - ContactRosterItem* removeChild(const JID& jid); - GroupRosterItem* removeGroupChild(const std::string& group); - void removeAll(); - void setDisplayed(RosterItem* item, bool displayed); - boost::signal<void ()> onChildrenChanged; - static bool itemLessThanWithStatus(const RosterItem* left, const RosterItem* right); - static bool itemLessThanWithoutStatus(const RosterItem* left, const RosterItem* right); - void setExpanded(bool expanded); - bool isExpanded() const; - boost::signal<void (bool)> onExpandedChanged; - void setManualSort(const std::string& manualSortValue); - virtual const std::string& getSortableDisplayName() const; - private: - void handleChildrenChanged(GroupRosterItem* group); - void handleDataChanged(RosterItem* item); - bool sortDisplayed(); - std::string name_; - bool expanded_; - std::vector<RosterItem*> children_; - std::vector<RosterItem*> displayedChildren_; - bool sortByStatus_; - bool manualSort_; - std::string manualSortValue_; + public: + GroupRosterItem(const std::string& name, GroupRosterItem* parent, bool sortByStatus); + virtual ~GroupRosterItem(); + + const std::vector<RosterItem*>& getChildren() const; + const std::vector<RosterItem*>& getDisplayedChildren() const; + + void addChild(RosterItem* item); + std::unique_ptr<ContactRosterItem> removeChild(const JID& jid); + std::unique_ptr<GroupRosterItem> removeGroupChild(const std::string& group); + void removeAll(); + + void setDisplayed(RosterItem* item, bool displayed); + void setExpanded(bool expanded); + bool isExpanded() const; + void setManualSort(const std::string& manualSortValue); + virtual const std::string& getSortableDisplayName() const; + + boost::signals2::signal<void (bool)> onExpandedChanged; + boost::signals2::signal<void ()> onChildrenChanged; + + static bool itemLessThanWithStatus(const RosterItem* left, const RosterItem* right); + static bool itemLessThanWithoutStatus(const RosterItem* left, const RosterItem* right); + + private: + void handleChildrenChanged(GroupRosterItem* group); + void handleDataChanged(RosterItem* item); + bool sortDisplayed(); + + private: + std::string name_; + bool expanded_; + std::vector<RosterItem*> children_; + std::vector<RosterItem*> displayedChildren_; + bool sortByStatus_; + bool manualSort_; + std::string manualSortValue_; }; } |