diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-08-20 16:03:24 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-08-20 16:03:24 (GMT) |
commit | 84835e9ed81d215511a0393d371ff9bf3ddf4953 (patch) | |
tree | 2c676478be904edbe1a6dc3c6f82c79d20edb1bf /Swift/QtUI/ChatList/ChatListGroupItem.h | |
parent | 54859f64709f297b97bb48367759479d58f991fe (diff) | |
download | swift-contrib-84835e9ed81d215511a0393d371ff9bf3ddf4953.zip swift-contrib-84835e9ed81d215511a0393d371ff9bf3ddf4953.tar.bz2 |
Sort bookmark list.
Resolves: #454
Diffstat (limited to 'Swift/QtUI/ChatList/ChatListGroupItem.h')
-rw-r--r-- | Swift/QtUI/ChatList/ChatListGroupItem.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Swift/QtUI/ChatList/ChatListGroupItem.h b/Swift/QtUI/ChatList/ChatListGroupItem.h index 2fc99df..389410a 100644 --- a/Swift/QtUI/ChatList/ChatListGroupItem.h +++ b/Swift/QtUI/ChatList/ChatListGroupItem.h @@ -14,13 +14,19 @@ namespace Swift { class ChatListGroupItem : public ChatListItem { public: ChatListGroupItem(const QString& name, ChatListGroupItem* parent) : ChatListItem(parent), name_(name) {}; - void addItem(ChatListItem* item) {items_.push_back(item);}; + void addItem(ChatListItem* item) {items_.push_back(item); qStableSort(items_.begin(), items_.end(), pointerItemLessThan);}; void remove(int index) {items_.removeAt(index);}; int rowCount() {return items_.size();}; ChatListItem* item(int i) {return items_[i];}; int row(ChatListItem* item) {return items_.indexOf(item);}; - QVariant data(int role) {return (role == Qt::DisplayRole) ? name_ : QVariant();}; + QVariant data(int role) const {return (role == Qt::DisplayRole) ? name_ : QVariant();}; private: + static bool pointerItemLessThan(const ChatListItem* first, const ChatListItem* second) { + QString myName = first->data(Qt::DisplayRole).toString().toLower(); + QString theirName = second->data(Qt::DisplayRole).toString().toLower(); + return myName < theirName; + } + QString name_; QList<ChatListItem*> items_; }; |