main.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <QGuiApplication>
  2. #include <QQmlApplicationEngine>
  3. #include <QQmlContext>
  4. #include <QThread>
  5. #include <QSettings>
  6. #include <QSurfaceFormat>
  7. #include <picturemodel.h>
  8. class PictureThreadWrapper : public QObject {
  9. public:
  10. PictureThreadWrapper(QObject *parent = 0) : QObject (parent) {
  11. QSettings settings;
  12. const QString &artPath = settings.value("artPath","/blackhole/media/art/Banksy").toString();
  13. PictureModel::instance()->addSupportedExtension("jpg");
  14. PictureModel::instance()->setModelRoot(artPath);
  15. settings.setValue("artPath", artPath);
  16. }
  17. };
  18. int main(int argc, char *argv[])
  19. {
  20. qsrand(time(NULL));
  21. QGuiApplication app(argc, argv);
  22. app.setOrganizationName("Chaos Reins");
  23. app.setApplicationName("Articulate");
  24. QSettings settings;
  25. if (settings.value("force32bpp", false).toBool()) {
  26. QSurfaceFormat format = QSurfaceFormat::defaultFormat();
  27. format.setAlphaBufferSize(8);
  28. format.setRedBufferSize(8);
  29. format.setGreenBufferSize(8);
  30. format.setBlueBufferSize(8);
  31. if (settings.value("forceSingleBuffer", false).toBool())
  32. format.setSwapBehavior(QSurfaceFormat::SingleBuffer);
  33. QSurfaceFormat::setDefaultFormat(format);
  34. }
  35. QQmlApplicationEngine engine;
  36. QThread scanningThread;
  37. PictureThreadWrapper *wrapper = new PictureThreadWrapper();
  38. wrapper->moveToThread(&scanningThread);
  39. scanningThread.start();
  40. engine.rootContext()->setContextProperty("imageModel", PictureModel::instance());
  41. engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
  42. return app.exec();
  43. }