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);
|