#include "dolphinapplication.h"
#include "dolphinmainwindow.h"
+#include "dolphinviewcontainer.h"
-DolphinApplication::DolphinApplication()
+#include <applicationadaptor.h>
+#include <kcmdlineargs.h>
+#include <kurl.h>
+#include <QtDBus/QDBusConnection>
+#include <QtCore/QDir>
+
+DolphinApplication::DolphinApplication() :
+ m_lastId(0)
{
+ new ApplicationAdaptor(this);
+ QDBusConnection::sessionBus().registerObject("/dolphin/Application", this);
}
DolphinApplication::~DolphinApplication()
DolphinMainWindow* DolphinApplication::createMainWindow()
{
- DolphinMainWindow* mainWindow = new DolphinMainWindow();
+ DolphinMainWindow* mainWindow = new DolphinMainWindow(m_lastId);
+ ++m_lastId;
mainWindow->init();
m_mainWindows.append(mainWindow);
}
}
+int DolphinApplication::newInstance()
+{
+ KCmdLineArgs::setCwd(QDir::currentPath().toUtf8());
+ KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
+ static bool first = true;
+
+ switch (args->count()) {
+ case 0:
+ if( !first || !isSessionRestored()) {
+ openWindow(KUrl());
+ }
+ break;
+
+ case 1:
+ openWindow(args->url(0));
+ break;
+
+ case 2:
+ openSplitWindow(args->url(0),args->url(1));
+ break;
+
+ default:
+ for (int i = 0; i < args->count(); ++i) {
+ openWindow(args->url(i));
+ }
+ }
+
+ first = false;
+ args->clear();
+ return 0;
+}
+
+int DolphinApplication::openWindow(const KUrl& url)
+{
+ DolphinMainWindow* win = createMainWindow();
+ if ((win->activeViewContainer() != 0) && url.isValid()) {
+ win->activeViewContainer()->setUrl(url);
+ }
+ win->show();
+ return win->getId();
+}
+
+int DolphinApplication::openSplitWindow(const KUrl& leftUrl, const KUrl& rightUrl)
+{
+ DolphinMainWindow* win = createMainWindow();
+ if ((win->activeViewContainer() != 0) && leftUrl.isValid()) {
+ win->activeViewContainer()->setUrl(leftUrl);
+ }
+ win->toggleSplitView();
+ if ((win->activeViewContainer() != 0) && rightUrl.isValid()){
+ win->activeViewContainer()->setUrl(rightUrl);
+ }
+ win->show();
+ return win->getId();
+}
+
+
#include "dolphinapplication.moc"