-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwidgettools.cpp
More file actions
48 lines (42 loc) · 1.32 KB
/
Copy pathwidgettools.cpp
File metadata and controls
48 lines (42 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "widgettools.h"
#include <QScreen>
#include <QDebug>
WidgetTools::WidgetTools()
{
}
#ifdef Q_OS_ANDROID
// will return ldpi, mdpi, hdpi, xhdpi, dependig on the screen
// as described on http://developer.android.com/guide/practices/screens_support.html
const QString &WidgetTools::screenGeneralizedDensity()
{
static bool initDone(false);
static QMap<int, QString> densityMap;
static QString density;
if (!initDone)
{
densityMap.insert(120, QString("ldpi"));
densityMap.insert(160, "mdpi");
densityMap.insert(240, "hdpi");
densityMap.insert(320, "xhdpi");
int devDpi = QApplication::primaryScreen()->physicalDotsPerInch();
int minDiff = INT_MAX;
density = densityMap.value(120);
foreach (int k, densityMap.keys()) {
if (std::abs(k - devDpi) < minDiff)
{
minDiff = std::abs(k - devDpi);
density = densityMap.value(k);
}
}
initDone = true;
qDebug() << "Generalized screen density is " << density;
}
return density;
}
QPixmap WidgetTools::loadDensityPixmap(const QString &resName)
{
QString fullName = QString(":/") + screenGeneralizedDensity() + QString("-") + resName;
qDebug() << "Loading " << fullName;
return QPixmap(fullName);
}
#endif