Show some previews in upload window

This commit is contained in:
Nicolas Werner 2022-03-21 05:05:29 +01:00
parent 830f4d4942
commit dbd2bebe6c
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
9 changed files with 104 additions and 7 deletions

View file

@ -251,6 +251,8 @@ MainWindow::registerQmlTypes()
qmlRegisterType<emoji::EmojiModel>("im.nheko.EmojiModel", 1, 0, "EmojiModel");
qmlRegisterUncreatableType<emoji::Emoji>(
"im.nheko.EmojiModel", 1, 0, "Emoji", QStringLiteral("Used by emoji models"));
qmlRegisterUncreatableType<MediaUpload>(
"im.nheko", 1, 0, "MediaUpload", QStringLiteral("MediaUploads can not be created in Qml"));
qmlRegisterUncreatableMetaObject(emoji::staticMetaObject,
"im.nheko.EmojiModel",
1,

View file

@ -53,11 +53,11 @@ class MediaUpload : public QObject
{
Q_OBJECT
// Q_PROPERTY(bool uploading READ uploading NOTIFY uploadingChanged)
// Q_PROPERTY(MediaType mediaType READ type NOTIFY mediaTypeChanged)
Q_PROPERTY(int mediaType READ type NOTIFY mediaTypeChanged)
// // https://stackoverflow.com/questions/33422265/pass-qimage-to-qml/68554646#68554646
// Q_PROPERTY(QUrl thumbnail READ thumbnail NOTIFY thumbnailChanged)
// Q_PROPERTY(QString humanSize READ humanSize NOTIFY huSizeChanged)
// Q_PROPERTY(QString filename READ filename NOTIFY filenameChanged)
Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
// Q_PROPERTY(QString mimetype READ mimetype NOTIFY mimetypeChanged)
// Q_PROPERTY(int height READ height NOTIFY heightChanged)
// Q_PROPERTY(int width READ width NOTIFY widthChanged)
@ -73,7 +73,7 @@ public:
Video,
Audio,
};
Q_ENUM(MediaType);
Q_ENUM(MediaType)
explicit MediaUpload(std::unique_ptr<QIODevice> data,
QString mimetype,
@ -81,6 +81,17 @@ public:
bool encrypt,
QObject *parent = nullptr);
[[nodiscard]] int type() const
{
if (mimeClass_ == u"video")
return MediaType::Video;
else if (mimeClass_ == u"audio")
return MediaType::Audio;
else if (mimeClass_ == u"image")
return MediaType::Image;
else
return MediaType::File;
}
[[nodiscard]] QString url() const { return url_; }
[[nodiscard]] QString mimetype() const { return mimetype_; }
[[nodiscard]] QString mimeClass() const { return mimeClass_; }
@ -102,9 +113,19 @@ public:
QString thumbnailUrl() const { return thumbnailUrl_; }
[[nodiscard]] uint64_t thumbnailSize() const { return thumbnailSize_; }
void setFilename(QString fn)
{
if (fn != originalFilename_) {
originalFilename_ = std::move(fn);
emit filenameChanged();
}
}
signals:
void uploadComplete(MediaUpload *self, QString url);
void uploadFailed(MediaUpload *self);
void filenameChanged();
void mediaTypeChanged();
public slots:
void startUpload();