summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThanos Doukoudakis <thanos.doukoudakis@isode.com>2017-05-08 10:50:57 (GMT)
committerThanos Doukoudakis <thanos.doukoudakis@isode.com>2017-05-08 15:36:23 (GMT)
commit473a73c7112e9fbcd441fa1bf5ff7b1f96ee28bd (patch)
tree8cbba76ae15b5bbfe9b1e64a2e94266985130bfc
parent3932697b0d4c9ca01e6d1d2ae84e7f386389e099 (diff)
downloadswift-473a73c7112e9fbcd441fa1bf5ff7b1f96ee28bd.zip
swift-473a73c7112e9fbcd441fa1bf5ff7b1f96ee28bd.tar.bz2
Fix an issue when sending a file in a chat
When you drop a file in the chat input, the file path was being sent to the chat, instead of initialising a file transfer. This patch fixes this issue and starts the file transfer. Test-Information: Tested on Windows 10 with Qt5.7. Drag a file and drop in the chat input. Change-Id: Ie6c31e0ba56ac7171442370bf7d8edbefce208d6
-rw-r--r--Swift/QtUI/QtChatWindow.cpp1
-rw-r--r--Swift/QtUI/QtTextEdit.cpp10
-rw-r--r--Swift/QtUI/QtTextEdit.h2
3 files changed, 13 insertions, 0 deletions
diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp
index 48d331e..7051683 100644
--- a/Swift/QtUI/QtChatWindow.cpp
+++ b/Swift/QtUI/QtChatWindow.cpp
@@ -150,6 +150,7 @@ QtChatWindow::QtChatWindow(const QString& contact, QtChatTheme* theme, UIEventSt
connect(input_, SIGNAL(receivedFocus()), this, SLOT(handleTextInputReceivedFocus()));
connect(input_, SIGNAL(lostFocus()), this, SLOT(handleTextInputLostFocus()));
+ connect(input_, SIGNAL(itemDropped(QDropEvent*)), this, SLOT(dropEvent(QDropEvent*)));
QPushButton* emojisButton_ = new QPushButton(this);
#ifdef SWIFTEN_PLATFORM_MACOSX
diff --git a/Swift/QtUI/QtTextEdit.cpp b/Swift/QtUI/QtTextEdit.cpp
index 1b4d76d..168e6fc 100644
--- a/Swift/QtUI/QtTextEdit.cpp
+++ b/Swift/QtUI/QtTextEdit.cpp
@@ -15,6 +15,7 @@
#include <QKeySequence>
#include <QMenu>
#include <QTextDocument>
+#include <QMimeData>
#include <Swiften/Base/Log.h>
@@ -179,6 +180,15 @@ void QtTextEdit::contextMenuEvent(QContextMenuEvent* event) {
delete menu;
}
+void QtTextEdit::dropEvent(QDropEvent* event) {
+ if (event->mimeData()->hasUrls()) {
+ itemDropped(event);
+ }
+ else {
+ QTextEdit::dropEvent(event);
+ }
+}
+
void QtTextEdit::addSuggestions(QMenu* menu, QContextMenuEvent* event)
{
replaceWordActions_.clear();
diff --git a/Swift/QtUI/QtTextEdit.h b/Swift/QtUI/QtTextEdit.h
index 228aa9e..7ce5d88 100644
--- a/Swift/QtUI/QtTextEdit.h
+++ b/Swift/QtUI/QtTextEdit.h
@@ -35,6 +35,7 @@ namespace Swift {
void unhandledKeyPressEvent(QKeyEvent* event);
void receivedFocus();
void lostFocus();
+ void itemDropped(QDropEvent* event);
public slots:
void handleSettingChanged(const std::string& settings);
@@ -44,6 +45,7 @@ namespace Swift {
virtual void focusInEvent(QFocusEvent* event);
virtual void focusOutEvent(QFocusEvent* event);
virtual void contextMenuEvent(QContextMenuEvent* event);
+ virtual void dropEvent(QDropEvent* event);
private slots:
void handleTextChanged();