2017-04-27 18:24:53 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2014-10-15 13:30:50 +00:00
|
|
|
/*
|
|
|
|
* metrics.cpp
|
|
|
|
*
|
|
|
|
* methods to find/compute essential UI metrics
|
|
|
|
* (font properties, icon sizes, etc)
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "metrics.h"
|
|
|
|
|
2016-03-07 00:39:19 +00:00
|
|
|
static IconMetrics dfltIconMetrics;
|
|
|
|
|
|
|
|
IconMetrics::IconMetrics() :
|
|
|
|
sz_small(-1),
|
|
|
|
sz_med(-1),
|
|
|
|
sz_big(-1),
|
|
|
|
sz_pic(-1),
|
2016-03-28 21:43:40 +00:00
|
|
|
spacing(-1),
|
|
|
|
dpr(1.0)
|
2016-03-07 00:39:19 +00:00
|
|
|
{
|
|
|
|
}
|
2014-10-15 13:30:52 +00:00
|
|
|
|
2014-10-15 13:30:50 +00:00
|
|
|
QFont defaultModelFont()
|
|
|
|
{
|
|
|
|
QFont font;
|
|
|
|
return font;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFontMetrics defaultModelFontMetrics()
|
|
|
|
{
|
|
|
|
return QFontMetrics(defaultModelFont());
|
|
|
|
}
|
|
|
|
|
|
|
|
// return the default icon size, computed as the multiple of 16 closest to
|
|
|
|
// the given height
|
2014-10-15 13:30:52 +00:00
|
|
|
static int defaultIconSize(int height)
|
2014-10-15 13:30:50 +00:00
|
|
|
{
|
|
|
|
int ret = (height + 8)/16;
|
|
|
|
ret *= 16;
|
|
|
|
if (ret < 16)
|
|
|
|
ret = 16;
|
|
|
|
return ret;
|
|
|
|
}
|
2014-10-15 13:30:52 +00:00
|
|
|
|
|
|
|
const IconMetrics & defaultIconMetrics()
|
|
|
|
{
|
|
|
|
if (dfltIconMetrics.sz_small == -1) {
|
|
|
|
int small = defaultIconSize(defaultModelFontMetrics().height());
|
|
|
|
dfltIconMetrics.sz_small = small;
|
|
|
|
dfltIconMetrics.sz_med = small + small/2;
|
|
|
|
dfltIconMetrics.sz_big = 2*small;
|
|
|
|
|
|
|
|
dfltIconMetrics.sz_pic = 8*small;
|
|
|
|
|
|
|
|
dfltIconMetrics.spacing = small/8;
|
|
|
|
}
|
|
|
|
|
|
|
|
return dfltIconMetrics;
|
|
|
|
}
|
2016-03-28 21:43:40 +00:00
|
|
|
|
|
|
|
void updateDevicePixelRatio(double dpr)
|
|
|
|
{
|
|
|
|
dfltIconMetrics.dpr = dpr;
|
|
|
|
}
|