Merge branch 'PAL_v2' of https://github.com/highfidelity/hifi into PAL_v2

This commit is contained in:
howard-stearns 2017-03-15 09:24:30 -07:00
commit 6c88bc98b4
4 changed files with 198 additions and 46 deletions

View file

@ -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

View file

@ -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 &quot;UNMUTE&quot; 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;

View file

@ -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();

View file

@ -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;