]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/dialogs/SaveDialog.cpp
Display the MIME type icon in the download dialog.
[PrivacyBrowserPC.git] / src / dialogs / SaveDialog.cpp
index fff857d41e18679f2b61cf374152f8316ced57a8..622bc363a1ef2945338651a4774136aa3f3fa30b 100644 (file)
@@ -25,6 +25,7 @@
 #include <KLocalizedString>
 
 // Qt toolkit headers.
+#include <QDebug>
 #include <QMimeDatabase>
 #include <QPushButton>
 #include <QShortcut>
@@ -45,6 +46,7 @@ SaveDialog::SaveDialog(QWebEngineDownloadItem *downloadItemPointer)
     saveDialogUi.setupUi(this);
 
     // Get handles for the widgets.
+    QGraphicsView *mimeGraphicsViewPointer = saveDialogUi.mimeGraphicsView;
     QLabel *urlLabelPointer = saveDialogUi.urlLabel;
     QLabel *filetypeLabelPointer = saveDialogUi.fileTypeLabel;
     QLabel *mimeTypeLabelPointer = saveDialogUi.mimeTypeLabel;
@@ -55,15 +57,33 @@ SaveDialog::SaveDialog(QWebEngineDownloadItem *downloadItemPointer)
     // Get the URL and the suggested file name.
     downloadUrl = downloadItemPointer->url();
     suggestedFileName = downloadItemPointer->suggestedFileName();
-    QString mimeType = downloadItemPointer->mimeType();
+    QString mimeTypeString = downloadItemPointer->mimeType();
 
     // Get a MIME type database.
     QMimeDatabase mimeDatabase;
 
+    // Get the MIME type.
+    QMimeType mimeType = mimeDatabase.mimeTypeForName(mimeTypeString);
+
+    // Get the MIME type icon.
+    QIcon mimeTypeIcon = QIcon::fromTheme(mimeType.iconName());
+
+    // Create a graphics scene.
+    QGraphicsScene *mimeGraphicsScenePointer = new QGraphicsScene(this);
+
+    // Set the graphics scene.
+    mimeGraphicsViewPointer->setScene(mimeGraphicsScenePointer);
+
+    // Set the background of the graphics view to be the same as the window
+    mimeGraphicsViewPointer->setBackgroundRole(QPalette::Window);
+
+    // Add the MIME type icon to the scene.
+    mimeGraphicsScenePointer->addPixmap(mimeTypeIcon.pixmap(64, 64));
+
     // Populate the labels.
     urlLabelPointer->setText("<b>" + downloadUrl.toString() + "</b>");
-    filetypeLabelPointer->setText("<b>" + mimeDatabase.mimeTypeForName(mimeType).comment() + "</b>");
-    mimeTypeLabelPointer->setText("<b>" + mimeType + "</b>");
+    filetypeLabelPointer->setText("<b>" + mimeType.comment() + "</b>");
+    mimeTypeLabelPointer->setText("<b>" + mimeTypeString + "</b>");
 
     // Populate the download size label.
     if (downloadItemPointer->totalBytes() == -1)  // The file size is unknown.