summary refs log tree commit diff
path: root/src/TextInputWidget.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/TextInputWidget.cc')
-rw-r--r--src/TextInputWidget.cc23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/TextInputWidget.cc b/src/TextInputWidget.cc

index 2f6c435a..dc2bebe7 100644 --- a/src/TextInputWidget.cc +++ b/src/TextInputWidget.cc
@@ -20,6 +20,8 @@ #include <QFile> #include <QFileDialog> #include <QImageReader> +#include <QMimeDatabase> +#include <QMimeType> #include <QPainter> #include <QStyleOption> @@ -276,24 +278,21 @@ TextInputWidget::command(QString command, QString args) void TextInputWidget::openFileSelection() { - QStringList imageExtensions; - imageExtensions << "jpeg" - << "gif" - << "png" - << "bmp" - << "tiff" - << "webp"; - - auto fileName = - QFileDialog::getOpenFileName(this, tr("Select an file"), "", tr("All Files (*)")); + const auto fileName = + QFileDialog::getOpenFileName(this, tr("Select a file"), "", tr("All Files (*)")); if (fileName.isEmpty()) return; - auto format = QString(QImageReader::imageFormat(fileName)); + QMimeDatabase db; + QMimeType mime = db.mimeTypeForFile(fileName, QMimeDatabase::MatchContent); + + const auto format = mime.name().split("/")[0]; - if (imageExtensions.contains(format)) + if (format == "image") emit uploadImage(fileName); + else if (format == "audio") + emit uploadAudio(fileName); else emit uploadFile(fileName);