change built type from console to windows app
[pykit.git] / main.cc
diff --git a/main.cc b/main.cc
index 84a675f..bd65730 100644 (file)
--- a/main.cc
+++ b/main.cc
@@ -15,7 +15,9 @@
 #include <QApplication>
 #include <QSplashScreen>
 #include <QSettings>
-#include <boost/python.hpp>
+#include <QDir>
+#include <QFileInfo>
+#include <QFontDatabase>
 #include <boost/scoped_ptr.hpp>
 #include "MainWindow.hh"
 #include "PythonPublisher.hh"
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
+extern void qt_drt_overwritePluginDirectories();
+
+namespace {
+    QSize parseSize(QString const & s)
+    {
+        QStringList coords (s.split(" "));
+        if (coords.size() != 2)
+            return QSize();
+        return QSize(coords[0].toInt(), coords[1].toInt());
+    }
+}
+
 int main(int argc, char *argv[])
 {
     try {
@@ -49,9 +63,26 @@ int main(int argc, char *argv[])
         QString iconPath (settings.value("icon").toString());
 
         settings.endGroup();
+
+        settings.beginGroup("Fonts");
+        QString loadFontDir (settings.value("loaddir").toString());
+        if (!loadFontDir.isEmpty()) {
+            QDir dir (loadFontDir);
+            if (dir.exists()) {
+                QFileInfoList files (dir.entryInfoList(QDir::Files));
+                for (QFileInfoList::iterator i (files.begin()), i_end (files.end());
+                     i != i_end; ++i)
+                    QFontDatabase::addApplicationFont(i->absoluteFilePath());
+            }
+            else
+                std::cerr << "WARNING: Font directory not found" << std::endl;
+        }
+        settings.endGroup();
+
         settings.beginGroup("Viewer");
 
-        pykit::PythonPublisher publisher (settings.value("init").toString().toStdString());
+        pykit::PythonPublisher publisher;
+        qt_drt_overwritePluginDirectories();
 
         QString url (settings.value("home").toString());
         if (arguments.size()>1)
@@ -62,16 +93,15 @@ int main(int argc, char *argv[])
             window.setWindowIcon(QIcon(iconPath));
         window.setWindowIconText(window.windowTitle());
 
+        window.setMinimumSize(parseSize(settings.value("minsize").toString()));
+        window.resize(parseSize(settings.value("size").toString()));
+
         window.show();
         if (splash)
             splash->finish(&window);
 
         return app.exec();
     }
-    catch (boost::python::error_already_set & ex) {
-        PyErr_Print();
-        throw;
-    }
     catch (std::exception & ex) {
         std::cerr << "Exception:\n" << ex.what() << "\n";
         throw;
@@ -90,5 +120,5 @@ int main(int argc, char *argv[])
 // c-file-style: "j32"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
-// compile-command: "scons -U"
+// compile-command: "make"
 // End: