mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 14:09:01 +02:00
Enabled 'Enter' to open the chat. Deleted the now obsolete ChatEntry.
This commit is contained in:
parent
cc8d052bd9
commit
4c26f025ac
6 changed files with 14 additions and 180 deletions
|
@ -4,22 +4,22 @@
|
||||||
<context>
|
<context>
|
||||||
<name>Application</name>
|
<name>Application</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Application.cpp" line="1373"/>
|
<location filename="src/Application.cpp" line="1349"/>
|
||||||
<source>Export Voxels</source>
|
<source>Export Voxels</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Application.cpp" line="1374"/>
|
<location filename="src/Application.cpp" line="1350"/>
|
||||||
<source>Sparse Voxel Octree Files (*.svo)</source>
|
<source>Sparse Voxel Octree Files (*.svo)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Application.cpp" line="3558"/>
|
<location filename="src/Application.cpp" line="3529"/>
|
||||||
<source>Open Script</source>
|
<source>Open Script</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Application.cpp" line="3559"/>
|
<location filename="src/Application.cpp" line="3530"/>
|
||||||
<source>JavaScript Files (*.js)</source>
|
<source>JavaScript Files (*.js)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -113,18 +113,18 @@
|
||||||
<context>
|
<context>
|
||||||
<name>Menu</name>
|
<name>Menu</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Menu.cpp" line="418"/>
|
<location filename="src/Menu.cpp" line="422"/>
|
||||||
<source>Open .ini config file</source>
|
<source>Open .ini config file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Menu.cpp" line="420"/>
|
<location filename="src/Menu.cpp" line="424"/>
|
||||||
<location filename="src/Menu.cpp" line="432"/>
|
<location filename="src/Menu.cpp" line="436"/>
|
||||||
<source>Text files (*.ini)</source>
|
<source>Text files (*.ini)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="src/Menu.cpp" line="430"/>
|
<location filename="src/Menu.cpp" line="434"/>
|
||||||
<source>Save .ini config file</source>
|
<source>Save .ini config file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -153,7 +153,6 @@ Application::Application(int& argc, char** argv, timeval &startup_time) :
|
||||||
_touchAvgY(0.0f),
|
_touchAvgY(0.0f),
|
||||||
_isTouchPressed(false),
|
_isTouchPressed(false),
|
||||||
_mousePressed(false),
|
_mousePressed(false),
|
||||||
_chatEntryOn(false),
|
|
||||||
_audio(&_audioScope, STARTUP_JITTER_SAMPLES),
|
_audio(&_audioScope, STARTUP_JITTER_SAMPLES),
|
||||||
_enableProcessVoxelsThread(true),
|
_enableProcessVoxelsThread(true),
|
||||||
_voxelProcessor(),
|
_voxelProcessor(),
|
||||||
|
@ -698,21 +697,6 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activeWindow() == _window) {
|
if (activeWindow() == _window) {
|
||||||
if (_chatEntryOn) {
|
|
||||||
if (_chatEntry.keyPressEvent(event)) {
|
|
||||||
_myAvatar->setKeyState(event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete ?
|
|
||||||
DELETE_KEY_DOWN : INSERT_KEY_DOWN);
|
|
||||||
_myAvatar->setChatMessage(string(_chatEntry.getContents().size(), SOLID_BLOCK_CHAR));
|
|
||||||
|
|
||||||
} else {
|
|
||||||
_myAvatar->setChatMessage(_chatEntry.getContents());
|
|
||||||
_chatEntry.clear();
|
|
||||||
_chatEntryOn = false;
|
|
||||||
setMenuShortcutsEnabled(true);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isShifted = event->modifiers().testFlag(Qt::ShiftModifier);
|
bool isShifted = event->modifiers().testFlag(Qt::ShiftModifier);
|
||||||
bool isMeta = event->modifiers().testFlag(Qt::ControlModifier);
|
bool isMeta = event->modifiers().testFlag(Qt::ControlModifier);
|
||||||
switch (event->key()) {
|
switch (event->key()) {
|
||||||
|
@ -793,10 +777,7 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
|
|
||||||
case Qt::Key_Return:
|
case Qt::Key_Return:
|
||||||
case Qt::Key_Enter:
|
case Qt::Key_Enter:
|
||||||
_chatEntryOn = true;
|
Menu::getInstance()->triggerOption(MenuOption::Chat);
|
||||||
_myAvatar->setKeyState(NO_KEY_DOWN);
|
|
||||||
_myAvatar->setChatMessage(string());
|
|
||||||
setMenuShortcutsEnabled(false);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::Key_Up:
|
case Qt::Key_Up:
|
||||||
|
@ -939,11 +920,6 @@ void Application::keyReleaseEvent(QKeyEvent* event) {
|
||||||
|
|
||||||
|
|
||||||
if (activeWindow() == _window) {
|
if (activeWindow() == _window) {
|
||||||
if (_chatEntryOn) {
|
|
||||||
_myAvatar->setKeyState(NO_KEY_DOWN);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (event->key()) {
|
switch (event->key()) {
|
||||||
case Qt::Key_E:
|
case Qt::Key_E:
|
||||||
_myAvatar->setDriveKeys(UP, 0);
|
_myAvatar->setDriveKeys(UP, 0);
|
||||||
|
@ -2483,11 +2459,6 @@ void Application::displayOverlay() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show chat entry field
|
|
||||||
if (_chatEntryOn) {
|
|
||||||
_chatEntry.render(_glWidget->width(), _glWidget->height());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show on-screen msec timer
|
// Show on-screen msec timer
|
||||||
if (Menu::getInstance()->isOptionChecked(MenuOption::FrameTimer)) {
|
if (Menu::getInstance()->isOptionChecked(MenuOption::FrameTimer)) {
|
||||||
char frameTimer[10];
|
char frameTimer[10];
|
||||||
|
|
|
@ -64,7 +64,6 @@
|
||||||
#include "renderer/TextureCache.h"
|
#include "renderer/TextureCache.h"
|
||||||
#include "renderer/VoxelShader.h"
|
#include "renderer/VoxelShader.h"
|
||||||
#include "ui/BandwidthDialog.h"
|
#include "ui/BandwidthDialog.h"
|
||||||
#include "ui/ChatEntry.h"
|
|
||||||
#include "ui/OctreeStatsDialog.h"
|
#include "ui/OctreeStatsDialog.h"
|
||||||
#include "ui/RearMirrorTools.h"
|
#include "ui/RearMirrorTools.h"
|
||||||
#include "ui/LodToolsDialog.h"
|
#include "ui/LodToolsDialog.h"
|
||||||
|
@ -426,9 +425,6 @@ private:
|
||||||
|
|
||||||
bool _mousePressed; // true if mouse has been pressed (clear when finished)
|
bool _mousePressed; // true if mouse has been pressed (clear when finished)
|
||||||
|
|
||||||
ChatEntry _chatEntry; // chat entry field
|
|
||||||
bool _chatEntryOn; // Whether to show the chat entry
|
|
||||||
|
|
||||||
GeometryCache _geometryCache;
|
GeometryCache _geometryCache;
|
||||||
TextureCache _textureCache;
|
TextureCache _textureCache;
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,11 @@ Menu::Menu() :
|
||||||
addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor()));
|
addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor()));
|
||||||
addActionToQMenuAndActionHash(toolsMenu, MenuOption::FstUploader, 0, Application::getInstance(), SLOT(uploadFST()));
|
addActionToQMenuAndActionHash(toolsMenu, MenuOption::FstUploader, 0, Application::getInstance(), SLOT(uploadFST()));
|
||||||
|
|
||||||
_chatAction = addActionToQMenuAndActionHash(toolsMenu, MenuOption::Chat, 0, this, SLOT(showChat()));
|
_chatAction = addActionToQMenuAndActionHash(toolsMenu,
|
||||||
|
MenuOption::Chat,
|
||||||
|
Qt::Key_Return,
|
||||||
|
this,
|
||||||
|
SLOT(showChat()));
|
||||||
#ifdef HAVE_QXMPP
|
#ifdef HAVE_QXMPP
|
||||||
const QXmppClient& xmppClient = XmppClient::getInstance().getXMPPClient();
|
const QXmppClient& xmppClient = XmppClient::getInstance().getXMPPClient();
|
||||||
toggleChat();
|
toggleChat();
|
||||||
|
|
|
@ -1,102 +0,0 @@
|
||||||
//
|
|
||||||
// ChatEntry.cpp
|
|
||||||
// interface
|
|
||||||
//
|
|
||||||
// Created by Andrzej Kapolka on 4/24/13.
|
|
||||||
// Copyright (c) 2013 High Fidelity, Inc. All rights reserved.
|
|
||||||
|
|
||||||
#include <QKeyEvent>
|
|
||||||
|
|
||||||
#include "ChatEntry.h"
|
|
||||||
#include "InterfaceConfig.h"
|
|
||||||
#include "Util.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
const int MAX_CONTENT_LENGTH = 80;
|
|
||||||
|
|
||||||
ChatEntry::ChatEntry() : _cursorPos(0) {
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatEntry::clear() {
|
|
||||||
_contents.clear();
|
|
||||||
_cursorPos = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ChatEntry::keyPressEvent(QKeyEvent* event) {
|
|
||||||
event->accept();
|
|
||||||
switch (event->key()) {
|
|
||||||
case Qt::Key_Return:
|
|
||||||
case Qt::Key_Enter:
|
|
||||||
return false;
|
|
||||||
|
|
||||||
case Qt::Key_Escape:
|
|
||||||
clear();
|
|
||||||
return false;
|
|
||||||
|
|
||||||
case Qt::Key_Backspace:
|
|
||||||
if (_cursorPos != 0) {
|
|
||||||
_contents.erase(_cursorPos - 1, 1);
|
|
||||||
_cursorPos--;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case Qt::Key_Delete:
|
|
||||||
if (_cursorPos < (int)_contents.size()) {
|
|
||||||
_contents.erase(_cursorPos, 1);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case Qt::Key_Left:
|
|
||||||
if (_cursorPos != 0) {
|
|
||||||
_cursorPos--;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case Qt::Key_Right:
|
|
||||||
if (_cursorPos != _contents.size()) {
|
|
||||||
_cursorPos++;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
QString text = event->text();
|
|
||||||
if (text.isEmpty()) {
|
|
||||||
event->ignore();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (_contents.size() < MAX_CONTENT_LENGTH) {
|
|
||||||
_contents.insert(_cursorPos, 1, text.at(0).toLatin1());
|
|
||||||
_cursorPos++;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const float ALL_WHITE[] = { 1.0f, 1.0f, 1.0f };
|
|
||||||
|
|
||||||
void ChatEntry::render(int screenWidth, int screenHeight) {
|
|
||||||
// draw a gray background so that we can actually see what we're typing
|
|
||||||
int bottom = screenHeight - 150, top = screenHeight - 165;
|
|
||||||
int left = 20, right = left + 600;
|
|
||||||
|
|
||||||
glColor3f(0.2f, 0.2f, 0.2f);
|
|
||||||
glBegin(GL_QUADS);
|
|
||||||
glVertex2f(left - 5, bottom + 7);
|
|
||||||
glVertex2f(right + 5, bottom + 7);
|
|
||||||
glVertex2f(right + 5, top - 3);
|
|
||||||
glVertex2f(left - 5, top - 3);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
drawText(left, bottom, 0.10f, 0, 2, _contents.c_str(), ALL_WHITE);
|
|
||||||
|
|
||||||
float width = 0;
|
|
||||||
for (string::iterator it = _contents.begin(), end = it + _cursorPos; it != end; it++) {
|
|
||||||
width += widthChar(0.10f, 0, *it);
|
|
||||||
}
|
|
||||||
glDisable(GL_LINE_SMOOTH);
|
|
||||||
glBegin(GL_LINE_STRIP);
|
|
||||||
glVertex2f(left + width, top + 2);
|
|
||||||
glVertex2f(left + width, bottom + 2);
|
|
||||||
glEnd();
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
//
|
|
||||||
// ChatEntry.h
|
|
||||||
// interface
|
|
||||||
//
|
|
||||||
// Created by Andrzej Kapolka on 4/24/13.
|
|
||||||
// Copyright (c) 2013 High Fidelity, Inc. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef __interface__ChatEntry__
|
|
||||||
#define __interface__ChatEntry__
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
class QKeyEvent;
|
|
||||||
|
|
||||||
class ChatEntry {
|
|
||||||
public:
|
|
||||||
|
|
||||||
ChatEntry();
|
|
||||||
|
|
||||||
const std::string& getContents() const { return _contents; }
|
|
||||||
|
|
||||||
void clear();
|
|
||||||
|
|
||||||
bool keyPressEvent(QKeyEvent* event);
|
|
||||||
|
|
||||||
void render(int screenWidth, int screenHeight);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
std::string _contents;
|
|
||||||
int _cursorPos;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* defined(__interface__ChatEntry__) */
|
|
Loading…
Reference in a new issue