diff options
author | Tobias Markmann <tm@ayena.de> | 2017-03-30 07:32:28 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2017-03-31 08:45:43 (GMT) |
commit | 7663ca75731c4313dddbcde4d85f10383644a67a (patch) | |
tree | ecb1ed4c08b71bb58efc61980166e5064fefe68e /Swift/Controllers/Roster/GroupRosterItem.h | |
parent | 4d0391d824aaf94fbe152778581d51fecd588f6c (diff) | |
download | swift-7663ca75731c4313dddbcde4d85f10383644a67a.zip swift-7663ca75731c4313dddbcde4d85f10383644a67a.tar.bz2 |
Return unique_ptr instead of pointer to deleted object
Coverity raised this issue.
Test-Information:
Code builds on macOS 10.12.4 and all unit tests pass; Swift
runs fine.
Change-Id: I8fb0805f6b2e0a21674ea32c0b1aee9e7b985639
Diffstat (limited to 'Swift/Controllers/Roster/GroupRosterItem.h')
-rw-r--r-- | Swift/Controllers/Roster/GroupRosterItem.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Swift/Controllers/Roster/GroupRosterItem.h b/Swift/Controllers/Roster/GroupRosterItem.h index a4e008f..ebb3849 100644 --- a/Swift/Controllers/Roster/GroupRosterItem.h +++ b/Swift/Controllers/Roster/GroupRosterItem.h @@ -18,25 +18,33 @@ 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); + 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); - boost::signals2::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::signals2::signal<void (bool)> onExpandedChanged; 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_; |