Advertisement
Guest User

Untitled

a guest
Jun 14th, 2016
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #ifdef Q_OS_ANDROID
  2.     //  BUG with dpi on some androids: https://bugreports.qt-project.org/browse/QTBUG-35701
  3.     //  Workaround:
  4.     QAndroidJniObject qtActivity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
  5.     QAndroidJniObject resources = qtActivity.callObjectMethod("getResources", "()Landroid/content/res/Resources;");
  6.     QAndroidJniObject displayMetrics = resources.callObjectMethod("getDisplayMetrics", "()Landroid/util/DisplayMetrics;");
  7.     int density = displayMetrics.getField<int>("densityDpi");
  8. #else
  9.     QScreen *screen = qApp->primaryScreen();
  10.     float density = screen->physicalDotsPerInch();
  11. #endif
  12.  
  13.     engine.rootContext()->setContextProperty("mm",density / 25.4);
  14.     engine.rootContext()->setContextProperty("pt", 1);
  15.  
  16.     double scale = density < 180 ? 1 :
  17.                    density < 270 ? 1.5 :
  18.                    density < 360 ? 2 : 3;
  19.     engine.rootContext()->setContextProperty("dp", scale);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement