]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix wrong behaviour, when Dolphin is started with --split argument.
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Fri, 24 Aug 2012 19:47:14 +0000 (21:47 +0200)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Fri, 24 Aug 2012 21:57:51 +0000 (23:57 +0200)
Actual Results:
dolphin starts without split view

Expected Results:
dolphin starts with split view

New behaviour:
* no url given - use default url for all two views
* one url given - use given url for all two views
* two urls given - open the first url in the left view and the second url in the right view

BUG: 305538
REVIEW: 106171
FIXED-IN: 4.9.1

src/dolphinapplication.cpp

index 0cd51a454b36c16f09cf60fbd8bb6b1ad91795f8..8e83a85928a0dadf56f5b0969c99c9f409e4d8f6 100644 (file)
@@ -38,6 +38,16 @@ DolphinApplication::DolphinApplication() :
 
     KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
 
+    const int argsCount = args->count();
+
+    QList<KUrl> urls;
+    for (int i = 0; i < argsCount; ++i) {
+        const KUrl url = args->url(i);
+        if (url.isValid()) {
+            urls.append(url);
+        }
+    }
+
     bool resetSplitSettings = false;
     if (args->isSet("split") && !GeneralSettings::splitView()) {
         // Dolphin should be opened with a split view although this is not
@@ -45,31 +55,29 @@ DolphinApplication::DolphinApplication() :
         // all passed URLs have been opened.
         GeneralSettings::setSplitView(true);
         resetSplitSettings = true;
-    }
 
-    const int argsCount = args->count();
-    if (argsCount > 0) {
-        QList<KUrl> urls;
-        for (int i = 0; i < argsCount; ++i) {
-            const KUrl url = args->url(i);
-            if (url.isValid()) {
-                urls.append(url);
-            }
+        // We need 2 URLs to open Dolphin in split view mode
+        if (urls.isEmpty()) { // No URL given - Open home URL in all two views
+            urls.append(GeneralSettings::homeUrl());
+            urls.append(GeneralSettings::homeUrl());
+        } else if (urls.length() == 1) { // Only 1 URL given - Open given URL in all two views
+            urls.append(urls.at(0));
         }
+    }
 
-        if (!urls.isEmpty()) {
-            if (args->isSet("select")) {
-                m_mainWindow->openFiles(urls);
-            } else {
-                m_mainWindow->openDirectories(urls);
-            }
+    if (!urls.isEmpty()) {
+        if (args->isSet("select")) {
+            m_mainWindow->openFiles(urls);
+        } else {
+            m_mainWindow->openDirectories(urls);
         }
     }
-    args->clear();
 
     if (resetSplitSettings) {
         GeneralSettings::setSplitView(false);
     }
+
+    args->clear();
 }
 
 DolphinApplication::~DolphinApplication()