22 constexpr auto forceEmptyTopLevelOffsetPixels =
false;
24 auto sourceMode = std::optional(
25 jsState.mapOhosEnumFromJs<DisplaySourceMode>(
26 displayObject.get<QNapi::Number>(
"sourceMode")));
29 .id = JsDisplayId(displayObject.get<QNapi::Number>(
"id")),
30 .name = QString::fromStdString(displayObject.get<QNapi::String>(
"name")),
32 displayObject.get<QNapi::Number>(
"width"),
33 displayObject.get<QNapi::Number>(
"height")),
34 .densityDPI = displayObject.get<QNapi::Number>(
"densityDPI"),
37 .refreshRate = displayObject.get<QNapi::Number>(
"refreshRate"),
39 displayObject.get<QNapi::Number>(
"xDPI"),
40 displayObject.get<QNapi::Number>(
"yDPI")),
41 .orientation = jsState.tryMapOhosEnumFromJs<JsDisplayOrientation>(
42 displayObject.get<QNapi::Number>(
"orientation")),
43 .sourceMode = sourceMode,
44 .topLeftOffsetPixels = !forceEmptyTopLevelOffsetPixels
45 ? qAndThen(sourceMode, [&](DisplaySourceMode mode) {
46 return mode == DisplaySourceMode::MAIN || mode == DisplaySourceMode::EXTEND
49 displayObject.get<QNapi::Number>(
"x"),
50 displayObject.get<QNapi::Number>(
"y")))
94 constexpr int virtualDisplayBaseId = 1000;
95 static const QOhosDisplayInfo::DisplaySourceMode sourceModesToIgnore[] = {
96 QOhosDisplayInfo::DisplaySourceMode::NONE,
97 QOhosDisplayInfo::DisplaySourceMode::MIRROR,
98 QOhosDisplayInfo::DisplaySourceMode::ALONE,
101 const auto *sourceModeToIgnoreIter = std::find(
102 std::begin(sourceModesToIgnore), std::end(sourceModesToIgnore),
104 bool ignoreBySoureMode = sourceModeToIgnoreIter !=
std::end(sourceModesToIgnore);
106 return sourceMode.has_value()
108 : id.value() >= virtualDisplayBaseId;