mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 02:04:28 +02:00
Fixup signal handling causing app errors; add keyboard navigation to emoji window
This commit is contained in:
parent
8b79dc3020
commit
cc9c9ec443
2 changed files with 40 additions and 15 deletions
|
@ -132,6 +132,18 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function selectEmoji(code) {
|
||||||
|
sendToScript({
|
||||||
|
"source": "SimplifiedEmoji.qml",
|
||||||
|
"method": "selectedEmoji",
|
||||||
|
"code": code
|
||||||
|
});
|
||||||
|
root.isSelected = true;
|
||||||
|
root.currentCode = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: emojiIconListContainer
|
id: emojiIconListContainer
|
||||||
anchors.top: emojiIndicatorContainer.bottom
|
anchors.top: emojiIndicatorContainer.bottom
|
||||||
|
@ -167,19 +179,25 @@ Rectangle {
|
||||||
root.currentCode = model.code.utf;
|
root.currentCode = model.code.utf;
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
sendToScript({
|
root.selectEmoji(model.code.utf);
|
||||||
"source": "SimplifiedEmoji.qml",
|
|
||||||
"method": "selectedEmoji",
|
|
||||||
"code": code.utf
|
|
||||||
});
|
|
||||||
root.isSelected = true;
|
|
||||||
root.currentCode = model.code.utf;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cacheBuffer: 400
|
cacheBuffer: 400
|
||||||
focus: true
|
focus: true
|
||||||
highlight: Rectangle { color: Qt.rgba(1, 1, 1, 0.4); radius: 0 }
|
highlight: Rectangle {
|
||||||
|
color: Qt.rgba(1, 1, 1, 0.4)
|
||||||
|
radius: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
KeyNavigation.backtab: emojiSearchTextField
|
||||||
|
KeyNavigation.tab: emojiSearchTextField
|
||||||
|
|
||||||
|
Keys.onPressed: {
|
||||||
|
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||||
|
root.selectEmoji(grid.model.get(grid.currentIndex).code.utf);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SimplifiedControls.VerticalScrollBar {
|
SimplifiedControls.VerticalScrollBar {
|
||||||
|
@ -216,10 +234,16 @@ Rectangle {
|
||||||
}
|
}
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
root.filterEmoji(emojiSearchTextField.text);
|
root.filterEmoji(emojiSearchTextField.text);
|
||||||
|
waitForMoreInputTimer.stop();
|
||||||
|
if (filteredModel.count === 1) {
|
||||||
|
root.selectEmoji(filteredModel.get(0).code.utf);
|
||||||
|
} else {
|
||||||
|
grid.forceActiveFocus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onFocusChanged: {
|
|
||||||
emojiSearchTextField.autoScroll = focus;
|
KeyNavigation.backtab: grid
|
||||||
}
|
KeyNavigation.tab: grid
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
|
|
|
@ -266,6 +266,7 @@ function endReactionWrapper(reaction) {
|
||||||
case ("point"):
|
case ("point"):
|
||||||
if (mouseMoveEventsConnected) {
|
if (mouseMoveEventsConnected) {
|
||||||
Controller.mouseMoveEvent.disconnect(mouseMoveEvent);
|
Controller.mouseMoveEvent.disconnect(mouseMoveEvent);
|
||||||
|
mouseMoveEventsConnected = false;
|
||||||
}
|
}
|
||||||
intersectedEntityOrAvatarID = null;
|
intersectedEntityOrAvatarID = null;
|
||||||
deleteOldReticles();
|
deleteOldReticles();
|
||||||
|
@ -554,13 +555,10 @@ function selectedEmoji(code) {
|
||||||
|
|
||||||
|
|
||||||
function onEmojiAppClosed() {
|
function onEmojiAppClosed() {
|
||||||
if (emojiAppWindow) {
|
if (emojiAppWindow && emojiAppWindowSignalsConnected) {
|
||||||
emojiAppWindow.fromQml.disconnect(onMessageFromEmojiApp);
|
emojiAppWindow.fromQml.disconnect(onMessageFromEmojiApp);
|
||||||
emojiAppWindow.closed.disconnect(onEmojiAppClosed);
|
emojiAppWindow.closed.disconnect(onEmojiAppClosed);
|
||||||
}
|
}
|
||||||
if (mouseMoveEventsConnected) {
|
|
||||||
Controller.mouseMoveEvent.disconnect(mouseMoveEvent);
|
|
||||||
}
|
|
||||||
emojiAppWindow = false;
|
emojiAppWindow = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,6 +605,7 @@ var EMOJI_APP_WINDOW_FLAGS = 0x00000001 | // Qt::Window
|
||||||
var emojiAppWindow = false;
|
var emojiAppWindow = false;
|
||||||
var POPOUT_SAFE_MARGIN_X = 30;
|
var POPOUT_SAFE_MARGIN_X = 30;
|
||||||
var POPOUT_SAFE_MARGIN_Y = 30;
|
var POPOUT_SAFE_MARGIN_Y = 30;
|
||||||
|
var emojiAppWindowSignalsConnected = false;
|
||||||
function toggleEmojiApp() {
|
function toggleEmojiApp() {
|
||||||
if (emojiAppWindow) {
|
if (emojiAppWindow) {
|
||||||
emojiAppWindow.close();
|
emojiAppWindow.close();
|
||||||
|
@ -633,6 +632,8 @@ function toggleEmojiApp() {
|
||||||
|
|
||||||
emojiAppWindow.fromQml.connect(onMessageFromEmojiApp);
|
emojiAppWindow.fromQml.connect(onMessageFromEmojiApp);
|
||||||
emojiAppWindow.closed.connect(onEmojiAppClosed);
|
emojiAppWindow.closed.connect(onEmojiAppClosed);
|
||||||
|
emojiAppWindowSignalsConnected = true;
|
||||||
|
|
||||||
// The actual emoji module needs this qml window object so it can send messages
|
// The actual emoji module needs this qml window object so it can send messages
|
||||||
// to update the Selected emoji UI
|
// to update the Selected emoji UI
|
||||||
emojiAPI.registerAvimojiQMLWindow(emojiAppWindow);
|
emojiAPI.registerAvimojiQMLWindow(emojiAppWindow);
|
||||||
|
|
Loading…
Reference in a new issue