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