4 // Stefan Bund <info@j32.de>
7 \brief main non-inline non-template implementation */
15 #include <QApplication>
16 #include <QSplashScreen>
20 #include <QFontDatabase>
21 #include <boost/scoped_ptr.hpp>
22 #include "MainWindow.hh"
23 #include "PythonPublisher.hh"
27 ///////////////////////////////cc.p////////////////////////////////////////
29 extern void qt_drt_overwritePluginDirectories();
31 int main(int argc, char *argv[])
34 QApplication app (argc, argv);
36 QSettings settings ("pykit.ini", QSettings::IniFormat);
37 QStringList arguments (app.arguments());
38 settings.beginGroup("AppData");
40 app.setApplicationName(settings.value("name").toString());
41 app.setApplicationVersion(settings.value("version").toString());
42 app.setOrganizationDomain(settings.value("organization").toString());
43 app.setOrganizationName(settings.value("organization").toString());
45 QString splashPath (settings.value("splash").toString());
46 boost::scoped_ptr<QSplashScreen> splash;
47 if (!splashPath.isEmpty()) {
48 QPixmap splashPixmap (settings.value("splash").toString());
49 splash.reset(new QSplashScreen (splashPixmap));
53 QString iconPath (settings.value("icon").toString());
57 settings.beginGroup("Fonts");
58 QString loadFontDir (settings.value("loaddir").toString());
59 if (!loadFontDir.isEmpty()) {
60 QDir dir (loadFontDir);
62 QFileInfoList files (dir.entryInfoList(QDir::Files));
63 for (QFileInfoList::iterator i (files.begin()), i_end (files.end());
65 QFontDatabase::addApplicationFont(i->absoluteFilePath());
68 std::cerr << "WARNING: Font directory not found" << std::endl;
72 settings.beginGroup("Viewer");
74 pykit::PythonPublisher publisher;
75 qt_drt_overwritePluginDirectories();
77 QString url (settings.value("home").toString());
78 if (arguments.size()>1)
79 url = arguments.at(1);
80 pykit::MainWindow window (QUrl(url), &publisher);
81 window.setWindowTitle(app.applicationName());
82 if (!iconPath.isEmpty())
83 window.setWindowIcon(QIcon(iconPath));
84 window.setWindowIconText(window.windowTitle());
88 splash->finish(&window);
92 catch (std::exception & ex) {
93 std::cerr << "Exception:\n" << ex.what() << "\n";
98 ///////////////////////////////cc.e////////////////////////////////////////
100 //#include "main.mpp"
106 // comment-column: 40
107 // c-file-style: "j32"
108 // indent-tabs-mode: nil
109 // ispell-local-dictionary: "american"
110 // compile-command: "scons -U"