summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp')
-rw-r--r--Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp
index 8bef7e4..114ec1d 100644
--- a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp
+++ b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp
@@ -6,13 +6,14 @@
#include <Swift/QtUI/MUCSearch/QtMUCSearchWindow.h>
+#include <memory>
+#include <vector>
+
#include <QMovie>
#include <QPushButton>
#include <QScrollBar>
#include <QTimer>
-#include <qdebug.h>
-
#include <Swift/Controllers/UIEvents/AddMUCBookmarkUIEvent.h>
#include <Swift/Controllers/UIEvents/JoinMUCUIEvent.h>
@@ -38,6 +39,8 @@ QtMUCSearchWindow::QtMUCSearchWindow() {
ui_.results_->setRootIsDecorated(true);
ui_.results_->setAnimated(true);
ui_.results_->setAlternatingRowColors(true);
+ ui_.results_->setSortingEnabled(true);
+ ui_.results_->sortByColumn(0, Qt::AscendingOrder);
connect(ui_.searchButton, SIGNAL(clicked()), this, SLOT(handleSearch()));
connect(ui_.service_, SIGNAL(activated(const QString&)), this, SLOT(handleSearch(const QString&)));
connect(ui_.results_->selectionModel(), SIGNAL(selectionChanged (const QItemSelection&, const QItemSelection&)), this, SLOT(handleSelectionChanged (const QItemSelection&, const QItemSelection&)));
@@ -86,7 +89,7 @@ void QtMUCSearchWindow::updateThrobberPosition() {
void QtMUCSearchWindow::addSavedServices(const std::list<JID>& services) {
ui_.service_->clear();
- foreach (const JID& jid, services) {
+ for (const auto& jid : services) {
ui_.service_->addItem(P2QSTRING(jid.toString()));
}
if (!services.empty()) {
@@ -127,14 +130,18 @@ void QtMUCSearchWindow::clearList() {
void QtMUCSearchWindow::addService(const MUCService& service) {
updateThrobberPosition();
- MUCSearchServiceItem* serviceItem = new MUCSearchServiceItem(P2QSTRING(service.getJID().toString()));
+ auto serviceItem = std::make_shared<MUCSearchServiceItem>(P2QSTRING(service.getJID().toString()));
if (service.getRooms().size() > 0) {
- foreach (MUCService::MUCRoom room, service.getRooms()) {
- new MUCSearchRoomItem(P2QSTRING(room.getNode()), serviceItem);
+ std::vector<std::shared_ptr<MUCSearchItem>> rooms;
+ for (auto&& room : service.getRooms()) {
+ if (!room.getNode().empty()) {
+ rooms.push_back(std::make_shared<MUCSearchRoomItem>(P2QSTRING(room.getNode())));
+ }
}
+ serviceItem->addRooms(rooms);
}
else {
- new MUCSearchEmptyItem(serviceItem);
+ serviceItem->addRoom(std::make_shared<MUCSearchEmptyItem>());
}
model_->addService(serviceItem);
ui_.results_->expandAll();