┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/main.cpp
blob: 5a6d3dd8e81356c9a17941f7686017720d8d5d0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/***************************************************************************
 *   Copyright (C) 2006 by Peter Penz <[email protected]>                  *
 *   Copyright (C) 2006 by Stefan Monov <[email protected]>               *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   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.,                                       *
 *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
 ***************************************************************************/

#include "dolphinapplication.h"
#include "dolphinmainwindow.h"
#include <kaboutdata.h>
#include <kcmdlineargs.h>
#include <klocale.h>
#include <krun.h>
#include <QDBusInterface>
#include <QDBusReply>

static KCmdLineOptions options[] =
{
    { "+[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<int> reply = dbusIface.call("openWindow", url);
}

int main(int argc, char **argv)
{
    KAboutData about("dolphin",
                     I18N_NOOP("Dolphin"),
                     "0.9.0",
                     I18N_NOOP("File Manager"),
                     KAboutData::License_GPL,
                     "(C) 2006 Peter Penz");
    about.setHomepage("http://enzosworld.gmxhome.de");
    about.setBugAddress("[email protected]");
    about.addAuthor("Peter Penz", I18N_NOOP("Maintainer and developer"), "[email protected]");
    about.addAuthor("Cvetoslav Ludmiloff", I18N_NOOP("Developer"), "[email protected]");
    about.addAuthor("Stefan Monov", I18N_NOOP("Developer"), "[email protected]");
    about.addAuthor("Michael Austin", I18N_NOOP("Documentation"), "[email protected]");
    about.addAuthor("Orville Bennett", I18N_NOOP("Documentation"), "[email protected]");
    about.addCredit("Aaron J. Seigo", I18N_NOOP("... for the great support and the amazing patches"));
    about.addCredit("Patrice Tremblay and Gregor Kalisnik", I18N_NOOP("... for their patches"));
    about.addCredit("Ain, Itai, Ivan, Stephane, Patrice, Piotr and Stefano",
                    I18N_NOOP("... for their translations"));

    KCmdLineArgs::init(argc, argv, &about);
    KCmdLineArgs::addCmdLineOptions(options);
    DolphinApplication *app = 0;
    if (DolphinApplication::start()) {
        app = new DolphinApplication();
    }


#ifdef __GNUC__
#warning TODO, SessionManagement
#endif
#if 0
    if (false /* KDE4-TODO: app.isSessionRestored() */) {
        int n = 1;
        while (KMainWindow::canBeRestored(n)){
            Dolphin::mainWin().restore(n);
            ++n;
        }
    } else {
#endif

    KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
    if (args->count() > 0) {
        for (int i = 0; i < args->count(); ++i) {
            openWindow(app, args->arg(i));
        }
    }
    else {
        openWindow(app);
    }
    args->clear();
    if (app != 0) {
        return app->exec();
    }
}