]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinapplication.cpp
fixed crash when cancelling the "apply view properties" dialog
[dolphin.git] / src / dolphinapplication.cpp
index 4c3273bff02a74708e0db443be5cff866729fe1d..4bec274927af57c39cb17adadc3ea2ae7745754a 100644 (file)
 
 #include "dolphinapplication.h"
 #include "dolphinmainwindow.h"
+#include "dolphinviewcontainer.h"
 
 #include <applicationadaptor.h>
 #include <kcmdlineargs.h>
 #include <kurl.h>
 #include <QtDBus/QDBusConnection>
+#include <QtCore/QDir>
 
 DolphinApplication::DolphinApplication() :
     m_lastId(0)
@@ -71,27 +73,28 @@ void DolphinApplication::refreshMainWindows()
 
 int DolphinApplication::newInstance()
 {
-    int exitValue = KUniqueApplication::newInstance();
-
+    KCmdLineArgs::setCwd(QDir::currentPath().toUtf8());
     KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
+    static bool first = true;
     if (args->count() > 0) {
         for (int i = 0; i < args->count(); ++i) {
             openWindow(args->url(i));
         }
-    } else {
+    } else if( !first || !isSessionRestored()) {
         openWindow(KUrl());
     }
+    first = false;
 
     args->clear();
 
-    return exitValue;
+    return 0;
 }
 
 int DolphinApplication::openWindow(const KUrl& url)
 {
     DolphinMainWindow* win = createMainWindow();
-    if ((win->activeView() != 0) && url.isValid()) {
-        win->activeView()->setUrl(url);
+    if ((win->activeViewContainer() != 0) && url.isValid()) {
+        win->activeViewContainer()->setUrl(url);
     }
     win->show();
     return win->getId();