0.7.1
[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 extern "C"
27 {
28         #include <unistd.h>
29 }
30
31 bool EnableDebugOutput = false;
32
33 void myMessageOutput( QtMsgType, const char *msg )
34 {
35         if( EnableDebugOutput )
36                 std::cerr << msg << std::endl;
37 }
38
39 int main(int argc, char *argv[])
40 {
41         qInstallMsgHandler( myMessageOutput );
42     QApplication a(argc, argv);
43
44         a.setApplicationName("faster_application_manager");
45         QDir::setCurrent("/root/.fapman/");
46
47         EnableDebugOutput = false;
48         if( a.arguments().contains("-d") ) {
49                 EnableDebugOutput = true;
50                 qDebug() << "Enabled debug output";
51         }
52
53         MainWindow w;
54     w.show();
55
56         uid_t userUID = getuid();
57         if( userUID != 0 ) {
58                 ConfirmDialog d(false, &w);
59                 d.setText("Warning", "You are not running the application as root. It won't work as intended.");
60                 d.exec();
61         }
62
63 #ifdef Q_WS_MAEMO_5
64         // *** from patch by qwerty12 ***
65         if (!QDBusConnection::sessionBus().isConnected()) {
66                 qWarning("Cannot connect to the D-Bus session bus.");
67         }
68
69         if (!QDBusConnection::sessionBus().registerService("org.maemo.faster_application_manager")) {
70                 qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
71         }
72         
73         if (!QDBusConnection::sessionBus().registerObject("/org/maemo/faster_application_manager", &w, QDBusConnection::ExportScriptableSlots)) {
74                 qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
75         }
76         // ***
77 #endif
78
79     return a.exec();
80 }
81