mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 06:44:06 +02:00
Some comments; changed the code to be backwards compatible
This commit is contained in:
parent
5048b8bd89
commit
d622e53458
13 changed files with 37 additions and 23 deletions
|
@ -31,6 +31,8 @@ Windows.Window {
|
|||
signal selfDestruct();
|
||||
|
||||
property var flags: 0;
|
||||
property var additionalFlags: 0;
|
||||
property var overrideFlags: 0;
|
||||
|
||||
property var source;
|
||||
property var dynamicContent;
|
||||
|
@ -153,10 +155,11 @@ Windows.Window {
|
|||
Qt.WindowMaximizeButtonHint |
|
||||
Qt.WindowMinimizeButtonHint;
|
||||
// only use the always on top feature for non Windows OS
|
||||
if (Qt.platform.os !== "windows" && (flags & Desktop.ALWAYS_ON_TOP)) {
|
||||
if (Qt.platform.os !== "windows" && (root.additionalFlags & Desktop.ALWAYS_ON_TOP)) {
|
||||
nativeWindowFlags |= Qt.WindowStaysOnTopHint;
|
||||
}
|
||||
nativeWindow.flags = flags || nativeWindowFlags;
|
||||
root.flags = root.overrideFlags || nativeWindowFlags;
|
||||
nativeWindow.flags = root.flags;
|
||||
|
||||
nativeWindow.x = interactiveWindowPosition.x;
|
||||
nativeWindow.y = interactiveWindowPosition.y;
|
||||
|
@ -225,16 +228,18 @@ Windows.Window {
|
|||
// Handle message traffic from our loaded QML to the script that launched us
|
||||
signal sendToScript(var message);
|
||||
|
||||
// Children of this InteractiveWindow Item are able to request a new width and height
|
||||
// for the parent Item (this one) and its associated C++ InteractiveWindow using these methods.
|
||||
function onRequestNewWidth(newWidth) {
|
||||
interactiveWindowSize.width = newWidth;
|
||||
updateInteractiveWindowSizeForMode();
|
||||
}
|
||||
|
||||
function onRequestNewHeight(newWidth) {
|
||||
interactiveWindowSize.width = newWidth;
|
||||
updateInteractiveWindowSizeForMode();
|
||||
}
|
||||
|
||||
// These signals are used to forward key-related events from the QML to the C++.
|
||||
signal keyPressEvent(int key, int modifiers);
|
||||
signal keyReleaseEvent(int key, int modifiers);
|
||||
|
||||
|
@ -312,7 +317,7 @@ Windows.Window {
|
|||
// set invisible on close, to make it not re-appear unintended after switching PresentationMode
|
||||
interactiveWindowVisible = false;
|
||||
|
||||
if ((flags & Desktop.CLOSE_BUTTON_HIDES) !== Desktop.CLOSE_BUTTON_HIDES) {
|
||||
if ((root.flags & Desktop.CLOSE_BUTTON_HIDES) !== Desktop.CLOSE_BUTTON_HIDES) {
|
||||
selfDestruct();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ import TabletScriptingInterface 1.0
|
|||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: simplifiedUI.colors.darkBackground
|
||||
color: simplifiedUI.colors.white
|
||||
anchors.fill: parent
|
||||
|
||||
property int originalWidth: 48
|
||||
|
@ -74,7 +74,7 @@ Rectangle {
|
|||
Rectangle {
|
||||
id: drawerContainer
|
||||
z: 1
|
||||
color: simplifiedUI.colors.darkBackground
|
||||
color: simplifiedUI.colors.white
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
height: parent.height
|
||||
|
@ -85,7 +85,7 @@ Rectangle {
|
|||
anchors.fill: parent
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
size: 20
|
||||
color: simplifiedUI.colors.text.almostWhite
|
||||
color: simplifiedUI.colors.text.black
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ QtObject {
|
|||
readonly property color white: "#FFFFFF"
|
||||
readonly property color lightBlue: "#00B4EF"
|
||||
readonly property color lightBlueHover: "#3dcfff"
|
||||
readonly property color black: "#000000"
|
||||
}
|
||||
|
||||
readonly property QtObject controls: QtObject {
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
|
||||
static auto CONTENT_WINDOW_QML = QUrl("InteractiveWindow.qml");
|
||||
|
||||
static const char* const FLAGS_PROPERTY = "flags";
|
||||
static const char* const ADDITIONAL_FLAGS_PROPERTY = "additionalFlags";
|
||||
static const char* const OVERRIDE_FLAGS_PROPERTY = "overrideFlags";
|
||||
static const char* const SOURCE_PROPERTY = "source";
|
||||
static const char* const TITLE_PROPERTY = "title";
|
||||
static const char* const POSITION_PROPERTY = "position";
|
||||
|
@ -92,8 +93,12 @@ void InteractiveWindow::forwardKeyReleaseEvent(int key, int modifiers) {
|
|||
* @property {InteractiveWindow.PresentationWindowInfo} [presentationWindowInfo] - Controls how a <code>NATIVE</code> window is
|
||||
* displayed. If used, the window is docked to the specified edge of the Interface window, otherwise the window is
|
||||
* displayed as its own separate window.
|
||||
* @property {InteractiveWindow.Flags} [flags=0] - Window behavior flags, set at window creation. Possible flag values are
|
||||
* provided as {@link Desktop|Desktop.ALWAYS_ON_TOP} and {@link Desktop|Desktop.CLOSE_BUTTON_HIDES}.
|
||||
* @property {InteractiveWindow.AdditionalFlags} [additionalFlags=0] - Window behavior flags in addition to "native window flags" (minimize/maximize/close),
|
||||
* set at window creation. Possible flag values are provided as {@link Desktop|Desktop.ALWAYS_ON_TOP} and {@link Desktop|Desktop.CLOSE_BUTTON_HIDES}.
|
||||
* Additional flag values can be found on Qt's website at https://doc.qt.io/qt-5/qt.html#WindowType-enum.
|
||||
* @property {InteractiveWindow.OverrideFlags} [overrideFlags=0] - Window behavior flags instead of the default window flags.
|
||||
* Set at window creation. Possible flag values are provided as {@link Desktop|Desktop.ALWAYS_ON_TOP} and {@link Desktop|Desktop.CLOSE_BUTTON_HIDES}.
|
||||
* Additional flag values can be found on Qt's website at https://doc.qt.io/qt-5/qt.html#WindowType-enum.
|
||||
*/
|
||||
InteractiveWindow::InteractiveWindow(const QString& sourceUrl, const QVariantMap& properties) {
|
||||
InteractiveWindowPresentationMode presentationMode = InteractiveWindowPresentationMode::Native;
|
||||
|
@ -179,8 +184,11 @@ InteractiveWindow::InteractiveWindow(const QString& sourceUrl, const QVariantMap
|
|||
offscreenUi->loadInNewContext(CONTENT_WINDOW_QML, [&](QQmlContext* context, QObject* object) {
|
||||
_qmlWindow = object;
|
||||
context->setContextProperty(EVENT_BRIDGE_PROPERTY, this);
|
||||
if (properties.contains(FLAGS_PROPERTY)) {
|
||||
object->setProperty(FLAGS_PROPERTY, properties[FLAGS_PROPERTY].toUInt());
|
||||
if (properties.contains(ADDITIONAL_FLAGS_PROPERTY)) {
|
||||
object->setProperty(ADDITIONAL_FLAGS_PROPERTY, properties[ADDITIONAL_FLAGS_PROPERTY].toUInt());
|
||||
}
|
||||
if (properties.contains(OVERRIDE_FLAGS_PROPERTY)) {
|
||||
object->setProperty(OVERRIDE_FLAGS_PROPERTY, properties[OVERRIDE_FLAGS_PROPERTY].toUInt());
|
||||
}
|
||||
if (properties.contains(PRESENTATION_MODE_PROPERTY)) {
|
||||
object->setProperty(PRESENTATION_MODE_PROPERTY, properties[PRESENTATION_MODE_PROPERTY].toInt());
|
||||
|
|
|
@ -19,7 +19,7 @@ function getPreferredTitle() {
|
|||
|
||||
var virtualWindow = Desktop.createWindow(Script.resourcesPath() + 'qml/OverlayWindowTest.qml', {
|
||||
title: getPreferredTitle(),
|
||||
flags: Desktop.ALWAYS_ON_TOP,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP,
|
||||
presentationMode: getPreferredPresentationMode(),
|
||||
size: {x: 500, y: 400}
|
||||
});
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
var qml = Script.resolvePath(QMLAPP_URL);
|
||||
window = Desktop.createWindow(Script.resolvePath(QMLAPP_URL), {
|
||||
title: 'Render Engine Profiler',
|
||||
flags: Desktop.ALWAYS_ON_TOP,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: {x: 500, y: 100}
|
||||
});
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
var qml = Script.resolvePath(QMLAPP_URL);
|
||||
window = Desktop.createWindow(Script.resolvePath(QMLAPP_URL), {
|
||||
title: TABLET_BUTTON_NAME,
|
||||
flags: Desktop.ALWAYS_ON_TOP,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: {x: 400, y: 600}
|
||||
});
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
var qml = Script.resolvePath(QMLAPP_URL);
|
||||
window = Desktop.createWindow(Script.resolvePath(QMLAPP_URL), {
|
||||
title: TABLET_BUTTON_NAME,
|
||||
flags: Desktop.ALWAYS_ON_TOP,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: {x: 400, y: 600}
|
||||
});
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
var qml = Script.resolvePath(QMLAPP_URL);
|
||||
window = Desktop.createWindow(Script.resolvePath(QMLAPP_URL), {
|
||||
title: 'Workload Inspector',
|
||||
flags: Desktop.ALWAYS_ON_TOP,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: {x: 400, y: 600}
|
||||
});
|
||||
|
|
|
@ -93,7 +93,7 @@ module.exports = (function() {
|
|||
var windowRect = getWindowRect(this.settingsKey, defaultRect);
|
||||
this.window = Desktop.createWindow(this.qmlPath, {
|
||||
title: this.title,
|
||||
flags: Desktop.ALWAYS_ON_TOP | Desktop.CLOSE_BUTTON_HIDES,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP | Desktop.CLOSE_BUTTON_HIDES,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: windowRect.size,
|
||||
visible: true,
|
||||
|
|
|
@ -129,7 +129,7 @@ function toggleAvatarApp() {
|
|||
x: Math.max(Window.x + POPOUT_SAFE_MARGIN_X, Window.x + Window.innerWidth / 2 - AVATAR_APP_WIDTH_PX / 2),
|
||||
y: Math.max(Window.y + POPOUT_SAFE_MARGIN_Y, Window.y + Window.innerHeight / 2 - AVATAR_APP_HEIGHT_PX / 2)
|
||||
},
|
||||
flags: AVATAR_APP_WINDOW_FLAGS
|
||||
overrideFlags: AVATAR_APP_WINDOW_FLAGS
|
||||
});
|
||||
|
||||
avatarAppWindow.fromQml.connect(onMessageFromAvatarApp);
|
||||
|
@ -202,7 +202,7 @@ function toggleSettingsApp() {
|
|||
x: Math.max(Window.x + POPOUT_SAFE_MARGIN_X, Window.x + Window.innerWidth / 2 - SETTINGS_APP_WIDTH_PX / 2),
|
||||
y: Math.max(Window.y + POPOUT_SAFE_MARGIN_Y, Window.y + Window.innerHeight / 2 - SETTINGS_APP_HEIGHT_PX / 2)
|
||||
},
|
||||
flags: SETTINGS_APP_WINDOW_FLAGS
|
||||
overrideFlags: SETTINGS_APP_WINDOW_FLAGS
|
||||
});
|
||||
|
||||
settingsAppWindow.fromQml.connect(onMessageFromSettingsApp);
|
||||
|
@ -269,7 +269,7 @@ function showEmoteAppBar() {
|
|||
x: Window.x + EMOTE_APP_BAR_LEFT_MARGIN,
|
||||
y: Window.y + Window.innerHeight - EMOTE_APP_BAR_BOTTOM_MARGIN
|
||||
},
|
||||
flags: EMOTE_APP_BAR_WINDOW_FLAGS
|
||||
overrideFlags: EMOTE_APP_BAR_WINDOW_FLAGS
|
||||
});
|
||||
|
||||
emoteAppBarWindow.fromQml.connect(onMessageFromEmoteAppBar);
|
||||
|
|
|
@ -848,7 +848,7 @@ var toolBar = (function () {
|
|||
var DIALOG_WINDOW_SIZE = { x: 500, y: 300 };
|
||||
dialogWindow = Desktop.createWindow(qmlPath, {
|
||||
title: "New " + entityType + " Entity",
|
||||
flags: Desktop.ALWAYS_ON_TOP | Desktop.CLOSE_BUTTON_HIDES,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP | Desktop.CLOSE_BUTTON_HIDES,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: DIALOG_WINDOW_SIZE,
|
||||
visible: true
|
||||
|
|
|
@ -93,7 +93,7 @@ module.exports = (function() {
|
|||
var windowRect = getWindowRect(this.settingsKey, defaultRect);
|
||||
this.window = Desktop.createWindow(this.qmlPath, {
|
||||
title: this.title,
|
||||
flags: Desktop.ALWAYS_ON_TOP | Desktop.CLOSE_BUTTON_HIDES,
|
||||
additionalFlags: Desktop.ALWAYS_ON_TOP | Desktop.CLOSE_BUTTON_HIDES,
|
||||
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||
size: windowRect.size,
|
||||
visible: true,
|
||||
|
|
Loading…
Reference in a new issue