35namespace ScreenClassification {
48 if (!std::isfinite(aspectRatio) || aspectRatio <= 0.0) {
65 if (height <= 0 || width <= 0) {
68 return classify(
static_cast<qreal
>(width) / height);
75 return QStringLiteral(
"any");
77 return QStringLiteral(
"standard");
79 return QStringLiteral(
"ultrawide");
81 return QStringLiteral(
"super-ultrawide");
83 return QStringLiteral(
"portrait");
85 return QStringLiteral(
"any");
90 if (str == QLatin1String(
"standard")) {
93 if (str == QLatin1String(
"ultrawide")) {
96 if (str == QLatin1String(
"super-ultrawide")) {
99 if (str == QLatin1String(
"portrait")) {
143 return layoutClass == screenClass;
constexpr qreal SuperUltrawideMin
AR >= 2.8 → super-ultrawide.
Definition AspectRatioClass.h:40
bool matches(AspectRatioClass layoutClass, AspectRatioClass screenClass)
Check if a layout's aspect ratio class matches the given screen class.
Definition AspectRatioClass.h:138
QString toString(AspectRatioClass cls)
Definition AspectRatioClass.h:71
constexpr qreal UltrawideMin
AR ∈ [UltrawideMin, SuperUltrawideMin) → ultrawide.
Definition AspectRatioClass.h:39
AspectRatioClass fromString(const QString &str)
Definition AspectRatioClass.h:88
constexpr qreal PortraitMax
AR < 1.0 → portrait.
Definition AspectRatioClass.h:38
qreal aspectRatioForClass(AspectRatioClass cls, qreal fallback=16.0/9.0)
Representative aspect ratio for a class.
Definition AspectRatioClass.h:110
AspectRatioClass classify(qreal aspectRatio)
Definition AspectRatioClass.h:42
Definition AlgorithmMetadata.h:10
AspectRatioClass
Screen aspect-ratio classification.
Definition AspectRatioClass.h:21
@ 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)