Showing the changes to interface/src/Menu.cpp (1 of 3 files). Show all
Unified · Split
| @@ -34,6 +34,7 @@ · 33 unmodified lines | ||
| 34 | 34 | #include <UUID.h> |
| 35 | 35 | |
| 36 | 36 | #include "Application.h" |
| 37 | +#include "AccountManager.h" | |
| 37 | 38 | #include "Menu.h" |
| 38 | 39 | #include "scripting/MenuScriptingInterface.h" |
| 39 | 40 | #include "Util.h" |
| @@ -195,12 +196,12 @@ Menu::Menu() : · 155 unmodified lines | ||
| 195 | 196 | |
| 196 | 197 | addActionToQMenuAndActionHash(editMenu, MenuOption::Attachments, 0, this, SLOT(editAttachments())); |
| 197 | 198 | addActionToQMenuAndActionHash(editMenu, MenuOption::Animations, 0, this, SLOT(editAnimations())); |
| 198 | − | |
| 199 | + | |
| 199 | 200 | addDisabledActionAndSeparator(editMenu, "Physics"); |
| 200 | 201 | QObject* avatar = appInstance->getAvatar(); |
| 201 | − addCheckableActionToQMenuAndActionHash(editMenu, MenuOption::ObeyEnvironmentalGravity, Qt::SHIFT | Qt::Key_G, false, | |
| 202 | + addCheckableActionToQMenuAndActionHash(editMenu, MenuOption::ObeyEnvironmentalGravity, Qt::SHIFT | Qt::Key_G, false, | |
| 202 | 203 | avatar, SLOT(updateMotionBehaviorsFromMenu())); |
| 203 | − addCheckableActionToQMenuAndActionHash(editMenu, MenuOption::StandOnNearbyFloors, 0, true, | |
| 204 | + addCheckableActionToQMenuAndActionHash(editMenu, MenuOption::StandOnNearbyFloors, 0, true, | |
| 204 | 205 | avatar, SLOT(updateMotionBehaviorsFromMenu())); |
| 205 | 206 | |
| 206 | 207 | addAvatarCollisionSubMenu(editMenu); |
| @@ -1027,24 +1028,24 @@ void Menu::multipleDestinationsDecision(const QJsonObject& userData, const QJson · 820 unmodified lines | ||
| 1027 | 1028 | void Menu::muteEnvironment() { |
| 1028 | 1029 | int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment); |
| 1029 | 1030 | int packetSize = headerSize + sizeof(glm::vec3) + sizeof(float); |
| 1030 | − | |
| 1031 | + | |
| 1031 | 1032 | glm::vec3 position = Application::getInstance()->getAvatar()->getPosition(); |
| 1032 | − | |
| 1033 | + | |
| 1033 | 1034 | char* packet = (char*)malloc(packetSize); |
| 1034 | 1035 | populatePacketHeader(packet, PacketTypeMuteEnvironment); |
| 1035 | 1036 | memcpy(packet + headerSize, &position, sizeof(glm::vec3)); |
| 1036 | 1037 | memcpy(packet + headerSize + sizeof(glm::vec3), &MUTE_RADIUS, sizeof(float)); |
| 1037 | − | |
| 1038 | + | |
| 1038 | 1039 | QByteArray mutePacket(packet, packetSize); |
| 1039 | − | |
| 1040 | + | |
| 1040 | 1041 | // grab our audio mixer from the NodeList, if it exists |
| 1041 | 1042 | SharedNodePointer audioMixer = NodeList::getInstance()->soloNodeOfType(NodeType::AudioMixer); |
| 1042 | − | |
| 1043 | + | |
| 1043 | 1044 | if (audioMixer) { |
| 1044 | 1045 | // send off this mute packet |
| 1045 | 1046 | NodeList::getInstance()->writeDatagram(mutePacket, audioMixer); |
| 1046 | 1047 | } |
| 1047 | − | |
| 1048 | + | |
| 1048 | 1049 | free(packet); |
| 1049 | 1050 | } |
| 1050 | 1051 | |
| @@ -1202,19 +1203,24 @@ void Menu::showScriptEditor() { · 151 unmodified lines | ||
| 1202 | 1203 | } |
| 1203 | 1204 | |
| 1204 | 1205 | void Menu::showChat() { |
| 1205 | − QMainWindow* mainWindow = Application::getInstance()->getWindow(); | |
| 1206 | − if (!_chatWindow) { | |
| 1207 | − _chatWindow = new ChatWindow(mainWindow); | |
| 1208 | − } | |
| 1209 | − if (_chatWindow->isHidden()) { | |
| 1210 | − _chatWindow->show(); | |
| 1206 | + if (AccountManager::getInstance().isLoggedIn()) { | |
| 1207 | + QMainWindow* mainWindow = Application::getInstance()->getWindow(); | |
| 1208 | + if (!_chatWindow) { | |
| 1209 | + _chatWindow = new ChatWindow(mainWindow); | |
| 1210 | + } | |
| 1211 | + | |
| 1212 | + if (_chatWindow->isHidden()) { | |
| 1213 | + _chatWindow->show(); | |
| 1214 | + } | |
| 1215 | + } else { | |
| 1216 | + Application::getInstance()->getTrayIcon()->showMessage("Interface", "You need to login to be able to chat with others on this domain."); | |
| 1211 | 1217 | } |
| 1212 | 1218 | } |
| 1213 | 1219 | |
| 1214 | 1220 | void Menu::toggleChat() { |
| 1215 | 1221 | #ifdef HAVE_QXMPP |
| 1216 | 1222 | _chatAction->setEnabled(XmppClient::getInstance().getXMPPClient().isConnected()); |
| 1217 | − if (!_chatAction->isEnabled() && _chatWindow) { | |
| 1223 | + if (!_chatAction->isEnabled() && _chatWindow && AccountManager::getInstance().isLoggedIn()) { | |
| 1218 | 1224 | if (_chatWindow->isHidden()) { |
| 1219 | 1225 | _chatWindow->show(); |
| 1220 | 1226 | } else { |