summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/UserSearch/QtUserSearchWindow.cpp')
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.cpp37
1 files changed, 18 insertions, 19 deletions
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index ed0fae2..c154c8f 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -124,47 +124,46 @@ void QtUserSearchWindow::handleAccepted() {
JID jid;
std::vector<JID> jids;
switch(type_) {
case AddContact:
jid = getContactJID();
eventStream_->send(boost::make_shared<AddContactUIEvent>(jid, detailsPage_->getName(), detailsPage_->getSelectedGroups()));
break;
case ChatToContact:
if (contactVector_.size() == 1) {
- boost::shared_ptr<UIEvent> event(new RequestChatUIEvent(contactVector_[0].jid));
+ boost::shared_ptr<UIEvent> event(new RequestChatUIEvent(contactVector_[0]->jid));
eventStream_->send(event);
break;
}
- foreach(const Contact& contact, contactVector_) {
- jids.push_back(contact.jid);
+ foreach(Contact::ref contact, contactVector_) {
+ jids.push_back(contact->jid);
}
eventStream_->send(boost::make_shared<CreateImpromptuMUCUIEvent>(jids, JID(), Q2PSTRING(firstMultiJIDPage_->reason_->text())));
break;
case InviteToChat:
- foreach(const Contact& contact, contactVector_) {
- jids.push_back(contact.jid);
+ foreach(Contact::ref contact, contactVector_) {
+ jids.push_back(contact->jid);
}
eventStream_->send(boost::make_shared<InviteToMUCUIEvent>(roomJID_, jids, Q2PSTRING(firstMultiJIDPage_->reason_->text())));
break;
}
}
void QtUserSearchWindow::handleContactSuggestionRequested(const QString& text) {
std::string stdText = Q2PSTRING(text);
onContactSuggestionsRequested(stdText);
}
void QtUserSearchWindow::addContact() {
- if (firstMultiJIDPage_->jid_->getContact() != 0) {
- Contact contact = *(firstMultiJIDPage_->jid_->getContact());
- contactVector_.push_back(contact);
+ if (!!firstMultiJIDPage_->jid_->getContact()) {
+ contactVector_.push_back(firstMultiJIDPage_->jid_->getContact());
}
firstMultiJIDPage_->contactList_->setList(contactVector_);
firstMultiJIDPage_->emitCompletenessCheck();
if (type_ == ChatToContact) {
firstMultiJIDPage_->groupBox->setEnabled(supportsImpromptu_ ? 1 : (contactVector_.size() < 1));
}
}
int QtUserSearchWindow::nextId() const {
@@ -265,19 +264,19 @@ JID QtUserSearchWindow::getContactJID() const {
}
}
else {
jid = JID(Q2PSTRING(firstPage_->jid_->text().trimmed()));
}
return jid;
}
void QtUserSearchWindow::addSearchedJIDToList(const JID& jid) {
- Contact contact(jid, jid.toString(), StatusShow::None, "");
+ Contact::ref contact = boost::make_shared<Contact>(jid, jid.toString(), StatusShow::None, "");
contactVector_.push_back(contact);
firstMultiJIDPage_->contactList_->setList(contactVector_);
firstMultiJIDPage_->emitCompletenessCheck();
if (type_ == ChatToContact) {
firstMultiJIDPage_->groupBox->setEnabled(supportsImpromptu_ ? 1 : (contactVector_.size() < 1));
}
}
void QtUserSearchWindow::show() {
@@ -330,19 +329,19 @@ void QtUserSearchWindow::setNameSuggestions(const std::vector<std::string>& sugg
void QtUserSearchWindow::prepopulateJIDAndName(const JID& jid, const std::string& name) {
firstPage_->jid_->setText(P2QSTRING(jid.toBare().toString()));
detailsPage_->setJID(jid);
lastPage_ = 1;
restart();
next();
detailsPage_->setName(name);
}
-void QtUserSearchWindow::setContactSuggestions(const std::vector<Contact>& suggestions) {
+void QtUserSearchWindow::setContactSuggestions(const std::vector<Contact::ref>& suggestions) {
if (type_ == AddContact) {
firstPage_->jid_->setSuggestions(suggestions);
} else {
firstMultiJIDPage_->jid_->setSuggestions(suggestions);
}
}
void QtUserSearchWindow::setJIDs(const std::vector<JID> &jids) {
foreach(JID jid, jids) {
@@ -355,63 +354,63 @@ void QtUserSearchWindow::setRoomJID(const JID& roomJID) {
roomJID_ = roomJID;
}
std::string QtUserSearchWindow::getReason() const {
return Q2PSTRING(firstMultiJIDPage_->reason_->text());
}
std::vector<JID> QtUserSearchWindow::getJIDs() const {
std::vector<JID> jids;
- foreach (const Contact& contact, contactVector_) {
- jids.push_back(contact.jid);
+ foreach (Contact::ref contact, contactVector_) {
+ jids.push_back(contact->jid);
}
return jids;
}
void QtUserSearchWindow::setCanStartImpromptuChats(bool supportsImpromptu) {
supportsImpromptu_ = supportsImpromptu;
if (type_ == ChatToContact) {
firstMultiJIDPage_->contactList_->setMaximumNoOfContactsToOne(!supportsImpromptu_);
}
}
-void QtUserSearchWindow::updateContacts(const std::vector<Contact>& contacts) {
+void QtUserSearchWindow::updateContacts(const std::vector<Contact::ref>& contacts) {
if (type_ != AddContact) {
firstMultiJIDPage_->contactList_->updateContacts(contacts);
}
}
-void QtUserSearchWindow::addContacts(const std::vector<Contact>& contacts) {
+void QtUserSearchWindow::addContacts(const std::vector<Contact::ref>& contacts) {
if (type_ != AddContact) {
/* prevent duplicate JIDs from appearing in the contact list */
- foreach (const Contact& newContact, contacts) {
+ foreach (Contact::ref newContact, contacts) {
bool found = false;
- foreach (const Contact& oldContact, contactVector_) {
- if (newContact.jid == oldContact.jid) {
+ foreach (Contact::ref oldContact, contactVector_) {
+ if (newContact->jid == oldContact->jid) {
found = true;
break;
}
}
if (!found) {
contactVector_.push_back(newContact);
}
}
firstMultiJIDPage_->contactList_->setList(contactVector_);
firstMultiJIDPage_->emitCompletenessCheck();
}
}
void QtUserSearchWindow::handleAddViaSearch() {
searchNext_ = true;
next();
}
-void QtUserSearchWindow::handleListChanged(std::vector<Contact> list) {
+void QtUserSearchWindow::handleListChanged(std::vector<Contact::ref> list) {
contactVector_ = list;
if (type_ == ChatToContact) {
firstMultiJIDPage_->groupBox->setEnabled(supportsImpromptu_ ? 1 : (contactVector_.size() < 1));
}
}
void QtUserSearchWindow::handleJIDsAdded(std::vector<JID> jids) {
onJIDAddRequested(jids);
}
@@ -464,19 +463,19 @@ void QtUserSearchWindow::setFirstPage(QString title) {
#endif
firstPage_->service_->setEnabled(false);
setPage(1, firstPage_);
} else {
firstMultiJIDPage_ = new QtUserSearchFirstMultiJIDPage(type_, title.isEmpty() ? firstMultiJIDPage_->title() : title, settings_);
connect(firstMultiJIDPage_->addContactButton_, SIGNAL(clicked()), this, SLOT(addContact()));
connect(firstMultiJIDPage_->jid_, SIGNAL(textEdited(QString)), this, SLOT(handleContactSuggestionRequested(QString)));
firstMultiJIDPage_->jid_->onUserSelected.connect(boost::bind(&QtUserSearchWindow::addSearchedJIDToList, this, _1));
connect(firstMultiJIDPage_->addViaSearchButton_, SIGNAL(clicked()), this, SLOT(handleAddViaSearch()));
- connect(firstMultiJIDPage_->contactList_, SIGNAL(onListChanged(std::vector<Contact>)), this, SLOT(handleListChanged(std::vector<Contact>)));
+ connect(firstMultiJIDPage_->contactList_, SIGNAL(onListChanged(std::vector<Contact::ref>)), this, SLOT(handleListChanged(std::vector<Contact::ref>)));
connect(firstMultiJIDPage_->contactList_, SIGNAL(onJIDsAdded(std::vector<JID>)), this, SLOT(handleJIDsAdded(std::vector<JID>)));
connect(firstMultiJIDPage_, SIGNAL(onJIDsDropped(std::vector<JID>)), this, SLOT(handleJIDsAdded(std::vector<JID>)));
setPage(1, firstMultiJIDPage_);
}
}
void QtUserSearchWindow::setSecondPage() {
if (page(2) != 0) {
removePage(2);