History

merge upstream master into "radians" project

Andrew Meadows committed 12 years ago

Commit 793a7602 parents aa8c2fc 19c60ce63 files · +4447 −444Browse files

Showing the changes to interface/src/Menu.cpp (1 of 63 files). Show all

Unified · Split

interface/src/Menu.cpp+50−13
@@ -26,6 +26,7 @@ · 25 unmodified lines
26#include <QWindow>26#include <QWindow>
27 27
28#include <AccountManager.h>28#include <AccountManager.h>
29#include <XmppClient.h>
29#include <UUID.h>30#include <UUID.h>
30 31
31#include "Application.h"32#include "Application.h"
@@ -66,7 +67,7 @@ Menu::Menu() : · 34 unmodified lines
66 _faceshiftEyeDeflection(DEFAULT_FACESHIFT_EYE_DEFLECTION),67 _faceshiftEyeDeflection(DEFAULT_FACESHIFT_EYE_DEFLECTION),
67 _frustumDrawMode(FRUSTUM_DRAW_MODE_ALL),68 _frustumDrawMode(FRUSTUM_DRAW_MODE_ALL),
68 _viewFrustumOffset(DEFAULT_FRUSTUM_OFFSET),69 _viewFrustumOffset(DEFAULT_FRUSTUM_OFFSET),
69 _voxelStatsDialog(NULL),70 _octreeStatsDialog(NULL),
70 _lodToolsDialog(NULL),71 _lodToolsDialog(NULL),
71 _maxVoxels(DEFAULT_MAX_VOXELS_PER_SYSTEM),72 _maxVoxels(DEFAULT_MAX_VOXELS_PER_SYSTEM),
72 _voxelSizeScale(DEFAULT_OCTREE_SIZE_SCALE),73 _voxelSizeScale(DEFAULT_OCTREE_SIZE_SCALE),
@@ -162,6 +163,15 @@ Menu::Menu() : · 89 unmodified lines
162 addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor()));163 addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor()));
163 addActionToQMenuAndActionHash(toolsMenu, MenuOption::FstUploader, 0, Application::getInstance(), SLOT(uploadFST()));164 addActionToQMenuAndActionHash(toolsMenu, MenuOption::FstUploader, 0, Application::getInstance(), SLOT(uploadFST()));
164 165
166 _chatAction = addActionToQMenuAndActionHash(toolsMenu, MenuOption::Chat, 0, this, SLOT(showChat()));
167#ifdef HAVE_QXMPP
168 const QXmppClient& xmppClient = XmppClient::getInstance().getXMPPClient();
169 toggleChat();
170 connect(&xmppClient, SIGNAL(connected()), this, SLOT(toggleChat()));
171 connect(&xmppClient, SIGNAL(disconnected()), this, SLOT(toggleChat()));
172#else
173 _chatAction->setEnabled(false);
174#endif
165 175
166 QMenu* viewMenu = addMenu("View");176 QMenu* viewMenu = addMenu("View");
167 177
@@ -213,7 +223,7 @@ Menu::Menu() : · 45 unmodified lines
213 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Oscilloscope, 0, true);223 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Oscilloscope, 0, true);
214 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true);224 addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true);
215 addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails()));225 addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails()));
216 addActionToQMenuAndActionHash(viewMenu, MenuOption::VoxelStats, 0, this, SLOT(voxelStatsDetails()));226 addActionToQMenuAndActionHash(viewMenu, MenuOption::OctreeStats, 0, this, SLOT(octreeStatsDetails()));
217 227
218 QMenu* developerMenu = addMenu("Developer");228 QMenu* developerMenu = addMenu("Developer");
219 229
@@ -341,7 +351,7 @@ Menu::Menu() : · 121 unmodified lines
341 351
342Menu::~Menu() {352Menu::~Menu() {
343 bandwidthDetailsClosed();353 bandwidthDetailsClosed();
344 voxelStatsDetailsClosed();354 octreeStatsDetailsClosed();
345}355}
346 356
347void Menu::loadSettings(QSettings* settings) {357void Menu::loadSettings(QSettings* settings) {
@@ -1021,6 +1031,33 @@ void Menu::showMetavoxelEditor() { · 673 unmodified lines
1021 _MetavoxelEditor->raise();1031 _MetavoxelEditor->raise();
1022}1032}
1023 1033
1034void Menu::showChat() {
1035 if (!_chatWindow) {
1036 _chatWindow = new ChatWindow();
1037 QMainWindow* mainWindow = Application::getInstance()->getWindow();
1038
1039 // the height of the title bar is given by frameGeometry().height() - geometry().height()
1040 // however, frameGeometry() is initialised after showing (Qt queries the OS windowing system)
1041 // on the other hand, moving a window after showing it flickers; so just use some reasonable value
1042 int titleBarHeight = 16;
1043 _chatWindow->setGeometry(mainWindow->width() - _chatWindow->width(),
1044 mainWindow->geometry().y() + titleBarHeight,
1045 _chatWindow->width(),
1046 mainWindow->height() - titleBarHeight);
1047 _chatWindow->show();
1048 }
1049 _chatWindow->raise();
1050}
1051
1052void Menu::toggleChat() {
1053#ifdef HAVE_QXMPP
1054 _chatAction->setEnabled(XmppClient::getInstance().getXMPPClient().isConnected());
1055 if (!_chatAction->isEnabled() && _chatWindow) {
1056 _chatWindow->close();
1057 }
1058#endif
1059}
1060
1024void Menu::audioMuteToggled() {1061void Menu::audioMuteToggled() {
1025 QAction *muteAction = _actionHash.value(MenuOption::MuteAudio);1062 QAction *muteAction = _actionHash.value(MenuOption::MuteAudio);
1026 muteAction->setChecked(Application::getInstance()->getAudio()->getMuted());1063 muteAction->setChecked(Application::getInstance()->getAudio()->getMuted());
@@ -1033,20 +1070,20 @@ void Menu::bandwidthDetailsClosed() { · 6 unmodified lines
1033 }1070 }
1034}1071}
1035 1072
1036void Menu::voxelStatsDetails() {1073void Menu::octreeStatsDetails() {
1037 if (!_voxelStatsDialog) {1074 if (!_octreeStatsDialog) {
1038 _voxelStatsDialog = new VoxelStatsDialog(Application::getInstance()->getGLWidget(),1075 _octreeStatsDialog = new OctreeStatsDialog(Application::getInstance()->getGLWidget(),
1039 Application::getInstance()->getOcteeSceneStats());1076 Application::getInstance()->getOcteeSceneStats());
1040 connect(_voxelStatsDialog, SIGNAL(closed()), SLOT(voxelStatsDetailsClosed()));1077 connect(_octreeStatsDialog, SIGNAL(closed()), SLOT(octreeStatsDetailsClosed()));
1041 _voxelStatsDialog->show();1078 _octreeStatsDialog->show();
1042 }1079 }
1043 _voxelStatsDialog->raise();1080 _octreeStatsDialog->raise();
1044}1081}
1045 1082
1046void Menu::voxelStatsDetailsClosed() {1083void Menu::octreeStatsDetailsClosed() {
1047 if (_voxelStatsDialog) {1084 if (_octreeStatsDialog) {
1048 delete _voxelStatsDialog;1085 delete _octreeStatsDialog;
1049 _voxelStatsDialog = NULL;1086 _octreeStatsDialog = NULL;
1050 }1087 }
1051}1088}
1052 1089