36namespace ScreenClassification {
49 if (!std::isfinite(aspectRatio) || aspectRatio <= 0.0) {
66 if (height <= 0 || width <= 0) {
69 return classify(
static_cast<qreal
>(width) / height);
76 return QStringLiteral(
"any");
78 return QStringLiteral(
"standard");
80 return QStringLiteral(
"ultrawide");
82 return QStringLiteral(
"super-ultrawide");
84 return QStringLiteral(
"portrait");
86 return QStringLiteral(
"any");
91 if (str == QLatin1String(
"standard")) {
94 if (str == QLatin1String(
"ultrawide")) {
97 if (str == QLatin1String(
"super-ultrawide")) {
100 if (str == QLatin1String(
"portrait")) {
120 if (value.isString()) {
123 if (value.isDouble()) {
171 return layoutClass == screenClass;
constexpr qreal SuperUltrawideMin
AR >= 2.8 → super-ultrawide.
Definition AspectRatioClass.h:41
bool matches(AspectRatioClass layoutClass, AspectRatioClass screenClass)
Check if a layout's aspect ratio class matches the given screen class.
Definition AspectRatioClass.h:166
QString toString(AspectRatioClass cls)
Definition AspectRatioClass.h:72
constexpr qreal UltrawideMin
AR ∈ [UltrawideMin, SuperUltrawideMin) → ultrawide.
Definition AspectRatioClass.h:40
AspectRatioClass fromString(const QString &str)
Definition AspectRatioClass.h:89
AspectRatioClass fromJsonValue(const QJsonValue &value)
Read a classification from either serialized JSON form.
Definition AspectRatioClass.h:118
constexpr qreal PortraitMax
AR < 1.0 → portrait.
Definition AspectRatioClass.h:39
qreal aspectRatioForClass(AspectRatioClass cls, qreal fallback=16.0/9.0)
Representative aspect ratio for a class.
Definition AspectRatioClass.h:138
AspectRatioClass classify(qreal aspectRatio)
Definition AspectRatioClass.h:43
Definition AlgorithmMetadata.h:10
AspectRatioClass
Screen aspect-ratio classification.
Definition AspectRatioClass.h:22
@ Portrait
Rotated/vertical monitors (< 1.0)
@ SuperUltrawide
~32:9 (2.8+)
@ Ultrawide
~21:9 (1.9 - 2.8)
@ Standard
~16:10 to ~16:9 (1.5 - 1.9)
@ Any
Suitable for all aspect ratios (default)