summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp')
-rw-r--r--Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp
index 78842a2..57033d8 100644
--- a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp
+++ b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp
@@ -108,19 +108,23 @@ void QtSuggestingJIDInput::keyPressEvent(QKeyEvent* event) {
if (contactListModel_->rowCount() > 0) {
int row = treeViewPopup_->currentIndex().row();
row = (row + contactListModel_->rowCount() + 1) % contactListModel_->rowCount();
treeViewPopup_->setCurrentIndex(contactListModel_->index(row, 0));
}
} else if (event->key() == Qt::Key_Return && treeViewPopup_->isVisible()) {
QModelIndex index = treeViewPopup_->currentIndex();
if (!contactListModel_->getList().empty() && index.isValid()) {
currentContact_ = contactListModel_->getContact(index.row());
- setText(P2QSTRING(currentContact_->jid.toString()));
+ if (currentContact_->jid.isValid()) {
+ setText(P2QSTRING(currentContact_->jid.toString()));
+ } else {
+ setText(P2QSTRING(currentContact_->name));
+ }
hidePopup();
clearFocus();
} else {
currentContact_.reset();
}
editingDone();
} else {
QLineEdit::keyPressEvent(event);
}
@@ -138,19 +142,19 @@ void QtSuggestingJIDInput::handleApplicationFocusChanged(QWidget* /*old*/, QWidg
void QtSuggestingJIDInput::handleSettingsChanged(const std::string& setting) {
if (setting == QtUISettingConstants::COMPACT_ROSTER.getKey()) {
contactListDelegate_->setCompact(settings_->getSetting(QtUISettingConstants::COMPACT_ROSTER));
}
}
void QtSuggestingJIDInput::handleClicked(const QModelIndex& index) {
if (index.isValid()) {
currentContact_ = contactListModel_->getContact(index.row());
- onUserSelected(currentContact_->jid);
+ onUserSelected(currentContact_);
hidePopup();
}
}
void QtSuggestingJIDInput::positionPopup() {
QDesktopWidget* desktop = QApplication::desktop();
int screen = desktop->screenNumber(this);
QPoint point = mapToGlobal(QPoint(0, height()));
QRect geometry = desktop->availableGeometry(screen);