mirror of
https://github.com/overte-org/overte.git
synced 2025-04-15 12:28:51 +02:00
Merge branch 'PAL_v2' of https://github.com/highfidelity/hifi into PAL_v2
This commit is contained in:
commit
6c88bc98b4
4 changed files with 198 additions and 46 deletions
|
@ -79,23 +79,22 @@ Item {
|
|||
}
|
||||
StateImage {
|
||||
id: infoHoverImage;
|
||||
visible: avatarImageMouseArea.containsMouse ? true : false;
|
||||
visible: false;
|
||||
imageURL: "../../images/info-icon-2-state.svg";
|
||||
size: 32;
|
||||
buttonState: 1;
|
||||
anchors.centerIn: parent;
|
||||
}
|
||||
MouseArea {
|
||||
id: avatarImageMouseArea;
|
||||
anchors.fill: parent
|
||||
enabled: selected || isMyCard;
|
||||
hoverEnabled: enabled
|
||||
onClicked: {
|
||||
/*
|
||||
THIS WILL OPEN THE BROWSER TO THE USER'S INFO PAGE!
|
||||
I've no idea how to do this yet..
|
||||
*/
|
||||
userInfoViewer.url = defaultBaseUrl + "/users/" + userName;
|
||||
userInfoViewer.visible = true;
|
||||
}
|
||||
onEntered: infoHoverImage.visible = true;
|
||||
onExited: infoHoverImage.visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -118,15 +117,15 @@ Item {
|
|||
id: myDisplayName
|
||||
visible: isMyCard
|
||||
// Size
|
||||
width: parent.width - avatarImage.width - anchors.leftMargin*2 - anchors.rightMargin;
|
||||
width: parent.width - avatarImage.width - anchors.leftMargin - anchors.rightMargin*2;
|
||||
height: 40
|
||||
// Anchors
|
||||
anchors.top: avatarImage.top
|
||||
anchors.left: avatarImage.right
|
||||
anchors.leftMargin: 5;
|
||||
anchors.leftMargin: avatarImage.visible ? 5 : 0;
|
||||
anchors.rightMargin: 5;
|
||||
// Style
|
||||
color: myDisplayNameMouseArea.containsMouse ? hifi.colors.lightGrayText : hifi.colors.textFieldLightBackground
|
||||
color: hifi.colors.textFieldLightBackground
|
||||
border.color: hifi.colors.blueHighlight
|
||||
border.width: 0
|
||||
TextInput {
|
||||
|
@ -167,7 +166,6 @@ Item {
|
|||
}
|
||||
}
|
||||
MouseArea {
|
||||
id: myDisplayNameMouseArea;
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
|
@ -184,6 +182,8 @@ Item {
|
|||
pal.currentlyEditingDisplayName = true
|
||||
myDisplayNameText.autoScroll = true;
|
||||
}
|
||||
onEntered: myDisplayName.color = hifi.colors.lightGrayText;
|
||||
onExited: myDisplayName.color = hifi.colors.textFieldLightBackground;
|
||||
}
|
||||
// Edit pencil glyph
|
||||
HiFiGlyphs {
|
||||
|
@ -204,13 +204,12 @@ Item {
|
|||
// DisplayName container for others' cards
|
||||
Item {
|
||||
id: displayNameContainer
|
||||
visible: !isMyCard
|
||||
visible: !isMyCard && pal.activeTab !== "connectionsTab"
|
||||
// Size
|
||||
width: parent.width - anchors.leftMargin - avatarImage.width - anchors.leftMargin;
|
||||
height: displayNameTextPixelSize + 4
|
||||
// Anchors
|
||||
anchors.top: pal.activeTab == "connectionsTab" ? undefined : avatarImage.top;
|
||||
anchors.bottom: pal.activeTab == "connectionsTab" ? avatarImage.bottom : undefined;
|
||||
anchors.top: avatarImage.top;
|
||||
anchors.left: avatarImage.right
|
||||
anchors.leftMargin: avatarImage.visible ? 5 : 0;
|
||||
// DisplayName Text for others' cards
|
||||
|
@ -229,14 +228,20 @@ Item {
|
|||
// Text Positioning
|
||||
verticalAlignment: Text.AlignTop
|
||||
// Style
|
||||
color: (pal.activeTab == "nearbyTab" && (displayNameTextMouseArea.containsMouse || userNameTextMouseArea.containsMouse))
|
||||
? hifi.colors.blueHighlight : (pal.activeTab == "nearbyTab" ? hifi.colors.darkGray : hifi.colors.greenShadow);
|
||||
color: hifi.colors.darkGray;
|
||||
MouseArea {
|
||||
id: displayNameTextMouseArea;
|
||||
anchors.fill: parent
|
||||
enabled: selected && pal.activeTab == "nearbyTab" && thisNameCard.userName !== "";
|
||||
hoverEnabled: enabled
|
||||
onClicked: pal.sendToScript({method: 'goToUser', params: thisNameCard.userName});
|
||||
onEntered: {
|
||||
displayNameText.color = hifi.colors.blueHighlight;
|
||||
userNameText.color = hifi.colors.blueHighlight;
|
||||
}
|
||||
onExited: {
|
||||
displayNameText.color = hifi.colors.darkGray
|
||||
userNameText.color = hifi.colors.greenShadow;
|
||||
}
|
||||
}
|
||||
}
|
||||
TextMetrics {
|
||||
|
@ -297,29 +302,36 @@ Item {
|
|||
FiraSansRegular {
|
||||
id: userNameText
|
||||
// Properties
|
||||
text: thisNameCard.userName
|
||||
text: thisNameCard.userName === "Unknown user" ? "not logged in" : thisNameCard.userName;
|
||||
elide: Text.ElideRight
|
||||
visible: thisNameCard.displayName
|
||||
visible: thisNameCard.userName !== "";
|
||||
// Size
|
||||
width: parent.width
|
||||
height: usernameTextPixelSize + 4
|
||||
height: pal.activeTab == "nearbyTab" || isMyCard ? usernameTextPixelSize + 4 : displayNameTextPixelSize + 4
|
||||
// Anchors
|
||||
anchors.top: isMyCard ? myDisplayName.bottom : undefined;
|
||||
anchors.bottom: isMyCard ? undefined : avatarImage.bottom
|
||||
anchors.bottom: !isMyCard ? avatarImage.bottom : undefined;
|
||||
anchors.left: avatarImage.right;
|
||||
anchors.leftMargin: avatarImage.visible ? 5 : 0;
|
||||
// Text Size
|
||||
size: usernameTextPixelSize;
|
||||
size: pal.activeTab == "nearbyTab" || isMyCard ? usernameTextPixelSize : displayNameTextPixelSize;
|
||||
// Text Positioning
|
||||
verticalAlignment: Text.AlignBottom
|
||||
// Style
|
||||
color: (pal.activeTab == "nearbyTab" && (displayNameTextMouseArea.containsMouse || userNameTextMouseArea.containsMouse)) ? hifi.colors.blueHighlight : hifi.colors.greenShadow;
|
||||
color: hifi.colors.greenShadow;
|
||||
MouseArea {
|
||||
id: userNameTextMouseArea;
|
||||
anchors.fill: parent
|
||||
enabled: selected && pal.activeTab == "nearbyTab" && thisNameCard.userName !== "";
|
||||
hoverEnabled: enabled
|
||||
onClicked: pal.sendToScript({method: 'goToUser', params: thisNameCard.userName});
|
||||
onEntered: {
|
||||
displayNameText.color = hifi.colors.blueHighlight;
|
||||
userNameText.color = hifi.colors.blueHighlight;
|
||||
}
|
||||
onExited: {
|
||||
displayNameText.color = hifi.colors.darkGray;
|
||||
userNameText.color = hifi.colors.greenShadow;
|
||||
}
|
||||
}
|
||||
}
|
||||
// VU Meter
|
||||
|
|
|
@ -346,13 +346,12 @@ Rectangle {
|
|||
text: "[?]";
|
||||
size: connectionsTabSelectorText.size + 6;
|
||||
font.capitalization: Font.AllUppercase;
|
||||
color: connectionsTabSelectorMouseArea.containsMouse ? hifi.colors.redAccent : hifi.colors.redHighlight;
|
||||
color: hifi.colors.redHighlight;
|
||||
horizontalAlignment: Text.AlignHCenter;
|
||||
verticalAlignment: Text.AlignVCenter;
|
||||
anchors.fill: parent;
|
||||
}
|
||||
MouseArea {
|
||||
id: connectionsTabSelectorMouseArea;
|
||||
anchors.fill: parent;
|
||||
hoverEnabled: true;
|
||||
onClicked: letterbox(hifi.glyphs.question,
|
||||
|
@ -361,6 +360,8 @@ Rectangle {
|
|||
"When your availability is set to Everyone, Connections can see your username and location.<br><br>" +
|
||||
"<font color='green'>Green borders around profile pictures are <b>Friends</b>.</font><br>" +
|
||||
"When your availability is set to Friends, only Friends can see your username and location.");
|
||||
onEntered: connectionsHelpText.color = hifi.colors.redAccent;
|
||||
onExited: connectionsHelpText.color = hifi.colors.redHighlight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -703,7 +704,6 @@ Rectangle {
|
|||
}
|
||||
// This Rectangle refers to the [?] popup button next to "NAMES"
|
||||
Rectangle {
|
||||
id: helpText;
|
||||
color: hifi.colors.tableBackgroundLight;
|
||||
width: 20;
|
||||
height: hifi.dimensions.tableHeaderHeight - 2;
|
||||
|
@ -712,16 +712,16 @@ Rectangle {
|
|||
anchors.topMargin: 1;
|
||||
anchors.leftMargin: actionButtonWidth + nearbyNameCardWidth/2 + displayNameHeaderMetrics.width/2 + 6;
|
||||
RalewayRegular {
|
||||
id: helpText;
|
||||
text: "[?]";
|
||||
size: hifi.fontSizes.tableHeading + 2;
|
||||
font.capitalization: Font.AllUppercase;
|
||||
color: helpTextMouseArea.containsMouse ? hifi.colors.baseGrayHighlight : hifi.colors.darkGray;
|
||||
color: hifi.colors.darkGray;
|
||||
horizontalAlignment: Text.AlignHCenter;
|
||||
verticalAlignment: Text.AlignVCenter;
|
||||
anchors.fill: parent;
|
||||
}
|
||||
MouseArea {
|
||||
id: helpTextMouseArea;
|
||||
anchors.fill: parent;
|
||||
hoverEnabled: true;
|
||||
onClicked: letterbox(hifi.glyphs.question,
|
||||
|
@ -733,6 +733,8 @@ Rectangle {
|
|||
"If you can see someone's username, you can GoTo them by selecting them in the PAL, then clicking their name.<br>" +
|
||||
"<br>If someone's display name isn't set, a unique <b>session display name</b> is assigned to them.<br>" +
|
||||
"<br>Administrators of this domain can also see the <b>username</b> or <b>machine ID</b> associated with each avatar present.");
|
||||
onEntered: helpText.color = hifi.colors.baseGrayHighlight;
|
||||
onExited: helpText.color = hifi.colors.darkGray;
|
||||
}
|
||||
}
|
||||
// This Rectangle refers to the [?] popup button next to "ADMIN"
|
||||
|
@ -750,19 +752,20 @@ Rectangle {
|
|||
text: "[?]";
|
||||
size: hifi.fontSizes.tableHeading + 2;
|
||||
font.capitalization: Font.AllUppercase;
|
||||
color: adminHelpTextMouseArea.containsMouse ? "#94132e" : hifi.colors.redHighlight;
|
||||
color: hifi.colors.redHighlight;
|
||||
horizontalAlignment: Text.AlignHCenter;
|
||||
verticalAlignment: Text.AlignVCenter;
|
||||
anchors.fill: parent;
|
||||
}
|
||||
MouseArea {
|
||||
id: adminHelpTextMouseArea;
|
||||
anchors.fill: parent;
|
||||
hoverEnabled: true;
|
||||
onClicked: letterbox(hifi.glyphs.question,
|
||||
"Admin Actions",
|
||||
"<b>Silence</b> mutes a user's microphone. Silenced users can unmute themselves by clicking "UNMUTE" on their toolbar.<br><br>" +
|
||||
"<b>Ban</b> removes a user from this domain and prevents them from returning. Admins can un-ban users from the Sandbox Domain Settings page.");
|
||||
onEntered: adminHelpText.color = "#94132e";
|
||||
onExited: adminHelpText.color = hifi.colors.redHighlight;
|
||||
}
|
||||
}
|
||||
} // "Nearby" Tab
|
||||
|
@ -860,8 +863,8 @@ Rectangle {
|
|||
visible: styleData.role === "userName";
|
||||
profileUrl: (model && model.profileUrl) || "";
|
||||
imageMaskColor: rowColor(styleData.selected, styleData.row % 2);
|
||||
displayName: model ? model.userName : "";
|
||||
userName: "";
|
||||
displayName: "";
|
||||
userName: model ? model.userName : "";
|
||||
connectionStatus : model ? model.connection : "";
|
||||
selected: styleData.selected;
|
||||
// Size
|
||||
|
@ -887,13 +890,14 @@ Rectangle {
|
|||
// Text Positioning
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
// Style
|
||||
color: connectionsLocationDataMouseArea.containsMouse ? hifi.colors.blueHighlight : hifi.colors.darkGray;
|
||||
color: hifi.colors.darkGray;
|
||||
MouseArea {
|
||||
id: connectionsLocationDataMouseArea;
|
||||
anchors.fill: parent
|
||||
hoverEnabled: enabled
|
||||
enabled: connectionsNameCard.selected && pal.activeTab == "connectionsTab"
|
||||
onClicked: pal.sendToScript({method: 'goToUser', params: model.userName});
|
||||
onEntered: connectionsLocationData.color = hifi.colors.blueHighlight;
|
||||
onExited: connectionsLocationData.color = hifi.colors.darkGray;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -934,15 +938,140 @@ Rectangle {
|
|||
}
|
||||
} // Keyboard
|
||||
|
||||
/*
|
||||
THIS WILL BE THE BROWSER THAT OPENS THE USER'S INFO PAGE!
|
||||
I've no idea how to do this yet..
|
||||
Item {
|
||||
id: webViewContainer;
|
||||
anchors.fill: parent;
|
||||
|
||||
HifiTablet.TabletAddressDialog {
|
||||
id: userInfoViewer;
|
||||
visible: false;
|
||||
Rectangle {
|
||||
id: navigationContainer;
|
||||
visible: userInfoViewer.visible;
|
||||
height: 70;
|
||||
anchors {
|
||||
top: parent.top;
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
}
|
||||
color: hifi.colors.faintGray;
|
||||
|
||||
Item {
|
||||
id: backButton
|
||||
anchors {
|
||||
top: parent.top;
|
||||
left: parent.left;
|
||||
}
|
||||
height: parent.height - urlBar.height;
|
||||
width: parent.width/2;
|
||||
|
||||
FiraSansSemiBold {
|
||||
// Properties
|
||||
text: "BACK";
|
||||
elide: Text.ElideRight;
|
||||
// Anchors
|
||||
anchors.fill: parent;
|
||||
// Text Size
|
||||
size: 16;
|
||||
// Text Positioning
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter;
|
||||
// Style
|
||||
color: backButtonMouseArea.containsMouse || !userInfoViewer.canGoBack ? hifi.colors.lightGray : hifi.colors.darkGray;
|
||||
MouseArea {
|
||||
id: backButtonMouseArea;
|
||||
anchors.fill: parent
|
||||
hoverEnabled: enabled
|
||||
onClicked: userInfoViewer.goBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: closeButtonContainer
|
||||
anchors {
|
||||
top: parent.top;
|
||||
right: parent.right;
|
||||
}
|
||||
height: parent.height - urlBar.height;
|
||||
width: parent.width/2;
|
||||
|
||||
FiraSansSemiBold {
|
||||
id: closeButton;
|
||||
// Properties
|
||||
text: "CLOSE";
|
||||
elide: Text.ElideRight;
|
||||
// Anchors
|
||||
anchors.fill: parent;
|
||||
// Text Size
|
||||
size: 16;
|
||||
// Text Positioning
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter;
|
||||
// Style
|
||||
color: hifi.colors.redHighlight;
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: enabled
|
||||
onClicked: userInfoViewer.visible = false;
|
||||
onEntered: closeButton.color = hifi.colors.redAccent;
|
||||
onExited: closeButton.color = hifi.colors.redHighlight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: urlBar
|
||||
anchors {
|
||||
top: closeButtonContainer.bottom;
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
}
|
||||
height: 30;
|
||||
width: parent.width;
|
||||
|
||||
FiraSansRegular {
|
||||
// Properties
|
||||
text: userInfoViewer.url;
|
||||
elide: Text.ElideRight;
|
||||
// Anchors
|
||||
anchors.fill: parent;
|
||||
// Text Size
|
||||
size: 14;
|
||||
// Text Positioning
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter;
|
||||
// Style
|
||||
color: hifi.colors.lightGray;
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: userInfoViewer.visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: webViewBackground;
|
||||
color: "white";
|
||||
visible: userInfoViewer.visible;
|
||||
anchors {
|
||||
top: navigationContainer.bottom;
|
||||
bottom: parent.bottom;
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
}
|
||||
}
|
||||
|
||||
HifiControls.WebView {
|
||||
id: userInfoViewer;
|
||||
anchors {
|
||||
top: navigationContainer.bottom;
|
||||
topMargin: 5;
|
||||
bottom: parent.bottom;
|
||||
left: parent.left;
|
||||
right: parent.right;
|
||||
}
|
||||
visible: false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
} // PAL container
|
||||
|
@ -1002,6 +1131,7 @@ Rectangle {
|
|||
break;
|
||||
case 'connections':
|
||||
var data = message.params;
|
||||
console.log('Got connection data: ', JSON.stringify(data));
|
||||
connectionsUserModelData = data;
|
||||
sortConnectionsModel();
|
||||
connectionsLoading.visible = false;
|
||||
|
|
|
@ -354,11 +354,18 @@ Messages.subscribe(MESSAGE_CHANNEL);
|
|||
Messages.messageReceived.connect(messageHandler);
|
||||
|
||||
|
||||
function makeGripHandler(hand) {
|
||||
function makeGripHandler(hand, animate) {
|
||||
// determine if we are gripping or un-gripping
|
||||
return function (value) {
|
||||
updateTriggers(value, false, hand);
|
||||
};
|
||||
if (animate) {
|
||||
return function(value) {
|
||||
updateTriggers(value, true, hand);
|
||||
};
|
||||
|
||||
} else {
|
||||
return function (value) {
|
||||
updateTriggers(value, false, hand);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function keyPressEvent(event) {
|
||||
|
@ -377,10 +384,12 @@ friendsMapping.from(Controller.Standard.LeftGrip).peek().to(makeGripHandler(Cont
|
|||
friendsMapping.from(Controller.Standard.RightGrip).peek().to(makeGripHandler(Controller.Standard.RightHand));
|
||||
|
||||
// setup keyboard initiation
|
||||
|
||||
Controller.keyPressEvent.connect(keyPressEvent);
|
||||
Controller.keyReleaseEvent.connect(keyReleaseEvent);
|
||||
|
||||
// xbox controller cuz that's important
|
||||
friendsMapping.from(Controller.Standard.RB).peek().to(makeGripHandler(Controller.Standard.RightHand, true));
|
||||
|
||||
// it is easy to forget this and waste a lot of time for nothing
|
||||
friendsMapping.enable();
|
||||
|
||||
|
|
|
@ -261,6 +261,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See
|
|||
UserActivityLogger.palAction("refresh_nearby", "");
|
||||
break;
|
||||
case 'refreshConnections':
|
||||
print('Refreshing Connections...');
|
||||
getConnectionData();
|
||||
UserActivityLogger.palAction("refresh_connections", "");
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue