22 constexpr auto forceEmptyTopLevelOffsetPixels =
false;
24 auto sourceMode =
std::optional(
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")))
68 std::optional<QNapi::Object> result;
70 result = jsState.eval<QNapi::Object>(
71 "@ohos.display.getDisplayByIdSync(*)", { displayId.value() });
72 }
catch (
const Napi::Error &error) {
74 "%s: Failed to retrieve display with id: %f", Q_FUNC_INFO,
94 constexpr int virtualDisplayBaseId = 1000;
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;