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