4 // Stefan Bund <info@j32.de>
7 \brief main non-inline non-template implementation */
15 #include <QApplication>
16 #include <QSplashScreen>
18 #include <boost/python.hpp>
19 #include <boost/scoped_ptr.hpp>
20 #include "MainWindow.hh"
21 #include "PythonPublisher.hh"
25 ///////////////////////////////cc.p////////////////////////////////////////
27 int main(int argc, char *argv[])
30 QApplication app (argc, argv);
32 QSettings settings ("pykit.ini", QSettings::IniFormat);
33 QStringList arguments (app.arguments());
34 settings.beginGroup("AppData");
36 app.setApplicationName(settings.value("name").toString());
37 app.setApplicationVersion(settings.value("version").toString());
38 app.setOrganizationDomain(settings.value("organization").toString());
39 app.setOrganizationName(settings.value("organization").toString());
41 QString splashPath (settings.value("splash").toString());
42 boost::scoped_ptr<QSplashScreen> splash;
43 if (!splashPath.isEmpty()) {
44 QPixmap splashPixmap (settings.value("splash").toString());
45 splash.reset(new QSplashScreen (splashPixmap));
49 QString iconPath (settings.value("icon").toString());
52 settings.beginGroup("Viewer");
54 pykit::PythonPublisher publisher (settings.value("init").toString().toStdString());
56 QString url (settings.value("home").toString());
57 if (arguments.size()>1)
58 url = arguments.at(1);
59 pykit::MainWindow window (QUrl(url), &publisher);
60 window.setWindowTitle(app.applicationName());
61 if (!iconPath.isEmpty())
62 window.setWindowIcon(QIcon(iconPath));
63 window.setWindowIconText(window.windowTitle());
67 splash->finish(&window);
71 catch (boost::python::error_already_set & ex) {
75 catch (std::exception & ex) {
76 std::cerr << "Exception:\n" << ex.what() << "\n";
81 ///////////////////////////////cc.e////////////////////////////////////////
90 // c-file-style: "j32"
91 // indent-tabs-mode: nil
92 // ispell-local-dictionary: "american"
93 // compile-command: "scons -U"