Skip to content

Commit

Permalink
messagewebview: detect paste(ctrl + v) key press event in textarea
Browse files Browse the repository at this point in the history
Change-Id: I4d4dbdebe0eb316b1eea1f576e5dae4867008659
  • Loading branch information
Ming Rui Zhang committed Jul 16, 2019
1 parent 34c3409 commit a59b9b1
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions callwidget.cpp
Expand Up @@ -205,6 +205,9 @@ CallWidget::CallWidget(QWidget* parent) :
connect(ui->messageView, SIGNAL(customContextMenuRequested(const QPoint&)),
this, SLOT(ShowContextMenu(const QPoint&)));

connect(ui->messageView, &MessageWebView::pasteKeyDetected,
this, &CallWidget::Paste);

// set first view to welcome view
ui->stackedWidget->setCurrentWidget(ui->welcomePage);
ui->btnConversations->setChecked(true);
Expand Down
11 changes: 11 additions & 0 deletions messagewebview.cpp
Expand Up @@ -621,3 +621,14 @@ PrivateBridging::blockConversation()
}
return 0;
}

Q_INVOKABLE int
PrivateBridging::emitPasteKeyDetected()
{
if (auto messageView = qobject_cast<MessageWebView*>(this->parent())) {
emit messageView->pasteKeyDetected();
} else {
qDebug() << "JS bridging - exception during emitPasteKeyDetected";
}
return 0;
}
2 changes: 2 additions & 0 deletions messagewebview.h
Expand Up @@ -48,6 +48,7 @@ class PrivateBridging : public QObject
Q_INVOKABLE int blockConversation();
Q_INVOKABLE int emitMessagesCleared();
Q_INVOKABLE int emitMessagesLoaded();
Q_INVOKABLE int emitPasteKeyDetected();
};

class MessageWebView : public QWebEngineView
Expand Down Expand Up @@ -101,6 +102,7 @@ class MessageWebView : public QWebEngineView
void messagesCleared();
void messagesLoaded();
void textSelectedReady();
void pasteKeyDetected();

private slots:
void slotLoadFinished();
Expand Down
5 changes: 5 additions & 0 deletions web/chatview.js
Expand Up @@ -34,6 +34,7 @@ var messages = document.getElementById("messages")
var backToBottomBtn = document.getElementById("back_to_bottom_button")
var sendContainer = document.getElementById("file_image_send_container")

messageBarInput.onpaste = pasteKeyDetected;

/* States: allows us to avoid re-doing something if it isn't meaningful */
var displayLinksEnabled = true
Expand Down Expand Up @@ -1755,3 +1756,7 @@ function remove(e) {
sendContainer.style.visibility = "hidden";
}
}

function pasteKeyDetected() {
window.jsbridge.emitPasteKeyDetected();
}

0 comments on commit a59b9b1

Please sign in to comment.