X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5252c12db4929886dbe502013e0a1fee6500f568..a0cf8456fe171bd221025b3ff3677db4675390b5:/src/main.cpp diff --git a/src/main.cpp b/src/main.cpp index 00e6aeb99..9de7b609a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,22 +15,36 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include "dolphin.h" -#include +#include "dolphinapplication.h" +#include "dolphinmainwindow.h" #include #include #include #include +#include +#include static KCmdLineOptions options[] = { - { "+[URL]", I18N_NOOP( "Document to open" ), 0 }, + { "+[Url]", I18N_NOOP( "Document to open" ), 0 }, KCmdLineLastOption }; +void openWindow(DolphinApplication* app, const QString& url = QString()) +{ + if (app != 0) { + app->openWindow(url); + return; + } + + static QDBusInterface dbusIface("org.kde.dolphin", "/dolphin/Application", "", + QDBusConnection::connectToBus(QDBusConnection::SessionBus, "session_bus")); + QDBusReply reply = dbusIface.call("openWindow", url); +} + int main(int argc, char **argv) { KAboutData about("dolphin", @@ -53,29 +67,34 @@ int main(int argc, char **argv) KCmdLineArgs::init(argc, argv, &about); KCmdLineArgs::addCmdLineOptions(options); + DolphinApplication *app = 0; + if (DolphinApplication::start()) { + app = new DolphinApplication(); + } - KApplication app; - - Dolphin& mainWin = Dolphin::mainWin(); - mainWin.show(); - if (false /* KDE4-TODO: app.isRestored() */) { +#warning TODO, SessionManagement +#if 0 + if (false /* KDE4-TODO: app.isSessionRestored() */) { int n = 1; while (KMainWindow::canBeRestored(n)){ Dolphin::mainWin().restore(n); ++n; } } else { - KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); - if (args->count() > 0) { - mainWin.activeView()->setURL(args->url(0)); +#endif - for (int i = 1; i < args->count(); ++i) { - KRun::run("dolphin", args->url(i)); - } + KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); + if (args->count() > 0) { + for (int i = 0; i < args->count(); ++i) { + openWindow(app, args->arg(i)); } - args->clear(); } - - return app.exec(); + else { + openWindow(app); + } + args->clear(); + if (app != 0) { + return app->exec(); + } }