summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-11-15 13:15:15 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-11-15 13:15:15 (GMT)
commit0c6c79df29c58ff8790941ea40d40f84fae773c6 (patch)
tree0e7c99f5a8ad8ec286e89f1a69630d6de468ec30 /Swift/QtUI/ChatList
parent004677623739ef53ae9f565d3ffd4d2b02a65d5a (diff)
downloadswift-0c6c79df29c58ff8790941ea40d40f84fae773c6.zip
swift-0c6c79df29c58ff8790941ea40d40f84fae773c6.tar.bz2
Clean MUC joins slightly.
In an attempt to catch errors, this doesn't Resolves: #691 but does add an assert that may help. It also fixes an error with created rooms not receiving updates presences. Release-Notes: Newly-created rooms will now receive your presence updates, consistent with existing rooms.
Diffstat (limited to 'Swift/QtUI/ChatList')
-rw-r--r--Swift/QtUI/ChatList/ChatListGroupItem.h1
-rw-r--r--Swift/QtUI/ChatList/ChatListModel.cpp6
-rw-r--r--Swift/QtUI/ChatList/ChatListModel.h1
-rw-r--r--Swift/QtUI/ChatList/QtChatListWindow.cpp4
-rw-r--r--Swift/QtUI/ChatList/QtChatListWindow.h1
5 files changed, 13 insertions, 0 deletions
diff --git a/Swift/QtUI/ChatList/ChatListGroupItem.h b/Swift/QtUI/ChatList/ChatListGroupItem.h
index 389410a..cc4d4af 100644
--- a/Swift/QtUI/ChatList/ChatListGroupItem.h
+++ b/Swift/QtUI/ChatList/ChatListGroupItem.h
@@ -20,6 +20,7 @@ namespace Swift {
ChatListItem* item(int i) {return items_[i];};
int row(ChatListItem* item) {return items_.indexOf(item);};
QVariant data(int role) const {return (role == Qt::DisplayRole) ? name_ : QVariant();};
+ void clear() {items_.clear();};
private:
static bool pointerItemLessThan(const ChatListItem* first, const ChatListItem* second) {
QString myName = first->data(Qt::DisplayRole).toString().toLower();
diff --git a/Swift/QtUI/ChatList/ChatListModel.cpp b/Swift/QtUI/ChatList/ChatListModel.cpp
index 50a6ad3..39b6a3c 100644
--- a/Swift/QtUI/ChatList/ChatListModel.cpp
+++ b/Swift/QtUI/ChatList/ChatListModel.cpp
@@ -16,6 +16,12 @@ ChatListModel::ChatListModel() {
root_->addItem(mucBookmarks_);
}
+void ChatListModel::clear() {
+ emit layoutAboutToBeChanged();
+ mucBookmarks_->clear();
+ emit layoutChanged();
+}
+
void ChatListModel::addMUCBookmark(const Swift::MUCBookmark& bookmark) {
emit layoutAboutToBeChanged();
mucBookmarks_->addItem(new ChatListMUCItem(bookmark, mucBookmarks_));
diff --git a/Swift/QtUI/ChatList/ChatListModel.h b/Swift/QtUI/ChatList/ChatListModel.h
index 05fa60b..adde148 100644
--- a/Swift/QtUI/ChatList/ChatListModel.h
+++ b/Swift/QtUI/ChatList/ChatListModel.h
@@ -28,6 +28,7 @@ namespace Swift {
QModelIndex parent(const QModelIndex& index) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const;
ChatListItem* getItemForIndex(const QModelIndex& index) const;
+ void clear();
private:
ChatListGroupItem* mucBookmarks_;
ChatListGroupItem* root_;
diff --git a/Swift/QtUI/ChatList/QtChatListWindow.cpp b/Swift/QtUI/ChatList/QtChatListWindow.cpp
index 887d9a4..48ccf7f 100644
--- a/Swift/QtUI/ChatList/QtChatListWindow.cpp
+++ b/Swift/QtUI/ChatList/QtChatListWindow.cpp
@@ -79,6 +79,10 @@ void QtChatListWindow::handleItemActivated(const QModelIndex& index) {
}
}
+void QtChatListWindow::clear() {
+ model_->clear();
+}
+
void QtChatListWindow::addMUCBookmark(const MUCBookmark& bookmark) {
model_->addMUCBookmark(bookmark);
}
diff --git a/Swift/QtUI/ChatList/QtChatListWindow.h b/Swift/QtUI/ChatList/QtChatListWindow.h
index 2c13300..b389474 100644
--- a/Swift/QtUI/ChatList/QtChatListWindow.h
+++ b/Swift/QtUI/ChatList/QtChatListWindow.h
@@ -24,6 +24,7 @@ namespace Swift {
void addMUCBookmark(const MUCBookmark& bookmark);
void removeMUCBookmark(const MUCBookmark& bookmark);
void setBookmarksEnabled(bool enabled);
+ void clear();
private slots:
void handleItemActivated(const QModelIndex&);
void handleAddBookmark();