GCC Code Coverage Report


Directory: ./
File: src/gui/main.cc
Date: 2024-08-14 11:04:57
Exec Total Coverage
Lines: 0 48 0.0%
Branches: 0 104 0.0%

Line Branch Exec Source
1 #include "gepetto/gui/fwd.hh"
2
3 #include <QApplication>
4 #include <QSettings>
5 #include <QStyleFactory>
6 #include <QProcessEnvironment>
7 #include <QSplashScreen>
8 #include <QIcon>
9 #include <QtGlobal>
10
11 #include <QItemSelection>
12
13 #include "gepetto/gui/safeapplication.hh"
14 #include "gepetto/gui/mainwindow.hh"
15 #include "gepetto/gui/dialog/pluginmanagerdialog.hh"
16 #include "gepetto/gui/settings.hh"
17
18 using namespace gepetto::gui;
19
20 // TODO check what version exactly already includes the metatype declaration.
21 // It is not in 5.2.1 and it is in 5.5.1
22 #if (QT_VERSION < QT_VERSION_CHECK(5,5,1))
23 Q_DECLARE_METATYPE(QItemSelection)
24 #endif
25
26 void setupApplication ()
27 {
28 QCoreApplication::setOrganizationName("gepetto-gui");
29 QCoreApplication::setOrganizationDomain("https://github.com/Gepetto/gepetto-viewer");
30 QCoreApplication::setApplicationName("gepetto-gui");
31 QCoreApplication::setApplicationVersion("5.1.0");
32
33 QStringList theme_paths = QIcon::themeSearchPaths();
34 if (!theme_paths.contains("/usr/local/share/icons/")) {
35 theme_paths.prepend("/usr/local/share/icons/");
36 QIcon::setThemeSearchPaths(theme_paths);
37 }
38 QIcon::setThemeName("oxygen");
39
40 qRegisterMetaType<std::string>("std::string");
41 qRegisterMetaType<QItemSelection>("QItemSelection");
42 }
43
44 int main(int argc, char *argv[])
45 {
46 QApplication::setAttribute(Qt::AA_X11InitThreads);
47
48 SafeApplication a(argc, argv);
49
50 setupApplication();
51
52 // Set numeric locale to C so as not to disturb other libraries (like collada
53 // dom) relying on sscanf (locale dependant) to convert string to double.
54 setlocale(LC_NUMERIC, "C");
55
56 Settings settings ("/opt/openrobots");
57 settings.setupPaths ();
58 switch (settings.initSettings (argc, argv)) {
59 case 0:
60 break;
61 case 1:
62 return 0;
63 case 2:
64 return 1;
65 default:
66 qDebug () << "Settings.fromArgv returned unknow error code";
67 break;
68 }
69
70 QStyle* style = QStyleFactory::create (settings.appStyle);
71 if (style==NULL)
72 qDebug() << "invalid style" << settings.appStyle;
73 else
74 a.setStyle(style);
75
76 QPixmap pixmap(":/img/gepetto.png");
77 a.setWindowIcon(pixmap);
78
79
80 QSplashScreen splash(pixmap);
81 splash.show();
82 a.processEvents ();
83
84 MainWindow w (&settings);
85 w.setWindowIcon (pixmap);
86 settings.setMainWindow (&w);
87 settings.initPlugins ();
88 settings.restoreState ();
89 w.show();
90 splash.finish(&w);
91 int retCode = a.exec();
92 settings.saveState ();
93 return retCode;
94 }
95