status-desktop/ui/shared/status/StatusChatImageSizeValidator.qml
Eric Mastro f1e83f74bc feat: drag and drop images
Allow up to 5 images to be dragged and dropped in to one-on-one chats and in the timeline. Can be combined with the existing upload button. The upload file dialog has been changed to allow multiple selections. Drag and dropped images adhere to the following rules, with corresponding validations messages:
- Max 5 image
- Image size must be 0.5 MB or less
- File extension must be one of [".png", ".jpg", ".jpeg", ".heif", "tif", ".tiff"]

Drag and drop and uploaded images are now also deduplicated.
2021-03-16 13:51:37 -04:00

23 lines
720 B
QML

import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.13
import QtGraphicalEffects 1.0
import "../../imports"
import ".."
StatusChatImageValidator {
id: root
readonly property int maxImgSizeBytes: Constants.maxUploadFilesizeMB * 1048576 /* 1 MB in bytes */
onImagesChanged: {
let isValid = true
root.validImages = images.filter(img => {
let size = parseInt(utilsModel.getFileSize(img))
const isSmallEnough = size <= maxImgSizeBytes
isValid = isValid && isSmallEnough
return isSmallEnough
})
root.isValid = isValid
}
errorMessage: qsTr("Max image size is %1 MB").arg(Constants.maxUploadFilesizeMB)
}