0aaf9ffc7035eb21946ed1c78be00aef4fa1349a
[fapman] / main.cpp
1 /*
2         This file is part of Faster Application Manager.
3
4         Faster Application Manager is free software: you can redistribute it and/or modify
5         it under the terms of the GNU General Public License as published by
6         the Free Software Foundation, either version 3 of the License, or
7         (at your option) any later version.
8
9         Faster Application Manager is distributed in the hope that it will be useful,
10         but WITHOUT ANY WARRANTY; without even the implied warranty of
11         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12         GNU General Public License for more details.
13
14         You should have received a copy of the GNU General Public License
15         along with Faster Application Manager.  If not, see <http://www.gnu.org/licenses/>.
16
17         (C) Heikki Holstila 2010
18 */
19
20 #include <QtGui/QApplication>
21 #include <QtDBus>
22 #include <iostream>
23 #include "mainwindow.h"
24 #include "confirmdialog.h"
25
26 #include <unistd.h>
27
28 bool EnableDebugOutput = false;
29
30 void myMessageOutput( QtMsgType, const char *msg )
31 {
32         if( EnableDebugOutput )
33                 std::cerr << msg << std::endl;
34 }
35
36 int main(int argc, char *argv[])
37 {
38         qInstallMsgHandler( myMessageOutput );
39     QApplication a(argc, argv);
40
41         a.setApplicationName("faster_application_manager");
42         QDir::setCurrent("/root/.fapman/");
43
44         EnableDebugOutput = false;
45         if( a.arguments().contains("-d") ) {
46                 EnableDebugOutput = true;
47                 qDebug() << "Enabled debug output";
48         }
49
50         MainWindow w;
51
52 #if defined(Q_WS_S60)
53     w.showMaximized();
54 #else
55     w.show();
56 #endif
57
58         uid_t userUID = getuid();
59         if( userUID != 0 ) {
60                 ConfirmDialog d(false, &w);
61                 d.setText("Warning", "You are not running the application as root. It won't work as intended.");
62                 d.exec();
63         }
64
65 #ifdef Q_WS_MAEMO_5
66         // *** from patch by qwerty12 ***
67         if (!QDBusConnection::sessionBus().isConnected()) {
68                 qWarning("Cannot connect to the D-Bus session bus.");
69         }
70
71         if (!QDBusConnection::sessionBus().registerService("org.maemo.faster_application_manager")) {
72                 qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
73         }
74         
75         if (!QDBusConnection::sessionBus().registerObject("/org/maemo/faster_application_manager", &w, QDBusConnection::ExportScriptableSlots)) {
76                 qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
77         }
78         // ***
79 #endif
80
81     return a.exec();
82 }
83