[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kmplayer/0.12] src: Try to provide a location for opening/saving videos in open/save-as
From:       Koos Vriezen <koos.vriezen () gmail ! com>
Date:       2016-09-14 20:33:33
Message-ID: E1bkGs9-00080p-2R () code ! kde ! org
[Download RAW message or body]

Git commit 29c0c3137ce8f8f0927303360a181c709e9544e1 by Koos Vriezen.
Committed on 14/09/2016 at 20:31.
Pushed by vriezen into branch '0.12'.

Try to provide a location for opening/saving videos in open/save-as

M  +36   -3    src/kmplayer.cpp

http://commits.kde.org/kmplayer/29c0c3137ce8f8f0927303360a181c709e9544e1

diff --git a/src/kmplayer.cpp b/src/kmplayer.cpp
index 80aa74c..4590260 100644
--- a/src/kmplayer.cpp
+++ b/src/kmplayer.cpp
@@ -50,7 +50,6 @@
 #include <kdeversion.h>
 #include <kiconloader.h>
 #include <kmessagebox.h>
-#include <kfiledialog.h>
 #include <kmenubar.h>
 #include <kstatusbar.h>
 #include <ktoolbar.h>
@@ -85,6 +84,7 @@
 #include "kmplayerconfig.h"
 
 #include <kurlrequester.h>
+#include <QFileDialog>
 
 extern const char * strMPlayerGroup;
 
@@ -1051,8 +1051,28 @@ KDE_NO_EXPORT void KMPlayerApp::slotFileNewWindow()
     slotStatusMsg(i18n("Ready."));
 }
 
+static bool findOpenLocation(QStandardPaths::StandardLocation type, QString* dir)
+{
+    QStringList dirs = QStandardPaths::standardLocations(type);
+    for (int i = 0; i < dirs.size(); ++i) {
+        if (QDir(dirs[i]).exists()) {
+            *dir = dirs[i];
+            return true;
+        }
+    }
+    return false;
+}
+
 KDE_NO_EXPORT void KMPlayerApp::slotFileOpen () {
-    KUrl::List urls = KFileDialog::getOpenUrls (QString (), i18n ("*|All Files"), \
this, i18n ("Open File")); +    QString dir;
+    if (!(findOpenLocation(QStandardPaths::MoviesLocation, &dir)
+                || findOpenLocation(QStandardPaths::MusicLocation, &dir)
+                || findOpenLocation(QStandardPaths::DesktopLocation, &dir)
+                || findOpenLocation(QStandardPaths::HomeLocation, &dir))) {
+        dir = QString("/");
+    }
+    QList<QUrl> urls = QFileDialog::getOpenFileUrls(this, i18n("Open File"),
+            QUrl::fromLocalFile(dir), i18n ("*|All Files"));
     if (urls.size () == 1) {
         openDocumentFile (urls [0]);
     } else if (urls.size () > 1) {
@@ -1070,8 +1090,21 @@ KDE_NO_EXPORT void KMPlayerApp::slotFileOpenRecent(const QUrl& \
url)  
 }
 
+static bool findSaveLocation(QStandardPaths::StandardLocation type, QString* dir)
+{
+    *dir = QStandardPaths::writableLocation(type);
+    return !dir->isEmpty() && QDir(*dir).exists();
+}
+
 KDE_NO_EXPORT void KMPlayerApp::slotSaveAs () {
-    QString url = KFileDialog::getSaveFileName (QString (), QString (), this, i18n \
("Save File")); +    QString dir;
+    if (!(findSaveLocation(QStandardPaths::MoviesLocation, &dir)
+                || findSaveLocation(QStandardPaths::MusicLocation, &dir)
+                || findSaveLocation(QStandardPaths::DesktopLocation, &dir)
+                || findSaveLocation(QStandardPaths::HomeLocation, &dir))) {
+        dir = QString("/tmp");
+    }
+    QString url = QFileDialog::getSaveFileName(this, i18n("Save File"), dir + \
QChar('/'));  if (!url.isEmpty ()) {
         QFile file (url);
         if (!file.open (QIODevice::WriteOnly | QIODevice::Truncate)) {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic