diff --git a/interface/interface_en.ts b/interface/interface_en.ts
index c1d16e878f..5d17756094 100644
--- a/interface/interface_en.ts
+++ b/interface/interface_en.ts
@@ -45,7 +45,7 @@
-
+
day
%n day
@@ -53,7 +53,7 @@
-
+
hour
%n hour
@@ -61,7 +61,7 @@
-
+
minute
%n minute
@@ -76,7 +76,7 @@
-
+
%1 online now:
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index e1764374ea..47c6d040be 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -923,12 +923,16 @@ void Menu::goTo() {
gotoDialog.resize(gotoDialog.parentWidget()->size().width() * DIALOG_RATIO_OF_WINDOW, gotoDialog.size().height());
int dialogReturn = gotoDialog.exec();
- if (dialogReturn == QDialog::Accepted && !gotoDialog.textValue().isEmpty()) {
+ goToUser(dialogReturn == QDialog::Accepted && !gotoDialog.textValue().isEmpty(),
+ gotoDialog.textValue());
+}
+
+void Menu::goToUser(bool go, const QString& user) {
+ if (go) {
LocationManager* manager = &LocationManager::getInstance();
- manager->goTo(gotoDialog.textValue());
+ manager->goTo(user);
connect(manager, &LocationManager::multipleDestinationsFound, this, &Menu::multipleDestinationsDecision);
}
-
sendFakeEnterEvent();
}
diff --git a/interface/src/Menu.h b/interface/src/Menu.h
index 6b41430eaf..41bd1b85fd 100644
--- a/interface/src/Menu.h
+++ b/interface/src/Menu.h
@@ -122,6 +122,7 @@ public slots:
void importSettings();
void exportSettings();
void goTo();
+ void goToUser(bool go, const QString& user);
void pasteToVoxel();
void toggleLoginMenuItem();
diff --git a/interface/src/ui/ChatWindow.cpp b/interface/src/ui/ChatWindow.cpp
index 21f9b5285f..2ea2b080a0 100644
--- a/interface/src/ui/ChatWindow.cpp
+++ b/interface/src/ui/ChatWindow.cpp
@@ -12,7 +12,6 @@
#include
#include
#include
-#include
#include
#include "Application.h"
@@ -90,27 +89,33 @@ void ChatWindow::showEvent(QShowEvent* event) {
}
bool ChatWindow::eventFilter(QObject* sender, QEvent* event) {
- Q_UNUSED(sender);
-
- if (event->type() != QEvent::KeyPress) {
- return false;
- }
- QKeyEvent* keyEvent = static_cast(event);
- if ((keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter) &&
- (keyEvent->modifiers() & Qt::ShiftModifier) == 0) {
- QString messageText = ui->messagePlainTextEdit->document()->toPlainText().trimmed();
- if (!messageText.isEmpty()) {
-#ifdef HAVE_QXMPP
- const QXmppMucRoom* publicChatRoom = XmppClient::getInstance().getPublicChatRoom();
- QXmppMessage message;
- message.setTo(publicChatRoom->jid());
- message.setType(QXmppMessage::GroupChat);
- message.setBody(messageText);
- XmppClient::getInstance().getXMPPClient().sendPacket(message);
-#endif
- ui->messagePlainTextEdit->document()->clear();
+ if (sender == ui->messagePlainTextEdit) {
+ if (event->type() != QEvent::KeyPress) {
+ return false;
}
- return true;
+ QKeyEvent* keyEvent = static_cast(event);
+ if ((keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter) &&
+ (keyEvent->modifiers() & Qt::ShiftModifier) == 0) {
+ QString messageText = ui->messagePlainTextEdit->document()->toPlainText().trimmed();
+ if (!messageText.isEmpty()) {
+ #ifdef HAVE_QXMPP
+ const QXmppMucRoom* publicChatRoom = XmppClient::getInstance().getPublicChatRoom();
+ QXmppMessage message;
+ message.setTo(publicChatRoom->jid());
+ message.setType(QXmppMessage::GroupChat);
+ message.setBody(messageText);
+ XmppClient::getInstance().getXMPPClient().sendPacket(message);
+ #endif
+ ui->messagePlainTextEdit->document()->clear();
+ }
+ return true;
+ }
+ } else {
+ if (event->type() != QEvent::MouseButtonRelease) {
+ return false;
+ }
+ QString user = sender->property("user").toString();
+ Menu::getInstance()->goToUser(true, user);
}
return false;
}
@@ -187,16 +192,21 @@ void ChatWindow::participantsChanged() {
delete item;
}
foreach (const QString& participant, participants) {
- QLabel* userLabel = new QLabel(getParticipantName(participant));
+ QString participantName = getParticipantName(participant);
+ QLabel* userLabel = new QLabel();
+ userLabel->setText(participantName);
userLabel->setStyleSheet("background-color: palette(light);"
- "border-radius: 5px;"
- "color: #267077;"
- "padding-top: 3px;"
- "padding-right: 2px;"
- "padding-bottom: 2px;"
- "padding-left: 2px;"
- "border: 1px solid palette(shadow);"
- "font-weight: bold");
+ "border-radius: 5px;"
+ "color: #267077;"
+ "padding-top: 3px;"
+ "padding-right: 2px;"
+ "padding-bottom: 2px;"
+ "padding-left: 2px;"
+ "border: 1px solid palette(shadow);"
+ "font-weight: bold");
+ userLabel->setProperty("user", participantName);
+ userLabel->setCursor(Qt::PointingHandCursor);
+ userLabel->installEventFilter(this);
ui->usersWidget->layout()->addWidget(userLabel);
}
}