tweaks for qt 4.7
[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
55 #if defined(Q_WS_S60)
56     w.showMaximized();
57 #else
58     w.show();
59 #endif
60
61         uid_t userUID = getuid();
62         if( userUID != 0 ) {
63                 ConfirmDialog d(false, &w);
64                 d.setText("Warning", "You are not running the application as root. It won't work as intended.");
65                 d.exec();
66         }
67
68 #ifdef Q_WS_MAEMO_5
69         // *** from patch by qwerty12 ***
70         if (!QDBusConnection::sessionBus().isConnected()) {
71                 qWarning("Cannot connect to the D-Bus session bus.");
72         }
73
74         if (!QDBusConnection::sessionBus().registerService("org.maemo.faster_application_manager")) {
75                 qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
76         }
77         
78         if (!QDBusConnection::sessionBus().registerObject("/org/maemo/faster_application_manager", &w, QDBusConnection::ExportScriptableSlots)) {
79                 qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
80         }
81         // ***
82 #endif
83
84     return a.exec();
85 }
86