diff --git a/callwidget.cpp b/callwidget.cpp index 14cf72aea098c1b5727e6dadb743e0e4f504e8d7..91857ccc6b8d805c652b314ad0393b7962d36498 100644 --- a/callwidget.cpp +++ b/callwidget.cpp @@ -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); diff --git a/messagewebview.cpp b/messagewebview.cpp index 111d35d46e3b7543253f222c0b3fb43bf4b3f82f..fc61e38c558b991128a74f4259335d4af0585437 100644 --- a/messagewebview.cpp +++ b/messagewebview.cpp @@ -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; +} diff --git a/messagewebview.h b/messagewebview.h index ed27dee74af21d69b74aef0f11f390d5dea7fd01..ffa5f3535d9d29c4bbe2200ed62408d559af5e59 100644 --- a/messagewebview.h +++ b/messagewebview.h @@ -48,6 +48,7 @@ public: Q_INVOKABLE int blockConversation(); Q_INVOKABLE int emitMessagesCleared(); Q_INVOKABLE int emitMessagesLoaded(); + Q_INVOKABLE int emitPasteKeyDetected(); }; class MessageWebView : public QWebEngineView @@ -101,6 +102,7 @@ signals: void messagesCleared(); void messagesLoaded(); void textSelectedReady(); + void pasteKeyDetected(); private slots: void slotLoadFinished(); diff --git a/web/chatview.js b/web/chatview.js index f923e214829d041d1c10af4d552ba9459217a621..7fbea30ec9917b9d234bc95b64157f4bd42de2b3 100644 --- a/web/chatview.js +++ b/web/chatview.js @@ -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 @@ -1755,3 +1756,7 @@ function remove(e) { sendContainer.style.visibility = "hidden"; } } + +function pasteKeyDetected() { + window.jsbridge.emitPasteKeyDetected(); +}