[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