1 // SPDX-FileCopyrightText: 2017 Konstantinos Sideris <siderisk@auth.gr> 2 // SPDX-FileCopyrightText: 2021 Nheko Contributors 3 // 4 // SPDX-License-Identifier: GPL-3.0-or-later 5 6 #pragma once 7 8 #include <QImage> 9 #include <QLabel> 10 #include <QLineEdit> 11 #include <QPixmap> 12 #include <QPushButton> 13 #include <QWidget> 14 15 class QMimeData; 16 17 namespace dialogs { 18 19 class PreviewUploadOverlay : public QWidget 20 { 21 Q_OBJECT 22 public: 23 PreviewUploadOverlay(QWidget *parent = nullptr); 24 25 void setPreview(const QImage &src, const QString &mime); 26 void setPreview(const QByteArray data, const QString &mime); 27 void setPreview(const QString &path); 28 void keyPressEvent(QKeyEvent *event); 29 30 signals: 31 void confirmUpload(const QByteArray data, const QString &media, const QString &filename); 32 void aborted(); 33 34 private: 35 void init(); 36 void setLabels(const QString &type, const QString &mime, uint64_t upload_size); 37 38 bool isImage_; 39 QPixmap image_; 40 41 QByteArray data_; 42 QString filePath_; 43 QString mediaType_; 44 45 QLabel titleLabel_; 46 QLabel infoLabel_; 47 QLineEdit fileName_; 48 49 QPushButton upload_; 50 QPushButton cancel_; 51 }; 52 } // dialogs 53