summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJoseph Donofry <joedonofry@gmail.com>2019-07-21 21:58:48 -0400
committerJoseph Donofry <joedonofry@gmail.com>2019-07-21 21:58:48 -0400
commit49ec388c1d7f393bdf4b615266cecbc0bf6833e1 (patch)
tree28f0d17cdd7bd3ca684016f7622757a4efc25df7 /src
parentUpdate Mentions UI (diff)
parentFix copy and pasting image from clipboard (diff)
downloadnheko-49ec388c1d7f393bdf4b615266cecbc0bf6833e1.tar.xz
Merge branch '0.7.0-dev' of ssh://github.com/Nheko-Reborn/nheko into 0.7.0-dev
Diffstat (limited to 'src')
-rw-r--r--src/TextInputWidget.cpp5
-rw-r--r--src/TextInputWidget.h4
-rw-r--r--src/dialogs/PreviewUploadOverlay.cpp22
-rw-r--r--src/dialogs/PreviewUploadOverlay.h2
-rw-r--r--src/main.cpp2
5 files changed, 28 insertions, 7 deletions
diff --git a/src/TextInputWidget.cpp b/src/TextInputWidget.cpp

index 1ae26c2d..f723c01a 100644 --- a/src/TextInputWidget.cpp +++ b/src/TextInputWidget.cpp
@@ -306,8 +306,9 @@ FilteredTextEdit::insertFromMimeData(const QMimeData *source) const auto audio = formats.filter("audio/", Qt::CaseInsensitive); const auto video = formats.filter("video/", Qt::CaseInsensitive); - if (!image.empty()) { - showPreview(source, image); + if (source->hasImage()) { + QImage img = qvariant_cast<QImage>(source->imageData()); + previewDialog_.setPreview(img, image.front()); } else if (!audio.empty()) { showPreview(source, audio); } else if (!video.empty()) { diff --git a/src/TextInputWidget.h b/src/TextInputWidget.h
index 4a726364..71f794d1 100644 --- a/src/TextInputWidget.h +++ b/src/TextInputWidget.h
@@ -34,10 +34,6 @@ #include "popups/ReplyPopup.h" #include "popups/SuggestionsPopup.h" -namespace dialogs { -class PreviewUploadOverlay; -} - struct SearchResult; class FlatButton; diff --git a/src/dialogs/PreviewUploadOverlay.cpp b/src/dialogs/PreviewUploadOverlay.cpp
index c404799e..31d01214 100644 --- a/src/dialogs/PreviewUploadOverlay.cpp +++ b/src/dialogs/PreviewUploadOverlay.cpp
@@ -135,6 +135,28 @@ PreviewUploadOverlay::setLabels(const QString &type, const QString &mime, uint64 } void +PreviewUploadOverlay::setPreview(const QImage &src, const QString &mime) +{ + auto const &split = mime.split('/'); + auto const &type = split[1]; + + QBuffer buffer(&data_); + buffer.open(QIODevice::WriteOnly); + if (src.save(&buffer, type.toStdString().c_str())) + titleLabel_.setText(QString{tr(DEFAULT)}.arg("image")); + else + titleLabel_.setText(QString{tr(ERR_MSG)}.arg(type)); + + mediaType_ = split[0]; + filePath_ = "clipboard." + type; + image_.convertFromImage(src); + isImage_ = true; + + titleLabel_.setText(QString{tr(DEFAULT)}.arg("image")); + init(); +} + +void PreviewUploadOverlay::setPreview(const QByteArray data, const QString &mime) { auto const &split = mime.split('/'); diff --git a/src/dialogs/PreviewUploadOverlay.h b/src/dialogs/PreviewUploadOverlay.h
index 8099d9c2..11cd49bc 100644 --- a/src/dialogs/PreviewUploadOverlay.h +++ b/src/dialogs/PreviewUploadOverlay.h
@@ -17,6 +17,7 @@ #pragma once +#include <QImage> #include <QLabel> #include <QLineEdit> #include <QPixmap> @@ -33,6 +34,7 @@ class PreviewUploadOverlay : public QWidget public: PreviewUploadOverlay(QWidget *parent = nullptr); + void setPreview(const QImage &src, const QString &mime); void setPreview(const QByteArray data, const QString &mime); void setPreview(const QString &path); diff --git a/src/main.cpp b/src/main.cpp
index bd7560da..60bb6c76 100644 --- a/src/main.cpp +++ b/src/main.cpp
@@ -118,12 +118,12 @@ main(int argc, char *argv[]) } #endif - QApplication app(argc, argv); QCoreApplication::setApplicationName("nheko"); QCoreApplication::setApplicationVersion(nheko::version); QCoreApplication::setOrganizationName("nheko"); QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QApplication app(argc, argv); QCommandLineParser parser; parser.addHelpOption();