]> git.sur5r.net Git - minitube/blobdiff - src/downloadsettings.cpp
Imported Upstream version 1.7
[minitube] / src / downloadsettings.cpp
index 557a4e13c5fb31e75e1b280a261af115cd7efe96..80b276313b7a390286dc9f4c32c4a4e7f17811a1 100644 (file)
@@ -35,10 +35,22 @@ void DownloadSettings::paintEvent(QPaintEvent * /*event*/) {
 }
 
 void DownloadSettings::changeFolder() {
-    QString dir = QFileDialog::getExistingDirectory(this, tr("Choose the download location"),
+
+#ifdef APP_MAC
+    QFileDialog* dialog = new QFileDialog(this);
+    dialog->setFileMode(QFileDialog::Directory);
+    dialog->setOptions(QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks | QFileDialog::ReadOnly);
+    dialog->setDirectory(QDesktopServices::storageLocation(QDesktopServices::HomeLocation));
+    dialog->open(this, SLOT(folderChosen(const QString &)));
+#else
+    QString folder = QFileDialog::getExistingDirectory(window(), tr("Choose the download location"),
                                                     QDesktopServices::storageLocation(QDesktopServices::HomeLocation),
-                                                    QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+                                                    QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks | QFileDialog::ReadOnly);
+    folderChosen(folder);
+#endif
+}
 
+void DownloadSettings::folderChosen(const QString &dir) {
     if (!dir.isEmpty()) {
         QSettings settings;
         settings.setValue("downloadFolder", dir);