diff options
Diffstat (limited to 'Swift/QtUI/UserSearch')
| -rw-r--r-- | Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp | 1 | 
1 files changed, 1 insertions, 0 deletions
| diff --git a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp index 9b96627..78842a2 100644 --- a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp +++ b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp @@ -56,70 +56,71 @@ QtSuggestingJIDInput::QtSuggestingJIDInput(QWidget* parent, SettingsProvider* se  	treeViewPopup_->setItemDelegate(contactListDelegate_);  	settings_->onSettingChanged.connect(boost::bind(&QtSuggestingJIDInput::handleSettingsChanged, this, _1));  }  QtSuggestingJIDInput::~QtSuggestingJIDInput() {  	settings_->onSettingChanged.disconnect(boost::bind(&QtSuggestingJIDInput::handleSettingsChanged, this, _1));  	delete treeViewPopup_;  }  Contact::ref QtSuggestingJIDInput::getContact() {  	if (!!currentContact_) {  		return currentContact_;  	}  	if (!text().isEmpty()) {  		JID jid(Q2PSTRING(text()));  		if (jid.isValid()) {  			Contact::ref manualContact = boost::make_shared<Contact>();  			manualContact->name = jid.toString();  			manualContact->jid = jid;  			return manualContact;  		}  	}  	return boost::shared_ptr<Contact>();  }  void QtSuggestingJIDInput::setSuggestions(const std::vector<Contact::ref>& suggestions) {  	contactListModel_->setList(suggestions);  	positionPopup();  	if (!suggestions.empty()) {  		treeViewPopup_->setCurrentIndex(contactListModel_->index(0, 0));  		showPopup();  	} else {  		currentContact_.reset(); +		hidePopup();  	}  }  void QtSuggestingJIDInput::clear() {  	setText("");  	currentContact_.reset();  }  void QtSuggestingJIDInput::keyPressEvent(QKeyEvent* event) {  	if (event->key() == Qt::Key_Up) {  		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_Down) {  		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()));  			hidePopup();  			clearFocus();  		} else {  			currentContact_.reset();  		}  		editingDone();  	} else {  		QLineEdit::keyPressEvent(event);  	} | 
 Swift
 Swift