2013-08-12 12:29:01 -07:00
|
|
|
//
|
|
|
|
// Menu.h
|
2014-04-08 17:30:36 -07:00
|
|
|
// interface/src
|
2013-08-12 12:29:01 -07:00
|
|
|
//
|
|
|
|
// Created by Stephen Birarda on 8/12/13.
|
2014-04-08 17:30:36 -07:00
|
|
|
// Copyright 2013 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
|
2013-08-12 12:29:01 -07:00
|
|
|
//
|
|
|
|
|
2014-04-09 12:03:17 -07:00
|
|
|
#ifndef hifi_Menu_h
|
|
|
|
#define hifi_Menu_h
|
2013-08-12 12:29:01 -07:00
|
|
|
|
2014-04-15 19:36:02 +02:00
|
|
|
#include <QDir>
|
2013-08-15 10:46:51 -07:00
|
|
|
#include <QMenuBar>
|
|
|
|
#include <QHash>
|
|
|
|
#include <QKeySequence>
|
2014-01-21 11:43:15 -08:00
|
|
|
#include <QPointer>
|
2014-04-15 19:36:02 +02:00
|
|
|
#include <QStandardPaths>
|
2013-08-15 10:46:51 -07:00
|
|
|
|
2014-02-24 19:09:22 -08:00
|
|
|
#include <EventTypes.h>
|
2014-02-25 17:32:16 -08:00
|
|
|
#include <MenuItemProperties.h>
|
2014-02-25 14:33:37 -08:00
|
|
|
#include <OctreeConstants.h>
|
2013-12-16 22:43:17 +01:00
|
|
|
|
2014-08-13 14:53:26 -07:00
|
|
|
#ifdef Q_OS_MAC
|
2014-08-07 17:45:27 -07:00
|
|
|
#include "SpeechRecognizer.h"
|
2014-08-13 14:53:26 -07:00
|
|
|
#endif
|
2013-12-16 22:43:17 +01:00
|
|
|
|
2014-03-14 20:09:03 +01:00
|
|
|
#include "location/LocationManager.h"
|
2014-02-27 23:15:57 +01:00
|
|
|
#include "ui/PreferencesDialog.h"
|
2014-03-14 20:09:03 +01:00
|
|
|
#include "ui/ChatWindow.h"
|
2014-05-26 09:58:06 -07:00
|
|
|
#include "ui/JSConsole.h"
|
2014-06-11 14:57:05 -07:00
|
|
|
#include "ui/LoginDialog.h"
|
2014-04-15 00:30:01 +02:00
|
|
|
#include "ui/ScriptEditorWindow.h"
|
2014-07-01 20:03:05 -07:00
|
|
|
#include "ui/UserLocationsDialog.h"
|
2014-02-27 23:15:57 +01:00
|
|
|
|
2014-02-12 21:22:21 -08:00
|
|
|
const float ADJUST_LOD_DOWN_FPS = 40.0;
|
|
|
|
const float ADJUST_LOD_UP_FPS = 55.0;
|
2014-04-24 18:52:59 +05:30
|
|
|
const float DEFAULT_ADJUST_AVATAR_LOD_DOWN_FPS = 30.0f;
|
2014-02-12 21:22:21 -08:00
|
|
|
|
|
|
|
const quint64 ADJUST_LOD_DOWN_DELAY = 1000 * 1000 * 5;
|
|
|
|
const quint64 ADJUST_LOD_UP_DELAY = ADJUST_LOD_DOWN_DELAY * 2;
|
|
|
|
|
|
|
|
const float ADJUST_LOD_DOWN_BY = 0.9f;
|
|
|
|
const float ADJUST_LOD_UP_BY = 1.1f;
|
|
|
|
|
2014-02-27 18:00:58 -08:00
|
|
|
const float ADJUST_LOD_MIN_SIZE_SCALE = DEFAULT_OCTREE_SIZE_SCALE * 0.25f;
|
2014-02-12 21:22:21 -08:00
|
|
|
const float ADJUST_LOD_MAX_SIZE_SCALE = DEFAULT_OCTREE_SIZE_SCALE;
|
|
|
|
|
2014-04-11 15:55:48 -07:00
|
|
|
const float MINIMUM_AVATAR_LOD_DISTANCE_MULTIPLIER = 0.1f;
|
|
|
|
const float MAXIMUM_AVATAR_LOD_DISTANCE_MULTIPLIER = 15.0f;
|
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
enum FrustumDrawMode {
|
|
|
|
FRUSTUM_DRAW_MODE_ALL,
|
|
|
|
FRUSTUM_DRAW_MODE_VECTORS,
|
|
|
|
FRUSTUM_DRAW_MODE_PLANES,
|
|
|
|
FRUSTUM_DRAW_MODE_NEAR_PLANE,
|
|
|
|
FRUSTUM_DRAW_MODE_FAR_PLANE,
|
|
|
|
FRUSTUM_DRAW_MODE_KEYHOLE,
|
|
|
|
FRUSTUM_DRAW_MODE_COUNT
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ViewFrustumOffset {
|
|
|
|
float yaw;
|
|
|
|
float pitch;
|
|
|
|
float roll;
|
|
|
|
float distance;
|
|
|
|
float up;
|
|
|
|
};
|
|
|
|
|
2013-09-16 15:49:40 -07:00
|
|
|
class QSettings;
|
|
|
|
|
2014-05-19 16:55:33 -07:00
|
|
|
class AnimationsDialog;
|
2014-05-04 16:24:23 -07:00
|
|
|
class AttachmentsDialog;
|
2013-09-03 13:37:25 -07:00
|
|
|
class BandwidthDialog;
|
2013-10-29 16:16:58 -07:00
|
|
|
class LodToolsDialog;
|
2014-01-22 13:57:59 -08:00
|
|
|
class MetavoxelEditor;
|
2014-03-07 16:41:13 +02:00
|
|
|
class ChatWindow;
|
2014-03-08 23:53:44 -08:00
|
|
|
class OctreeStatsDialog;
|
2014-02-25 10:23:59 -08:00
|
|
|
class MenuItemProperties;
|
2013-09-03 13:37:25 -07:00
|
|
|
|
2014-02-25 20:45:49 -08:00
|
|
|
class Menu : public QMenuBar {
|
2013-08-15 10:46:51 -07:00
|
|
|
Q_OBJECT
|
2013-08-12 12:29:01 -07:00
|
|
|
public:
|
2013-08-15 10:46:51 -07:00
|
|
|
static Menu* getInstance();
|
2013-09-04 10:40:42 -07:00
|
|
|
~Menu();
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
void triggerOption(const QString& menuOption);
|
|
|
|
QAction* getActionForOption(const QString& menuOption);
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2014-08-07 16:37:36 -07:00
|
|
|
const InboundAudioStream::Settings& getReceivedAudioStreamSettings() const { return _receivedAudioStreamSettings; }
|
2014-08-08 11:40:48 -07:00
|
|
|
void setReceivedAudioStreamSettings(const InboundAudioStream::Settings& receivedAudioStreamSettings) { _receivedAudioStreamSettings = receivedAudioStreamSettings; }
|
2013-08-15 10:46:51 -07:00
|
|
|
float getFieldOfView() const { return _fieldOfView; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setFieldOfView(float fieldOfView) { _fieldOfView = fieldOfView; bumpSettings(); }
|
2014-05-05 16:19:09 -07:00
|
|
|
float getRealWorldFieldOfView() const { return _realWorldFieldOfView; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setRealWorldFieldOfView(float realWorldFieldOfView) { _realWorldFieldOfView = realWorldFieldOfView; bumpSettings(); }
|
2014-06-13 10:53:11 -07:00
|
|
|
float getOculusUIAngularSize() const { return _oculusUIAngularSize; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setOculusUIAngularSize(float oculusUIAngularSize) { _oculusUIAngularSize = oculusUIAngularSize; bumpSettings(); }
|
2014-06-13 10:53:11 -07:00
|
|
|
float getSixenseReticleMoveSpeed() const { return _sixenseReticleMoveSpeed; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setSixenseReticleMoveSpeed(float sixenseReticleMoveSpeed) { _sixenseReticleMoveSpeed = sixenseReticleMoveSpeed; bumpSettings(); }
|
2014-06-13 10:53:11 -07:00
|
|
|
bool getInvertSixenseButtons() const { return _invertSixenseButtons; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setInvertSixenseButtons(bool invertSixenseButtons) { _invertSixenseButtons = invertSixenseButtons; bumpSettings(); }
|
2014-05-05 16:19:09 -07:00
|
|
|
|
2013-11-15 10:17:52 -08:00
|
|
|
float getFaceshiftEyeDeflection() const { return _faceshiftEyeDeflection; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setFaceshiftEyeDeflection(float faceshiftEyeDeflection) { _faceshiftEyeDeflection = faceshiftEyeDeflection; bumpSettings(); }
|
2014-04-16 07:46:15 +02:00
|
|
|
QString getSnapshotsLocation() const;
|
2014-08-26 07:47:22 -07:00
|
|
|
void setSnapshotsLocation(QString snapshotsLocation) { _snapshotsLocation = snapshotsLocation; bumpSettings(); }
|
2014-04-15 19:36:02 +02:00
|
|
|
|
2014-05-14 00:28:11 -07:00
|
|
|
const QString& getScriptsLocation() const { return _scriptsLocation; }
|
|
|
|
void setScriptsLocation(const QString& scriptsLocation);
|
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
BandwidthDialog* getBandwidthDialog() const { return _bandwidthDialog; }
|
|
|
|
FrustumDrawMode getFrustumDrawMode() const { return _frustumDrawMode; }
|
|
|
|
ViewFrustumOffset getViewFrustumOffset() const { return _viewFrustumOffset; }
|
2014-03-08 23:53:44 -08:00
|
|
|
OctreeStatsDialog* getOctreeStatsDialog() const { return _octreeStatsDialog; }
|
2013-10-29 16:16:58 -07:00
|
|
|
LodToolsDialog* getLodToolsDialog() const { return _lodToolsDialog; }
|
2013-09-26 16:26:49 -07:00
|
|
|
int getMaxVoxels() const { return _maxVoxels; }
|
2013-10-07 17:46:22 -07:00
|
|
|
QAction* getUseVoxelShader() const { return _useVoxelShader; }
|
2013-09-26 16:26:49 -07:00
|
|
|
|
2014-05-29 12:48:41 -07:00
|
|
|
bool getShadowsEnabled() const;
|
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
void handleViewFrustumOffsetKeyModifier(int key);
|
2013-10-29 16:16:58 -07:00
|
|
|
|
2013-10-30 11:01:37 -07:00
|
|
|
// User Tweakable LOD Items
|
2014-03-12 11:10:52 -07:00
|
|
|
QString getLODFeedbackText();
|
2014-02-12 21:22:21 -08:00
|
|
|
void autoAdjustLOD(float currentFPS);
|
2014-03-27 15:02:26 -07:00
|
|
|
void resetLODAdjust();
|
2013-10-30 11:01:37 -07:00
|
|
|
void setVoxelSizeScale(float sizeScale);
|
|
|
|
float getVoxelSizeScale() const { return _voxelSizeScale; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setAutomaticAvatarLOD(bool automaticAvatarLOD) { _automaticAvatarLOD = automaticAvatarLOD; bumpSettings(); }
|
2014-04-11 15:55:48 -07:00
|
|
|
bool getAutomaticAvatarLOD() const { return _automaticAvatarLOD; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setAvatarLODDecreaseFPS(float avatarLODDecreaseFPS) { _avatarLODDecreaseFPS = avatarLODDecreaseFPS; bumpSettings(); }
|
2014-04-11 15:55:48 -07:00
|
|
|
float getAvatarLODDecreaseFPS() const { return _avatarLODDecreaseFPS; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setAvatarLODIncreaseFPS(float avatarLODIncreaseFPS) { _avatarLODIncreaseFPS = avatarLODIncreaseFPS; bumpSettings(); }
|
2014-04-11 15:55:48 -07:00
|
|
|
float getAvatarLODIncreaseFPS() const { return _avatarLODIncreaseFPS; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setAvatarLODDistanceMultiplier(float multiplier) { _avatarLODDistanceMultiplier = multiplier; bumpSettings(); }
|
2014-03-24 16:45:44 -07:00
|
|
|
float getAvatarLODDistanceMultiplier() const { return _avatarLODDistanceMultiplier; }
|
2013-10-30 11:01:37 -07:00
|
|
|
void setBoundaryLevelAdjust(int boundaryLevelAdjust);
|
|
|
|
int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; }
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2014-08-07 17:45:27 -07:00
|
|
|
#ifdef Q_OS_MAC
|
|
|
|
SpeechRecognizer* getSpeechRecognizer() { return &_speechRecognizer; }
|
|
|
|
#endif
|
|
|
|
|
2013-11-25 15:13:31 -08:00
|
|
|
// User Tweakable PPS from Voxel Server
|
|
|
|
int getMaxVoxelPacketsPerSecond() const { return _maxVoxelPacketsPerSecond; }
|
2014-08-26 07:47:22 -07:00
|
|
|
void setMaxVoxelPacketsPerSecond(int maxVoxelPacketsPerSecond) { _maxVoxelPacketsPerSecond = maxVoxelPacketsPerSecond; bumpSettings(); }
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2014-02-25 20:23:38 -08:00
|
|
|
QAction* addActionToQMenuAndActionHash(QMenu* destinationMenu,
|
|
|
|
const QString& actionName,
|
|
|
|
const QKeySequence& shortcut = 0,
|
|
|
|
const QObject* receiver = NULL,
|
2013-12-16 09:16:51 -08:00
|
|
|
const char* member = NULL,
|
2014-02-25 10:23:59 -08:00
|
|
|
QAction::MenuRole role = QAction::NoRole,
|
2014-02-25 12:19:30 -08:00
|
|
|
int menuItemLocation = UNSPECIFIED_POSITION);
|
2014-04-03 16:51:08 -07:00
|
|
|
QAction* addActionToQMenuAndActionHash(QMenu* destinationMenu,
|
|
|
|
QAction* action,
|
|
|
|
const QString& actionName = QString(),
|
|
|
|
const QKeySequence& shortcut = 0,
|
|
|
|
QAction::MenuRole role = QAction::NoRole,
|
|
|
|
int menuItemLocation = UNSPECIFIED_POSITION);
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2014-02-25 20:23:38 -08:00
|
|
|
void removeAction(QMenu* menu, const QString& actionName);
|
2014-09-11 10:14:00 -07:00
|
|
|
|
2014-04-17 00:04:27 +02:00
|
|
|
void static goToDomain(const QString newDomain);
|
2014-07-17 11:43:30 -07:00
|
|
|
|
|
|
|
const QByteArray& getWalletPrivateKey() const { return _walletPrivateKey; }
|
2014-02-25 20:45:49 -08:00
|
|
|
|
2014-05-14 00:28:11 -07:00
|
|
|
signals:
|
|
|
|
void scriptLocationChanged(const QString& newPath);
|
|
|
|
|
2014-02-25 20:42:59 -08:00
|
|
|
public slots:
|
|
|
|
|
2014-08-28 13:53:47 -07:00
|
|
|
void clearLoginDialogDisplayedFlag();
|
2014-02-18 13:21:32 -08:00
|
|
|
void loginForCurrentDomain();
|
2014-08-28 11:25:13 -07:00
|
|
|
void showLoginForCurrentDomain();
|
2013-08-15 10:46:51 -07:00
|
|
|
void bandwidthDetails();
|
2014-03-08 23:53:44 -08:00
|
|
|
void octreeStatsDetails();
|
2013-10-29 16:16:58 -07:00
|
|
|
void lodTools();
|
2013-08-15 15:41:25 -07:00
|
|
|
void loadSettings(QSettings* settings = NULL);
|
|
|
|
void saveSettings(QSettings* settings = NULL);
|
|
|
|
void importSettings();
|
|
|
|
void exportSettings();
|
2014-09-11 10:14:00 -07:00
|
|
|
void addressBarDialog();
|
2013-11-13 23:04:51 -08:00
|
|
|
void pasteToVoxel();
|
2014-04-02 18:07:55 -07:00
|
|
|
|
2014-02-24 11:11:36 -08:00
|
|
|
void toggleLoginMenuItem();
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2014-02-24 23:53:26 -08:00
|
|
|
QMenu* addMenu(const QString& menuName);
|
|
|
|
void removeMenu(const QString& menuName);
|
2014-05-31 13:24:07 -07:00
|
|
|
bool menuExists(const QString& menuName);
|
2014-02-24 23:53:26 -08:00
|
|
|
void addSeparator(const QString& menuName, const QString& separatorName);
|
2014-03-03 12:03:56 -08:00
|
|
|
void removeSeparator(const QString& menuName, const QString& separatorName);
|
2014-02-25 10:23:59 -08:00
|
|
|
void addMenuItem(const MenuItemProperties& properties);
|
2014-02-24 23:53:26 -08:00
|
|
|
void removeMenuItem(const QString& menuName, const QString& menuitem);
|
2014-05-31 13:24:07 -07:00
|
|
|
bool menuItemExists(const QString& menuName, const QString& menuitem);
|
2014-05-29 12:48:41 -07:00
|
|
|
bool isOptionChecked(const QString& menuOption) const;
|
2014-03-26 15:42:53 -07:00
|
|
|
void setIsOptionChecked(const QString& menuOption, bool isChecked);
|
2014-02-24 19:09:22 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
private slots:
|
2013-09-11 22:08:07 +02:00
|
|
|
void aboutApp();
|
2014-08-26 07:47:22 -07:00
|
|
|
void bumpSettings();
|
2013-08-15 10:46:51 -07:00
|
|
|
void editPreferences();
|
2014-05-04 16:24:23 -07:00
|
|
|
void editAttachments();
|
2014-05-19 16:55:33 -07:00
|
|
|
void editAnimations();
|
2014-07-17 11:43:30 -07:00
|
|
|
void changePrivateKey();
|
2014-02-12 02:12:52 +01:00
|
|
|
void goToDomainDialog();
|
2014-03-12 18:53:25 +01:00
|
|
|
void nameLocation();
|
2014-06-30 22:24:27 -07:00
|
|
|
void toggleLocationList();
|
2013-08-15 10:46:51 -07:00
|
|
|
void bandwidthDetailsClosed();
|
2014-03-08 23:53:44 -08:00
|
|
|
void octreeStatsDetailsClosed();
|
2013-10-29 16:16:58 -07:00
|
|
|
void lodToolsClosed();
|
2013-08-15 10:46:51 -07:00
|
|
|
void cycleFrustumRenderMode();
|
2013-08-15 15:41:25 -07:00
|
|
|
void runTests();
|
2014-01-21 11:43:15 -08:00
|
|
|
void showMetavoxelEditor();
|
2014-04-15 00:30:01 +02:00
|
|
|
void showScriptEditor();
|
2014-03-07 16:41:13 +02:00
|
|
|
void showChat();
|
2014-05-27 07:29:48 -07:00
|
|
|
void toggleConsole();
|
2014-03-10 16:01:53 +02:00
|
|
|
void toggleChat();
|
2014-01-16 20:17:04 +01:00
|
|
|
void audioMuteToggled();
|
2014-03-14 20:09:03 +01:00
|
|
|
void namedLocationCreated(LocationManager::NamedLocationCreateResponse response);
|
2014-05-07 12:57:11 -07:00
|
|
|
void muteEnvironment();
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-12 12:29:01 -07:00
|
|
|
private:
|
|
|
|
static Menu* _instance;
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
Menu();
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
typedef void(*settingsAction)(QSettings*, QAction*);
|
|
|
|
static void loadAction(QSettings* set, QAction* action);
|
|
|
|
static void saveAction(QSettings* set, QAction* action);
|
|
|
|
void scanMenuBar(settingsAction modifySetting, QSettings* set);
|
|
|
|
void scanMenu(QMenu* menu, settingsAction modifySetting, QSettings* set);
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-23 15:18:06 -07:00
|
|
|
/// helper method to have separators with labels that are also compatible with OS X
|
2014-04-02 18:07:55 -07:00
|
|
|
void addDisabledActionAndSeparator(QMenu* destinationMenu, const QString& actionName,
|
2014-03-03 12:03:56 -08:00
|
|
|
int menuItemLocation = UNSPECIFIED_POSITION);
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
QAction* addCheckableActionToQMenuAndActionHash(QMenu* destinationMenu,
|
2014-02-25 20:23:38 -08:00
|
|
|
const QString& actionName,
|
2013-08-15 10:46:51 -07:00
|
|
|
const QKeySequence& shortcut = 0,
|
2013-08-15 10:56:37 -07:00
|
|
|
const bool checked = false,
|
|
|
|
const QObject* receiver = NULL,
|
2014-02-25 10:23:59 -08:00
|
|
|
const char* member = NULL,
|
2014-02-25 12:19:30 -08:00
|
|
|
int menuItemLocation = UNSPECIFIED_POSITION);
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
void updateFrustumRenderModeAction();
|
2014-01-15 12:29:54 -08:00
|
|
|
|
2014-02-24 23:42:05 -08:00
|
|
|
QAction* getActionFromName(const QString& menuName, QMenu* menu);
|
|
|
|
QMenu* getSubMenuFromName(const QString& menuName, QMenu* menu);
|
|
|
|
QMenu* getMenuParent(const QString& menuName, QString& finalMenuPart);
|
|
|
|
|
|
|
|
QAction* getMenuAction(const QString& menuName);
|
2014-02-25 12:19:30 -08:00
|
|
|
int findPositionOfMenuItem(QMenu* menu, const QString& searchMenuItem);
|
2014-03-03 12:03:56 -08:00
|
|
|
int positionBeforeSeparatorIfNeeded(QMenu* menu, int requestedPosition);
|
2014-02-24 23:42:05 -08:00
|
|
|
QMenu* getMenu(const QString& menuName);
|
2014-04-02 18:07:55 -07:00
|
|
|
|
2014-02-24 23:42:05 -08:00
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
QHash<QString, QAction*> _actionHash;
|
2014-08-07 16:37:36 -07:00
|
|
|
InboundAudioStream::Settings _receivedAudioStreamSettings;
|
2013-08-15 10:46:51 -07:00
|
|
|
BandwidthDialog* _bandwidthDialog;
|
|
|
|
float _fieldOfView; /// in Degrees, doesn't apply to HMD like Oculus
|
2014-05-05 16:19:09 -07:00
|
|
|
float _realWorldFieldOfView; // The actual FOV set by the user's monitor size and view distance
|
2013-11-15 10:17:52 -08:00
|
|
|
float _faceshiftEyeDeflection;
|
2013-08-15 10:46:51 -07:00
|
|
|
FrustumDrawMode _frustumDrawMode;
|
|
|
|
ViewFrustumOffset _viewFrustumOffset;
|
2014-01-22 13:57:59 -08:00
|
|
|
QPointer<MetavoxelEditor> _MetavoxelEditor;
|
2014-04-15 00:30:01 +02:00
|
|
|
QPointer<ScriptEditorWindow> _ScriptEditor;
|
2014-03-07 16:41:13 +02:00
|
|
|
QPointer<ChatWindow> _chatWindow;
|
2014-05-27 08:03:46 -07:00
|
|
|
QDialog* _jsConsole;
|
2014-03-08 23:53:44 -08:00
|
|
|
OctreeStatsDialog* _octreeStatsDialog;
|
2013-10-29 16:16:58 -07:00
|
|
|
LodToolsDialog* _lodToolsDialog;
|
2014-07-01 20:03:05 -07:00
|
|
|
UserLocationsDialog* _userLocationsDialog;
|
2014-08-07 17:45:27 -07:00
|
|
|
#ifdef Q_OS_MAC
|
|
|
|
SpeechRecognizer _speechRecognizer;
|
|
|
|
#endif
|
2013-09-26 16:26:49 -07:00
|
|
|
int _maxVoxels;
|
2013-10-30 11:01:37 -07:00
|
|
|
float _voxelSizeScale;
|
2014-06-13 10:53:11 -07:00
|
|
|
float _oculusUIAngularSize;
|
|
|
|
float _sixenseReticleMoveSpeed;
|
|
|
|
bool _invertSixenseButtons;
|
2014-04-11 15:55:48 -07:00
|
|
|
bool _automaticAvatarLOD;
|
|
|
|
float _avatarLODDecreaseFPS;
|
|
|
|
float _avatarLODIncreaseFPS;
|
2014-03-24 16:45:44 -07:00
|
|
|
float _avatarLODDistanceMultiplier;
|
2013-10-30 11:01:37 -07:00
|
|
|
int _boundaryLevelAdjust;
|
2013-10-07 17:46:22 -07:00
|
|
|
QAction* _useVoxelShader;
|
2013-11-25 15:13:31 -08:00
|
|
|
int _maxVoxelPacketsPerSecond;
|
2014-01-30 22:23:31 +01:00
|
|
|
QString replaceLastOccurrence(QChar search, QChar replace, QString string);
|
2014-02-12 21:22:21 -08:00
|
|
|
quint64 _lastAdjust;
|
2014-03-24 16:45:44 -07:00
|
|
|
quint64 _lastAvatarDetailDrop;
|
2014-02-27 18:00:58 -08:00
|
|
|
SimpleMovingAverage _fpsAverage;
|
2014-03-26 16:01:07 -07:00
|
|
|
SimpleMovingAverage _fastFPSAverage;
|
2014-02-24 11:11:36 -08:00
|
|
|
QAction* _loginAction;
|
2014-02-27 23:15:57 +01:00
|
|
|
QPointer<PreferencesDialog> _preferencesDialog;
|
2014-05-04 16:24:23 -07:00
|
|
|
QPointer<AttachmentsDialog> _attachmentsDialog;
|
2014-05-19 16:55:33 -07:00
|
|
|
QPointer<AnimationsDialog> _animationsDialog;
|
2014-06-11 14:57:05 -07:00
|
|
|
QPointer<LoginDialog> _loginDialog;
|
2014-08-28 12:21:55 -07:00
|
|
|
bool _hasLoginDialogDisplayed;
|
2014-03-10 16:01:53 +02:00
|
|
|
QAction* _chatAction;
|
2014-04-15 19:36:02 +02:00
|
|
|
QString _snapshotsLocation;
|
2014-05-14 00:28:11 -07:00
|
|
|
QString _scriptsLocation;
|
2014-07-17 11:43:30 -07:00
|
|
|
QByteArray _walletPrivateKey;
|
|
|
|
|
2013-08-12 12:29:01 -07:00
|
|
|
};
|
|
|
|
|
2013-08-15 10:46:51 -07:00
|
|
|
namespace MenuOption {
|
2013-09-11 22:08:07 +02:00
|
|
|
const QString AboutApp = "About Interface";
|
2014-04-23 12:09:54 -07:00
|
|
|
const QString AlignForearmsWithWrists = "Align Forearms with Wrists";
|
2014-05-14 15:29:16 -07:00
|
|
|
const QString AlternateIK = "Alternate IK";
|
2013-08-19 11:45:43 -07:00
|
|
|
const QString AmbientOcclusion = "Ambient Occlusion";
|
2014-05-19 16:55:33 -07:00
|
|
|
const QString Animations = "Animations...";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString Atmosphere = "Atmosphere";
|
2014-05-04 16:24:23 -07:00
|
|
|
const QString Attachments = "Attachments...";
|
2014-08-10 22:47:27 -07:00
|
|
|
const QString AudioFilter = "Audio Filter Bank";
|
|
|
|
const QString AudioFilterFlat = "Flat Response";
|
|
|
|
const QString AudioFilterTrebleCut= "Treble Cut";
|
|
|
|
const QString AudioFilterBassCut = "Bass Cut";
|
|
|
|
const QString AudioFilterSmiley = "Smiley Curve";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString AudioNoiseReduction = "Audio Noise Reduction";
|
2014-04-22 06:53:59 -04:00
|
|
|
const QString AudioScope = "Audio Scope";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString AudioScopeFiftyFrames = "Fifty";
|
2014-05-27 23:24:28 -04:00
|
|
|
const QString AudioScopeFiveFrames = "Five";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString AudioScopeFrames = "Display Frames";
|
|
|
|
const QString AudioScopePause = "Pause Audio Scope";
|
2014-05-27 23:24:28 -04:00
|
|
|
const QString AudioScopeTwentyFrames = "Twenty";
|
2014-07-22 14:21:53 -07:00
|
|
|
const QString AudioStats = "Audio Stats";
|
2014-07-30 12:04:03 -07:00
|
|
|
const QString AudioStatsShowInjectedStreams = "Audio Stats Show Injected Streams";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString AudioSpatialProcessingAlternateDistanceAttenuate = "Alternate distance attenuation";
|
2014-04-14 09:43:29 -07:00
|
|
|
const QString AudioSpatialProcessing = "Audio Spatial Processing";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString AudioSpatialProcessingDontDistanceAttenuate = "Don't calculate distance attenuation";
|
2014-04-15 19:57:37 -07:00
|
|
|
const QString AudioSpatialProcessingHeadOriented = "Head Oriented";
|
2014-04-16 16:43:01 -07:00
|
|
|
const QString AudioSpatialProcessingIncludeOriginal = "Includes Network Original";
|
2014-04-15 19:57:37 -07:00
|
|
|
const QString AudioSpatialProcessingPreDelay = "Add Pre-Delay";
|
|
|
|
const QString AudioSpatialProcessingProcessLocalAudio = "Process Local Audio";
|
|
|
|
const QString AudioSpatialProcessingRenderPaths = "Render Paths";
|
|
|
|
const QString AudioSpatialProcessingSeparateEars = "Separate Ears";
|
|
|
|
const QString AudioSpatialProcessingSlightlyRandomSurfaces = "Slightly Random Surfaces";
|
|
|
|
const QString AudioSpatialProcessingStereoSource = "Stereo Source";
|
|
|
|
const QString AudioSpatialProcessingWithDiffusions = "With Diffusions";
|
2014-09-05 18:30:39 -07:00
|
|
|
const QString AudioSourceInject = "Generated Audio";
|
|
|
|
const QString AudioSourcePinkNoise = "Pink Noise";
|
|
|
|
const QString AudioSourceSine440 = "Sine 440hz";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString Avatars = "Avatars";
|
2014-05-27 11:43:34 -07:00
|
|
|
const QString AvatarsReceiveShadows = "Avatars Receive Shadows";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString Bandwidth = "Bandwidth Display";
|
|
|
|
const QString BandwidthDetails = "Bandwidth Details";
|
2014-08-19 19:40:27 -07:00
|
|
|
const QString BlueSpeechSphere = "Blue Sphere While Speaking";
|
2014-02-24 17:43:47 -08:00
|
|
|
const QString BuckyBalls = "Bucky Balls";
|
2014-05-29 12:48:41 -07:00
|
|
|
const QString CascadedShadows = "Cascaded";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString Chat = "Chat...";
|
2013-11-05 12:30:38 -08:00
|
|
|
const QString ChatCircling = "Chat Circling";
|
2014-08-19 17:26:01 -07:00
|
|
|
const QString CollideAsRagdoll = "Collide With Self (Ragdoll)";
|
|
|
|
const QString CollideWithAvatars = "Collide With Other Avatars";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString CollideWithEnvironment = "Collide With World Boundaries";
|
2014-01-22 13:34:13 -08:00
|
|
|
const QString CollideWithParticles = "Collide With Particles";
|
|
|
|
const QString CollideWithVoxels = "Collide With Voxels";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString Collisions = "Collisions";
|
2014-05-26 09:58:06 -07:00
|
|
|
const QString Console = "Console...";
|
2014-08-01 13:44:06 -07:00
|
|
|
const QString ControlWithSpeech = "Control With Speech";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString DecreaseAvatarSize = "Decrease Avatar Size";
|
|
|
|
const QString DecreaseVoxelSize = "Decrease Voxel Size";
|
2014-07-16 12:22:27 -07:00
|
|
|
const QString DisableActivityLogger = "Disable Activity Logger";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString DisableAutoAdjustLOD = "Disable Automatically Adjusting LOD";
|
2014-06-09 17:50:29 -07:00
|
|
|
const QString DisableNackPackets = "Disable NACK Packets";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString DisplayFrustum = "Display Frustum";
|
2014-08-19 17:26:01 -07:00
|
|
|
const QString DisplayHands = "Show Hand Info";
|
|
|
|
const QString DisplayHandTargets = "Show Hand Targets";
|
2014-05-07 17:32:51 -07:00
|
|
|
const QString DisplayModelBounds = "Display Model Bounds";
|
|
|
|
const QString DisplayModelElementChildProxies = "Display Model Element Children";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString DisplayModelElementProxy = "Display Model Element Bounds";
|
2014-05-29 12:12:23 -07:00
|
|
|
const QString DisplayTimingDetails = "Display Timing Details";
|
2013-11-07 14:10:09 -08:00
|
|
|
const QString DontFadeOnVoxelServerChanges = "Don't Fade In/Out on Voxel Server Changes";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString EchoLocalAudio = "Echo Local Audio";
|
|
|
|
const QString EchoServerAudio = "Echo Server Audio";
|
|
|
|
const QString Enable3DTVMode = "Enable 3DTV Mode";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString EnableGlowEffect = "Enable Glow Effect (Warning: Poor Oculus Performance)";
|
2014-06-10 15:03:07 -07:00
|
|
|
const QString EnableVRMode = "Enable VR Mode";
|
2014-07-11 16:08:37 -07:00
|
|
|
const QString ExpandMyAvatarSimulateTiming = "Expand /myAvatar/simulation";
|
|
|
|
const QString ExpandMyAvatarTiming = "Expand /myAvatar";
|
|
|
|
const QString ExpandOtherAvatarTiming = "Expand /otherAvatar";
|
|
|
|
const QString ExpandPaintGLTiming = "Expand /paintGL";
|
|
|
|
const QString ExpandUpdateTiming = "Expand /update";
|
2014-04-09 11:14:47 -07:00
|
|
|
const QString Faceplus = "Faceplus";
|
2014-03-13 15:17:16 -07:00
|
|
|
const QString Faceshift = "Faceshift";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString FilterSixense = "Smooth Sixense Movement";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString FirstPerson = "First Person";
|
|
|
|
const QString FrameTimer = "Show Timer";
|
|
|
|
const QString FrustumRenderMode = "Render Mode";
|
|
|
|
const QString Fullscreen = "Fullscreen";
|
2013-10-23 10:30:42 -07:00
|
|
|
const QString FullscreenMirror = "Fullscreen Mirror";
|
2013-08-19 11:01:57 -07:00
|
|
|
const QString GlowMode = "Cycle Glow Mode";
|
2014-04-18 17:47:21 -07:00
|
|
|
const QString GlowWhenSpeaking = "Glow When Speaking";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString GoHome = "Go Home";
|
2013-08-26 14:06:23 -07:00
|
|
|
const QString GoToDomain = "Go To Domain...";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString GoTo = "Go To...";
|
2013-08-26 14:06:23 -07:00
|
|
|
const QString GoToLocation = "Go To Location...";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString HeadMouse = "Head Mouse";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString IncreaseAvatarSize = "Increase Avatar Size";
|
|
|
|
const QString IncreaseVoxelSize = "Increase Voxel Size";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString LoadScript = "Open and Run Script File...";
|
|
|
|
const QString LoadScriptURL = "Open and Run Script from URL...";
|
2013-10-29 16:16:58 -07:00
|
|
|
const QString LodTools = "LOD Tools";
|
2013-10-09 13:00:05 -07:00
|
|
|
const QString Login = "Login";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString Log = "Log";
|
2014-02-21 17:13:22 -08:00
|
|
|
const QString Logout = "Logout";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString LowVelocityFilter = "Low Velocity Filter";
|
2014-01-21 11:43:15 -08:00
|
|
|
const QString MetavoxelEditor = "Metavoxel Editor...";
|
2013-12-11 18:00:17 -08:00
|
|
|
const QString Metavoxels = "Metavoxels";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString Mirror = "Mirror";
|
2014-05-07 11:48:32 -07:00
|
|
|
const QString ModelOptions = "Model Options";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString Models = "Models";
|
2013-11-19 11:09:02 -08:00
|
|
|
const QString MoveWithLean = "Move with Lean";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString MuteAudio = "Mute Microphone";
|
2014-05-07 12:57:11 -07:00
|
|
|
const QString MuteEnvironment = "Mute Environment";
|
2014-06-26 16:06:49 -07:00
|
|
|
const QString MyLocations = "My Locations...";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString NameLocation = "Name this location";
|
2013-10-21 16:02:10 -07:00
|
|
|
const QString NewVoxelCullingMode = "New Voxel Culling Mode";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString ObeyEnvironmentalGravity = "Obey Environmental Gravity";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString OctreeStats = "Voxel and Particle Statistics";
|
2013-09-04 17:33:57 -07:00
|
|
|
const QString OffAxisProjection = "Off-Axis Projection";
|
2013-10-21 16:02:10 -07:00
|
|
|
const QString OldVoxelCullingMode = "Old Voxel Culling Mode";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString Pair = "Pair";
|
2014-02-24 17:43:47 -08:00
|
|
|
const QString Particles = "Particles";
|
2013-11-13 23:04:51 -08:00
|
|
|
const QString PasteToVoxel = "Paste to Voxel...";
|
2014-08-19 17:26:01 -07:00
|
|
|
const QString PipelineWarnings = "Log Render Pipeline Warnings";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString Preferences = "Preferences...";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString Quit = "Quit";
|
2014-02-13 18:19:20 -08:00
|
|
|
const QString ReloadAllScripts = "Reload All Scripts";
|
2014-08-19 17:26:01 -07:00
|
|
|
const QString RenderBoundingCollisionShapes = "Show Bounding Collision Shapes";
|
|
|
|
const QString RenderFocusIndicator = "Show Eye Focus";
|
|
|
|
const QString RenderHeadCollisionShapes = "Show Head Collision Shapes";
|
|
|
|
const QString RenderLookAtVectors = "Show Look-at Vectors";
|
|
|
|
const QString RenderSkeletonCollisionShapes = "Show Skeleton Collision Shapes";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString ResetAvatarSize = "Reset Avatar Size";
|
2014-04-02 18:07:55 -07:00
|
|
|
const QString RunningScripts = "Running Scripts";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString RunTimingTests = "Run Timing Tests";
|
2014-04-15 00:30:01 +02:00
|
|
|
const QString ScriptEditor = "Script Editor...";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString SettingsExport = "Export Settings";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString SettingsImport = "Import Settings";
|
2014-05-16 09:30:34 -07:00
|
|
|
const QString ShowBordersModelNodes = "Show Model Nodes";
|
|
|
|
const QString ShowBordersParticleNodes = "Show Particle Nodes";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString ShowBordersVoxelNodes = "Show Voxel Nodes";
|
2014-04-18 14:26:34 -07:00
|
|
|
const QString ShowIKConstraints = "Show IK Constraints";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString SimpleShadows = "Simple";
|
|
|
|
const QString SixenseMouseInput = "Enable Sixense Mouse Input";
|
2014-07-21 12:35:46 -07:00
|
|
|
const QString SixenseLasers = "Enable Sixense UI Lasers";
|
2014-05-23 15:59:27 -07:00
|
|
|
const QString StandOnNearbyFloors = "Stand on nearby floors";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString Stars = "Stars";
|
|
|
|
const QString Stats = "Stats";
|
2014-06-06 10:15:09 -07:00
|
|
|
const QString StereoAudio = "Stereo Audio";
|
2014-02-13 18:19:20 -08:00
|
|
|
const QString StopAllScripts = "Stop All Scripts";
|
2014-07-10 16:16:54 -07:00
|
|
|
const QString StringHair = "String Hair";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString SuppressShortTimings = "Suppress Timings Less than 10ms";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString TestPing = "Test Ping";
|
|
|
|
const QString TransmitterDrive = "Transmitter Drive";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString TurnWithHead = "Turn using Head";
|
2014-05-04 15:23:31 -07:00
|
|
|
const QString UploadAttachment = "Upload Attachment Model";
|
2014-03-26 15:04:45 -07:00
|
|
|
const QString UploadHead = "Upload Head Model";
|
|
|
|
const QString UploadSkeleton = "Upload Skeleton Model";
|
2014-07-09 11:32:38 -07:00
|
|
|
const QString UserInterface = "User Interface";
|
2014-03-13 15:17:16 -07:00
|
|
|
const QString Visage = "Visage";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString VoxelMode = "Cycle Voxel Mode";
|
2014-04-03 16:48:56 -07:00
|
|
|
const QString Voxels = "Voxels";
|
2013-08-15 10:46:51 -07:00
|
|
|
const QString VoxelTextures = "Voxel Textures";
|
2014-08-19 17:26:01 -07:00
|
|
|
const QString WalletPrivateKey = "Wallet Private Key...";
|
2014-09-05 13:51:22 -07:00
|
|
|
const QString Wireframe = "Wireframe";
|
2013-08-15 10:46:51 -07:00
|
|
|
}
|
|
|
|
|
2014-03-25 00:17:19 -07:00
|
|
|
void sendFakeEnterEvent();
|
|
|
|
|
2014-04-09 12:03:17 -07:00
|
|
|
#endif // hifi_Menu_h
|