From 231d1373b6ac8c48c09f1e9d8e408fcb85fb9878 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 5 Jun 2019 08:38:34 +1200 Subject: [PATCH 01/30] Update MyAvatar, Avatar JSDoc per recent changes --- .../src/avatars/ScriptableAvatar.h | 6 +- interface/src/avatar/MyAvatar.h | 85 +++++++++++++------ libraries/avatars/src/AvatarData.h | 6 ++ 3 files changed, 68 insertions(+), 29 deletions(-) diff --git a/assignment-client/src/avatars/ScriptableAvatar.h b/assignment-client/src/avatars/ScriptableAvatar.h index 34dc25914f..3ef908bedb 100644 --- a/assignment-client/src/avatars/ScriptableAvatar.h +++ b/assignment-client/src/avatars/ScriptableAvatar.h @@ -74,7 +74,8 @@ * avatar. Read-only. * @property {number} sensorToWorldScale - The scale that transforms dimensions in the user's real world to the avatar's * size in the virtual world. Read-only. - * @property {boolean} hasPriority - is the avatar in a Hero zone? Read-only. + * @property {boolean} hasPriority - true if the avatar is in a "hero" zone, false if it isn't. + * Read-only. * * @example Create a scriptable avatar. * (function () { @@ -138,6 +139,9 @@ public: /// Returns the index of the joint with the specified name, or -1 if not found/unknown. Q_INVOKABLE virtual int getJointIndex(const QString& name) const override; + /**jsdoc + * @comment Uses the base class's JSDoc. + */ Q_INVOKABLE virtual void setSkeletonModelURL(const QUrl& skeletonModelURL) override; /**jsdoc diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 058603f320..95f55c1cf0 100755 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -39,6 +39,23 @@ class ModelItemID; class MyHead; class DetailedMotionState; +/**jsdoc + *

Locomotion control types.

+ * + * + * + * + * + * + * + * + * + *
ValueNameDescription
0DefaultYour walking speed is constant; it doesn't change depending on how far + * forward you push your controller's joystick. Fully pushing your joystick forward makes your avatar run.
1AnalogYour walking speed changes in steps based on how far forward you push your + * controller's joystick. Fully pushing your joystick forward makes your avatar run.
2AnalogPlusYour walking speed changes proportionally to how far forward you push + * your controller's joystick. Fully pushing your joystick forward makes your avatar run.
+ * @typedef {number} MyAvatar.LocomotionControlsMode + */ enum LocomotionControlsMode { CONTROLS_DEFAULT = 0, CONTROLS_ANALOG, @@ -128,6 +145,8 @@ class MyAvatar : public Avatar { * avatar. Read-only. * @property {number} sensorToWorldScale - The scale that transforms dimensions in the user's real world to the avatar's * size in the virtual world. Read-only. + * @property {boolean} hasPriority - true if the avatar is in a "hero" zone, false if it isn't. + * Read-only. * * @comment IMPORTANT: This group of properties is copied from Avatar.h; they should NOT be edited here. * @property {Vec3} skeletonOffset - Can be used to apply a translation offset between the avatar's position and the @@ -239,9 +258,14 @@ class MyAvatar : public Avatar { * where MyAvatar.sessionUUID is not available (e.g., if not connected to a domain). Note: Likely to be deprecated. * Read-only. * - * @property {number} walkSpeed - The walk speed of your avatar. - * @property {number} walkBackwardSpeed - The walk backward speed of your avatar. - * @property {number} sprintSpeed - The sprint speed of your avatar. + * @property {number} walkSpeed - The walk speed of your avatar for the current control scheme (see + * {@link MyAvatar.getControlScheme|getControlScheme}). + * @property {number} walkBackwardSpeed - The walk backward speed of your avatar for the current control scheme (see + * {@link MyAvatar.getControlScheme|getControlScheme}). + * @property {number} sprintSpeed - The sprint (run) speed of your avatar for the current control scheme (see + * {@link MyAvatar.getControlScheme|getControlScheme}). + * @property {number} analogPlusWalkSpeed - The walk speed of your avatar for the "AnalogPlus" control scheme. + * @property {number} analogPlusSprintSpeed - The sprint speed of your avatar for the "AnalogPlus" control scheme. * @property {MyAvatar.SitStandModelType} userRecenterModel - Controls avatar leaning and recentering behavior. * @property {number} isInSittingState - true if your avatar is sitting (avatar leaning is disabled, * recenntering is enabled), false if it is standing (avatar leaning is enabled, and avatar recenters if it @@ -281,6 +305,7 @@ class MyAvatar : public Avatar { * @borrows Avatar.updateAvatarEntity as updateAvatarEntity * @borrows Avatar.clearAvatarEntity as clearAvatarEntity * @borrows Avatar.setForceFaceTrackerConnected as setForceFaceTrackerConnected + * @borrows Avatar.setSkeletonModelURL as setSkeletonModelURL * @borrows Avatar.getAttachmentData as getAttachmentData * @borrows Avatar.setAttachmentData as setAttachmentData * @borrows Avatar.attach as attach @@ -308,7 +333,6 @@ class MyAvatar : public Avatar { * @comment Avatar.setAbsoluteJointTranslationInObjectFrame as setAbsoluteJointTranslationInObjectFrame - Don't borrow because implementation is different. * @borrows Avatar.getTargetScale as getTargetScale * @borrows Avatar.resetLastSent as resetLastSent - * @borrows Avatar.hasPriority as hasPriority */ // FIXME: `glm::vec3 position` is not accessible from QML, so this exposes position in a QML-native type Q_PROPERTY(QVector3D qmlPosition READ getQmlPosition) @@ -789,26 +813,34 @@ public: */ Q_INVOKABLE void setSnapTurn(bool on) { _useSnapTurn = on; } - /** + /**jsdoc + * Gets the control scheme that is in use. * @function MyAvatar.getControlScheme - * @returns {number} - */ + * @returns {MyAvatar.LocomotionControlsMode} The control scheme that is in use. + */ Q_INVOKABLE int getControlScheme() const { return _controlSchemeIndex; } - /** + /**jsdoc + * Sets the control scheme to use. * @function MyAvatar.setControlScheme - * @param {number} index - */ + * @param {MyAvatar.LocomotionControlsMode} controlScheme - The control scheme to use. + */ Q_INVOKABLE void setControlScheme(int index) { _controlSchemeIndex = (index >= 0 && index <= 2) ? index : 0; } /**jsdoc + * Gets whether your avatar hovers when its feet are not on the ground. * @function MyAvatar.hoverWhenUnsupported - * @returns {boolean} + * @returns {boolean} true if your avatar hovers when its feet are not on the ground, false if it + * falls. */ + // FIXME: Should be named, getHoverWhenUnsupported(). Q_INVOKABLE bool hoverWhenUnsupported() const { return _hoverWhenUnsupported; } + /**jsdoc + * Sets whether your avatar hovers when its feet are not on the ground. * @function MyAvatar.setHoverWhenUnsupported - * @param {boolean} on + * @param {boolean} hover - true if your avatar hovers when its feet are not on the ground, false + * if it falls. */ Q_INVOKABLE void setHoverWhenUnsupported(bool on) { _hoverWhenUnsupported = on; } @@ -826,15 +858,19 @@ public: * @returns {string} "left" for the left hand, "right" for the right hand. */ Q_INVOKABLE QString getDominantHand() const; + /**jsdoc - * @function MyAVatar.setStrafeEnabled - * @param {bool} enabled - */ + * Sets whether strafing is enabled. + * @function MyAvatar.setStrafeEnabled + * @param {boolean} enabled - true if strafing is enabled, false if it isn't. + */ Q_INVOKABLE void setStrafeEnabled(bool enabled); + /**jsdoc - * @function MyAvatar.getStrafeEnabled - * @returns {bool} - */ + * Gets whether strafing is enabled. + * @function MyAvatar.getStrafeEnabled + * @returns {boolean} true if strafing is enabled, false if it isn't. + */ Q_INVOKABLE bool getStrafeEnabled() const; /**jsdoc * @function MyAvatar.setHmdAvatarAlignmentType @@ -1495,18 +1531,8 @@ public: */ Q_INVOKABLE float getDriveGear5(); - /**jsdoc - * Choose the control scheme. - * @function MyAvatar.setControlSchemeIndex - * @param {number} Choose the control scheme to be used. - */ void setControlSchemeIndex(int index); - /**jsdoc - * Check what control scheme is in use. - * @function MyAvatar.getControlSchemeIndex - * @returns {number} Returns the index associated with a given control scheme. - */ int getControlSchemeIndex(); /**jsdoc @@ -2409,6 +2435,9 @@ private: void updateEyeContactTarget(float deltaTime); // These are made private for MyAvatar so that you will use the "use" methods instead + /**jsdoc + * @comment Borrows the base class's JSDoc. + */ Q_INVOKABLE virtual void setSkeletonModelURL(const QUrl& skeletonModelURL) override; virtual void updatePalms() override {} diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index e5131ff94b..5c62e0b2c6 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -1211,6 +1211,12 @@ public: const QString& getDisplayName() const { return _displayName; } const QString& getSessionDisplayName() const { return _sessionDisplayName; } bool getLookAtSnappingEnabled() const { return _lookAtSnappingEnabled; } + + /**jsdoc + * Sets the avatar's skeleton model. + * @function Avatar.setSkeletonModelURL + * @param {string} url - The avatar's FST file. + */ Q_INVOKABLE virtual void setSkeletonModelURL(const QUrl& skeletonModelURL); virtual void setDisplayName(const QString& displayName); From f91c6dec3a24bfefc861ec9ef0c278e4c7973938 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 5 Jun 2019 08:38:52 +1200 Subject: [PATCH 02/30] Miscellaneous fixes noticed in passing --- interface/src/avatar/MyAvatar.h | 64 ++++++++++++++++----------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 95f55c1cf0..d78aebe0c1 100755 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -607,14 +607,13 @@ public: * the avatar will move in unpredictable ways. For more information about avatar joint orientation standards, see * Avatar Standards.

* @function MyAvatar.overrideAnimation - * @param url {string} The URL to the animation file. Animation files need to be FBX format, but only need to contain the + * @param {string} url - The URL to the animation file. Animation files need to be FBX format, but only need to contain the * avatar skeleton and animation data. - * @param fps {number} The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. - * @param loop {boolean} Set to true if the animation should loop. - * @param firstFrame {number} The frame the animation should start at. - * @param lastFrame {number} The frame the animation should end at. + * @param {number} fps - The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. + * @param {boolean} loop - true if the animation should loop, false if it shouldn't. + * @param {number} firstFrame - The frame to start the animation at. + * @param {number} lastFrame - The frame to end the animation at. * @example Play a clapping animation on your avatar for three seconds. - * // Clap your hands for 3 seconds then restore animation back to the avatar. * var ANIM_URL = "https://s3.amazonaws.com/hifi-public/animations/ClapAnimations/ClapHands_Standing.fbx"; * MyAvatar.overrideAnimation(ANIM_URL, 30, true, 0, 53); * Script.setTimeout(function () { @@ -625,18 +624,18 @@ public: Q_INVOKABLE void overrideAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame); /**jsdoc - * overrideHandAnimation() Gets the overrides the default hand poses that are triggered with controller buttons. - * use {@link MyAvatar.restoreHandAnimation}.

to restore the default poses. + * Overrides the default hand poses that are triggered with controller buttons. + * Use {@link MyAvatar.restoreHandAnimation} to restore the default poses. * @function MyAvatar.overrideHandAnimation - * @param isLeft {boolean} Set true if using the left hand - * @param url {string} The URL to the animation file. Animation files need to be FBX format, but only need to contain the + * @param isLeft {boolean} true to override the left hand, false to override the right hand. + * @param {string} url - The URL of the animation file. Animation files need to be FBX format, but only need to contain the * avatar skeleton and animation data. - * @param fps {number} The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. - * @param loop {boolean} Set to true if the animation should loop. - * @param firstFrame {number} The frame the animation should start at. - * @param lastFrame {number} The frame the animation should end at - * @example Override left hand animation for three seconds. - * // Override the left hand pose then restore the default pose. + * @param {number} fps - The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. + * @param {boolean} loop - true if the animation should loop, false if it shouldn't. + * @param {number} firstFrame - The frame to start the animation at. + * @param {number} lastFrame - The frame to end the animation at. + * @example Override left hand animation for three seconds. + * var ANIM_URL = "https://s3.amazonaws.com/hifi-public/animations/ClapAnimations/ClapHands_Standing.fbx"; * MyAvatar.overrideHandAnimation(isLeft, ANIM_URL, 30, true, 0, 53); * Script.setTimeout(function () { * MyAvatar.restoreHandAnimation(); @@ -653,7 +652,6 @@ public: * animation, this function has no effect.

* @function MyAvatar.restoreAnimation * @example Play a clapping animation on your avatar for three seconds. - * // Clap your hands for 3 seconds then restore animation back to the avatar. * var ANIM_URL = "https://s3.amazonaws.com/hifi-public/animations/ClapAnimations/ClapHands_Standing.fbx"; * MyAvatar.overrideAnimation(ANIM_URL, 30, true, 0, 53); * Script.setTimeout(function () { @@ -663,16 +661,15 @@ public: Q_INVOKABLE void restoreAnimation(); /**jsdoc - * Restores the default hand animation state machine that is driven by the state machine in the avatar-animation json. + * Restores the default hand animation state machine that is driven by the state machine in the avatar-animation JSON. *

The avatar animation system includes a set of default animations along with rules for how those animations are blended * together with procedural data (such as look at vectors, hand sensors etc.). Playing your own custom animations will * override the default animations. restoreHandAnimation() is used to restore the default hand poses - * If you aren't currently playing an override hand - * animation, this function has no effect.

+ * If you aren't currently playing an override hand animation, this function has no effect.

* @function MyAvatar.restoreHandAnimation * @param isLeft {boolean} Set to true if using the left hand * @example Override left hand animation for three seconds. - * // Override the left hand pose then restore the default pose. + * var ANIM_URL = "https://s3.amazonaws.com/hifi-public/animations/ClapAnimations/ClapHands_Standing.fbx"; * MyAvatar.overrideHandAnimation(isLeft, ANIM_URL, 30, true, 0, 53); * Script.setTimeout(function () { * MyAvatar.restoreHandAnimation(); @@ -713,12 +710,13 @@ public: * the avatar will move in unpredictable ways. For more information about avatar joint orientation standards, see * Avatar Standards. * @function MyAvatar.overrideRoleAnimation - * @param role {string} The animation role to override - * @param url {string} The URL to the animation file. Animation files need to be in FBX format, but only need to contain the avatar skeleton and animation data. - * @param fps {number} The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. - * @param loop {boolean} Set to true if the animation should loop - * @param firstFrame {number} The frame the animation should start at - * @param lastFrame {number} The frame the animation should end at + * @param {string} role - The animation role to override + * @param {string} url - The URL to the animation file. Animation files need to be in FBX format, but only need to contain + * the avatar skeleton and animation data. + * @param {number} fps - The frames per second (FPS) rate for the animation playback. 30 FPS is normal speed. + * @param {boolean} loop - true if the animation should loop, false if it shouldn't. + * @param {number} firstFrame - The frame the animation should start at. + * @param {number} lastFrame - The frame the animation should end at. * @example The default avatar-animation.json defines an "idleStand" animation role. This role specifies that when the avatar is not moving, * an animation clip of the avatar idling with hands hanging at its side will be used. It also specifies that when the avatar moves, the animation * will smoothly blend to the walking animation used by the "walkFwd" animation role. @@ -806,8 +804,9 @@ public: * mode. */ Q_INVOKABLE bool getSnapTurn() const { return _useSnapTurn; } + /**jsdoc - * Sets whether your should do snap turns or smooth turns in HMD mode. + * Sets whether you do snap turns or smooth turns in HMD mode. * @function MyAvatar.setSnapTurn * @param {boolean} on - true to do snap turns in HMD mode; false to do smooth turns in HMD mode. */ @@ -872,16 +871,17 @@ public: * @returns {boolean} true if strafing is enabled, false if it isn't. */ Q_INVOKABLE bool getStrafeEnabled() const; + /**jsdoc + * Sets the HMD alignment relative to your avatar. * @function MyAvatar.setHmdAvatarAlignmentType * @param {string} type - "head" to align your head and your avatar's head, "eyes" to align your * eyes and your avatar's eyes. - * */ Q_INVOKABLE void setHmdAvatarAlignmentType(const QString& type); /**jsdoc - * Gets the HMD alignment for your avatar. + * Gets the HMD alignment relative to your avatar. * @function MyAvatar.getHmdAvatarAlignmentType * @returns {string} "head" if aligning your head and your avatar's head, "eyes" if aligning your * eyes and your avatar's eyes. @@ -1610,8 +1610,8 @@ public: Q_INVOKABLE bool getCharacterControllerEnabled(); // deprecated /**jsdoc - * @comment Different behavior to the Avatar version of this method. * Gets the rotation of a joint relative to the avatar. + * @comment Different behavior to the Avatar version of this method. * @function MyAvatar.getAbsoluteJointRotationInObjectFrame * @param {number} index - The index of the joint. * @returns {Quat} The rotation of the joint relative to the avatar. @@ -1623,8 +1623,8 @@ public: virtual glm::quat getAbsoluteJointRotationInObjectFrame(int index) const override; /**jsdoc - * @comment Different behavior to the Avatar version of this method. * Gets the translation of a joint relative to the avatar. + * @comment Different behavior to the Avatar version of this method. * @function MyAvatar.getAbsoluteJointTranslationInObjectFrame * @param {number} index - The index of the joint. * @returns {Vec3} The translation of the joint relative to the avatar. From caf29dc45a83ec0bb6e262c37943934f3df3a178 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 6 Jun 2019 11:24:10 +1200 Subject: [PATCH 03/30] Doc review --- interface/src/avatar/MyAvatar.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index d78aebe0c1..b02ff0d805 100755 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -265,6 +265,8 @@ class MyAvatar : public Avatar { * @property {number} sprintSpeed - The sprint (run) speed of your avatar for the current control scheme (see * {@link MyAvatar.getControlScheme|getControlScheme}). * @property {number} analogPlusWalkSpeed - The walk speed of your avatar for the "AnalogPlus" control scheme. + *

Warning: Setting this value also sets the value of analogPlusSprintSpeed to twice + * the value.

* @property {number} analogPlusSprintSpeed - The sprint speed of your avatar for the "AnalogPlus" control scheme. * @property {MyAvatar.SitStandModelType} userRecenterModel - Controls avatar leaning and recentering behavior. * @property {number} isInSittingState - true if your avatar is sitting (avatar leaning is disabled, @@ -664,7 +666,7 @@ public: * Restores the default hand animation state machine that is driven by the state machine in the avatar-animation JSON. *

The avatar animation system includes a set of default animations along with rules for how those animations are blended * together with procedural data (such as look at vectors, hand sensors etc.). Playing your own custom animations will - * override the default animations. restoreHandAnimation() is used to restore the default hand poses + * override the default animations. restoreHandAnimation() is used to restore the default hand poses. * If you aren't currently playing an override hand animation, this function has no effect.

* @function MyAvatar.restoreHandAnimation * @param isLeft {boolean} Set to true if using the left hand From 22d602a33406477d3c312f9ce8fe3cc725b32e3e Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 7 Jun 2019 14:39:53 -0700 Subject: [PATCH 04/30] CREATE app will now recognize newer-style baked models and skyboxes as baked in entity-list --- scripts/system/libraries/entityList.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/scripts/system/libraries/entityList.js b/scripts/system/libraries/entityList.js index d19da2b342..6498c92f17 100644 --- a/scripts/system/libraries/entityList.js +++ b/scripts/system/libraries/entityList.js @@ -10,7 +10,7 @@ /* global EntityListTool, Tablet, selectionManager, Entities, Camera, MyAvatar, Vec3, Menu, Messages, cameraManager, MENU_EASE_ON_FOCUS, deleteSelectedEntities, toggleSelectedEntitiesLocked, toggleSelectedEntitiesVisible, - keyUpEventFromUIWindow */ + keyUpEventFromUIWindow, Script, SelectionDisplay, SelectionManager, Clipboard */ var PROFILING_ENABLED = false; var profileIndent = ''; @@ -148,6 +148,20 @@ EntityListTool = function(shouldUseEditTabletApp) { return value !== undefined ? value : ""; } + function entityIsBaked(properties) { + if (properties.type === "Model") { + var lowerModelURL = properties.modelURL.toLowerCase(); + return lowerModelURL.endsWith(".baked.fbx") || lowerModelURL.endsWith(".baked.fst"); + } else if (properties.type === "Zone") { + var lowerSkyboxURL = properties.skybox ? properties.skybox.url.toLowerCase() : ""; + var lowerAmbientURL = properties.ambientLight ? properties.ambientLight.ambientURL.toLowerCase() : ""; + return (lowerSkyboxURL === "" || lowerSkyboxURL.endsWith(".texmeta.json")) && + (lowerAmbientURL === "" || lowerAmbientURL.endsWith(".texmeta.json")); + } else { + return false; + } + } + that.sendUpdate = function() { PROFILE('Script-sendUpdate', function() { var entities = []; @@ -164,7 +178,8 @@ EntityListTool = function(shouldUseEditTabletApp) { var cameraPosition = Camera.position; PROFILE("getMultipleProperties", function () { var multipleProperties = Entities.getMultipleEntityProperties(ids, ['name', 'type', 'locked', - 'visible', 'renderInfo', 'modelURL', 'materialURL', 'imageURL', 'script', 'certificateID']); + 'visible', 'renderInfo', 'modelURL', 'materialURL', 'imageURL', 'script', 'certificateID', + 'skybox.url', 'ambientLight.url']); for (var i = 0; i < multipleProperties.length; i++) { var properties = multipleProperties[i]; @@ -193,7 +208,7 @@ EntityListTool = function(shouldUseEditTabletApp) { valueIfDefined(properties.renderInfo.texturesSize) : ""), hasTransparent: (properties.renderInfo !== undefined ? valueIfDefined(properties.renderInfo.hasTransparent) : ""), - isBaked: properties.type === "Model" ? url.toLowerCase().endsWith(".baked.fbx") : false, + isBaked: entityIsBaked(properties), drawCalls: (properties.renderInfo !== undefined ? valueIfDefined(properties.renderInfo.drawCalls) : ""), hasScript: properties.script !== "" From 9c6ca601087c6ea8331c022955020a4deea5631b Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Mon, 10 Jun 2019 12:08:51 -0700 Subject: [PATCH 05/30] get windows error first, check for socket changes, and fix bad Q_OS_WINDOWS ref --- libraries/networking/src/udt/Socket.cpp | 26 ++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index 406c2ff213..6e27fd2483 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -59,10 +59,12 @@ void Socket::bind(const QHostAddress& address, quint16 port) { auto sd = _udpSocket.socketDescriptor(); int val = IP_PMTUDISC_DONT; setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER, &val, sizeof(val)); -#elif defined(Q_OS_WINDOWS) +#elif defined(Q_OS_WIN) auto sd = _udpSocket.socketDescriptor(); int val = 0; // false - setsockopt(sd, IPPROTO_IP, IP_DONTFRAGMENT, &val, sizeof(val)); + if (setsockopt(sd, IPPROTO_IP, IP_DONTFRAGMENT, (const char *)&val, sizeof(val))) { + qCWarning(networking) << "Socket::bind Cannot setsockopt IP_DONTFRAGMENT" << WSAGetLastError(); + } #endif } } @@ -231,14 +233,14 @@ qint64 Socket::writeDatagram(const QByteArray& datagram, const HifiSockAddr& soc return -1; } qint64 bytesWritten = _udpSocket.writeDatagram(datagram, sockAddr.getAddress(), sockAddr.getPort()); - - if (bytesWritten < 0) { - qCDebug(networking) << "udt::writeDatagram (" << _udpSocket.state() << ") error - " << _udpSocket.error() << "(" << _udpSocket.errorString() << ")"; - + int pending = _udpSocket.bytesToWrite(); + if (bytesWritten < 0 || pending) { + int wsaError = 0; #ifdef WIN32 - int wsaError = WSAGetLastError(); - qCDebug(networking) << "windows socket error " << wsaError; + wsaError = WSAGetLastError(); #endif + qCDebug(networking) << "udt::writeDatagram (" << _udpSocket.state() << ") error - " << wsaError << _udpSocket.error() << "(" << _udpSocket.errorString() << ")" + << (pending ? "pending bytes:" : "pending:") << pending; #ifdef DEBUG_EVENT_QUEUE int nodeListQueueSize = ::hifi::qt::getEventQueueSize(thread()); @@ -506,11 +508,13 @@ std::vector Socket::getConnectionSockAddrs() { } void Socket::handleSocketError(QAbstractSocket::SocketError socketError) { - qCDebug(networking) << "udt::Socket (" << _udpSocket.state() << ") error - " << socketError << "(" << _udpSocket.errorString() << ")"; + int wsaError = 0; #ifdef WIN32 - int wsaError = WSAGetLastError(); - qCDebug(networking) << "windows socket error " << wsaError; + wsaError = WSAGetLastError(); #endif + int pending = _udpSocket.bytesToWrite(); + qCDebug(networking) << "udt::Socket (" << _udpSocket.state() << ") error - " << wsaError << socketError << "(" << _udpSocket.errorString() << ")" + << (pending ? "pending bytes:" : "pending:") << pending; #ifdef DEBUG_EVENT_QUEUE int nodeListQueueSize = ::hifi::qt::getEventQueueSize(thread()); qCDebug(networking) << "Networking queue size - " << nodeListQueueSize; From a400cea0404dc5b936799031ee23e1d1271528e7 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Mon, 10 Jun 2019 14:00:05 -0700 Subject: [PATCH 06/30] Fix crash when using null DisplayPlugin in GraphicsEngine during shutdown --- interface/src/graphics/GraphicsEngine.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/interface/src/graphics/GraphicsEngine.cpp b/interface/src/graphics/GraphicsEngine.cpp index 4f8b86cc0c..7f9a612697 100644 --- a/interface/src/graphics/GraphicsEngine.cpp +++ b/interface/src/graphics/GraphicsEngine.cpp @@ -132,6 +132,10 @@ static const int THROTTLED_SIM_FRAME_PERIOD_MS = MSECS_PER_SECOND / THROTTLED_SI bool GraphicsEngine::shouldPaint() const { auto displayPlugin = qApp->getActiveDisplayPlugin(); + if (!displayPlugin) { + // We're shutting down + return false; + } #ifdef DEBUG_PAINT_DELAY static uint64_t paintDelaySamples{ 0 }; @@ -175,6 +179,10 @@ void GraphicsEngine::render_performFrame() { { PROFILE_RANGE(render, "/getActiveDisplayPlugin"); displayPlugin = qApp->getActiveDisplayPlugin(); + if (!displayPlugin) { + // We're shutting down + return; + } } { From 67995a8677f1ac15eb5de9610a06de80ea394e46 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 10 Jun 2019 14:25:44 -0700 Subject: [PATCH 07/30] don't divide by zero if a grid entity-item has a zero dimension --- libraries/render-utils/src/GeometryCache.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp index 7bd6f88d71..88cca1693b 100644 --- a/libraries/render-utils/src/GeometryCache.cpp +++ b/libraries/render-utils/src/GeometryCache.cpp @@ -939,6 +939,11 @@ void GeometryCache::renderWireSphere(gpu::Batch& batch, const glm::vec4& color) void GeometryCache::renderGrid(gpu::Batch& batch, const glm::vec2& minCorner, const glm::vec2& maxCorner, int majorRows, int majorCols, float majorEdge, int minorRows, int minorCols, float minorEdge, const glm::vec4& color, bool forward, int id) { + + if (majorRows == 0 || majorCols == 0) { + return; + } + Vec2FloatPair majorKey(glm::vec2(majorRows, majorCols), majorEdge); Vec2FloatPair minorKey(glm::vec2(minorRows, minorCols), minorEdge); Vec2FloatPairPair key(majorKey, minorKey); @@ -962,8 +967,8 @@ void GeometryCache::renderGrid(gpu::Batch& batch, const glm::vec2& minCorner, co gridBuffer.edit().period = glm::vec4(majorRows, majorCols, minorRows, minorCols); gridBuffer.edit().offset.x = -(majorEdge / majorRows) / 2; gridBuffer.edit().offset.y = -(majorEdge / majorCols) / 2; - gridBuffer.edit().offset.z = -(minorEdge / minorRows) / 2; - gridBuffer.edit().offset.w = -(minorEdge / minorCols) / 2; + gridBuffer.edit().offset.z = minorRows == 0 ? 0 : -(minorEdge / minorRows) / 2; + gridBuffer.edit().offset.w = minorCols == 0 ? 0 : -(minorEdge / minorCols) / 2; gridBuffer.edit().edge = glm::vec4(glm::vec2(majorEdge), // If rows or columns are not set, do not draw minor gridlines glm::vec2((minorRows != 0 && minorCols != 0) ? minorEdge : 0.0f)); From 654b5775e17bf14f0a5d6dad7d86927698ae833a Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 10 Jun 2019 15:05:34 -0700 Subject: [PATCH 08/30] Crash fix for ResourceCache::getResource() A wrong 'read' locker is used around a critical section that actually modifies the _resources QHash. This can result in memory corruption and seg faults. --- libraries/networking/src/ResourceCache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 44d3d1ee4d..ef8a7b577d 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -346,7 +346,7 @@ void ResourceCache::setRequestLimit(uint32_t limit) { QSharedPointer ResourceCache::getResource(const QUrl& url, const QUrl& fallback, void* extra, size_t extraHash) { QSharedPointer resource; { - QReadLocker locker(&_resourcesLock); + QWriteLocker locker(&_resourcesLock); auto& resourcesWithExtraHash = _resources[url]; auto resourcesWithExtraHashIter = resourcesWithExtraHash.find(extraHash); if (resourcesWithExtraHashIter != resourcesWithExtraHash.end()) { From dbce9768873f57dd089cf2dcd069b7fb3131c6c7 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Mon, 10 Jun 2019 15:34:18 -0700 Subject: [PATCH 09/30] fix another crash in MyAvatar::getAvatarEntitiesVariant() --- interface/src/avatar/MyAvatar.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index b91217da63..3800a330bb 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2488,12 +2488,12 @@ QVariantList MyAvatar::getAvatarEntitiesVariant() { QVariantMap avatarEntityData; avatarEntityData["id"] = entityID; EntityItemProperties entityProperties = entity->getProperties(desiredProperties); - QScriptValue scriptProperties; { std::lock_guard guard(_scriptEngineLock); + QScriptValue scriptProperties; scriptProperties = EntityItemPropertiesToScriptValue(_scriptEngine, entityProperties); + avatarEntityData["properties"] = scriptProperties.toVariant(); } - avatarEntityData["properties"] = scriptProperties.toVariant(); avatarEntitiesData.append(QVariant(avatarEntityData)); } } From 7ce5f7ac0b3a4bbd172bf17419d8de4b130478fc Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 10 Jun 2019 16:27:03 -0700 Subject: [PATCH 10/30] Adjust run and jog anims to better align head with 1p camera Added adjust forward run and jog animations to better align with first person camera. In some instances, such as looking down, you could sometimes see your body lead your camera. https://highfidelity.atlassian.net/browse/BUGZ-240 --- .../resources/avatar/animations/jog_fwd.fbx | Bin 892208 -> 928272 bytes .../resources/avatar/animations/run_fwd.fbx | Bin 940272 -> 940528 bytes .../resources/avatar/avatar-animation.json | 10 +++++----- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/interface/resources/avatar/animations/jog_fwd.fbx b/interface/resources/avatar/animations/jog_fwd.fbx index 3c3b8118ab9ecf2988df13b7534ddeac181d72ec..f389fea36414926df660370b1ed73206bc752ad7 100644 GIT binary patch literal 928272 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%0DJX7ZYY{f7pFhF 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%0DLVFC)xWRv!_zc0ov9wvxfgWovn9g|St-43m%q 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 diff --git a/interface/resources/avatar/animations/run_fwd.fbx b/interface/resources/avatar/animations/run_fwd.fbx index 86add969e59d8c18d5bd6c40dbaa6ebe6eb739c3..f28f9e056921d64e85bb81898056eb5bb46c3213 100644 GIT binary patch literal 940528 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

oUD9k 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 PyEQATEN|KM^aK76q5g}% literal 940272 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%0AluyZTKn^i;gerULk{~D9 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 Date: Thu, 6 Jun 2019 09:34:30 -0700 Subject: [PATCH 11/30] Enable windows launcher build --- launchers/darwin/CMakeLists.txt | 4 ++++ launchers/win32/CMakeLists.txt | 5 +++++ tools/ci-scripts/postbuild.py | 5 +---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/launchers/darwin/CMakeLists.txt b/launchers/darwin/CMakeLists.txt index d8baea6e3c..2de43d93cb 100644 --- a/launchers/darwin/CMakeLists.txt +++ b/launchers/darwin/CMakeLists.txt @@ -66,6 +66,10 @@ endfunction() add_executable(${PROJECT_NAME} MACOSX_BUNDLE ${src_files}) set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${APP_NAME}) set_from_env(LAUNCHER_HMAC_SECRET LAUNCHER_HMAC_SECRET "") +if (LAUNCHER_HMAC_SECRET STREQUAL "") + message(FATAL_ERROR "LAUNCHER_HMAC_SECRET is not set") +endif() + target_compile_definitions(${PROJECT_NAME} PRIVATE LAUNCHER_HMAC_SECRET="${LAUNCHER_HMAC_SECRET}") file(GLOB NIB_FILES "nib/*.xib") diff --git a/launchers/win32/CMakeLists.txt b/launchers/win32/CMakeLists.txt index 8417831312..a472c68688 100644 --- a/launchers/win32/CMakeLists.txt +++ b/launchers/win32/CMakeLists.txt @@ -50,6 +50,11 @@ function(set_from_env _RESULT_NAME _ENV_VAR_NAME _DEFAULT_VALUE) endfunction() set_from_env(LAUNCHER_HMAC_SECRET LAUNCHER_HMAC_SECRET "") + +if (LAUNCHER_HMAC_SECRET STREQUAL "") + message(FATAL_ERROR "LAUNCHER_HMAC_SECRET is not set") +endif() + target_compile_definitions(${PROJECT_NAME} PRIVATE LAUNCHER_HMAC_SECRET="${LAUNCHER_HMAC_SECRET}") diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index b6593b1cf3..4c05abeb47 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -112,9 +112,6 @@ def fixupWinZip(filename): shutil.move(outFullPath, fullPath) def buildLightLauncher(): - # FIXME remove once MFC is enabled on the windows build hosts - if sys.platform == 'win32': - return launcherSourcePath = os.path.join(SOURCE_PATH, 'launchers', sys.platform) launcherBuildPath = os.path.join(BUILD_PATH, 'launcher') if not os.path.exists(launcherBuildPath): @@ -146,7 +143,7 @@ def buildLightLauncher(): elif sys.platform == 'win32': # FIXME launcherDestFile = os.path.join(BUILD_PATH, "{}.exe".format(computeArchiveName('Launcher'))) - launcherSourceFile = os.path.join(launcherBuildPath, "Launcher.exe") + launcherSourceFile = os.path.join(launcherBuildPath, "Release", "HQLauncher.exe") print("Moving {} to {}".format(launcherSourceFile, launcherDestFile)) shutil.move(launcherSourceFile, launcherDestFile) From 2fa16719cfa954b9a77dbd3776681cab966a2d33 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 10 Jun 2019 16:52:44 -0700 Subject: [PATCH 12/30] AvatarData: Fix avatarDataByteArray max size computation The previous size calculation did not take the presence of the hand controller section into account. This could sometimes result in a buffer overrun of the network buffer as identified in a debug build. https://highfidelity.atlassian.net/browse/BUGZ-526 --- libraries/avatars/src/AvatarData.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index e5131ff94b..8e2eb7bf8e 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -302,6 +302,15 @@ namespace AvatarDataPacket { const size_t AVATAR_LOCAL_POSITION_SIZE = 12; static_assert(sizeof(AvatarLocalPosition) == AVATAR_LOCAL_POSITION_SIZE, "AvatarDataPacket::AvatarLocalPosition size doesn't match."); + PACKED_BEGIN struct HandControllers { + SixByteQuat leftHandRotation; + SixByteTrans leftHandTranslation; + SixByteQuat rightHandRotation; + SixByteTrans rightHandTranslation; + } PACKED_END; + static const size_t HAND_CONTROLLERS_SIZE = 24; + static_assert(sizeof(HandControllers) == HAND_CONTROLLERS_SIZE, "AvatarDataPacket::HandControllers size doesn't match."); + const size_t MAX_CONSTANT_HEADER_SIZE = HEADER_SIZE + AVATAR_GLOBAL_POSITION_SIZE + AVATAR_BOUNDING_BOX_SIZE + @@ -312,17 +321,8 @@ namespace AvatarDataPacket { SENSOR_TO_WORLD_SIZE + ADDITIONAL_FLAGS_SIZE + PARENT_INFO_SIZE + - AVATAR_LOCAL_POSITION_SIZE; - - PACKED_BEGIN struct HandControllers { - SixByteQuat leftHandRotation; - SixByteTrans leftHandTranslation; - SixByteQuat rightHandRotation; - SixByteTrans rightHandTranslation; - } PACKED_END; - static const size_t HAND_CONTROLLERS_SIZE = 24; - static_assert(sizeof(HandControllers) == HAND_CONTROLLERS_SIZE, "AvatarDataPacket::HandControllers size doesn't match."); - + AVATAR_LOCAL_POSITION_SIZE + + HAND_CONTROLLERS_SIZE; // variable length structure follows From 88003c37d7bcbf25f79154dc88e06140d34cce16 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Mon, 10 Jun 2019 16:44:17 -0700 Subject: [PATCH 13/30] fix physics assert --- libraries/physics/src/PhysicsEngine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/physics/src/PhysicsEngine.cpp b/libraries/physics/src/PhysicsEngine.cpp index 976c547c5e..655edd4e13 100644 --- a/libraries/physics/src/PhysicsEngine.cpp +++ b/libraries/physics/src/PhysicsEngine.cpp @@ -35,7 +35,7 @@ static bool flipNormalsMyAvatarVsBackfacingTriangles(btManifoldPoint& cp, const btVector3* v = triShape->m_vertices1; btVector3 faceNormal = colObj1Wrap->getWorldTransform().getBasis() * btCross(v[1] - v[0], v[2] - v[0]); float nDotF = btDot(faceNormal, cp.m_normalWorldOnB); - if (nDotF <= 0.0f) { + if (nDotF <= 0.0f && faceNormal.length2() > EPSILON) { faceNormal.normalize(); // flip the contact normal to be aligned with the face normal cp.m_normalWorldOnB += -2.0f * nDotF * faceNormal; From 889a5d2bda8772eb06c33549b52a0fc2595b57c9 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 10 Jun 2019 17:58:46 -0700 Subject: [PATCH 14/30] AvatarData: Add FAR_GRAB_JOINTS_SIZE to byteArraySize computation. --- libraries/avatars/src/AvatarData.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 942b13c237..eb12fd83a8 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -398,6 +398,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent const size_t byteArraySize = AvatarDataPacket::MAX_CONSTANT_HEADER_SIZE + NUM_BYTES_RFC4122_UUID + AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) + AvatarDataPacket::maxJointDataSize(_jointData.size()) + + FAR_GRAB_JOINTS_SIZE + AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()); if (maxDataSize == 0) { From 6c4e7cd805f1311d80cbbcd8fd041ff300286170 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 10 Jun 2019 18:00:54 -0700 Subject: [PATCH 15/30] AvatarData: arranged order of size computation reflect order in the packet. --- libraries/avatars/src/AvatarData.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index eb12fd83a8..7f25dcf8fb 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -396,10 +396,10 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent } const size_t byteArraySize = AvatarDataPacket::MAX_CONSTANT_HEADER_SIZE + NUM_BYTES_RFC4122_UUID + - AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) + - AvatarDataPacket::maxJointDataSize(_jointData.size()) + - FAR_GRAB_JOINTS_SIZE + - AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()); + AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) + + AvatarDataPacket::maxJointDataSize(_jointData.size()) + + AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()) + + FAR_GRAB_JOINTS_SIZE; if (maxDataSize == 0) { maxDataSize = (int)byteArraySize; From 897e276188ef32ef33779c8a1173abc5ad11c9ff Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 10 Jun 2019 18:34:11 -0700 Subject: [PATCH 16/30] Compile fix --- libraries/avatars/src/AvatarData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 7f25dcf8fb..a2dde3d651 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -399,7 +399,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) + AvatarDataPacket::maxJointDataSize(_jointData.size()) + AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()) + - FAR_GRAB_JOINTS_SIZE; + AvatarDataPacket::FAR_GRAB_JOINTS_SIZE; if (maxDataSize == 0) { maxDataSize = (int)byteArraySize; From 9a926abd7623d530376e6faabdc5f75cd76069fd Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Mon, 10 Jun 2019 20:27:03 -0700 Subject: [PATCH 17/30] Implement BUGZ-226: Forward keypresses made while Top Bar is in focus --- .../simplifiedUI/topBar/SimplifiedTopBar.qml | 12 +++++++++++- interface/src/ui/InteractiveWindow.cpp | 16 +++++++++++++++- interface/src/ui/InteractiveWindow.h | 3 +++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml index 36c882beb1..b1e2f7bcd2 100644 --- a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml +++ b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml @@ -18,6 +18,16 @@ import "qrc:////qml//hifi//models" as HifiModels // Absolute path so the same c Rectangle { id: root + focus: true + + signal keyPressEvent(int key, int modifiers) + Keys.onPressed: { + keyPressEvent(event.key, event.modifiers); + } + signal keyReleaseEvent(int key, int modifiers) + Keys.onReleased: { + keyReleaseEvent(event.key, event.modifiers); + } SimplifiedConstants.SimplifiedConstants { id: simplifiedUI @@ -455,5 +465,5 @@ Rectangle { break; } } - signal sendToScript(var message); + signal sendToScript(var message) } diff --git a/interface/src/ui/InteractiveWindow.cpp b/interface/src/ui/InteractiveWindow.cpp index 2fbb665c48..84d24ddeae 100644 --- a/interface/src/ui/InteractiveWindow.cpp +++ b/interface/src/ui/InteractiveWindow.cpp @@ -68,6 +68,16 @@ void interactiveWindowPointerFromScriptValue(const QScriptValue& object, Interac } } +void InteractiveWindow::forwardKeyPressEvent(int key, int modifiers) { + QKeyEvent* event = new QKeyEvent(QEvent::KeyPress, key, static_cast(modifiers)); + QCoreApplication::postEvent(QCoreApplication::instance(), event); +} + +void InteractiveWindow::forwardKeyReleaseEvent(int key, int modifiers) { + QKeyEvent* event = new QKeyEvent(QEvent::KeyRelease, key, static_cast(modifiers)); + QCoreApplication::postEvent(QCoreApplication::instance(), event); +} + /**jsdoc * A set of properties used when creating an InteractiveWindow. * @typedef {object} InteractiveWindow.Properties @@ -152,12 +162,16 @@ InteractiveWindow::InteractiveWindow(const QString& sourceUrl, const QVariantMap _dockWidget->getQuickView()->rootContext()->setContextProperty(EVENT_BRIDGE_PROPERTY, this); QObject::connect(rootItem, SIGNAL(sendToScript(QVariant)), this, SLOT(qmlToScript(const QVariant&)), Qt::QueuedConnection); + QObject::connect(rootItem, SIGNAL(keyPressEvent(int, int)), this, SLOT(forwardKeyPressEvent(int, int)), + Qt::QueuedConnection); + QObject::connect(rootItem, SIGNAL(keyReleaseEvent(int, int)), this, SLOT(forwardKeyReleaseEvent(int, int)), + Qt::QueuedConnection); emit mainWindow->windowGeometryChanged(qApp->getWindow()->geometry()); } }); + _dockWidget->setSource(QUrl(sourceUrl)); - mainWindow->addDockWidget(dockArea, _dockWidget.get()); } else { auto offscreenUi = DependencyManager::get(); diff --git a/interface/src/ui/InteractiveWindow.h b/interface/src/ui/InteractiveWindow.h index fd0a3376fb..c7b3631dde 100644 --- a/interface/src/ui/InteractiveWindow.h +++ b/interface/src/ui/InteractiveWindow.h @@ -287,6 +287,9 @@ protected slots: */ void qmlToScript(const QVariant& message); + void forwardKeyPressEvent(int key, int modifiers); + void forwardKeyReleaseEvent(int key, int modifiers); + private: QPointer _qmlWindow; std::shared_ptr _dockWidget { nullptr }; From 01fab1294296ca455cfab124dadfb8644e47b297 Mon Sep 17 00:00:00 2001 From: dante ruiz Date: Tue, 11 Jun 2019 09:18:20 -0700 Subject: [PATCH 18/30] fixing interface and laucnher script argument --- interface/src/Application.cpp | 2 +- launchers/darwin/src/Launcher.m | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 9ce2b0cb2e..0dea94c93e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5611,7 +5611,7 @@ void Application::resumeAfterLoginDialogActionTaken() { scriptEngines->reloadLocalFiles(); // if the --scripts command-line argument was used. - if (!_defaultScriptsLocation.exists() && (arguments().indexOf(QString("--").append(SCRIPTS_SWITCH))) != -1) { + if (_defaultScriptsLocation.exists() && (arguments().indexOf(QString("--").append(SCRIPTS_SWITCH))) != -1) { scriptEngines->loadDefaultScripts(); scriptEngines->defaultScriptsLocationOverridden(true); } else { diff --git a/launchers/darwin/src/Launcher.m b/launchers/darwin/src/Launcher.m index 3ab4379e7a..f586269864 100644 --- a/launchers/darwin/src/Launcher.m +++ b/launchers/darwin/src/Launcher.m @@ -343,14 +343,14 @@ static BOOL const DELETE_ZIP_FILES = TRUE; @"--tokens", userToken, @"--cache", contentPath, @"--displayName", displayName, - @"--script", scriptsPath, + @"--scripts", scriptsPath, @"--no-updater", @"--no-launcher", nil]; } else { arguments = [NSArray arrayWithObjects: @"--url" , domainUrl, @"--cache", contentPath, - @"--script", scriptsPath, + @"--scripts", scriptsPath, @"--no-updater", @"--no-launcher", nil]; } From c02df55186fd3dc3354690c6f4b4d0a9ee65db70 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Tue, 11 Jun 2019 09:24:27 -0700 Subject: [PATCH 19/30] Load simplifiedUI using the windows launcher and tabs to spaces --- launchers/win32/LauncherApp.cpp | 90 +-- launchers/win32/LauncherApp.h | 16 +- launchers/win32/LauncherDlg.cpp | 828 ++++++++++++++-------------- launchers/win32/LauncherDlg.h | 160 +++--- launchers/win32/LauncherManager.cpp | 627 ++++++++++----------- launchers/win32/LauncherManager.h | 156 +++--- launchers/win32/LauncherUtils.cpp | 622 ++++++++++----------- launchers/win32/LauncherUtils.h | 102 ++-- launchers/win32/res/button.png | Bin 17324 -> 0 bytes 9 files changed, 1302 insertions(+), 1299 deletions(-) delete mode 100644 launchers/win32/res/button.png diff --git a/launchers/win32/LauncherApp.cpp b/launchers/win32/LauncherApp.cpp index a8c69de166..4ed20fea13 100644 --- a/launchers/win32/LauncherApp.cpp +++ b/launchers/win32/LauncherApp.cpp @@ -20,7 +20,7 @@ // CLauncherApp BEGIN_MESSAGE_MAP(CLauncherApp, CWinApp) - ON_COMMAND(ID_HELP, &CWinApp::OnHelp) + ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() CLauncherApp::CLauncherApp(){} @@ -32,60 +32,60 @@ CLauncherApp theApp; // CLauncherApp initialization BOOL CLauncherApp::InitInstance() { - // don't launch if already running - CreateMutex(NULL, TRUE, _T("HQ_Launcher_Mutex")); - if (GetLastError() == ERROR_ALREADY_EXISTS) { - return FALSE; - } - int iNumOfArgs; - LPWSTR* pArgs = CommandLineToArgvW(GetCommandLine(), &iNumOfArgs); - if (iNumOfArgs > 1 && CString(pArgs[1]).Compare(_T("--uninstall")) == 0) { - _manager.uninstall(); - } else { - _manager.init(); - } - if (!_manager.installLauncher()) { - return FALSE; - } - installFont(IDR_FONT_REGULAR); - installFont(IDR_FONT_BOLD); - CWinApp::InitInstance(); + // don't launch if already running + CreateMutex(NULL, TRUE, _T("HQ_Launcher_Mutex")); + if (GetLastError() == ERROR_ALREADY_EXISTS) { + return FALSE; + } + int iNumOfArgs; + LPWSTR* pArgs = CommandLineToArgvW(GetCommandLine(), &iNumOfArgs); + if (iNumOfArgs > 1 && CString(pArgs[1]).Compare(_T("--uninstall")) == 0) { + _manager.uninstall(); + } else { + _manager.init(); + } + if (!_manager.installLauncher()) { + return FALSE; + } + installFont(IDR_FONT_REGULAR); + installFont(IDR_FONT_BOLD); + CWinApp::InitInstance(); - SetRegistryKey(_T("HQ High Fidelity")); + SetRegistryKey(_T("HQ High Fidelity")); - CLauncherDlg dlg; - m_pMainWnd = &dlg; - INT_PTR nResponse = dlg.DoModal(); + CLauncherDlg dlg; + m_pMainWnd = &dlg; + INT_PTR nResponse = dlg.DoModal(); #if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS) - ControlBarCleanUp(); + ControlBarCleanUp(); #endif - - // Since the dialog has been closed, return FALSE so that we exit the - // application, rather than start the application's message pump. - return FALSE; + + // Since the dialog has been closed, return FALSE so that we exit the + // application, rather than start the application's message pump. + return FALSE; } BOOL CLauncherApp::installFont(int fontID) { - HINSTANCE hResInstance = AfxGetResourceHandle(); - HRSRC res = FindResource(hResInstance, - MAKEINTRESOURCE(fontID), L"BINARY"); - if (res) { - HGLOBAL mem = LoadResource(hResInstance, res); - void *data = LockResource(mem); - DWORD len = (DWORD)SizeofResource(hResInstance, res); + HINSTANCE hResInstance = AfxGetResourceHandle(); + HRSRC res = FindResource(hResInstance, + MAKEINTRESOURCE(fontID), L"BINARY"); + if (res) { + HGLOBAL mem = LoadResource(hResInstance, res); + void *data = LockResource(mem); + DWORD len = (DWORD)SizeofResource(hResInstance, res); - DWORD nFonts; - auto m_fonthandle = AddFontMemResourceEx( - data, // font resource - len, // number of bytes in font resource - NULL, // Reserved. Must be 0. - &nFonts // number of fonts installed - ); + DWORD nFonts; + auto m_fonthandle = AddFontMemResourceEx( + data, // font resource + len, // number of bytes in font resource + NULL, // Reserved. Must be 0. + &nFonts // number of fonts installed + ); - return (m_fonthandle != 0); - } - return FALSE; + return (m_fonthandle != 0); + } + return FALSE; } diff --git a/launchers/win32/LauncherApp.h b/launchers/win32/LauncherApp.h index 8232acb249..a1aa2073b7 100644 --- a/launchers/win32/LauncherApp.h +++ b/launchers/win32/LauncherApp.h @@ -11,22 +11,22 @@ #pragma once #ifndef __AFXWIN_H__ - #error "include 'stdafx.h' before including this file for PCH" + #error "include 'stdafx.h' before including this file for PCH" #endif -#include "resource.h" // main symbols +#include "resource.h" // main symbols #include "LauncherManager.h" class CLauncherApp : public CWinApp { public: - CLauncherApp(); - virtual BOOL InitInstance(); - void setDialogOnFront() { SetWindowPos(m_pMainWnd->GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); } - LauncherManager _manager; + CLauncherApp(); + virtual BOOL InitInstance(); + void setDialogOnFront() { SetWindowPos(m_pMainWnd->GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); } + LauncherManager _manager; private: - BOOL installFont(int fontID); - DECLARE_MESSAGE_MAP() + BOOL installFont(int fontID); + DECLARE_MESSAGE_MAP() }; extern CLauncherApp theApp; diff --git a/launchers/win32/LauncherDlg.cpp b/launchers/win32/LauncherDlg.cpp index d2d149348e..abf53b46b5 100644 --- a/launchers/win32/LauncherDlg.cpp +++ b/launchers/win32/LauncherDlg.cpp @@ -40,10 +40,10 @@ static CString TROUBLE_URL = _T("https://www.highfidelity.com/hq-support"); CLauncherDlg::CLauncherDlg(CWnd* pParent) - : CDialog(IDD_LAUNCHER_DIALOG, pParent) + : CDialog(IDD_LAUNCHER_DIALOG, pParent) { - m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); - EnableD2DSupport(); + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); + EnableD2DSupport(); } CLauncherDlg::~CLauncherDlg() { @@ -52,109 +52,109 @@ CLauncherDlg::~CLauncherDlg() { void CLauncherDlg::DoDataExchange(CDataExchange* pDX) { - DDX_Control(pDX, IDC_BUTTON_NEXT, m_btnNext); - DDX_Control(pDX, IDC_TROUBLE_LINK, m_trouble_link); - DDX_Control(pDX, IDC_ORGNAME, m_orgname); - DDX_Control(pDX, IDC_USERNAME, m_username); - DDX_Control(pDX, IDC_PASSWORD, m_password); - CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_BUTTON_NEXT, m_btnNext); + DDX_Control(pDX, IDC_TROUBLE_LINK, m_trouble_link); + DDX_Control(pDX, IDC_ORGNAME, m_orgname); + DDX_Control(pDX, IDC_USERNAME, m_username); + DDX_Control(pDX, IDC_PASSWORD, m_password); + CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CLauncherDlg, CDialog) - ON_WM_PAINT() - ON_WM_QUERYDRAGICON() - ON_WM_TIMER() - ON_EN_SETFOCUS(IDC_ORGNAME, &CLauncherDlg::OnOrgEditChangeFocus) - ON_EN_SETFOCUS(IDC_USERNAME, &CLauncherDlg::OnUserEditChangeFocus) - ON_EN_SETFOCUS(IDC_PASSWORD, &CLauncherDlg::OnPassEditChangeFocus) - ON_BN_CLICKED(IDC_BUTTON_NEXT, &CLauncherDlg::OnNextClicked) - ON_BN_CLICKED(IDC_TROUBLE_LINK, &CLauncherDlg::OnTroubleClicked) - ON_WM_CTLCOLOR() - ON_WM_DRAWITEM() - ON_WM_SETCURSOR() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_WM_TIMER() + ON_EN_SETFOCUS(IDC_ORGNAME, &CLauncherDlg::OnOrgEditChangeFocus) + ON_EN_SETFOCUS(IDC_USERNAME, &CLauncherDlg::OnUserEditChangeFocus) + ON_EN_SETFOCUS(IDC_PASSWORD, &CLauncherDlg::OnPassEditChangeFocus) + ON_BN_CLICKED(IDC_BUTTON_NEXT, &CLauncherDlg::OnNextClicked) + ON_BN_CLICKED(IDC_TROUBLE_LINK, &CLauncherDlg::OnTroubleClicked) + ON_WM_CTLCOLOR() + ON_WM_DRAWITEM() + ON_WM_SETCURSOR() END_MESSAGE_MAP() // CLauncherDlg message handlers BOOL CLauncherDlg::OnInitDialog() { - CDialog::OnInitDialog(); + CDialog::OnInitDialog(); - SetIcon(m_hIcon, TRUE); // Set big icon - SetIcon(m_hIcon, FALSE); // Set small icon + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon - CFont editFont; - if (LauncherUtils::getFont(GRAPHIK_REGULAR, FIELDS_FONT_SIZE, true, editFont)) { - m_orgname.SetFont(&editFont); - m_username.SetFont(&editFont); - m_password.SetFont(&editFont); - } - CFont buttonFont; - if (LauncherUtils::getFont(_T("Graphik-Bold"), BUTTON_FONT_SIZE, true, buttonFont)) { - m_btnNext.SetFont(&editFont); - } + CFont editFont; + if (LauncherUtils::getFont(GRAPHIK_REGULAR, FIELDS_FONT_SIZE, true, editFont)) { + m_orgname.SetFont(&editFont); + m_username.SetFont(&editFont); + m_password.SetFont(&editFont); + } + CFont buttonFont; + if (LauncherUtils::getFont(_T("Graphik-Bold"), BUTTON_FONT_SIZE, true, buttonFont)) { + m_btnNext.SetFont(&editFont); + } - m_message_label = (CStatic *)GetDlgItem(IDC_MESSAGE_LABEL); - m_action_label = (CStatic *)GetDlgItem(IDC_ACTION_LABEL); - m_message2_label = (CStatic *)GetDlgItem(IDC_MESSAGE2_LABEL); - m_action2_label = (CStatic *)GetDlgItem(IDC_ACTION2_LABEL); + m_message_label = (CStatic *)GetDlgItem(IDC_MESSAGE_LABEL); + m_action_label = (CStatic *)GetDlgItem(IDC_ACTION_LABEL); + m_message2_label = (CStatic *)GetDlgItem(IDC_MESSAGE2_LABEL); + m_action2_label = (CStatic *)GetDlgItem(IDC_ACTION2_LABEL); - m_orgname_banner = (CStatic *)GetDlgItem(IDC_ORGNAME_BANNER); - m_username_banner = (CStatic *)GetDlgItem(IDC_USERNAME_BANNER); - m_password_banner = (CStatic *)GetDlgItem(IDC_PASSWORD_BANNER); + m_orgname_banner = (CStatic *)GetDlgItem(IDC_ORGNAME_BANNER); + m_username_banner = (CStatic *)GetDlgItem(IDC_USERNAME_BANNER); + m_password_banner = (CStatic *)GetDlgItem(IDC_PASSWORD_BANNER); - m_terms = (CStatic *)GetDlgItem(IDC_TERMS); - m_terms2 = (CStatic *)GetDlgItem(IDC_TERMS2); - m_trouble = (CStatic *)GetDlgItem(IDC_TROUBLE); + m_terms = (CStatic *)GetDlgItem(IDC_TERMS); + m_terms2 = (CStatic *)GetDlgItem(IDC_TERMS2); + m_trouble = (CStatic *)GetDlgItem(IDC_TROUBLE); - m_voxel = (CStatic *)GetDlgItem(IDC_VOXEL); + m_voxel = (CStatic *)GetDlgItem(IDC_VOXEL); - m_voxel->EnableD2DSupport(); + m_voxel->EnableD2DSupport(); - m_pRenderTarget = GetRenderTarget(); + m_pRenderTarget = GetRenderTarget(); - SetTimer(1, 2, NULL); - - return TRUE; + SetTimer(1, 2, NULL); + + return TRUE; } BOOL CLauncherDlg::PreTranslateMessage(MSG* pMsg) { - if ((pMsg->message == WM_KEYDOWN)) - { - if (pMsg->wParam == VK_RETURN) - { - OnNextClicked(); - return TRUE; - } - } - return CDialog::PreTranslateMessage(pMsg); + if ((pMsg->message == WM_KEYDOWN)) + { + if (pMsg->wParam == VK_RETURN) + { + OnNextClicked(); + return TRUE; + } + } + return CDialog::PreTranslateMessage(pMsg); } void CLauncherDlg::setCustomDialog() { - - LONG lStyle = GetWindowLong(GetSafeHwnd(), GWL_STYLE); - lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU); - SetWindowLong(GetSafeHwnd(), GWL_STYLE, lStyle); + + LONG lStyle = GetWindowLong(GetSafeHwnd(), GWL_STYLE); + lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU); + SetWindowLong(GetSafeHwnd(), GWL_STYLE, lStyle); - LONG lExStyle = GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE); - lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE); - SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, lExStyle); + LONG lExStyle = GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE); + lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE); + SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, lExStyle); - SetWindowPos(NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); - // theApp.setDialogOnFront(); + SetWindowPos(NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); + // theApp.setDialogOnFront(); } void CLauncherDlg::OnPaint() { - CPaintDC dc(this); - setCustomDialog(); - CDialog::OnPaint(); + CPaintDC dc(this); + setCustomDialog(); + CDialog::OnPaint(); } // The system calls this function to obtain the cursor to display while the user drags // the minimized window. HCURSOR CLauncherDlg::OnQueryDragIcon() { - return static_cast(m_hIcon); + return static_cast(m_hIcon); } void CLauncherDlg::startProcess() { @@ -202,15 +202,15 @@ void CLauncherDlg::startProcess() { } BOOL CLauncherDlg::getHQInfo(const CString& orgname) { - CString hash; + CString hash; CString lowerOrgName = orgname; lowerOrgName.MakeLower(); LauncherUtils::hMac256(lowerOrgName, LAUNCHER_HMAC_SECRET, hash); - return theApp._manager.readOrganizationJSON(hash) == LauncherUtils::ResponseError::NoError; + return theApp._manager.readOrganizationJSON(hash) == LauncherUtils::ResponseError::NoError; } afx_msg void CLauncherDlg::OnTroubleClicked() { - ShellExecute(0, NULL, TROUBLE_URL, NULL, NULL, SW_SHOWDEFAULT); + ShellExecute(0, NULL, TROUBLE_URL, NULL, NULL, SW_SHOWDEFAULT); } afx_msg void CLauncherDlg::OnNextClicked() { @@ -255,414 +255,414 @@ afx_msg void CLauncherDlg::OnNextClicked() { } void CLauncherDlg::drawBackground(CHwndRenderTarget* pRenderTarget) { - CD2DBitmap m_pBitmamBackground(pRenderTarget, IDB_PNG1, _T("PNG")); - auto size = pRenderTarget->GetSize(); - CD2DRectF backRec(0.0f, 0.0f, size.width, size.height); - pRenderTarget->DrawBitmap(&m_pBitmamBackground, backRec); + CD2DBitmap m_pBitmamBackground(pRenderTarget, IDB_PNG1, _T("PNG")); + auto size = pRenderTarget->GetSize(); + CD2DRectF backRec(0.0f, 0.0f, size.width, size.height); + pRenderTarget->DrawBitmap(&m_pBitmamBackground, backRec); } void CLauncherDlg::drawLogo(CHwndRenderTarget* pRenderTarget) { - CD2DBitmap m_pBitmamLogo(pRenderTarget, IDB_PNG2, _T("PNG")); - auto size = pRenderTarget->GetSize(); - int logoWidth = 231; - int logoHeight = 181; - float logoPosX = 0.5f * (size.width - logoWidth); - float logoPosY = 0.95f * (size.height - logoHeight); - CD2DRectF logoRec(logoPosX, logoPosY, logoPosX + logoWidth, logoPosY + logoHeight); - pRenderTarget->DrawBitmap(&m_pBitmamLogo, logoRec); + CD2DBitmap m_pBitmamLogo(pRenderTarget, IDB_PNG2, _T("PNG")); + auto size = pRenderTarget->GetSize(); + int logoWidth = 231; + int logoHeight = 181; + float logoPosX = 0.5f * (size.width - logoWidth); + float logoPosY = 0.95f * (size.height - logoHeight); + CD2DRectF logoRec(logoPosX, logoPosY, logoPosX + logoWidth, logoPosY + logoHeight); + pRenderTarget->DrawBitmap(&m_pBitmamLogo, logoRec); } void CLauncherDlg::drawSmallLogo(CHwndRenderTarget* pRenderTarget) { - CD2DBitmap m_pBitmamLogo(pRenderTarget, IDB_PNG5, _T("PNG")); - auto size = pRenderTarget->GetSize(); - int padding = 6; - int logoWidth = 100; - int logoHeight = 18; - float logoPosX = size.width - logoWidth - padding; - float logoPosY = size.height - logoHeight - padding; - CD2DRectF logoRec(logoPosX, logoPosY, logoPosX + logoWidth, logoPosY + logoHeight); - pRenderTarget->DrawBitmap(&m_pBitmamLogo, logoRec); + CD2DBitmap m_pBitmamLogo(pRenderTarget, IDB_PNG5, _T("PNG")); + auto size = pRenderTarget->GetSize(); + int padding = 6; + int logoWidth = 100; + int logoHeight = 18; + float logoPosX = size.width - logoWidth - padding; + float logoPosY = size.height - logoHeight - padding; + CD2DRectF logoRec(logoPosX, logoPosY, logoPosX + logoWidth, logoPosY + logoHeight); + pRenderTarget->DrawBitmap(&m_pBitmamLogo, logoRec); } void CLauncherDlg::drawVoxel(CHwndRenderTarget* pRenderTarget) { - CD2DBitmap m_pBitmamVoxel(pRenderTarget, IDB_PNG4, _T("PNG")); - auto size = pRenderTarget->GetSize(); - int logoWidth = 132; - int logoHeight = 134; - float voxelPosX = 0.5f * (size.width - logoWidth); - float voxelPosY = 0.5f * (size.height - logoHeight); - CD2DRectF voxelRec(voxelPosX, voxelPosY, voxelPosX + logoWidth, voxelPosY + logoHeight); - auto midPoint = D2D1::Point2F(0.5f * size.width, 0.5f * size.height); - _logoRotation += 2.0f; - CD2DSolidColorBrush brush(pRenderTarget, D2D1::ColorF(0.0f, 0.0f, 0.0f)); - pRenderTarget->SetTransform(D2D1::Matrix3x2F::Rotation(_logoRotation - 2.0f, midPoint)); - pRenderTarget->FillRectangle(voxelRec, &brush); - pRenderTarget->SetTransform(D2D1::Matrix3x2F::Rotation(_logoRotation, midPoint)); - pRenderTarget->DrawBitmap(&m_pBitmamVoxel, voxelRec); - pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity()); + CD2DBitmap m_pBitmamVoxel(pRenderTarget, IDB_PNG4, _T("PNG")); + auto size = pRenderTarget->GetSize(); + int logoWidth = 132; + int logoHeight = 134; + float voxelPosX = 0.5f * (size.width - logoWidth); + float voxelPosY = 0.5f * (size.height - logoHeight); + CD2DRectF voxelRec(voxelPosX, voxelPosY, voxelPosX + logoWidth, voxelPosY + logoHeight); + auto midPoint = D2D1::Point2F(0.5f * size.width, 0.5f * size.height); + _logoRotation += 2.0f; + CD2DSolidColorBrush brush(pRenderTarget, D2D1::ColorF(0.0f, 0.0f, 0.0f)); + pRenderTarget->SetTransform(D2D1::Matrix3x2F::Rotation(_logoRotation - 2.0f, midPoint)); + pRenderTarget->FillRectangle(voxelRec, &brush); + pRenderTarget->SetTransform(D2D1::Matrix3x2F::Rotation(_logoRotation, midPoint)); + pRenderTarget->DrawBitmap(&m_pBitmamVoxel, voxelRec); + pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity()); } void CLauncherDlg::showWindows(std::vector windows, bool show) { - for (auto window : windows) { - window->ShowWindow(show ? SW_SHOW : SW_HIDE); - } + for (auto window : windows) { + window->ShowWindow(show ? SW_SHOW : SW_HIDE); + } } void CLauncherDlg::prepareLogin(DrawStep step) { - m_voxel->ShowWindow(SW_HIDE); - m_orgname_banner->SetWindowTextW(_T("Organization Name")); - m_username_banner->SetWindowTextW(_T("Username")); - m_password_banner->SetWindowTextW(_T("Password")); - CString editText; - m_orgname.GetWindowTextW(editText); - m_orgname_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); - m_username.GetWindowTextW(editText); - m_username_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); - m_password.GetWindowTextW(editText); - m_password_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); - m_orgname.ShowWindow(SW_SHOW); - m_username.ShowWindow(SW_SHOW); - m_password.ShowWindow(SW_SHOW); - CString actionText = step == DrawStep::DrawLoginLogin ? _T("Please log in") : _T("Uh-oh, we have a problem"); - CString messageText = step == DrawStep::DrawLoginLogin ? _T("Be sure you've uploaded your Avatar before signing in.") : - step == DrawStep::DrawLoginErrorCred ? _T("There is a problem with your credentials\n please try again.") : _T("There is a problem with your Organization name\n please try again."); - m_action_label->SetWindowTextW(actionText); - m_message_label->SetWindowTextW(messageText); - m_action_label->ShowWindow(SW_SHOW); - m_message_label->ShowWindow(SW_SHOW); - m_btnNext.ShowWindow(SW_SHOW); - m_trouble->SetWindowTextW(_T("Having Trouble?")); - m_trouble->ShowWindow(SW_SHOW); - m_trouble_link.ShowWindow(SW_SHOW); - + m_voxel->ShowWindow(SW_HIDE); + m_orgname_banner->SetWindowTextW(_T("Organization Name")); + m_username_banner->SetWindowTextW(_T("Username")); + m_password_banner->SetWindowTextW(_T("Password")); + CString editText; + m_orgname.GetWindowTextW(editText); + m_orgname_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); + m_username.GetWindowTextW(editText); + m_username_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); + m_password.GetWindowTextW(editText); + m_password_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); + m_orgname.ShowWindow(SW_SHOW); + m_username.ShowWindow(SW_SHOW); + m_password.ShowWindow(SW_SHOW); + CString actionText = step == DrawStep::DrawLoginLogin ? _T("Please log in") : _T("Uh-oh, we have a problem"); + CString messageText = step == DrawStep::DrawLoginLogin ? _T("Be sure you've uploaded your Avatar before signing in.") : + step == DrawStep::DrawLoginErrorCred ? _T("There is a problem with your credentials\n please try again.") : _T("There is a problem with your Organization name\n please try again."); + m_action_label->SetWindowTextW(actionText); + m_message_label->SetWindowTextW(messageText); + m_action_label->ShowWindow(SW_SHOW); + m_message_label->ShowWindow(SW_SHOW); + m_btnNext.ShowWindow(SW_SHOW); + m_trouble->SetWindowTextW(_T("Having Trouble?")); + m_trouble->ShowWindow(SW_SHOW); + m_trouble_link.ShowWindow(SW_SHOW); + } void CLauncherDlg::prepareChoose() { - m_orgname.ShowWindow(SW_HIDE); - m_username.SetWindowTextW(_T("")); - m_username_banner->SetWindowTextW(_T("Display Name")); - CString editText; - m_username.GetWindowTextW(editText); - m_username_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); - m_password.ShowWindow(SW_HIDE); - m_orgname_banner->ShowWindow(SW_HIDE); - m_password_banner->ShowWindow(SW_HIDE); - m_action_label->SetWindowTextW(_T("Choose a display name")); - m_message_label->SetWindowTextW(_T("This is the name that your teammates will see.")); - m_terms->ShowWindow(SW_SHOW); - m_terms2->ShowWindow(SW_SHOW); - m_terms->SetWindowTextW(_T("By signing in, you agree to the High Fidelity")); - m_terms2->SetWindowTextW(_T("Terms of Service")); - CRect rec; - m_btnNext.GetWindowRect(&rec); - ScreenToClient(&rec); - if (rec.top > 281) { - rec.bottom -= 35; - rec.top -= 35; - m_btnNext.MoveWindow(rec, FALSE); - } - m_btnNext.ShowWindow(SW_SHOW); + m_orgname.ShowWindow(SW_HIDE); + m_username.SetWindowTextW(_T("")); + m_username_banner->SetWindowTextW(_T("Display Name")); + CString editText; + m_username.GetWindowTextW(editText); + m_username_banner->ShowWindow(editText.GetLength() == 0 ? SW_SHOW : SW_HIDE); + m_password.ShowWindow(SW_HIDE); + m_orgname_banner->ShowWindow(SW_HIDE); + m_password_banner->ShowWindow(SW_HIDE); + m_action_label->SetWindowTextW(_T("Choose a display name")); + m_message_label->SetWindowTextW(_T("This is the name that your teammates will see.")); + m_terms->ShowWindow(SW_SHOW); + m_terms2->ShowWindow(SW_SHOW); + m_terms->SetWindowTextW(_T("By signing in, you agree to the High Fidelity")); + m_terms2->SetWindowTextW(_T("Terms of Service")); + CRect rec; + m_btnNext.GetWindowRect(&rec); + ScreenToClient(&rec); + if (rec.top > 281) { + rec.bottom -= 35; + rec.top -= 35; + m_btnNext.MoveWindow(rec, FALSE); + } + m_btnNext.ShowWindow(SW_SHOW); } void CLauncherDlg::prepareProcess(DrawStep step) { - m_trouble->ShowWindow(SW_HIDE); - m_trouble_link.ShowWindow(SW_HIDE); - m_terms->ShowWindow(SW_HIDE); - m_terms2->ShowWindow(SW_HIDE); - m_orgname_banner->ShowWindow(SW_HIDE); - m_username_banner->ShowWindow(SW_HIDE); - m_password_banner->ShowWindow(SW_HIDE); - m_orgname.ShowWindow(SW_HIDE); - m_username.ShowWindow(SW_HIDE); - m_password.ShowWindow(SW_HIDE); - m_action_label->SetWindowTextW(_T("")); - m_message_label->SetWindowTextW(_T("")); - m_btnNext.ShowWindow(SW_HIDE); - m_action_label->ShowWindow(SW_HIDE); - m_message_label->ShowWindow(SW_HIDE); - m_voxel->ShowWindow(SW_SHOW); - CString actionText = _T(""); - CString messageText = _T(""); - switch (step) { - case DrawStep::DrawProcessSetup: - actionText = _T("We're building your virtual HQ"); - messageText = _T("Set up may take several minutes."); - break; - case DrawStep::DrawProcessUpdate: - actionText = _T("Getting updates..."); - messageText = _T("We're getting the latest and greatest for you, one sec."); - break; - case DrawStep::DrawProcessFinishHq: - actionText = _T("Your new HQ is all setup"); - messageText = _T("Thanks for being patient."); - break; - case DrawStep::DrawProcessFinishUpdate: - actionText = _T("You're good to go!"); - messageText = _T("Thanks for being patient."); - break; - case DrawStep::DrawProcessUninstall: - actionText = _T("Uninstalling..."); - messageText = _T("It'll take one sec."); - break; - } - m_action2_label->SetWindowTextW(actionText); - m_message2_label->SetWindowTextW(messageText); - m_action2_label->ShowWindow(SW_SHOW); - m_message2_label->ShowWindow(SW_SHOW); + m_trouble->ShowWindow(SW_HIDE); + m_trouble_link.ShowWindow(SW_HIDE); + m_terms->ShowWindow(SW_HIDE); + m_terms2->ShowWindow(SW_HIDE); + m_orgname_banner->ShowWindow(SW_HIDE); + m_username_banner->ShowWindow(SW_HIDE); + m_password_banner->ShowWindow(SW_HIDE); + m_orgname.ShowWindow(SW_HIDE); + m_username.ShowWindow(SW_HIDE); + m_password.ShowWindow(SW_HIDE); + m_action_label->SetWindowTextW(_T("")); + m_message_label->SetWindowTextW(_T("")); + m_btnNext.ShowWindow(SW_HIDE); + m_action_label->ShowWindow(SW_HIDE); + m_message_label->ShowWindow(SW_HIDE); + m_voxel->ShowWindow(SW_SHOW); + CString actionText = _T(""); + CString messageText = _T(""); + switch (step) { + case DrawStep::DrawProcessSetup: + actionText = _T("We're building your virtual HQ"); + messageText = _T("Set up may take several minutes."); + break; + case DrawStep::DrawProcessUpdate: + actionText = _T("Getting updates..."); + messageText = _T("We're getting the latest and greatest for you, one sec."); + break; + case DrawStep::DrawProcessFinishHq: + actionText = _T("Your new HQ is all setup"); + messageText = _T("Thanks for being patient."); + break; + case DrawStep::DrawProcessFinishUpdate: + actionText = _T("You're good to go!"); + messageText = _T("Thanks for being patient."); + break; + case DrawStep::DrawProcessUninstall: + actionText = _T("Uninstalling..."); + messageText = _T("It'll take one sec."); + break; + } + m_action2_label->SetWindowTextW(actionText); + m_message2_label->SetWindowTextW(messageText); + m_action2_label->ShowWindow(SW_SHOW); + m_message2_label->ShowWindow(SW_SHOW); } void CLauncherDlg::prepareError() { } BOOL CLauncherDlg::getTextFormat(int resID, TextFormat& formatOut) { - // Set default values for message - BOOL isText = TRUE; - formatOut.color = COLOR_LIGHT_GREY; - formatOut.isBold = false; - formatOut.isButton = false; - formatOut.size = MESSAGE_FONT_SIZE; - formatOut.underlined = false; - - switch (resID) { - case IDC_VOXEL: - case IDD_LAUNCHER_DIALOG: - isText = FALSE; - case IDC_MESSAGE_LABEL: - case IDC_MESSAGE2_LABEL: - // Default values - break; - case IDC_ACTION_LABEL: - case IDC_ACTION2_LABEL: - formatOut.size = ACTION_FONT_SIZE; - formatOut.isBold = true; - formatOut.color = COLOR_LIGHTER_GREY; - break; - case IDC_USERNAME: - case IDC_PASSWORD: - case IDC_ORGNAME: - formatOut.color = COLOR_WHITE; - formatOut.size = FIELDS_FONT_SIZE; - formatOut.underlined = true; - break; - case IDC_USERNAME_BANNER: - case IDC_PASSWORD_BANNER: - case IDC_ORGNAME_BANNER: - formatOut.size = FIELDS_FONT_SIZE; - formatOut.color = COLOR_GREY; - break; - case IDC_TERMS: - formatOut.size = TERMS_FONT_SIZE; - break; - case IDC_TERMS2: - formatOut.size = TERMS_FONT_SIZE; - formatOut.isBold = true; - break; - case IDC_TROUBLE: - formatOut.size = TROUBLE_FONT_SIZE; - formatOut.color = COLOR_BLUE; - break; - } - return isText; + // Set default values for message + BOOL isText = TRUE; + formatOut.color = COLOR_LIGHT_GREY; + formatOut.isBold = false; + formatOut.isButton = false; + formatOut.size = MESSAGE_FONT_SIZE; + formatOut.underlined = false; + + switch (resID) { + case IDC_VOXEL: + case IDD_LAUNCHER_DIALOG: + isText = FALSE; + case IDC_MESSAGE_LABEL: + case IDC_MESSAGE2_LABEL: + // Default values + break; + case IDC_ACTION_LABEL: + case IDC_ACTION2_LABEL: + formatOut.size = ACTION_FONT_SIZE; + formatOut.isBold = true; + formatOut.color = COLOR_LIGHTER_GREY; + break; + case IDC_USERNAME: + case IDC_PASSWORD: + case IDC_ORGNAME: + formatOut.color = COLOR_WHITE; + formatOut.size = FIELDS_FONT_SIZE; + formatOut.underlined = true; + break; + case IDC_USERNAME_BANNER: + case IDC_PASSWORD_BANNER: + case IDC_ORGNAME_BANNER: + formatOut.size = FIELDS_FONT_SIZE; + formatOut.color = COLOR_GREY; + break; + case IDC_TERMS: + formatOut.size = TERMS_FONT_SIZE; + break; + case IDC_TERMS2: + formatOut.size = TERMS_FONT_SIZE; + formatOut.isBold = true; + break; + case IDC_TROUBLE: + formatOut.size = TROUBLE_FONT_SIZE; + formatOut.color = COLOR_BLUE; + break; + } + return isText; } HBRUSH CLauncherDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { - HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); - TextFormat textFormat; - int resId = pWnd->GetDlgCtrlID(); - if (getTextFormat(resId, textFormat)) { - pDC->SetTextColor(textFormat.color); - pDC->SetBkMode(TRANSPARENT); - CFont textFont; - CString fontFamily = textFormat.isBold ? GRAPHIK_SEMIBOLD : GRAPHIK_REGULAR; - if (LauncherUtils::getFont(fontFamily, textFormat.size, textFormat.isBold, textFont)) { - pDC->SelectObject(&textFont); - } - if (textFormat.underlined) { - CRect rect; - pWnd->GetClientRect(&rect); - int borderThick = 1; - int padding = 4; - CRect lineRect = CRect(rect.left + padding, rect.bottom, rect.right - padding, rect.bottom + borderThick); - lineRect.MoveToY(lineRect.bottom + 1); - pDC->FillSolidRect(lineRect, COLOR_GREY); - } - } - return (HBRUSH)GetStockObject(BLACK_BRUSH); + HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); + TextFormat textFormat; + int resId = pWnd->GetDlgCtrlID(); + if (getTextFormat(resId, textFormat)) { + pDC->SetTextColor(textFormat.color); + pDC->SetBkMode(TRANSPARENT); + CFont textFont; + CString fontFamily = textFormat.isBold ? GRAPHIK_SEMIBOLD : GRAPHIK_REGULAR; + if (LauncherUtils::getFont(fontFamily, textFormat.size, textFormat.isBold, textFont)) { + pDC->SelectObject(&textFont); + } + if (textFormat.underlined) { + CRect rect; + pWnd->GetClientRect(&rect); + int borderThick = 1; + int padding = 4; + CRect lineRect = CRect(rect.left + padding, rect.bottom, rect.right - padding, rect.bottom + borderThick); + lineRect.MoveToY(lineRect.bottom + 1); + pDC->FillSolidRect(lineRect, COLOR_GREY); + } + } + return (HBRUSH)GetStockObject(BLACK_BRUSH); } void CLauncherDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { - CDC dc; - dc.Attach(lpDrawItemStruct->hDC); - CRect rect = lpDrawItemStruct->rcItem; - CRect defrect = rect; - CString btnName = _T(""); - int xpan = 0; - if (nIDCtl == IDC_BUTTON_NEXT) { - if (_drawStep == DrawStep::DrawChoose || _drawStep == DrawStep::DrawLoginLogin) { - btnName += _drawStep == DrawStep::DrawLoginLogin ? _T("NEXT") : _T("LOG IN"); - int xpan = -20; - defrect = CRect(rect.left - xpan, rect.top, rect.right + xpan, rect.bottom); - } else { - btnName += _T("TRY AGAIN"); - } - int borderThick = 2; - dc.FillSolidRect(rect, COLOR_BLACK); - dc.FillSolidRect(defrect, COLOR_WHITE); - defrect.DeflateRect(borderThick, borderThick, borderThick, borderThick); - dc.FillSolidRect(defrect, COLOR_BLACK); - UINT state = lpDrawItemStruct->itemState; - dc.SetTextColor(COLOR_WHITE); + CDC dc; + dc.Attach(lpDrawItemStruct->hDC); + CRect rect = lpDrawItemStruct->rcItem; + CRect defrect = rect; + CString btnName = _T(""); + int xpan = 0; + if (nIDCtl == IDC_BUTTON_NEXT) { + if (_drawStep == DrawStep::DrawChoose || _drawStep == DrawStep::DrawLoginLogin) { + btnName += _drawStep == DrawStep::DrawLoginLogin ? _T("NEXT") : _T("LOG IN"); + int xpan = -20; + defrect = CRect(rect.left - xpan, rect.top, rect.right + xpan, rect.bottom); + } else { + btnName += _T("TRY AGAIN"); + } + int borderThick = 2; + dc.FillSolidRect(rect, COLOR_BLACK); + dc.FillSolidRect(defrect, COLOR_WHITE); + defrect.DeflateRect(borderThick, borderThick, borderThick, borderThick); + dc.FillSolidRect(defrect, COLOR_BLACK); + UINT state = lpDrawItemStruct->itemState; + dc.SetTextColor(COLOR_WHITE); - CFont buttonFont; - if (LauncherUtils::getFont(GRAPHIK_SEMIBOLD, BUTTON_FONT_SIZE, true, buttonFont)) { - dc.SelectObject(buttonFont); - } - dc.DrawText(btnName, CRect(rect.left, rect.top + 4, rect.right, rect.bottom - 8), DT_CENTER | DT_VCENTER | DT_SINGLELINE); - dc.Detach(); - } else if (nIDCtl == IDC_TROUBLE_LINK) { - dc.FillSolidRect(rect, COLOR_BLACK); - dc.SetTextColor(COLOR_BLUE); - CFont buttonFont; - if (LauncherUtils::getFont(GRAPHIK_SEMIBOLD, TROUBLE_FONT_SIZE, true, buttonFont)) { - dc.SelectObject(buttonFont); - } - dc.DrawText(_T("Having Trouble"), CRect(rect.left, rect.top, rect.right, rect.bottom), DT_CENTER | DT_VCENTER | DT_SINGLELINE); - } + CFont buttonFont; + if (LauncherUtils::getFont(GRAPHIK_SEMIBOLD, BUTTON_FONT_SIZE, true, buttonFont)) { + dc.SelectObject(buttonFont); + } + dc.DrawText(btnName, CRect(rect.left, rect.top + 4, rect.right, rect.bottom - 8), DT_CENTER | DT_VCENTER | DT_SINGLELINE); + dc.Detach(); + } else if (nIDCtl == IDC_TROUBLE_LINK) { + dc.FillSolidRect(rect, COLOR_BLACK); + dc.SetTextColor(COLOR_BLUE); + CFont buttonFont; + if (LauncherUtils::getFont(GRAPHIK_SEMIBOLD, TROUBLE_FONT_SIZE, true, buttonFont)) { + dc.SelectObject(buttonFont); + } + dc.DrawText(_T("Having Trouble"), CRect(rect.left, rect.top, rect.right, rect.bottom), DT_CENTER | DT_VCENTER | DT_SINGLELINE); + } } void CLauncherDlg::redrawBanner(const CEdit& edit, CStatic* banner) { - CString editText; - edit.GetWindowTextW(editText); - if (editText.GetLength() == 0) { - banner->Invalidate(); - } + CString editText; + edit.GetWindowTextW(editText); + if (editText.GetLength() == 0) { + banner->Invalidate(); + } } void CLauncherDlg::OnOrgEditChangeFocus() { - redrawBanner(m_username, m_username_banner); - redrawBanner(m_password, m_password_banner); + redrawBanner(m_username, m_username_banner); + redrawBanner(m_password, m_password_banner); } void CLauncherDlg::OnUserEditChangeFocus() { - redrawBanner(m_orgname, m_orgname_banner); - redrawBanner(m_password, m_password_banner); + redrawBanner(m_orgname, m_orgname_banner); + redrawBanner(m_password, m_password_banner); } void CLauncherDlg::OnPassEditChangeFocus() { - redrawBanner(m_orgname, m_orgname_banner); - redrawBanner(m_username, m_username_banner); + redrawBanner(m_orgname, m_orgname_banner); + redrawBanner(m_username, m_username_banner); } BOOL CLauncherDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { - if (pWnd->IsKindOf(RUNTIME_CLASS(CButton))) { - ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HAND)); - return TRUE; - } - return CDialog::OnSetCursor(pWnd, nHitTest, message); + if (pWnd->IsKindOf(RUNTIME_CLASS(CButton))) { + ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HAND)); + return TRUE; + } + return CDialog::OnSetCursor(pWnd, nHitTest, message); } void CLauncherDlg::OnTimer(UINT_PTR nIDEvent) { - const int CONSOLE_MAX_SHUTDOWN_TRY_COUNT = 10; - const int CONSOLE_DELTATIME_BETWEEN_TRYS = 10; - if (_drawStep == DrawStep::DrawProcessSetup || - _drawStep == DrawStep::DrawProcessUpdate || - _drawStep == DrawStep::DrawProcessUninstall) { - // Refresh - setDrawDialog(_drawStep, true); - } - if (_showSplash) { - if (_splashStep == 0){ + const int CONSOLE_MAX_SHUTDOWN_TRY_COUNT = 10; + const int CONSOLE_DELTATIME_BETWEEN_TRYS = 10; + if (_drawStep == DrawStep::DrawProcessSetup || + _drawStep == DrawStep::DrawProcessUpdate || + _drawStep == DrawStep::DrawProcessUninstall) { + // Refresh + setDrawDialog(_drawStep, true); + } + if (_showSplash) { + if (_splashStep == 0){ if (theApp._manager.needsUninstall()) { theApp._manager.addToLog(_T("Waiting to uninstall")); setDrawDialog(DrawStep::DrawProcessUninstall); } else { theApp._manager.addToLog(_T("Start splash screen")); setDrawDialog(DrawStep::DrawLogo); - } - } else if (_splashStep > 100) { - _showSplash = false; - if (theApp._manager.shouldShutDown()) { - if (LauncherUtils::IsProcessRunning(L"interface.exe")) { - exit(0); - } - } else if (theApp._manager.needsUpdate()) { - startProcess(); - } else if (theApp._manager.needsUninstall()) { - theApp._manager.uninstallApplication(); - exit(0); - } else { + } + } else if (_splashStep > 100) { + _showSplash = false; + if (theApp._manager.shouldShutDown()) { + if (LauncherUtils::IsProcessRunning(L"interface.exe")) { + exit(0); + } + } else if (theApp._manager.needsUpdate()) { + startProcess(); + } else if (theApp._manager.needsUninstall()) { + theApp._manager.uninstallApplication(); + exit(0); + } else { theApp._manager.addToLog(_T("Starting login")); - setDrawDialog(DrawStep::DrawLoginLogin); - } - } - _splashStep++; - } else if (theApp._manager.shouldShutDown()) { - if (LauncherUtils::IsProcessRunning(L"interface.exe")) { - exit(0); - } - } + setDrawDialog(DrawStep::DrawLoginLogin); + } + } + _splashStep++; + } else if (theApp._manager.shouldShutDown()) { + if (LauncherUtils::IsProcessRunning(L"interface.exe")) { + exit(0); + } + } } void CLauncherDlg::setDrawDialog(DrawStep step, BOOL isUpdate) { - _drawStep = step; - auto m_pRenderTarget = GetRenderTarget(); - auto m_voxelRenderTarget = m_voxel->GetRenderTarget(); - switch (_drawStep) { - case DrawStep::DrawLogo: - m_pRenderTarget->BeginDraw(); - drawBackground(m_pRenderTarget); - m_pRenderTarget->EndDraw(); - m_voxelRenderTarget->BeginDraw(); - drawLogo(m_voxelRenderTarget); - m_voxelRenderTarget->EndDraw(); - break; - case DrawStep::DrawLoginLogin: - case DrawStep::DrawLoginErrorOrg: - case DrawStep::DrawLoginErrorCred: - prepareLogin(_drawStep); - m_pRenderTarget->BeginDraw(); - drawBackground(m_pRenderTarget); - drawSmallLogo(m_pRenderTarget); - m_pRenderTarget->EndDraw(); - RedrawWindow(); - break; - case DrawStep::DrawChoose: - prepareChoose(); - m_pRenderTarget->BeginDraw(); - drawBackground(m_pRenderTarget); - drawSmallLogo(m_pRenderTarget); - m_pRenderTarget->EndDraw(); - RedrawWindow(); - break; - case DrawStep::DrawProcessFinishHq: - case DrawStep::DrawProcessFinishUpdate: - case DrawStep::DrawProcessUpdate: - case DrawStep::DrawProcessUninstall: - case DrawStep::DrawProcessSetup: - if (!isUpdate) { - m_voxelRenderTarget->BeginDraw(); - m_voxelRenderTarget->Clear(D2D1::ColorF(0.0f, 0.0f, 0.0f, 1.0f)); - m_voxelRenderTarget->EndDraw(); - m_pRenderTarget->BeginDraw(); - prepareProcess(_drawStep); - drawBackground(m_pRenderTarget); - drawSmallLogo(m_pRenderTarget); - m_pRenderTarget->EndDraw(); - RedrawWindow(); - } - m_voxelRenderTarget->BeginDraw(); - drawVoxel(m_voxelRenderTarget); - m_voxelRenderTarget->EndDraw(); - break; - default: - break; - } + _drawStep = step; + auto m_pRenderTarget = GetRenderTarget(); + auto m_voxelRenderTarget = m_voxel->GetRenderTarget(); + switch (_drawStep) { + case DrawStep::DrawLogo: + m_pRenderTarget->BeginDraw(); + drawBackground(m_pRenderTarget); + m_pRenderTarget->EndDraw(); + m_voxelRenderTarget->BeginDraw(); + drawLogo(m_voxelRenderTarget); + m_voxelRenderTarget->EndDraw(); + break; + case DrawStep::DrawLoginLogin: + case DrawStep::DrawLoginErrorOrg: + case DrawStep::DrawLoginErrorCred: + prepareLogin(_drawStep); + m_pRenderTarget->BeginDraw(); + drawBackground(m_pRenderTarget); + drawSmallLogo(m_pRenderTarget); + m_pRenderTarget->EndDraw(); + RedrawWindow(); + break; + case DrawStep::DrawChoose: + prepareChoose(); + m_pRenderTarget->BeginDraw(); + drawBackground(m_pRenderTarget); + drawSmallLogo(m_pRenderTarget); + m_pRenderTarget->EndDraw(); + RedrawWindow(); + break; + case DrawStep::DrawProcessFinishHq: + case DrawStep::DrawProcessFinishUpdate: + case DrawStep::DrawProcessUpdate: + case DrawStep::DrawProcessUninstall: + case DrawStep::DrawProcessSetup: + if (!isUpdate) { + m_voxelRenderTarget->BeginDraw(); + m_voxelRenderTarget->Clear(D2D1::ColorF(0.0f, 0.0f, 0.0f, 1.0f)); + m_voxelRenderTarget->EndDraw(); + m_pRenderTarget->BeginDraw(); + prepareProcess(_drawStep); + drawBackground(m_pRenderTarget); + drawSmallLogo(m_pRenderTarget); + m_pRenderTarget->EndDraw(); + RedrawWindow(); + } + m_voxelRenderTarget->BeginDraw(); + drawVoxel(m_voxelRenderTarget); + m_voxelRenderTarget->EndDraw(); + break; + default: + break; + } } diff --git a/launchers/win32/LauncherDlg.h b/launchers/win32/LauncherDlg.h index d743dd31d2..e998b342c1 100644 --- a/launchers/win32/LauncherDlg.h +++ b/launchers/win32/LauncherDlg.h @@ -13,109 +13,109 @@ // CLauncherDlg dialog class CLauncherDlg : public CDialog { - // Construction + // Construction public: - enum DrawStep { - DrawLogo = 0, - DrawLoginLogin, - DrawLoginErrorOrg, - DrawLoginErrorCred, - DrawChoose, - DrawProcessSetup, - DrawProcessUpdate, - DrawProcessFinishHq, - DrawProcessFinishUpdate, - DrawProcessUninstall, - DrawError - }; + enum DrawStep { + DrawLogo = 0, + DrawLoginLogin, + DrawLoginErrorOrg, + DrawLoginErrorCred, + DrawChoose, + DrawProcessSetup, + DrawProcessUpdate, + DrawProcessFinishHq, + DrawProcessFinishUpdate, + DrawProcessUninstall, + DrawError + }; - struct TextFormat { - int size; - COLORREF color; - bool isButton; - bool isBold; - bool underlined; - }; + struct TextFormat { + int size; + COLORREF color; + bool isButton; + bool isBold; + bool underlined; + }; - CLauncherDlg(CWnd* pParent = nullptr); + CLauncherDlg(CWnd* pParent = nullptr); ~CLauncherDlg(); - virtual BOOL PreTranslateMessage(MSG* pMsg); + virtual BOOL PreTranslateMessage(MSG* pMsg); - void setDrawDialog(DrawStep step, BOOL isUpdate = FALSE); + void setDrawDialog(DrawStep step, BOOL isUpdate = FALSE); // Dialog Data #ifdef AFX_DESIGN_TIME - enum { IDD = IDD_LAUNCHER_DIALOG }; + enum { IDD = IDD_LAUNCHER_DIALOG }; #endif - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - void startProcess(); - void setCustomDialog(); + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + void startProcess(); + void setCustomDialog(); // Implementation protected: - BOOL getHQInfo(const CString& orgname); - DrawStep _drawStep { DrawStep::DrawLogo }; - BOOL getTextFormat(int ResID, TextFormat& formatOut); - void showWindows(std::vector windows, bool show); + BOOL getHQInfo(const CString& orgname); + DrawStep _drawStep { DrawStep::DrawLogo }; + BOOL getTextFormat(int ResID, TextFormat& formatOut); + void showWindows(std::vector windows, bool show); - bool _isConsoleRunning{ false }; - bool _isInstalling{ false }; - bool _isFirstDraw{ false }; - bool _showSplash{ true }; - int _splashStep{ 0 }; - float _logoRotation { 0.0f }; + bool _isConsoleRunning{ false }; + bool _isInstalling{ false }; + bool _isFirstDraw{ false }; + bool _showSplash{ true }; + int _splashStep{ 0 }; + float _logoRotation { 0.0f }; - HICON m_hIcon; - CButton m_btnNext; - CButton m_trouble_link; - - CStatic* m_message_label; - CStatic* m_action_label; - CStatic* m_message2_label; - CStatic* m_action2_label; - CStatic* m_terms; - CStatic* m_terms2; - CStatic* m_trouble; - CStatic* m_voxel; + HICON m_hIcon; + CButton m_btnNext; + CButton m_trouble_link; + + CStatic* m_message_label; + CStatic* m_action_label; + CStatic* m_message2_label; + CStatic* m_action2_label; + CStatic* m_terms; + CStatic* m_terms2; + CStatic* m_trouble; + CStatic* m_voxel; - CEdit m_orgname; - CEdit m_username; - CEdit m_password; + CEdit m_orgname; + CEdit m_username; + CEdit m_password; - CStatic* m_orgname_banner; - CStatic* m_username_banner; - CStatic* m_password_banner; + CStatic* m_orgname_banner; + CStatic* m_username_banner; + CStatic* m_password_banner; - void drawBackground(CHwndRenderTarget* pRenderTarget); - void drawLogo(CHwndRenderTarget* pRenderTarget); - void drawSmallLogo(CHwndRenderTarget* pRenderTarget); - void drawVoxel(CHwndRenderTarget* pRenderTarget); + void drawBackground(CHwndRenderTarget* pRenderTarget); + void drawLogo(CHwndRenderTarget* pRenderTarget); + void drawSmallLogo(CHwndRenderTarget* pRenderTarget); + void drawVoxel(CHwndRenderTarget* pRenderTarget); - void prepareLogin(DrawStep step); - void prepareProcess(DrawStep step); - void prepareChoose(); - void prepareError(); + void prepareLogin(DrawStep step); + void prepareProcess(DrawStep step); + void prepareChoose(); + void prepareError(); - void redrawBanner(const CEdit& edit, CStatic* banner); + void redrawBanner(const CEdit& edit, CStatic* banner); - // Generated message map functions - virtual BOOL OnInitDialog(); - afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); - afx_msg void OnPaint(); - afx_msg HCURSOR OnQueryDragIcon(); - afx_msg void OnNextClicked(); - afx_msg void OnTroubleClicked(); - afx_msg void OnOrgEditChangeFocus(); - afx_msg void OnUserEditChangeFocus(); - afx_msg void OnPassEditChangeFocus(); - afx_msg void OnTimer(UINT_PTR nIDEvent); - DECLARE_MESSAGE_MAP() + // Generated message map functions + virtual BOOL OnInitDialog(); + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + afx_msg void OnPaint(); + afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnNextClicked(); + afx_msg void OnTroubleClicked(); + afx_msg void OnOrgEditChangeFocus(); + afx_msg void OnUserEditChangeFocus(); + afx_msg void OnPassEditChangeFocus(); + afx_msg void OnTimer(UINT_PTR nIDEvent); + DECLARE_MESSAGE_MAP() public: - afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); - afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); + afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); + afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); }; diff --git a/launchers/win32/LauncherManager.cpp b/launchers/win32/LauncherManager.cpp index 3dc7ddedcc..91bb80d4b8 100644 --- a/launchers/win32/LauncherManager.cpp +++ b/launchers/win32/LauncherManager.cpp @@ -76,396 +76,399 @@ void LauncherManager::closeLog() { BOOL LauncherManager::installLauncher() { addToLog(_T("Installing Launcher.")); - CString appPath; - BOOL result = getAndCreatePaths(PathType::Running_Path, appPath); - if (!result) { - MessageBox(NULL, L"Error getting app directory", L"Path Error", MB_OK | MB_ICONERROR); - } - CString installDirectory; - CString appDirectory = appPath.Left(appPath.ReverseFind('\\') + 1); - result = getAndCreatePaths(PathType::Launcher_Directory, installDirectory); - if (!result) { - MessageBox(NULL, L"Error getting app desired directory", L"Path Error", MB_OK | MB_ICONERROR); - } + CString appPath; + BOOL result = getAndCreatePaths(PathType::Running_Path, appPath); + if (!result) { + MessageBox(NULL, L"Error getting app directory", L"Path Error", MB_OK | MB_ICONERROR); + } + CString installDirectory; + CString appDirectory = appPath.Left(appPath.ReverseFind('\\') + 1); + result = getAndCreatePaths(PathType::Launcher_Directory, installDirectory); + if (!result) { + MessageBox(NULL, L"Error getting app desired directory", L"Path Error", MB_OK | MB_ICONERROR); + } - CString instalationPath = installDirectory + LAUNCHER_EXE_FILENAME; - if (!installDirectory.Compare(appDirectory) == 0) { - if (!_shouldUninstall) { - // The installer is not running on the desired location and has to be installed - // Kill of running before self-copy - if (LauncherUtils::IsProcessRunning(LAUNCHER_EXE_FILENAME)) { - ::ShellExecute(NULL, NULL, L"taskkill", L"/F /T /IM " + LAUNCHER_EXE_FILENAME, NULL, SW_HIDE); - } - CopyFile(appPath, instalationPath, FALSE); - } - } else if (_shouldUninstall) { + CString instalationPath = installDirectory + LAUNCHER_EXE_FILENAME; + if (!installDirectory.Compare(appDirectory) == 0) { + if (!_shouldUninstall) { + // The installer is not running on the desired location and has to be installed + // Kill of running before self-copy + if (LauncherUtils::IsProcessRunning(LAUNCHER_EXE_FILENAME)) { + ::ShellExecute(NULL, NULL, L"taskkill", L"/F /T /IM " + LAUNCHER_EXE_FILENAME, NULL, SW_HIDE); + } + CopyFile(appPath, instalationPath, FALSE); + } + } else if (_shouldUninstall) { addToLog(_T("Launching uninstall mode.")); - CString tempPath; - if (getAndCreatePaths(PathType::Temp_Directory, tempPath)) { - tempPath += _T("\\HQ_uninstaller_tmp.exe"); - CopyFile(instalationPath, tempPath, false); - LauncherUtils::launchApplication(tempPath, _T(" --uninstall")); - exit(0); - } - } - return TRUE; + CString tempPath; + if (getAndCreatePaths(PathType::Temp_Directory, tempPath)) { + tempPath += _T("\\HQ_uninstaller_tmp.exe"); + CopyFile(instalationPath, tempPath, false); + LauncherUtils::launchApplication(tempPath, _T(" --uninstall")); + exit(0); + } + } + return TRUE; } BOOL LauncherManager::createShortcuts() { - CString desktopLnkPath; + CString desktopLnkPath; addToLog(_T("Creating shortcuts.")); - getAndCreatePaths(PathType::Desktop_Directory, desktopLnkPath); - desktopLnkPath += _T("\\HQ Launcher.lnk"); - CString installDir; - getAndCreatePaths(PathType::Launcher_Directory, installDir); - CString installPath = installDir + LAUNCHER_EXE_FILENAME; - if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(desktopLnkPath), _T("CLick to Setup and Launch HQ."))) { - return FALSE; - } - CString startLinkPath; - getAndCreatePaths(PathType::StartMenu_Directory, startLinkPath); - CString appStartLinkPath = startLinkPath + _T("HQ Launcher.lnk"); - CString uniStartLinkPath = startLinkPath + _T("Uninstall HQ.lnk"); - CString uniLinkPath = installDir + _T("Uninstall HQ.lnk"); - if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(appStartLinkPath), _T("CLick to Setup and Launch HQ."))) { - return FALSE; - } - if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(uniStartLinkPath), _T("CLick to Uninstall HQ."), _T("--uninstall"))) { - return FALSE; - } - if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(uniLinkPath), _T("CLick to Uninstall HQ."), _T("--uninstall"))) { - return FALSE; - } - return TRUE; + getAndCreatePaths(PathType::Desktop_Directory, desktopLnkPath); + desktopLnkPath += _T("\\HQ Launcher.lnk"); + CString installDir; + getAndCreatePaths(PathType::Launcher_Directory, installDir); + CString installPath = installDir + LAUNCHER_EXE_FILENAME; + if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(desktopLnkPath), _T("CLick to Setup and Launch HQ."))) { + return FALSE; + } + CString startLinkPath; + getAndCreatePaths(PathType::StartMenu_Directory, startLinkPath); + CString appStartLinkPath = startLinkPath + _T("HQ Launcher.lnk"); + CString uniStartLinkPath = startLinkPath + _T("Uninstall HQ.lnk"); + CString uniLinkPath = installDir + _T("Uninstall HQ.lnk"); + if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(appStartLinkPath), _T("CLick to Setup and Launch HQ."))) { + return FALSE; + } + if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(uniStartLinkPath), _T("CLick to Uninstall HQ."), _T("--uninstall"))) { + return FALSE; + } + if (!LauncherUtils::CreateLink(installPath, (LPCSTR)CStringA(uniLinkPath), _T("CLick to Uninstall HQ."), _T("--uninstall"))) { + return FALSE; + } + return TRUE; } BOOL LauncherManager::deleteShortcuts() { - CString desktopLnkPath; + CString desktopLnkPath; addToLog(_T("Deleting shortcuts.")); - getAndCreatePaths(PathType::Desktop_Directory, desktopLnkPath); - desktopLnkPath += _T("\\HQ Launcher.lnk"); - BOOL success = LauncherUtils::deleteFileOrDirectory(desktopLnkPath); - CString startLinkPath; - getAndCreatePaths(PathType::StartMenu_Directory, startLinkPath); - return success && LauncherUtils::deleteFileOrDirectory(startLinkPath); + getAndCreatePaths(PathType::Desktop_Directory, desktopLnkPath); + desktopLnkPath += _T("\\HQ Launcher.lnk"); + BOOL success = LauncherUtils::deleteFileOrDirectory(desktopLnkPath); + CString startLinkPath; + getAndCreatePaths(PathType::StartMenu_Directory, startLinkPath); + return success && LauncherUtils::deleteFileOrDirectory(startLinkPath); } BOOL LauncherManager::isApplicationInstalled(CString& version, CString& domain, - CString& content, bool& loggedIn) { - CString applicationDir; - getAndCreatePaths(PathType::Launcher_Directory, applicationDir); - CString applicationPath = applicationDir + "interface\\interface.exe"; - BOOL isApplicationInstalled = PathFileExistsW(applicationPath); - BOOL configFileExist = PathFileExistsW(applicationDir + _T("interface\\config.json")); - if (isApplicationInstalled && configFileExist) { - LauncherUtils::ResponseError status = readConfigJSON(version, domain, content, loggedIn); - return status == LauncherUtils::ResponseError::NoError; - } - return FALSE; + CString& content, bool& loggedIn) { + CString applicationDir; + getAndCreatePaths(PathType::Launcher_Directory, applicationDir); + CString applicationPath = applicationDir + "interface\\interface.exe"; + BOOL isApplicationInstalled = PathFileExistsW(applicationPath); + BOOL configFileExist = PathFileExistsW(applicationDir + _T("interface\\config.json")); + if (isApplicationInstalled && configFileExist) { + LauncherUtils::ResponseError status = readConfigJSON(version, domain, content, loggedIn); + return status == LauncherUtils::ResponseError::NoError; + } + return FALSE; } BOOL LauncherManager::getAndCreatePaths(PathType type, CString& outPath) { - if (type == PathType::Running_Path) { - char appPath[MAX_PATH]; - DWORD size = GetModuleFileNameA(NULL, appPath, MAX_PATH); - if (size) { - outPath = CString(appPath); - return TRUE; - } - } else if (type == PathType::Desktop_Directory) { - TCHAR desktopPath[MAX_PATH]; - auto success = SUCCEEDED(SHGetFolderPath(NULL, CSIDL_DESKTOP, NULL, 0, desktopPath)); - outPath = CString(desktopPath); - return success; - } else if (type == PathType::Temp_Directory) { - TCHAR tempPath[MAX_PATH]; - auto success = GetTempPath(MAX_PATH, tempPath); - outPath = CString(tempPath); - return success; - } else { - TCHAR localDataPath[MAX_PATH]; - if (type == PathType::StartMenu_Directory) { - TCHAR startMenuPath[MAX_PATH]; - auto success = SUCCEEDED(SHGetFolderPath(NULL, CSIDL_STARTMENU, NULL, 0, startMenuPath)); - outPath = CString(startMenuPath) + _T("\\Programs\\HQ\\"); - success = SHCreateDirectoryEx(NULL, outPath, NULL) || ERROR_ALREADY_EXISTS == GetLastError(); - return success; - } else if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, localDataPath))) { - _tcscat_s(localDataPath, _T("\\") + DIRECTORY_NAME_APP + _T("\\")); - outPath = CString(localDataPath); - if (type == PathType::Download_Directory) { - outPath += DIRECTORY_NAME_DOWNLOADS + _T("\\"); - } else if (type == PathType::Interface_Directory) { - outPath += DIRECTORY_NAME_INTERFACE; - } else if (type == PathType::Content_Directory) { - outPath += DIRECTORY_NAME_CONTENT; - } - return (CreateDirectory(outPath, NULL) || ERROR_ALREADY_EXISTS == GetLastError()); - } - } - return FALSE; + if (type == PathType::Running_Path) { + char appPath[MAX_PATH]; + DWORD size = GetModuleFileNameA(NULL, appPath, MAX_PATH); + if (size) { + outPath = CString(appPath); + return TRUE; + } + } else if (type == PathType::Desktop_Directory) { + TCHAR desktopPath[MAX_PATH]; + auto success = SUCCEEDED(SHGetFolderPath(NULL, CSIDL_DESKTOP, NULL, 0, desktopPath)); + outPath = CString(desktopPath); + return success; + } else if (type == PathType::Temp_Directory) { + TCHAR tempPath[MAX_PATH]; + auto success = GetTempPath(MAX_PATH, tempPath); + outPath = CString(tempPath); + return success; + } else { + TCHAR localDataPath[MAX_PATH]; + if (type == PathType::StartMenu_Directory) { + TCHAR startMenuPath[MAX_PATH]; + auto success = SUCCEEDED(SHGetFolderPath(NULL, CSIDL_STARTMENU, NULL, 0, startMenuPath)); + outPath = CString(startMenuPath) + _T("\\Programs\\HQ\\"); + success = SHCreateDirectoryEx(NULL, outPath, NULL) || ERROR_ALREADY_EXISTS == GetLastError(); + return success; + } else if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, localDataPath))) { + _tcscat_s(localDataPath, _T("\\") + DIRECTORY_NAME_APP + _T("\\")); + outPath = CString(localDataPath); + if (type == PathType::Download_Directory) { + outPath += DIRECTORY_NAME_DOWNLOADS + _T("\\"); + } else if (type == PathType::Interface_Directory) { + outPath += DIRECTORY_NAME_INTERFACE; + } else if (type == PathType::Content_Directory) { + outPath += DIRECTORY_NAME_CONTENT; + } + return (CreateDirectory(outPath, NULL) || ERROR_ALREADY_EXISTS == GetLastError()); + } + } + return FALSE; } BOOL LauncherManager::getInstalledVersion(const CString& path, CString& version) { - CStdioFile cfile; - BOOL success = cfile.Open(path, CFile::modeRead); - if (success) { - cfile.ReadString(version); - cfile.Close(); - } - return success; + CStdioFile cfile; + BOOL success = cfile.Open(path, CFile::modeRead); + if (success) { + cfile.ReadString(version); + cfile.Close(); + } + return success; } BOOL LauncherManager::launchApplication(const CString& tokensJSON) { - CString installDir; - LauncherManager::getAndCreatePaths(PathType::Interface_Directory, installDir); - CString interfaceExe = installDir + _T("\\interface.exe"); - CString params1 = _T("--url \"") + _domainURL + ("\" "); - CString cacheDir; - LauncherManager::getAndCreatePaths(PathType::Content_Directory, cacheDir); - CString params3 = _T("--cache \"") + cacheDir + ("\" "); - CString params4 = !_displayName.IsEmpty() ? _T("--displayName \"") + _displayName + ("\" ") : _T(""); - CString parsedTokens = tokensJSON; - parsedTokens.Replace(_T("\""), _T("\\\"")); - CString params5 = !tokensJSON.IsEmpty() ? _T("--tokens \"") + parsedTokens + ("\"") : _T(""); - CString params = params1 + params3 + params4 + params5 + EXTRA_PARAMETERS; - auto rs = ShellExecute(NULL, L"open", interfaceExe, params, NULL, SW_SHOW); - return (rs != NULL); + CString installDir; + LauncherManager::getAndCreatePaths(PathType::Interface_Directory, installDir); + CString interfaceExe = installDir + _T("\\interface.exe"); + CString params1 = _T("--url \"") + _domainURL + ("\" "); + CString scriptsURL = installDir + _T("\\scripts\\simplifiedUI"); + CString params2 = _T("--scripts \"") + scriptsURL + ("\" "); + CString cacheDir; + LauncherManager::getAndCreatePaths(PathType::Content_Directory, cacheDir); + CString params3 = _T("--cache \"") + cacheDir + ("\" "); + CString params4 = !_displayName.IsEmpty() ? _T("--displayName \"") + _displayName + ("\" ") : _T(""); + CString parsedTokens = tokensJSON; + parsedTokens.Replace(_T("\""), _T("\\\"")); + CString params5 = !tokensJSON.IsEmpty() ? _T("--tokens \"") + parsedTokens + ("\"") : _T(""); + CString params = params1 + params2 + params3 + params4 + params5 + EXTRA_PARAMETERS; + + auto rs = ShellExecute(NULL, L"open", interfaceExe, params, NULL, SW_SHOW); + return (rs != NULL); } BOOL LauncherManager::createConfigJSON() { - CString configPath; - LauncherManager::getAndCreatePaths(PathType::Interface_Directory, configPath); - configPath += "\\config.json"; - std::ofstream configFile(configPath, std::ofstream::binary); - if (configFile.fail()) { - return FALSE; - } - Json::Value config; - CString applicationPath; - LauncherManager::getAndCreatePaths(PathType::Launcher_Directory, applicationPath); - applicationPath += LAUNCHER_EXE_FILENAME; - config["loggedIn"] = _loggedIn; - config["launcherPath"] = LauncherUtils::cStringToStd(applicationPath); - config["version"] = LauncherUtils::cStringToStd(_latestVersion); - config["domain"] = LauncherUtils::cStringToStd(_domainURL); - CString content; - getAndCreatePaths(PathType::Content_Directory, content); - config["content"] = LauncherUtils::cStringToStd(content); - configFile << config; - configFile.close(); - return TRUE; + CString configPath; + LauncherManager::getAndCreatePaths(PathType::Interface_Directory, configPath); + configPath += "\\config.json"; + std::ofstream configFile(configPath, std::ofstream::binary); + if (configFile.fail()) { + return FALSE; + } + Json::Value config; + CString applicationPath; + LauncherManager::getAndCreatePaths(PathType::Launcher_Directory, applicationPath); + applicationPath += LAUNCHER_EXE_FILENAME; + config["loggedIn"] = _loggedIn; + config["launcherPath"] = LauncherUtils::cStringToStd(applicationPath); + config["version"] = LauncherUtils::cStringToStd(_latestVersion); + config["domain"] = LauncherUtils::cStringToStd(_domainURL); + CString content; + getAndCreatePaths(PathType::Content_Directory, content); + config["content"] = LauncherUtils::cStringToStd(content); + configFile << config; + configFile.close(); + return TRUE; } LauncherUtils::ResponseError LauncherManager::readConfigJSON(CString& version, CString& domain, CString& content, bool& loggedIn) { - CString configPath; - getAndCreatePaths(PathType::Interface_Directory, configPath); - configPath += "\\config.json"; - std::ifstream configFile(configPath, std::ifstream::binary); - if (configFile.fail()) { - return LauncherUtils::ResponseError::Open; - } - Json::Value config; - configFile >> config; - if (config["version"].isString() && config["domain"].isString() && - config["content"].isString()) { - loggedIn = config["loggedIn"].asBool(); - version = config["version"].asCString(); - domain = config["domain"].asCString(); - content = config["content"].asCString(); - configFile.close(); - return LauncherUtils::ResponseError::NoError; - } - configFile.close(); - return LauncherUtils::ResponseError::ParsingJSON; + CString configPath; + getAndCreatePaths(PathType::Interface_Directory, configPath); + configPath += "\\config.json"; + std::ifstream configFile(configPath, std::ifstream::binary); + if (configFile.fail()) { + return LauncherUtils::ResponseError::Open; + } + Json::Value config; + configFile >> config; + if (config["version"].isString() && config["domain"].isString() && + config["content"].isString()) { + loggedIn = config["loggedIn"].asBool(); + version = config["version"].asCString(); + domain = config["domain"].asCString(); + content = config["content"].asCString(); + configFile.close(); + return LauncherUtils::ResponseError::NoError; + } + configFile.close(); + return LauncherUtils::ResponseError::ParsingJSON; } LauncherUtils::ResponseError LauncherManager::readOrganizationJSON(const CString& hash) { - CString contentTypeJson = L"content-type:application/json"; - CString response; - CString url = _T("/hifi-public/huffman/organizations/") + hash + _T(".json"); - LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(L"HQ Launcher", L"s3.amazonaws.com", url, - contentTypeJson, CStringA(), response, false); - if (error != LauncherUtils::ResponseError::NoError) { - return error; - } - Json::Value json; - if (LauncherUtils::parseJSON(response, json)) { - if (json["content_set_url"].isString() && json["domain"].isString()) { - _contentURL = json["content_set_url"].asCString(); - _domainURL = json["domain"].asCString(); - return LauncherUtils::ResponseError::NoError; - } - } - return LauncherUtils::ResponseError::ParsingJSON; + CString contentTypeJson = L"content-type:application/json"; + CString response; + CString url = _T("/hifi-public/huffman/organizations/") + hash + _T(".json"); + LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(L"HQ Launcher", L"s3.amazonaws.com", url, + contentTypeJson, CStringA(), response, false); + if (error != LauncherUtils::ResponseError::NoError) { + return error; + } + Json::Value json; + if (LauncherUtils::parseJSON(response, json)) { + if (json["content_set_url"].isString() && json["domain"].isString()) { + _contentURL = json["content_set_url"].asCString(); + _domainURL = json["domain"].asCString(); + return LauncherUtils::ResponseError::NoError; + } + } + return LauncherUtils::ResponseError::ParsingJSON; } LauncherUtils::ResponseError LauncherManager::getMostRecentBuild(CString& urlOut, CString& versionOut) { - CString contentTypeJson = L"content-type:application/json"; - CString response; - LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(L"HQ Launcher", L"thunder.highfidelity.com", L"/builds/api/tags/latest?format=json", - contentTypeJson, CStringA(), response, false); - if (error != LauncherUtils::ResponseError::NoError) { - return error; - } - Json::Value json; - if (LauncherUtils::parseJSON(response, json)) { - int count = json["count"].isInt() ? json["count"].asInt() : 0; - if (count > 0 && json["results"].isArray()) { - for (int i = 0; i < count; i++) { - if (json["results"][i].isObject()) { - Json::Value result = json["results"][i]; - if (result["latest_version"].isInt()) { - std::string version = std::to_string(result["latest_version"].asInt()); - versionOut = CString(version.c_str()); - } - if (result["installers"].isObject() && - result["installers"]["windows"].isObject() && - result["installers"]["windows"]["zip_url"].isString()) { - urlOut = result["installers"]["windows"]["zip_url"].asCString(); - return LauncherUtils::ResponseError::NoError; - } - } - } - } - } - return LauncherUtils::ResponseError::ParsingJSON; + CString contentTypeJson = L"content-type:application/json"; + CString response; + LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(L"HQ Launcher", L"thunder.highfidelity.com", L"/builds/api/tags/latest?format=json", + contentTypeJson, CStringA(), response, false); + if (error != LauncherUtils::ResponseError::NoError) { + return error; + } + Json::Value json; + if (LauncherUtils::parseJSON(response, json)) { + int count = json["count"].isInt() ? json["count"].asInt() : 0; + if (count > 0 && json["results"].isArray()) { + for (int i = 0; i < count; i++) { + if (json["results"][i].isObject()) { + Json::Value result = json["results"][i]; + if (result["latest_version"].isInt()) { + std::string version = std::to_string(result["latest_version"].asInt()); + versionOut = CString(version.c_str()); + } + if (result["installers"].isObject() && + result["installers"]["windows"].isObject() && + result["installers"]["windows"]["zip_url"].isString()) { + urlOut = result["installers"]["windows"]["zip_url"].asCString(); + return LauncherUtils::ResponseError::NoError; + } + } + } + } + } + return LauncherUtils::ResponseError::ParsingJSON; } LauncherUtils::ResponseError LauncherManager::getAccessTokenForCredentials(const CString& username, const CString& password) { - CStringA post = "grant_type=password&username="; - post += username; - post += "&password="; - post += password; - post += "&scope=owner"; + CStringA post = "grant_type=password&username="; + post += username; + post += "&password="; + post += password; + post += "&scope=owner"; - CString contentTypeText = L"content-type:application/x-www-form-urlencoded"; - CString response; - LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(L"HQ Launcher", L"metaverse.highfidelity.com", L"/oauth/token", - contentTypeText, post, response, true); - if (error != LauncherUtils::ResponseError::NoError) { - return error; - } - Json::Value json; - if (LauncherUtils::parseJSON(response, json)) { - if (json["error"].isString()) { - return LauncherUtils::ResponseError::BadCredentials; - } else if (json["access_token"].isString()) { - _tokensJSON = response; - return LauncherUtils::ResponseError::NoError; - } - } - return LauncherUtils::ResponseError::ParsingJSON; + CString contentTypeText = L"content-type:application/x-www-form-urlencoded"; + CString response; + LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(L"HQ Launcher", L"metaverse.highfidelity.com", L"/oauth/token", + contentTypeText, post, response, true); + if (error != LauncherUtils::ResponseError::NoError) { + return error; + } + Json::Value json; + if (LauncherUtils::parseJSON(response, json)) { + if (json["error"].isString()) { + return LauncherUtils::ResponseError::BadCredentials; + } else if (json["access_token"].isString()) { + _tokensJSON = response; + return LauncherUtils::ResponseError::NoError; + } + } + return LauncherUtils::ResponseError::ParsingJSON; } BOOL LauncherManager::createApplicationRegistryKeys(int size) { - const std::string REGISTRY_PATH = "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\HQ"; - BOOL success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayName", "HQ"); - CString installDir; - getAndCreatePaths(PathType::Launcher_Directory, installDir); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "InstallLocation", LauncherUtils::cStringToStd(installDir)); - std::string applicationExe = LauncherUtils::cStringToStd(installDir + LAUNCHER_EXE_FILENAME); - std::string uninstallPath = '"' + applicationExe + '"' + " --uninstall"; - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "UninstallString", uninstallPath); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayVersion", LauncherUtils::cStringToStd(_latestVersion)); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayIcon", applicationExe); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "Publisher", "High Fidelity"); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "InstallDate", LauncherUtils::cStringToStd(CTime::GetCurrentTime().Format("%Y%m%d"))); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "EstimatedSize", (DWORD)size); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "NoModify", (DWORD)1); - success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "NoRepair", (DWORD)1); - return success; + const std::string REGISTRY_PATH = "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\HQ"; + BOOL success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayName", "HQ"); + CString installDir; + getAndCreatePaths(PathType::Launcher_Directory, installDir); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "InstallLocation", LauncherUtils::cStringToStd(installDir)); + std::string applicationExe = LauncherUtils::cStringToStd(installDir + LAUNCHER_EXE_FILENAME); + std::string uninstallPath = '"' + applicationExe + '"' + " --uninstall"; + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "UninstallString", uninstallPath); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayVersion", LauncherUtils::cStringToStd(_latestVersion)); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayIcon", applicationExe); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "Publisher", "High Fidelity"); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "InstallDate", LauncherUtils::cStringToStd(CTime::GetCurrentTime().Format("%Y%m%d"))); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "EstimatedSize", (DWORD)size); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "NoModify", (DWORD)1); + success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "NoRepair", (DWORD)1); + return success; } BOOL LauncherManager::deleteApplicationRegistryKeys() { - const CString REGISTRY_PATH = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\HQ"); - return LauncherUtils::deleteRegistryKey(REGISTRY_PATH); + const CString REGISTRY_PATH = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\HQ"); + return LauncherUtils::deleteRegistryKey(REGISTRY_PATH); } BOOL LauncherManager::uninstallApplication() { - CString installDir; - getAndCreatePaths(PathType::Launcher_Directory, installDir); - BOOL success = LauncherUtils::deleteFileOrDirectory(installDir); - success = success && (deleteShortcuts()); - success = success && (deleteApplicationRegistryKeys()); - return success; + CString installDir; + getAndCreatePaths(PathType::Launcher_Directory, installDir); + BOOL success = LauncherUtils::deleteFileOrDirectory(installDir); + success = success && (deleteShortcuts()); + success = success && (deleteApplicationRegistryKeys()); + return success; } void LauncherManager::onZipExtracted(ZipType type, int size) { - if (type == ZipType::ZipContent) { + if (type == ZipType::ZipContent) { addToLog(_T("Downloading application.")); - downloadApplication(); - } else if (type == ZipType::ZipApplication) { - createShortcuts(); - CString versionPath; - getAndCreatePaths(LauncherManager::PathType::Launcher_Directory, versionPath); + downloadApplication(); + } else if (type == ZipType::ZipApplication) { + createShortcuts(); + CString versionPath; + getAndCreatePaths(LauncherManager::PathType::Launcher_Directory, versionPath); addToLog(_T("Creating config.json")); createConfigJSON(); addToLog(_T("Launching application.")); - launchApplication(_tokensJSON); + launchApplication(_tokensJSON); addToLog(_T("Creating registry keys.")); - createApplicationRegistryKeys(size); - _shouldShutdown = TRUE; - } + createApplicationRegistryKeys(size); + _shouldShutdown = TRUE; + } } BOOL LauncherManager::extractApplication() { - CString installPath; - getAndCreatePaths(LauncherManager::PathType::Interface_Directory, installPath); - BOOL success = LauncherUtils::unzipFileOnThread(ZipType::ZipApplication, LauncherUtils::cStringToStd(_applicationZipPath), - LauncherUtils::cStringToStd(installPath), [&](int type, int size) { - onZipExtracted((ZipType)type, size); - }); - return success; + CString installPath; + getAndCreatePaths(LauncherManager::PathType::Interface_Directory, installPath); + BOOL success = LauncherUtils::unzipFileOnThread(ZipType::ZipApplication, LauncherUtils::cStringToStd(_applicationZipPath), + LauncherUtils::cStringToStd(installPath), [&](int type, int size) { + onZipExtracted((ZipType)type, size); + }); + return success; } void LauncherManager::onFileDownloaded(DownloadType type) { - if (type == DownloadType::DownloadContent) { + if (type == DownloadType::DownloadContent) { addToLog(_T("Installing content.")); - installContent(); - } else if (type == DownloadType::DownloadApplication) { + installContent(); + } else if (type == DownloadType::DownloadApplication) { addToLog(_T("Installing application.")); - extractApplication(); - } + extractApplication(); + } } BOOL LauncherManager::installContent() { - std::string contentZipFile = LauncherUtils::cStringToStd(_contentZipPath); - CString contentPath; - getAndCreatePaths(LauncherManager::PathType::Content_Directory, contentPath); - BOOL success = LauncherUtils::unzipFileOnThread(ZipType::ZipContent, contentZipFile, - LauncherUtils::cStringToStd(contentPath), [&](int type, int size) { - onZipExtracted((ZipType)type, size); - }); - return success; + std::string contentZipFile = LauncherUtils::cStringToStd(_contentZipPath); + CString contentPath; + getAndCreatePaths(LauncherManager::PathType::Content_Directory, contentPath); + BOOL success = LauncherUtils::unzipFileOnThread(ZipType::ZipContent, contentZipFile, + LauncherUtils::cStringToStd(contentPath), [&](int type, int size) { + onZipExtracted((ZipType)type, size); + }); + return success; } BOOL LauncherManager::downloadFile(DownloadType type, const CString& url, CString& outPath) { - CString fileName = url.Mid(url.ReverseFind('/') + 1); - CString downloadDirectory; - BOOL success = getAndCreatePaths(LauncherManager::PathType::Download_Directory, downloadDirectory); - outPath = downloadDirectory + fileName; - if (success) { - if (!LauncherUtils::downloadFileOnThread(type, url, outPath, [&](int type) { - onFileDownloaded((DownloadType)type); - })) { - success = FALSE; - } - } - return success; + CString fileName = url.Mid(url.ReverseFind('/') + 1); + CString downloadDirectory; + BOOL success = getAndCreatePaths(LauncherManager::PathType::Download_Directory, downloadDirectory); + outPath = downloadDirectory + fileName; + if (success) { + if (!LauncherUtils::downloadFileOnThread(type, url, outPath, [&](int type) { + onFileDownloaded((DownloadType)type); + })) { + success = FALSE; + } + } + return success; } BOOL LauncherManager::downloadContent() { addToLog(_T("Downloading content.")); - CString contentURL = getContentURL(); - return downloadFile(DownloadType::DownloadContent, contentURL, _contentZipPath); + CString contentURL = getContentURL(); + return downloadFile(DownloadType::DownloadContent, contentURL, _contentZipPath); } BOOL LauncherManager::downloadApplication() { - CString applicationURL = getLatestInterfaceURL(); - return downloadFile(DownloadType::DownloadApplication, applicationURL, _applicationZipPath); + CString applicationURL = getLatestInterfaceURL(); + return downloadFile(DownloadType::DownloadApplication, applicationURL, _applicationZipPath); } diff --git a/launchers/win32/LauncherManager.h b/launchers/win32/LauncherManager.h index 4bc09b49ca..b0e212a097 100644 --- a/launchers/win32/LauncherManager.h +++ b/launchers/win32/LauncherManager.h @@ -23,91 +23,91 @@ const bool INSTALL_ZIP = true; class LauncherManager { public: - enum PathType { - Running_Path = 0, - Launcher_Directory, - Download_Directory, - Interface_Directory, - Desktop_Directory, - Content_Directory, - StartMenu_Directory, - Temp_Directory - }; - enum ZipType { - ZipContent = 0, - ZipApplication - }; - enum DownloadType { - DownloadContent = 0, - DownloadApplication - }; - enum ErrorType { - ErrorNetworkAuth, - ErrorNetworkUpdate, - ErrorNetworkHq, - ErrorDownloading, - ErrorUpdating, - ErrorInstall, - ErrorIOFiles - }; - LauncherManager(); - ~LauncherManager(); - void init(); + enum PathType { + Running_Path = 0, + Launcher_Directory, + Download_Directory, + Interface_Directory, + Desktop_Directory, + Content_Directory, + StartMenu_Directory, + Temp_Directory + }; + enum ZipType { + ZipContent = 0, + ZipApplication + }; + enum DownloadType { + DownloadContent = 0, + DownloadApplication + }; + enum ErrorType { + ErrorNetworkAuth, + ErrorNetworkUpdate, + ErrorNetworkHq, + ErrorDownloading, + ErrorUpdating, + ErrorInstall, + ErrorIOFiles + }; + LauncherManager(); + ~LauncherManager(); + void init(); BOOL initLog(); BOOL addToLog(const CString& line); void closeLog(); - BOOL getAndCreatePaths(PathType type, CString& outPath); - BOOL getInstalledVersion(const CString& path, CString& version); - BOOL isApplicationInstalled(CString& version, CString& domain, - CString& content, bool& loggedIn); - LauncherUtils::ResponseError getAccessTokenForCredentials(const CString& username, const CString& password); - LauncherUtils::ResponseError getMostRecentBuild(CString& urlOut, CString& versionOut); - LauncherUtils::ResponseError readOrganizationJSON(const CString& hash); - LauncherUtils::ResponseError readConfigJSON(CString& version, CString& domain, - CString& content, bool& loggedIn); - BOOL createConfigJSON(); - BOOL createApplicationRegistryKeys(int size); - BOOL deleteApplicationRegistryKeys(); - BOOL createShortcuts(); - BOOL deleteShortcuts(); - BOOL launchApplication(const CString& tokensJSON = _T("")); - BOOL uninstallApplication(); - BOOL installLauncher(); + BOOL getAndCreatePaths(PathType type, CString& outPath); + BOOL getInstalledVersion(const CString& path, CString& version); + BOOL isApplicationInstalled(CString& version, CString& domain, + CString& content, bool& loggedIn); + LauncherUtils::ResponseError getAccessTokenForCredentials(const CString& username, const CString& password); + LauncherUtils::ResponseError getMostRecentBuild(CString& urlOut, CString& versionOut); + LauncherUtils::ResponseError readOrganizationJSON(const CString& hash); + LauncherUtils::ResponseError readConfigJSON(CString& version, CString& domain, + CString& content, bool& loggedIn); + BOOL createConfigJSON(); + BOOL createApplicationRegistryKeys(int size); + BOOL deleteApplicationRegistryKeys(); + BOOL createShortcuts(); + BOOL deleteShortcuts(); + BOOL launchApplication(const CString& tokensJSON = _T("")); + BOOL uninstallApplication(); + BOOL installLauncher(); - // getters - const CString& getContentURL() const { return _contentURL; } - const CString& getdomainURL() const { return _domainURL; } - const CString& getVersion() const { return _version; } - BOOL shouldShutDown() const { return _shouldShutdown; } - BOOL needsUpdate() { return _shouldUpdate; } - BOOL needsUninstall() { return _shouldUninstall; } - void setDisplayName(const CString& displayName) { _displayName = displayName; } - bool isLoggedIn() { return _loggedIn; } - const CString& getLatestInterfaceURL() const { return _latestApplicationURL; } - void uninstall() { _shouldUninstall = true; }; + // getters + const CString& getContentURL() const { return _contentURL; } + const CString& getdomainURL() const { return _domainURL; } + const CString& getVersion() const { return _version; } + BOOL shouldShutDown() const { return _shouldShutdown; } + BOOL needsUpdate() { return _shouldUpdate; } + BOOL needsUninstall() { return _shouldUninstall; } + void setDisplayName(const CString& displayName) { _displayName = displayName; } + bool isLoggedIn() { return _loggedIn; } + const CString& getLatestInterfaceURL() const { return _latestApplicationURL; } + void uninstall() { _shouldUninstall = true; }; - BOOL downloadFile(DownloadType type, const CString& url, CString& localPath); - BOOL downloadContent(); - BOOL downloadApplication(); - BOOL installContent(); - BOOL extractApplication(); - void onZipExtracted(ZipType type, int size); - void onFileDownloaded(DownloadType type); + BOOL downloadFile(DownloadType type, const CString& url, CString& localPath); + BOOL downloadContent(); + BOOL downloadApplication(); + BOOL installContent(); + BOOL extractApplication(); + void onZipExtracted(ZipType type, int size); + void onFileDownloaded(DownloadType type); private: - CString _latestApplicationURL; - CString _latestVersion; - CString _contentURL; - CString _domainURL; - CString _version; - CString _displayName; - CString _tokensJSON; - CString _applicationZipPath; - CString _contentZipPath; - bool _loggedIn{ false }; - BOOL _shouldUpdate{ FALSE }; - BOOL _shouldUninstall{ FALSE }; - BOOL _shouldShutdown{ FALSE }; + CString _latestApplicationURL; + CString _latestVersion; + CString _contentURL; + CString _domainURL; + CString _version; + CString _displayName; + CString _tokensJSON; + CString _applicationZipPath; + CString _contentZipPath; + bool _loggedIn{ false }; + BOOL _shouldUpdate{ FALSE }; + BOOL _shouldUninstall{ FALSE }; + BOOL _shouldShutdown{ FALSE }; CStdioFile _logFile; }; diff --git a/launchers/win32/LauncherUtils.cpp b/launchers/win32/LauncherUtils.cpp index 22724ac499..0309671bc2 100644 --- a/launchers/win32/LauncherUtils.cpp +++ b/launchers/win32/LauncherUtils.cpp @@ -36,360 +36,360 @@ CString LauncherUtils::urlEncodeString(const CString& url) { } BOOL LauncherUtils::IsProcessRunning(const wchar_t *processName) { - bool exists = false; - PROCESSENTRY32 entry; - entry.dwSize = sizeof(PROCESSENTRY32); + bool exists = false; + PROCESSENTRY32 entry; + entry.dwSize = sizeof(PROCESSENTRY32); - HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); + HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); - if (Process32First(snapshot, &entry)) { - while (Process32Next(snapshot, &entry)) { - if (!_wcsicmp(entry.szExeFile, processName)) { - exists = true; - break; - } - } - } - CloseHandle(snapshot); - return exists; + if (Process32First(snapshot, &entry)) { + while (Process32Next(snapshot, &entry)) { + if (!_wcsicmp(entry.szExeFile, processName)) { + exists = true; + break; + } + } + } + CloseHandle(snapshot); + return exists; } HRESULT LauncherUtils::CreateLink(LPCWSTR lpszPathObj, LPCSTR lpszPathLink, LPCWSTR lpszDesc, LPCWSTR lpszArgs) { - IShellLink* psl; + IShellLink* psl; - // Get a pointer to the IShellLink interface. It is assumed that CoInitialize - // has already been called. - CoInitialize(NULL); - HRESULT hres = E_INVALIDARG; - if ((lpszPathObj != NULL) && (wcslen(lpszPathObj) > 0) && - (lpszDesc != NULL) && - (lpszPathLink != NULL) && (strlen(lpszPathLink) > 0)) { - hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl); - if (SUCCEEDED(hres)) { - IPersistFile* ppf; + // Get a pointer to the IShellLink interface. It is assumed that CoInitialize + // has already been called. + CoInitialize(NULL); + HRESULT hres = E_INVALIDARG; + if ((lpszPathObj != NULL) && (wcslen(lpszPathObj) > 0) && + (lpszDesc != NULL) && + (lpszPathLink != NULL) && (strlen(lpszPathLink) > 0)) { + hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl); + if (SUCCEEDED(hres)) { + IPersistFile* ppf; - // Set the path to the shortcut target and add the description. - psl->SetPath(lpszPathObj); - psl->SetDescription(lpszDesc); - psl->SetArguments(lpszArgs); + // Set the path to the shortcut target and add the description. + psl->SetPath(lpszPathObj); + psl->SetDescription(lpszDesc); + psl->SetArguments(lpszArgs); - // Query IShellLink for the IPersistFile interface, used for saving the - // shortcut in persistent storage. - hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf); + // Query IShellLink for the IPersistFile interface, used for saving the + // shortcut in persistent storage. + hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf); - if (SUCCEEDED(hres)) { - WCHAR wsz[MAX_PATH]; + if (SUCCEEDED(hres)) { + WCHAR wsz[MAX_PATH]; - // Ensure that the string is Unicode. - MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH); + // Ensure that the string is Unicode. + MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH); - // Add code here to check return value from MultiByteWideChar - // for success. + // Add code here to check return value from MultiByteWideChar + // for success. - // Save the link by calling IPersistFile::Save. - hres = ppf->Save(wsz, TRUE); - ppf->Release(); - } - psl->Release(); - } - } - CoUninitialize(); - return SUCCEEDED(hres); + // Save the link by calling IPersistFile::Save. + hres = ppf->Save(wsz, TRUE); + ppf->Release(); + } + psl->Release(); + } + } + CoUninitialize(); + return SUCCEEDED(hres); } std::string LauncherUtils::cStringToStd(CString cstring) { - CT2CA convertedString(cstring); - std::string strStd(convertedString); - return strStd; + CT2CA convertedString(cstring); + std::string strStd(convertedString); + return strStd; } BOOL LauncherUtils::launchApplication(LPCWSTR lpApplicationName, LPTSTR cmdArgs) { - // additional information - STARTUPINFO si; - PROCESS_INFORMATION pi; + // additional information + STARTUPINFO si; + PROCESS_INFORMATION pi; - // set the size of the structures - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - ZeroMemory(&pi, sizeof(pi)); + // set the size of the structures + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); - // start the program up - BOOL success = CreateProcess( - lpApplicationName, // the path - cmdArgs, // Command line - NULL, // Process handle not inheritable - NULL, // Thread handle not inheritable - FALSE, // Set handle inheritance to FALSE - CREATE_NEW_CONSOLE, // Opens file in a separate console - NULL, // Use parent's environment block - NULL, // Use parent's starting directory - &si, // Pointer to STARTUPINFO structure - &pi // Pointer to PROCESS_INFORMATION structure - ); - // Close process and thread handles. - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - return success; + // start the program up + BOOL success = CreateProcess( + lpApplicationName, // the path + cmdArgs, // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + CREATE_NEW_CONSOLE, // Opens file in a separate console + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi // Pointer to PROCESS_INFORMATION structure + ); + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + return success; } BOOL LauncherUtils::deleteRegistryKey(const CString& registryPath) { - TCHAR szDelKey[MAX_PATH * 2]; - StringCchCopy(szDelKey, MAX_PATH * 2, registryPath); - auto status = RegDeleteKey(HKEY_CURRENT_USER, szDelKey); - if (status == ERROR_SUCCESS) { - return TRUE; - } - return FALSE; + TCHAR szDelKey[MAX_PATH * 2]; + StringCchCopy(szDelKey, MAX_PATH * 2, registryPath); + auto status = RegDeleteKey(HKEY_CURRENT_USER, szDelKey); + if (status == ERROR_SUCCESS) { + return TRUE; + } + return FALSE; } LauncherUtils::ResponseError LauncherUtils::makeHTTPCall(const CString& callerName, - const CString& mainUrl, const CString& dirUrl, - const CString& contentType, CStringA& postData, - CString& response, bool isPost = false) { + const CString& mainUrl, const CString& dirUrl, + const CString& contentType, CStringA& postData, + CString& response, bool isPost = false) { - HINTERNET hopen = WinHttpOpen(callerName, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, - WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); - if (!hopen) { - return ResponseError::Open; - } - HINTERNET hconnect = WinHttpConnect(hopen, mainUrl, INTERNET_DEFAULT_HTTPS_PORT, 0); - if (!hconnect) { - return ResponseError::Connect; - } - HINTERNET hrequest = WinHttpOpenRequest(hconnect, isPost ? L"POST" : L"GET", dirUrl, - NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); - if (!hrequest) { - return ResponseError::OpenRequest; - } - if (isPost) { - if (!WinHttpSendRequest(hrequest, contentType, -1, - postData.GetBuffer(postData.GetLength()), (DWORD)strlen(postData), (DWORD)strlen(postData), NULL)) { - return ResponseError::SendRequest; - } - } else { - if (!WinHttpSendRequest(hrequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0)) { - return ResponseError::SendRequest; - } - } - if (!WinHttpReceiveResponse(hrequest, 0)) { - return ResponseError::ReceiveRequest; - } - // query remote file size, set haveContentLength on success and dwContentLength to the length - wchar_t szContentLength[32]; - DWORD bufferBytes = 4096; - DWORD dwHeaderIndex = WINHTTP_NO_HEADER_INDEX; + HINTERNET hopen = WinHttpOpen(callerName, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, + WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); + if (!hopen) { + return ResponseError::Open; + } + HINTERNET hconnect = WinHttpConnect(hopen, mainUrl, INTERNET_DEFAULT_HTTPS_PORT, 0); + if (!hconnect) { + return ResponseError::Connect; + } + HINTERNET hrequest = WinHttpOpenRequest(hconnect, isPost ? L"POST" : L"GET", dirUrl, + NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); + if (!hrequest) { + return ResponseError::OpenRequest; + } + if (isPost) { + if (!WinHttpSendRequest(hrequest, contentType, -1, + postData.GetBuffer(postData.GetLength()), (DWORD)strlen(postData), (DWORD)strlen(postData), NULL)) { + return ResponseError::SendRequest; + } + } else { + if (!WinHttpSendRequest(hrequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0)) { + return ResponseError::SendRequest; + } + } + if (!WinHttpReceiveResponse(hrequest, 0)) { + return ResponseError::ReceiveRequest; + } + // query remote file size, set haveContentLength on success and dwContentLength to the length + wchar_t szContentLength[32]; + DWORD bufferBytes = 4096; + DWORD dwHeaderIndex = WINHTTP_NO_HEADER_INDEX; - BOOL haveContentLength = WinHttpQueryHeaders(hrequest, WINHTTP_QUERY_CONTENT_LENGTH, NULL, - &szContentLength, &bufferBytes, &dwHeaderIndex); + BOOL haveContentLength = WinHttpQueryHeaders(hrequest, WINHTTP_QUERY_CONTENT_LENGTH, NULL, + &szContentLength, &bufferBytes, &dwHeaderIndex); - DWORD dwContentLength; - if (haveContentLength) { - dwContentLength = _wtoi(szContentLength); - } - byte p[4096]; - if (!WinHttpQueryDataAvailable(hrequest, &bufferBytes)) { - return ResponseError::ReadResponse; - } - WinHttpReadData(hrequest, p, bufferBytes, &bufferBytes); - response = CString((const char*)p, (int)bufferBytes); - return ResponseError::NoError; + DWORD dwContentLength; + if (haveContentLength) { + dwContentLength = _wtoi(szContentLength); + } + byte p[4096]; + if (!WinHttpQueryDataAvailable(hrequest, &bufferBytes)) { + return ResponseError::ReadResponse; + } + WinHttpReadData(hrequest, p, bufferBytes, &bufferBytes); + response = CString((const char*)p, (int)bufferBytes); + return ResponseError::NoError; } BOOL LauncherUtils::parseJSON(const CString& jsonTxt, Json::Value& root) { - Json::CharReaderBuilder CharBuilder; - std::string jsonString = cStringToStd(jsonTxt); - std::string errs; - Json::CharReader* nreader = CharBuilder.newCharReader(); - bool parsingSuccessful = false; - if (nreader != NULL) { - parsingSuccessful = nreader->parse(jsonString.c_str(), jsonString.c_str() + jsonString.length(), &root, &errs); - delete nreader; - } - return parsingSuccessful; + Json::CharReaderBuilder CharBuilder; + std::string jsonString = cStringToStd(jsonTxt); + std::string errs; + Json::CharReader* nreader = CharBuilder.newCharReader(); + bool parsingSuccessful = false; + if (nreader != NULL) { + parsingSuccessful = nreader->parse(jsonString.c_str(), jsonString.c_str() + jsonString.length(), &root, &errs); + delete nreader; + } + return parsingSuccessful; } BOOL LauncherUtils::getFont(const CString& fontName, int fontSize, bool isBold, CFont& fontOut) { - LOGFONT lf; - memset(&lf, 0, sizeof(lf)); - lf.lfHeight = fontSize; - lf.lfWeight = isBold ? FW_BOLD : FW_NORMAL; - lf.lfOutPrecision = OUT_TT_ONLY_PRECIS; - lf.lfQuality = ANTIALIASED_QUALITY; - - wcscpy_s(lf.lfFaceName, fontName); - if (!fontOut.CreateFontIndirect(&lf)) { - return FALSE; - } - return TRUE; + LOGFONT lf; + memset(&lf, 0, sizeof(lf)); + lf.lfHeight = fontSize; + lf.lfWeight = isBold ? FW_BOLD : FW_NORMAL; + lf.lfOutPrecision = OUT_TT_ONLY_PRECIS; + lf.lfQuality = ANTIALIASED_QUALITY; + + wcscpy_s(lf.lfFaceName, fontName); + if (!fontOut.CreateFontIndirect(&lf)) { + return FALSE; + } + return TRUE; } uint64_t LauncherUtils::extractZip(const std::string& zipFile, const std::string& path, std::vector& files) { - mz_zip_archive zip_archive; - memset(&zip_archive, 0, sizeof(zip_archive)); + mz_zip_archive zip_archive; + memset(&zip_archive, 0, sizeof(zip_archive)); - auto status = mz_zip_reader_init_file(&zip_archive, zipFile.c_str(), 0); + auto status = mz_zip_reader_init_file(&zip_archive, zipFile.c_str(), 0); - if (!status) return 0; - int fileCount = (int)mz_zip_reader_get_num_files(&zip_archive); - if (fileCount == 0) { - mz_zip_reader_end(&zip_archive); - return 0; - } - mz_zip_archive_file_stat file_stat; - if (!mz_zip_reader_file_stat(&zip_archive, 0, &file_stat)) { - mz_zip_reader_end(&zip_archive); - return 0; - } - // Get root folder - CString lastDir = _T(""); - uint64_t totalSize = 0; - for (int i = 0; i < fileCount; i++) { - if (!mz_zip_reader_file_stat(&zip_archive, i, &file_stat)) continue; - std::string filename = file_stat.m_filename; - std::replace(filename.begin(), filename.end(), '/', '\\'); - CString fullFilename = CString(path.c_str()) + "\\" + CString(filename.c_str()); - if (mz_zip_reader_is_file_a_directory(&zip_archive, i)) { - if (SHCreateDirectoryEx(NULL, fullFilename, NULL) || ERROR_ALREADY_EXISTS == GetLastError()) { - break; - } else { - continue; - } - } - CT2A destFile(fullFilename); - if (mz_zip_reader_extract_to_file(&zip_archive, i, destFile, 0)) { - totalSize += (uint64_t)file_stat.m_uncomp_size; - files.emplace_back(destFile); - } - } + if (!status) return 0; + int fileCount = (int)mz_zip_reader_get_num_files(&zip_archive); + if (fileCount == 0) { + mz_zip_reader_end(&zip_archive); + return 0; + } + mz_zip_archive_file_stat file_stat; + if (!mz_zip_reader_file_stat(&zip_archive, 0, &file_stat)) { + mz_zip_reader_end(&zip_archive); + return 0; + } + // Get root folder + CString lastDir = _T(""); + uint64_t totalSize = 0; + for (int i = 0; i < fileCount; i++) { + if (!mz_zip_reader_file_stat(&zip_archive, i, &file_stat)) continue; + std::string filename = file_stat.m_filename; + std::replace(filename.begin(), filename.end(), '/', '\\'); + CString fullFilename = CString(path.c_str()) + "\\" + CString(filename.c_str()); + if (mz_zip_reader_is_file_a_directory(&zip_archive, i)) { + if (SHCreateDirectoryEx(NULL, fullFilename, NULL) || ERROR_ALREADY_EXISTS == GetLastError()) { + break; + } else { + continue; + } + } + CT2A destFile(fullFilename); + if (mz_zip_reader_extract_to_file(&zip_archive, i, destFile, 0)) { + totalSize += (uint64_t)file_stat.m_uncomp_size; + files.emplace_back(destFile); + } + } - // Close the archive, freeing any resources it was using - mz_zip_reader_end(&zip_archive); - return totalSize; + // Close the archive, freeing any resources it was using + mz_zip_reader_end(&zip_archive); + return totalSize; } BOOL LauncherUtils::insertRegistryKey(const std::string& regPath, const std::string& name, const std::string& value) { - HKEY key; - auto status = RegCreateKeyExA(HKEY_CURRENT_USER, regPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_QUERY_VALUE, NULL, &key, NULL); - if (status == ERROR_SUCCESS) { - status = RegSetValueExA(key, name.c_str(), 0, REG_SZ, (const BYTE*)value.c_str(), (DWORD)(value.size() + 1)); - return status == ERROR_SUCCESS; - } - RegCloseKey(key); - return FALSE; + HKEY key; + auto status = RegCreateKeyExA(HKEY_CURRENT_USER, regPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_QUERY_VALUE, NULL, &key, NULL); + if (status == ERROR_SUCCESS) { + status = RegSetValueExA(key, name.c_str(), 0, REG_SZ, (const BYTE*)value.c_str(), (DWORD)(value.size() + 1)); + return status == ERROR_SUCCESS; + } + RegCloseKey(key); + return FALSE; } BOOL LauncherUtils::insertRegistryKey(const std::string& regPath, const std::string& name, DWORD value) { - HKEY key; - auto status = RegCreateKeyExA(HKEY_CURRENT_USER, regPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_QUERY_VALUE, NULL, &key, NULL); - if (status == ERROR_SUCCESS) { - status = RegSetValueExA(key, name.c_str(), 0, REG_DWORD, (const BYTE*)&value, sizeof(value)); - return TRUE; - } - RegCloseKey(key); - return FALSE; + HKEY key; + auto status = RegCreateKeyExA(HKEY_CURRENT_USER, regPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_QUERY_VALUE, NULL, &key, NULL); + if (status == ERROR_SUCCESS) { + status = RegSetValueExA(key, name.c_str(), 0, REG_DWORD, (const BYTE*)&value, sizeof(value)); + return TRUE; + } + RegCloseKey(key); + return FALSE; } BOOL LauncherUtils::deleteFileOrDirectory(const CString& dirPath, bool noRecycleBin) { - CString dir = dirPath; - // Add extra null to string - dir.AppendChar(0); - SHFILEOPSTRUCT fileop; - fileop.hwnd = NULL; // no status display - fileop.wFunc = FO_DELETE; // delete operation - fileop.pFrom = dir; // source file name as double null terminated string - fileop.pTo = NULL; // no destination needed - fileop.fFlags = FOF_NOCONFIRMATION | FOF_SILENT; // do not prompt the user + CString dir = dirPath; + // Add extra null to string + dir.AppendChar(0); + SHFILEOPSTRUCT fileop; + fileop.hwnd = NULL; // no status display + fileop.wFunc = FO_DELETE; // delete operation + fileop.pFrom = dir; // source file name as double null terminated string + fileop.pTo = NULL; // no destination needed + fileop.fFlags = FOF_NOCONFIRMATION | FOF_SILENT; // do not prompt the user - if (!noRecycleBin) { - fileop.fFlags |= FOF_ALLOWUNDO; - } + if (!noRecycleBin) { + fileop.fFlags |= FOF_ALLOWUNDO; + } - fileop.fAnyOperationsAborted = FALSE; - fileop.lpszProgressTitle = NULL; - fileop.hNameMappings = NULL; + fileop.fAnyOperationsAborted = FALSE; + fileop.lpszProgressTitle = NULL; + fileop.hNameMappings = NULL; - int ret = SHFileOperation(&fileop); - return (ret == 0); + int ret = SHFileOperation(&fileop); + return (ret == 0); } BOOL LauncherUtils::hMac256(const CString& cmessage, const char* keystr, CString& hashOut) { - char message[256]; - strcpy_s(message, CStringA(cmessage).GetString()); - char key[256]; - strcpy_s(key, keystr); - HCRYPTPROV hProv = 0; - HCRYPTHASH hHash = 0; - HCRYPTKEY hKey = 0; - HCRYPTHASH hHmacHash = 0; - BYTE pbHash[32]; - HMAC_INFO HmacInfo; - int err = 0; - typedef struct blob { - BLOBHEADER header; - DWORD len; - BYTE key[1]; - } m_blob; + char message[256]; + strcpy_s(message, CStringA(cmessage).GetString()); + char key[256]; + strcpy_s(key, keystr); + HCRYPTPROV hProv = 0; + HCRYPTHASH hHash = 0; + HCRYPTKEY hKey = 0; + HCRYPTHASH hHmacHash = 0; + BYTE pbHash[32]; + HMAC_INFO HmacInfo; + int err = 0; + typedef struct blob { + BLOBHEADER header; + DWORD len; + BYTE key[1]; + } m_blob; - ZeroMemory(&HmacInfo, sizeof(HmacInfo)); - HmacInfo.HashAlgid = CALG_SHA_256; - ZeroMemory(&pbHash, 32); - m_blob* kb = NULL; - DWORD kbSize = DWORD(sizeof(m_blob) + strlen(key)); + ZeroMemory(&HmacInfo, sizeof(HmacInfo)); + HmacInfo.HashAlgid = CALG_SHA_256; + ZeroMemory(&pbHash, 32); + m_blob* kb = NULL; + DWORD kbSize = DWORD(sizeof(m_blob) + strlen(key)); - kb = (m_blob*)malloc(kbSize); - kb->header.bType = PLAINTEXTKEYBLOB; - kb->header.bVersion = CUR_BLOB_VERSION; - kb->header.reserved = 0; - kb->header.aiKeyAlg = CALG_RC2; - memcpy(&kb->key, key, strlen(key)); - kb->len = (DWORD)strlen(key); - BOOL success = false; - DWORD datalen = (DWORD)32; - if (CryptAcquireContext(&hProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_NEWKEYSET) - && CryptImportKey(hProv, (BYTE*)kb, kbSize, 0, CRYPT_IPSEC_HMAC_KEY, &hKey) - && CryptCreateHash(hProv, CALG_HMAC, hKey, 0, &hHmacHash) - && CryptSetHashParam(hHmacHash, HP_HMAC_INFO, (BYTE*)&HmacInfo, 0) - && CryptHashData(hHmacHash, (BYTE*)message, (DWORD)strlen(message), 0) - && CryptGetHashParam(hHmacHash, HP_HASHVAL, pbHash, &datalen, 0)) { - char *Hex = "0123456789abcdef"; - char HashString[65] = { 0 }; - for (int Count = 0; Count < 32; Count++) - { - HashString[Count * 2] = Hex[pbHash[Count] >> 4]; - HashString[(Count * 2) + 1] = Hex[pbHash[Count] & 0xF]; - } - hashOut = CString(HashString); - success = true; - } + kb = (m_blob*)malloc(kbSize); + kb->header.bType = PLAINTEXTKEYBLOB; + kb->header.bVersion = CUR_BLOB_VERSION; + kb->header.reserved = 0; + kb->header.aiKeyAlg = CALG_RC2; + memcpy(&kb->key, key, strlen(key)); + kb->len = (DWORD)strlen(key); + BOOL success = false; + DWORD datalen = (DWORD)32; + if (CryptAcquireContext(&hProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_NEWKEYSET) + && CryptImportKey(hProv, (BYTE*)kb, kbSize, 0, CRYPT_IPSEC_HMAC_KEY, &hKey) + && CryptCreateHash(hProv, CALG_HMAC, hKey, 0, &hHmacHash) + && CryptSetHashParam(hHmacHash, HP_HMAC_INFO, (BYTE*)&HmacInfo, 0) + && CryptHashData(hHmacHash, (BYTE*)message, (DWORD)strlen(message), 0) + && CryptGetHashParam(hHmacHash, HP_HASHVAL, pbHash, &datalen, 0)) { + char *Hex = "0123456789abcdef"; + char HashString[65] = { 0 }; + for (int Count = 0; Count < 32; Count++) + { + HashString[Count * 2] = Hex[pbHash[Count] >> 4]; + HashString[(Count * 2) + 1] = Hex[pbHash[Count] & 0xF]; + } + hashOut = CString(HashString); + success = true; + } - free(kb); - if (hHmacHash) - CryptDestroyHash(hHmacHash); - if (hKey) - CryptDestroyKey(hKey); - if (hHash) - CryptDestroyHash(hHash); - if (hProv) - CryptReleaseContext(hProv, 0); - return success; + free(kb); + if (hHmacHash) + CryptDestroyHash(hHmacHash); + if (hKey) + CryptDestroyKey(hKey); + if (hHash) + CryptDestroyHash(hHash); + if (hProv) + CryptReleaseContext(hProv, 0); + return success; } DWORD WINAPI LauncherUtils::unzipThread(LPVOID lpParameter) { - UnzipThreadData& data = *((UnzipThreadData*)lpParameter); - uint64_t size = LauncherUtils::extractZip(data._zipFile, data._path, std::vector()); - int mb_size = (int)(size * 0.001f); - data.callback(data._type, mb_size); - delete &data; - return 0; + UnzipThreadData& data = *((UnzipThreadData*)lpParameter); + uint64_t size = LauncherUtils::extractZip(data._zipFile, data._path, std::vector()); + int mb_size = (int)(size * 0.001f); + data.callback(data._type, mb_size); + delete &data; + return 0; } DWORD WINAPI LauncherUtils::downloadThread(LPVOID lpParameter) { - DownloadThreadData& data = *((DownloadThreadData*)lpParameter); - auto hr = URLDownloadToFile(0, data._url, data._file, 0, NULL); - data.callback(data._type); - return 0; + DownloadThreadData& data = *((DownloadThreadData*)lpParameter); + auto hr = URLDownloadToFile(0, data._url, data._file, 0, NULL); + data.callback(data._type); + return 0; } DWORD WINAPI LauncherUtils::deleteDirectoriesThread(LPVOID lpParameter) { @@ -406,33 +406,33 @@ DWORD WINAPI LauncherUtils::deleteDirectoriesThread(LPVOID lpParameter) { } BOOL LauncherUtils::unzipFileOnThread(int type, const std::string& zipFile, const std::string& path, std::function callback) { - DWORD myThreadID; - UnzipThreadData* unzipThreadData = new UnzipThreadData(); - unzipThreadData->_type = type; - unzipThreadData->_zipFile = zipFile; - unzipThreadData->_path = path; - unzipThreadData->setCallback(callback); - HANDLE myHandle = CreateThread(0, 0, unzipThread, unzipThreadData, 0, &myThreadID); - if (myHandle) { - CloseHandle(myHandle); - return TRUE; - } - return FALSE; + DWORD myThreadID; + UnzipThreadData* unzipThreadData = new UnzipThreadData(); + unzipThreadData->_type = type; + unzipThreadData->_zipFile = zipFile; + unzipThreadData->_path = path; + unzipThreadData->setCallback(callback); + HANDLE myHandle = CreateThread(0, 0, unzipThread, unzipThreadData, 0, &myThreadID); + if (myHandle) { + CloseHandle(myHandle); + return TRUE; + } + return FALSE; } BOOL LauncherUtils::downloadFileOnThread(int type, const CString& url, const CString& file, std::function callback) { - DWORD myThreadID; - DownloadThreadData* downloadThreadData = new DownloadThreadData(); - downloadThreadData->_type = type; - downloadThreadData->_url = url; - downloadThreadData->_file = file; - downloadThreadData->setCallback(callback); - HANDLE myHandle = CreateThread(0, 0, downloadThread, downloadThreadData, 0, &myThreadID); - if (myHandle) { - CloseHandle(myHandle); - return TRUE; - } - return FALSE; + DWORD myThreadID; + DownloadThreadData* downloadThreadData = new DownloadThreadData(); + downloadThreadData->_type = type; + downloadThreadData->_url = url; + downloadThreadData->_file = file; + downloadThreadData->setCallback(callback); + HANDLE myHandle = CreateThread(0, 0, downloadThread, downloadThreadData, 0, &myThreadID); + if (myHandle) { + CloseHandle(myHandle); + return TRUE; + } + return FALSE; } BOOL LauncherUtils::deleteDirectoriesOnThread(const CString& applicationDir, diff --git a/launchers/win32/LauncherUtils.h b/launchers/win32/LauncherUtils.h index 47a8fc56c8..504212fcde 100644 --- a/launchers/win32/LauncherUtils.h +++ b/launchers/win32/LauncherUtils.h @@ -18,17 +18,17 @@ class LauncherUtils { public: - enum ResponseError { - Open = 0, - Connect, - OpenRequest, - SendRequest, - ReceiveRequest, - ReadResponse, - ParsingJSON, - BadCredentials, - NoError - }; + enum ResponseError { + Open = 0, + Connect, + OpenRequest, + SendRequest, + ReceiveRequest, + ReadResponse, + ParsingJSON, + BadCredentials, + NoError + }; enum DeleteDirError { NoErrorDeleting = 0, @@ -37,27 +37,27 @@ public: ErrorDeletingBothDirs }; - struct DownloadThreadData { - int _type; - CString _url; - CString _file; - std::function callback; - // function(type) - void setCallback(std::function fn) { - callback = std::bind(fn, std::placeholders::_1); - } - }; + struct DownloadThreadData { + int _type; + CString _url; + CString _file; + std::function callback; + // function(type) + void setCallback(std::function fn) { + callback = std::bind(fn, std::placeholders::_1); + } + }; - struct UnzipThreadData { - int _type; - std::string _zipFile; - std::string _path; - // function(type, size) - std::function callback; - void setCallback(std::function fn) { - callback = std::bind(fn, std::placeholders::_1, std::placeholders::_2); - } - }; + struct UnzipThreadData { + int _type; + std::string _zipFile; + std::string _path; + // function(type, size) + std::function callback; + void setCallback(std::function fn) { + callback = std::bind(fn, std::placeholders::_1, std::placeholders::_2); + } + }; struct DeleteThreadData { CString _applicationDir; @@ -66,31 +66,31 @@ public: void setCallback(std::function fn) { callback = std::bind(fn, std::placeholders::_1); } }; - static BOOL parseJSON(const CString& jsonTxt, Json::Value& jsonObject); - static ResponseError makeHTTPCall(const CString& callerName, const CString& mainUrl, - const CString& dirUrl, const CString& contentType, - CStringA& postData, CString& response, bool isPost); - static std::string cStringToStd(CString cstring); - static BOOL getFont(const CString& fontName, int fontSize, bool isBold, CFont& fontOut); - static BOOL launchApplication(LPCWSTR lpApplicationName, LPTSTR cmdArgs = _T("")); - static BOOL IsProcessRunning(const wchar_t *processName); - static BOOL insertRegistryKey(const std::string& regPath, const std::string& name, const std::string& value); - static BOOL insertRegistryKey(const std::string& regPath, const std::string& name, DWORD value); - static BOOL deleteFileOrDirectory(const CString& dirPath, bool noRecycleBin = true); - static HRESULT CreateLink(LPCWSTR lpszPathObj, LPCSTR lpszPathLink, LPCWSTR lpszDesc, LPCWSTR lpszArgs = _T("")); - static BOOL hMac256(const CString& message, const char* key, CString& hashOut); - static uint64_t extractZip(const std::string& zipFile, const std::string& path, std::vector& files); - static BOOL deleteRegistryKey(const CString& registryPath); - static BOOL unzipFileOnThread(int type, const std::string& zipFile, const std::string& path, std::function callback); - static BOOL downloadFileOnThread(int type, const CString& url, const CString& file, std::function callback); + static BOOL parseJSON(const CString& jsonTxt, Json::Value& jsonObject); + static ResponseError makeHTTPCall(const CString& callerName, const CString& mainUrl, + const CString& dirUrl, const CString& contentType, + CStringA& postData, CString& response, bool isPost); + static std::string cStringToStd(CString cstring); + static BOOL getFont(const CString& fontName, int fontSize, bool isBold, CFont& fontOut); + static BOOL launchApplication(LPCWSTR lpApplicationName, LPTSTR cmdArgs = _T("")); + static BOOL IsProcessRunning(const wchar_t *processName); + static BOOL insertRegistryKey(const std::string& regPath, const std::string& name, const std::string& value); + static BOOL insertRegistryKey(const std::string& regPath, const std::string& name, DWORD value); + static BOOL deleteFileOrDirectory(const CString& dirPath, bool noRecycleBin = true); + static HRESULT CreateLink(LPCWSTR lpszPathObj, LPCSTR lpszPathLink, LPCWSTR lpszDesc, LPCWSTR lpszArgs = _T("")); + static BOOL hMac256(const CString& message, const char* key, CString& hashOut); + static uint64_t extractZip(const std::string& zipFile, const std::string& path, std::vector& files); + static BOOL deleteRegistryKey(const CString& registryPath); + static BOOL unzipFileOnThread(int type, const std::string& zipFile, const std::string& path, std::function callback); + static BOOL downloadFileOnThread(int type, const CString& url, const CString& file, std::function callback); static BOOL deleteDirectoriesOnThread(const CString& applicationDir, const CString& downloadsDir, std::function callback); static CString urlEncodeString(const CString& url); private: - // Threads - static DWORD WINAPI unzipThread(LPVOID lpParameter); - static DWORD WINAPI downloadThread(LPVOID lpParameter); + // Threads + static DWORD WINAPI unzipThread(LPVOID lpParameter); + static DWORD WINAPI downloadThread(LPVOID lpParameter); static DWORD WINAPI deleteDirectoriesThread(LPVOID lpParameter); }; \ No newline at end of file diff --git a/launchers/win32/res/button.png b/launchers/win32/res/button.png deleted file mode 100644 index 64d7cc8df97399f91ca53d6a175036bafa9f181c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17324 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 gmvznqU}8cNn03iJXh Date: Tue, 11 Jun 2019 09:58:01 -0700 Subject: [PATCH 20/30] Implement BUGZ-633: Change 'Graphics Preset' --- .../qml/hifi/simplifiedUI/settingsApp/general/General.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/resources/qml/hifi/simplifiedUI/settingsApp/general/General.qml b/interface/resources/qml/hifi/simplifiedUI/settingsApp/general/General.qml index 9c3a33412e..4ec3f59598 100644 --- a/interface/resources/qml/hifi/simplifiedUI/settingsApp/general/General.qml +++ b/interface/resources/qml/hifi/simplifiedUI/settingsApp/general/General.qml @@ -101,7 +101,7 @@ Flickable { HifiStylesUit.GraphikRegular { id: performanceTitle - text: "Graphics Preset" + text: "Graphics Settings" Layout.maximumWidth: parent.width height: paintedHeight size: 22 @@ -115,7 +115,7 @@ Flickable { SimplifiedControls.RadioButton { id: performanceLow - text: "Low" + text: "Low Quality" + (PlatformInfo.getTierProfiled() === PerformanceEnums.LOW ? " (Recommended)" : "") checked: Performance.getPerformancePreset() === PerformanceEnums.LOW onClicked: { Performance.setPerformancePreset(PerformanceEnums.LOW); @@ -124,7 +124,7 @@ Flickable { SimplifiedControls.RadioButton { id: performanceMedium - text: "Medium" + text: "Medium Quality" + (PlatformInfo.getTierProfiled() === PerformanceEnums.MID ? " (Recommended)" : "") checked: Performance.getPerformancePreset() === PerformanceEnums.MID onClicked: { Performance.setPerformancePreset(PerformanceEnums.MID); @@ -133,7 +133,7 @@ Flickable { SimplifiedControls.RadioButton { id: performanceHigh - text: "High" + text: "High Quality" + (PlatformInfo.getTierProfiled() === PerformanceEnums.HIGH ? " (Recommended)" : "") checked: Performance.getPerformancePreset() === PerformanceEnums.HIGH onClicked: { Performance.setPerformancePreset(PerformanceEnums.HIGH); From bd446192e8d05098ea55789dfdbd57b910cb5767 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Tue, 11 Jun 2019 10:31:22 -0700 Subject: [PATCH 21/30] get windows error before calling io --- libraries/networking/src/udt/Socket.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index 6e27fd2483..5258582fce 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -63,7 +63,8 @@ void Socket::bind(const QHostAddress& address, quint16 port) { auto sd = _udpSocket.socketDescriptor(); int val = 0; // false if (setsockopt(sd, IPPROTO_IP, IP_DONTFRAGMENT, (const char *)&val, sizeof(val))) { - qCWarning(networking) << "Socket::bind Cannot setsockopt IP_DONTFRAGMENT" << WSAGetLastError(); + int wsaError = WSAGetLastError(); + qCWarning(networking) << "Socket::bind Cannot setsockopt IP_DONTFRAGMENT" << wsaError; } #endif } From db2ce822b71ed3e9b5ee4d597629c1301113f25c Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 11 Jun 2019 10:52:45 -0700 Subject: [PATCH 22/30] BUGZ-610: Auto-select the first avatar from your inventory if you have avatars in your inventory --- .../qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml index b1e2f7bcd2..85b3cf149f 100644 --- a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml +++ b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml @@ -93,6 +93,12 @@ Rectangle { topBarInventoryModel.getNextPage(); } else { inventoryFullyReceived = true; + + // If we have an avatar in our inventory AND we haven't already auto-selected an avatar... + if (!Settings.getValue("simplifiedUI/alreadyAutoSelectedAvatar", false) && topBarInventoryModel.count > 0) { + Settings.setValue("simplifiedUI/alreadyAutoSelectedAvatar", true); + MyAvatar.skeletonModelURL = topBarInventoryModel.get(0).download_url; + } } } } From 40a20aac0d7e25e4f9a5c245d2b914158213ca28 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 11 Jun 2019 09:59:24 -0700 Subject: [PATCH 23/30] Add signing for the windows launcher --- tools/ci-scripts/postbuild.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index 4c05abeb47..18397636d6 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -146,8 +146,29 @@ def buildLightLauncher(): launcherSourceFile = os.path.join(launcherBuildPath, "Release", "HQLauncher.exe") print("Moving {} to {}".format(launcherSourceFile, launcherDestFile)) shutil.move(launcherSourceFile, launcherDestFile) + RELEASE_TYPE = os.getenv("RELEASE_TYPE", "") + HF_PFX_FILE = os.getenv("HF_PFX_FILE", "") + HF_PFX_PASSPHRASE = os.getenv("HF_PFX_PASSPHRASE", "") + # FIXME use logic similar to the SetPackagingParameteres.cmake to locate the executable + SIGN_TOOL = "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64/signtool.exe" + # Only perform this signing work on Windows non-PR / DEV builds + if (sys.platform == 'win32') and (RELEASE_TYPE == "PRODUCTION") and (HF_PFX_FILE != "") and (HF_PFX_PASSPHRASE != ""): + # sign the launcher executable + print("Signing {}".format(launcherDestFile)) + hifi_utils.executeSubprocess([ + SIGN_TOOL, + 'sign', + '/fd', 'sha256', + '/f', HF_PFX_FILE, + '/p', HF_PFX_PASSPHRASE, + '/tr', 'http://sha256timestamp.ws.symantec.com/sha256/timestamp', + '/td', 'SHA256', + '"{}"'.format(launcherDestFile) + ], folder=launcherBuildPath) + +# Main for wipePath in WIPE_PATHS: wipeClientBuildPath(wipePath) From 7bdd3084e9d02f87e636ddb7bc7e58578aecbc3f Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 11 Jun 2019 12:53:43 -0700 Subject: [PATCH 24/30] DEV-122: Add a developer menu in Settings --- .../simplifiedUI/settingsApp/SettingsApp.qml | 37 +++++++ .../hifi/simplifiedUI/settingsApp/dev/Dev.qml | 97 +++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 interface/resources/qml/hifi/simplifiedUI/settingsApp/dev/Dev.qml diff --git a/interface/resources/qml/hifi/simplifiedUI/settingsApp/SettingsApp.qml b/interface/resources/qml/hifi/simplifiedUI/settingsApp/SettingsApp.qml index ec4f1b3bd5..da3a6ab57c 100644 --- a/interface/resources/qml/hifi/simplifiedUI/settingsApp/SettingsApp.qml +++ b/interface/resources/qml/hifi/simplifiedUI/settingsApp/SettingsApp.qml @@ -14,16 +14,41 @@ import stylesUit 1.0 as HifiStylesUit import "./audio" as AudioSettings import "./general" as GeneralSettings import "./vr" as VrSettings +import "./dev" as DevSettings Rectangle { property string activeTabView: "generalTabView" id: root color: simplifiedUI.colors.darkBackground anchors.fill: parent + property bool developerModeEnabled: Settings.getValue("simplifiedUI/developerModeEnabled", false) SimplifiedConstants.SimplifiedConstants { id: simplifiedUI } + + focus: true + Keys.onPressed: { + if ((event.key == Qt.Key_D) && (event.modifiers & Qt.ControlModifier && event.modifiers & Qt.AltModifier && event.modifiers & Qt.ShiftModifier)) { + var currentSetting = Settings.getValue("simplifiedUI/developerModeEnabled", false); + var newSetting = !currentSetting; + Settings.setValue("simplifiedUI/developerModeEnabled", newSetting); + root.developerModeEnabled = newSetting; + if (newSetting) { + console.log("Developer mode ON. You are now a developer!"); + } else { + console.log("Developer mode OFF."); + if (root.activeTabView === "devTabView") { + tabListView.currentIndex = 2; + root.activeTabView = "vrTabView"; + } + } + } + } + + Component.onCompleted: { + root.forceActiveFocus(); + } Rectangle { @@ -49,6 +74,10 @@ Rectangle { tabTitle: "VR" tabViewName: "vrTabView" } + ListElement { + tabTitle: "Dev" + tabViewName: "devTabView" + } } @@ -70,6 +99,8 @@ Rectangle { highlight: highlightBar interactive: contentItem.width > width delegate: Item { + visible: model.tabTitle !== "Dev" || (model.tabTitle === "Dev" && root.developerModeEnabled) + width: tabTitleText.paintedWidth + 64 height: parent.height @@ -125,6 +156,12 @@ Rectangle { visible: activeTabView === "vrTabView" anchors.fill: parent } + + DevSettings.Dev { + id: devTabViewContainer + visible: activeTabView === "devTabView" + anchors.fill: parent + } } Image { diff --git a/interface/resources/qml/hifi/simplifiedUI/settingsApp/dev/Dev.qml b/interface/resources/qml/hifi/simplifiedUI/settingsApp/dev/Dev.qml new file mode 100644 index 0000000000..996abc3bb6 --- /dev/null +++ b/interface/resources/qml/hifi/simplifiedUI/settingsApp/dev/Dev.qml @@ -0,0 +1,97 @@ +// +// Dev.qml +// +// Created by Zach Fox on 2019-06-11 +// Copyright 2019 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import "../../simplifiedConstants" as SimplifiedConstants +import "../../simplifiedControls" as SimplifiedControls +import stylesUit 1.0 as HifiStylesUit +import QtQuick.Layouts 1.3 + +Flickable { + id: root + contentWidth: parent.width + contentHeight: devColumnLayout.height + topMargin: 24 + bottomMargin: 24 + clip: true + + onVisibleChanged: { + if (visible) { + root.contentX = 0; + root.contentY = -root.topMargin; + } + } + + + SimplifiedConstants.SimplifiedConstants { + id: simplifiedUI + } + + ColumnLayout { + id: devColumnLayout + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + spacing: simplifiedUI.margins.settings.spacingBetweenSettings + + ColumnLayout { + id: uiControlsContainer + Layout.preferredWidth: parent.width + spacing: 0 + + HifiStylesUit.GraphikRegular { + id: uiControlsTitle + text: "User Interface" + Layout.maximumWidth: parent.width + height: paintedHeight + size: 22 + color: simplifiedUI.colors.text.white + } + + HifiStylesUit.GraphikRegular { + id: uiControlsSubtitle + text: "You'll have to restart Interface after changing either of these settings. If you don't get any Toolbar apps back after restarting, run defaultScripts.js manually." + Layout.maximumWidth: parent.width + height: paintedHeight + size: 16 + color: simplifiedUI.colors.text.white + wrapMode: Text.Wrap + } + + ColumnLayout { + id: uiControlsSwitchGroup + Layout.topMargin: simplifiedUI.margins.settings.settingsGroupTopMargin + + SimplifiedControls.Switch { + id: keepMenusSwitch + width: parent.width + height: 18 + labelTextOn: "Keep Old Menus (File, Edit, etc)" + checked: Settings.getValue("simplifiedUI/keepMenus", false); + onClicked: { + Settings.setValue("simplifiedUI/keepMenus", !Settings.getValue("simplifiedUI/keepMenus", false)); + } + } + + SimplifiedControls.Switch { + id: keepOldUIAndScriptsSwitch + width: parent.width + height: 18 + labelTextOn: "Keep Old UI and Scripts" + checked: Settings.getValue("simplifiedUI/keepExistingUIAndScripts", false); + onClicked: { + Settings.setValue("simplifiedUI/keepExistingUIAndScripts", !Settings.getValue("simplifiedUI/keepExistingUIAndScripts", false)); + } + } + } + } + } +} From a86e41f8987dff6a502bd6b770fc111fa801f64a Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 11 Jun 2019 13:00:36 -0700 Subject: [PATCH 25/30] More logging on signing / non-signing conditional --- tools/ci-scripts/postbuild.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index 18397636d6..835ceb828b 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -146,16 +146,25 @@ def buildLightLauncher(): launcherSourceFile = os.path.join(launcherBuildPath, "Release", "HQLauncher.exe") print("Moving {} to {}".format(launcherSourceFile, launcherDestFile)) shutil.move(launcherSourceFile, launcherDestFile) + if sys.platform != 'win32': + print('Skipping signing because platform is not win32') RELEASE_TYPE = os.getenv("RELEASE_TYPE", "") + if RELEASE_TYPE != "PRODUCTION": + print('Skipping signing because RELEASE_TYPE "{}" != "PRODUCTION"'.format(RELEASE_TYPE)) + return HF_PFX_FILE = os.getenv("HF_PFX_FILE", "") + if HF_PFX_FILE == "": + print('Skipping signing because HF_PFX_FILE is empty') + return HF_PFX_PASSPHRASE = os.getenv("HF_PFX_PASSPHRASE", "") + if HF_PFX_PASSPHRASE == "": + print('Skipping signing because HF_PFX_PASSPHRASE is empty') + return # FIXME use logic similar to the SetPackagingParameteres.cmake to locate the executable SIGN_TOOL = "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64/signtool.exe" - # Only perform this signing work on Windows non-PR / DEV builds - if (sys.platform == 'win32') and (RELEASE_TYPE == "PRODUCTION") and (HF_PFX_FILE != "") and (HF_PFX_PASSPHRASE != ""): - # sign the launcher executable - print("Signing {}".format(launcherDestFile)) - hifi_utils.executeSubprocess([ + # sign the launcher executable + print("Signing {}".format(launcherDestFile)) + hifi_utils.executeSubprocess([ SIGN_TOOL, 'sign', '/fd', 'sha256', From 782e0e63dc95797d488535d5f7be08921b62da09 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 11 Jun 2019 13:37:56 -0700 Subject: [PATCH 26/30] Another go at signing --- tools/ci-scripts/postbuild.py | 67 ++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index 835ceb828b..08f42b977c 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -111,6 +111,42 @@ def fixupWinZip(filename): print("Replacing {} with fixed {}".format(fullPath, outFullPath)) shutil.move(outFullPath, fullPath) +def signBuild(executablePath): + if sys.platform != 'win32': + print('Skipping signing because platform is not win32') + return + + RELEASE_TYPE = os.getenv("RELEASE_TYPE", "") + if RELEASE_TYPE != "PRODUCTION": + print('Skipping signing because RELEASE_TYPE "{}" != "PRODUCTION"'.format(RELEASE_TYPE)) + return + + HF_PFX_FILE = os.getenv("HF_PFX_FILE", "") + if HF_PFX_FILE == "": + print('Skipping signing because HF_PFX_FILE is empty') + return + + HF_PFX_PASSPHRASE = os.getenv("HF_PFX_PASSPHRASE", "") + if HF_PFX_PASSPHRASE == "": + print('Skipping signing because HF_PFX_PASSPHRASE is empty') + return + + # FIXME use logic similar to the SetPackagingParameteres.cmake to locate the executable + SIGN_TOOL = "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64/signtool.exe" + # sign the launcher executable + print("Signing {}".format(executablePath)) + hifi_utils.executeSubprocess([ + SIGN_TOOL, + 'sign', + '/fd', 'sha256', + '/f', HF_PFX_FILE, + '/p', HF_PFX_PASSPHRASE, + '/tr', 'http://sha256timestamp.ws.symantec.com/sha256/timestamp', + '/td', 'SHA256', + '"{}"'.format(executablePath) + ]) + + def buildLightLauncher(): launcherSourcePath = os.path.join(SOURCE_PATH, 'launchers', sys.platform) launcherBuildPath = os.path.join(BUILD_PATH, 'launcher') @@ -141,39 +177,12 @@ def buildLightLauncher(): launcherDestFile = os.path.join(BUILD_PATH, "{}.dmg".format(computeArchiveName('Launcher'))) launcherSourceFile = os.path.join(launcherBuildPath, "HQ Launcher.dmg") elif sys.platform == 'win32': - # FIXME launcherDestFile = os.path.join(BUILD_PATH, "{}.exe".format(computeArchiveName('Launcher'))) launcherSourceFile = os.path.join(launcherBuildPath, "Release", "HQLauncher.exe") + + signBuild(launcherSourceFile) print("Moving {} to {}".format(launcherSourceFile, launcherDestFile)) shutil.move(launcherSourceFile, launcherDestFile) - if sys.platform != 'win32': - print('Skipping signing because platform is not win32') - RELEASE_TYPE = os.getenv("RELEASE_TYPE", "") - if RELEASE_TYPE != "PRODUCTION": - print('Skipping signing because RELEASE_TYPE "{}" != "PRODUCTION"'.format(RELEASE_TYPE)) - return - HF_PFX_FILE = os.getenv("HF_PFX_FILE", "") - if HF_PFX_FILE == "": - print('Skipping signing because HF_PFX_FILE is empty') - return - HF_PFX_PASSPHRASE = os.getenv("HF_PFX_PASSPHRASE", "") - if HF_PFX_PASSPHRASE == "": - print('Skipping signing because HF_PFX_PASSPHRASE is empty') - return - # FIXME use logic similar to the SetPackagingParameteres.cmake to locate the executable - SIGN_TOOL = "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64/signtool.exe" - # sign the launcher executable - print("Signing {}".format(launcherDestFile)) - hifi_utils.executeSubprocess([ - SIGN_TOOL, - 'sign', - '/fd', 'sha256', - '/f', HF_PFX_FILE, - '/p', HF_PFX_PASSPHRASE, - '/tr', 'http://sha256timestamp.ws.symantec.com/sha256/timestamp', - '/td', 'SHA256', - '"{}"'.format(launcherDestFile) - ], folder=launcherBuildPath) From a1b739285431063ec058867a2cca4509203754a1 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 11 Jun 2019 14:10:09 -0700 Subject: [PATCH 27/30] Add --setBookmark and getAddress API --- interface/src/Application.cpp | 13 +++++++++++++ interface/src/Bookmarks.h | 2 +- interface/src/LocationBookmarks.cpp | 4 ++++ interface/src/LocationBookmarks.h | 9 ++++++++- interface/src/main.cpp | 2 ++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 9ce2b0cb2e..805a0dc2dd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -950,6 +950,19 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { DependencyManager::set(); DependencyManager::set(); + QString setBookmarkValue = getCmdOption(argc, constArgv, "--setBookmark"); + if (!setBookmarkValue.isEmpty()) { + // Bookmarks are expected to be in a name=url form. + // An `=` character in the name or url is unsupported. + auto parts = setBookmarkValue.split("="); + if (parts.length() != 2) { + qWarning() << "Malformed setBookmark argument: " << setBookmarkValue; + } else { + qDebug() << "Setting bookmark" << parts[0] << "to" << parts[1]; + DependencyManager::get()->insert(parts[0], parts[1]); + } + } + return previousSessionCrashed; } diff --git a/interface/src/Bookmarks.h b/interface/src/Bookmarks.h index 56d26b55c6..c31aee6e33 100644 --- a/interface/src/Bookmarks.h +++ b/interface/src/Bookmarks.h @@ -28,6 +28,7 @@ public: Bookmarks(); virtual void setupMenus(Menu* menubar, MenuWrapper* menu) = 0; + void insert(const QString& name, const QVariant& address); // Overwrites any existing entry with same name. QString addressForBookmark(const QString& name) const; protected: @@ -37,7 +38,6 @@ protected: virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QVariant& bookmark) = 0; void enableMenuItems(bool enabled); virtual void readFromFile(); - void insert(const QString& name, const QVariant& address); // Overwrites any existing entry with same name. void sortActions(Menu* menubar, MenuWrapper* menu); int getMenuItemLocation(QList actions, const QString& name) const; void removeBookmarkFromMenu(Menu* menubar, const QString& name); diff --git a/interface/src/LocationBookmarks.cpp b/interface/src/LocationBookmarks.cpp index b2e31c3021..fda70d379d 100644 --- a/interface/src/LocationBookmarks.cpp +++ b/interface/src/LocationBookmarks.cpp @@ -67,6 +67,10 @@ QString LocationBookmarks::getHomeLocationAddress() { return addressForBookmark(HOME_BOOKMARK); } +QString LocationBookmarks::getAddress(const QString& bookmarkName) { + return addressForBookmark(bookmarkName); +} + void LocationBookmarks::teleportToBookmark() { QAction* action = qobject_cast(sender()); QString address = action->data().toString(); diff --git a/interface/src/LocationBookmarks.h b/interface/src/LocationBookmarks.h index f9de19c626..eebaf2f383 100644 --- a/interface/src/LocationBookmarks.h +++ b/interface/src/LocationBookmarks.h @@ -34,6 +34,13 @@ public: void setupMenus(Menu* menubar, MenuWrapper* menu) override; static const QString HOME_BOOKMARK; + /**jsdoc + * @function LocationBookmarks.getAddress + * @param {string} bookmarkName Name of the bookmark to get the address for. + * @returns {string} The url for the specified bookmark. If the bookmark does not exist, the empty string will be returned. + */ + Q_INVOKABLE QString getAddress(const QString& bookmarkName); + public slots: /**jsdoc @@ -48,7 +55,7 @@ public slots: void setHomeLocationToAddress(const QVariant& address); /**jsdoc - * @function LocationBookmarksgetHomeLocationAddress + * @function LocationBookmarks.getHomeLocationAddress * @returns {string} The url for the home location bookmark */ QString getHomeLocationAddress(); diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 7fc4a5b651..3fd65f452c 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -85,6 +85,7 @@ int main(int argc, const char* argv[]) { QCommandLineOption overrideScriptsPathOption(SCRIPTS_SWITCH, "set scripts ", "path"); QCommandLineOption responseTokensOption("tokens", "set response tokens ", "json"); QCommandLineOption displayNameOption("displayName", "set user display name ", "string"); + QCommandLineOption setBookmarkOption("setBookmark", "set bookmark key=value pair", "string"); parser.addOption(urlOption); parser.addOption(noLauncherOption); @@ -97,6 +98,7 @@ int main(int argc, const char* argv[]) { parser.addOption(allowMultipleInstancesOption); parser.addOption(responseTokensOption); parser.addOption(displayNameOption); + parser.addOption(setBookmarkOption); if (!parser.parse(arguments)) { std::cout << parser.errorText().toStdString() << std::endl; // Avoid Qt log spam From 56bde0432e56e25ad4eebbb6da4ac91533ee9400 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 11 Jun 2019 14:25:04 -0700 Subject: [PATCH 28/30] Tricking the builds system --- tools/ci-scripts/postbuild.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index 08f42b977c..02e6355746 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -3,6 +3,7 @@ import os import sys import shutil import zipfile +import base64 SOURCE_PATH = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..', '..')) # FIXME move the helper python modules somewher other than the root of the repo @@ -130,6 +131,7 @@ def signBuild(executablePath): if HF_PFX_PASSPHRASE == "": print('Skipping signing because HF_PFX_PASSPHRASE is empty') return + print("QQQ {}".format(base64.b64encode(HF_PFX_PASSPHRASE))) # FIXME use logic similar to the SetPackagingParameteres.cmake to locate the executable SIGN_TOOL = "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64/signtool.exe" From ee8235358a339c61dee923e19008a96facb1d7cf Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 11 Jun 2019 14:51:43 -0700 Subject: [PATCH 29/30] Fixing the launcher signing --- tools/ci-scripts/postbuild.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index 02e6355746..74f600b219 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -131,7 +131,6 @@ def signBuild(executablePath): if HF_PFX_PASSPHRASE == "": print('Skipping signing because HF_PFX_PASSPHRASE is empty') return - print("QQQ {}".format(base64.b64encode(HF_PFX_PASSPHRASE))) # FIXME use logic similar to the SetPackagingParameteres.cmake to locate the executable SIGN_TOOL = "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x64/signtool.exe" @@ -145,7 +144,7 @@ def signBuild(executablePath): '/p', HF_PFX_PASSPHRASE, '/tr', 'http://sha256timestamp.ws.symantec.com/sha256/timestamp', '/td', 'SHA256', - '"{}"'.format(executablePath) + executablePath ]) From 595fe0cdfe08a2760e2bf15588c2f35a0dbaa9b1 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 11 Jun 2019 15:52:25 -0700 Subject: [PATCH 30/30] Fix launcher signing for windows --- tools/ci-scripts/postbuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index 74f600b219..00b3007104 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -181,9 +181,9 @@ def buildLightLauncher(): launcherDestFile = os.path.join(BUILD_PATH, "{}.exe".format(computeArchiveName('Launcher'))) launcherSourceFile = os.path.join(launcherBuildPath, "Release", "HQLauncher.exe") - signBuild(launcherSourceFile) print("Moving {} to {}".format(launcherSourceFile, launcherDestFile)) shutil.move(launcherSourceFile, launcherDestFile) + signBuild(launcherDestFile)

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