Code Review for Job #19648
Showing the changes to interface/src/Menu.cpp (1 of 11 files). Show all
Unified · Split
| @@ -73,6 +73,11 @@ const int ONE_SECOND_OF_FRAMES = 60; · 72 unmodified lines | ||
| 73 | 73 | const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES; |
| 74 | 74 | const float MUTE_RADIUS = 50; |
| 75 | 75 | |
| 76 | +const QString CONSOLE_TITLE = "Scripting Console"; | |
| 77 | +const float CONSOLE_WINDOW_OPACITY = 0.95f; | |
| 78 | +const int CONSOLE_WIDTH = 800; | |
| 79 | +const int CONSOLE_HEIGHT = 200; | |
| 80 | + | |
| 76 | 81 | Menu::Menu() : |
| 77 | 82 | _actionHash(), |
| 78 | 83 | _audioJitterBufferSamples(0), |
| @@ -81,6 +86,7 @@ Menu::Menu() : · 2 unmodified lines | ||
| 81 | 86 | _faceshiftEyeDeflection(DEFAULT_FACESHIFT_EYE_DEFLECTION), |
| 82 | 87 | _frustumDrawMode(FRUSTUM_DRAW_MODE_ALL), |
| 83 | 88 | _viewFrustumOffset(DEFAULT_FRUSTUM_OFFSET), |
| 89 | + _jsConsole(NULL), | |
| 84 | 90 | _octreeStatsDialog(NULL), |
| 85 | 91 | _lodToolsDialog(NULL), |
| 86 | 92 | _maxVoxels(DEFAULT_MAX_VOXELS_PER_SYSTEM), |
| @@ -227,6 +233,12 @@ Menu::Menu() : · 140 unmodified lines | ||
| 227 | 233 | _chatWindow = new ChatWindow(Application::getInstance()->getWindow()); |
| 228 | 234 | #endif |
| 229 | 235 | |
| 236 | + addActionToQMenuAndActionHash(toolsMenu, | |
| 237 | + MenuOption::Console, | |
| 238 | + Qt::CTRL | Qt::ALT | Qt::Key_J, | |
| 239 | + this, | |
| 240 | + SLOT(toggleConsole())); | |
| 241 | + | |
| 230 | 242 | QMenu* viewMenu = addMenu("View"); |
| 231 | 243 | |
| 232 | 244 | addCheckableActionToQMenuAndActionHash(viewMenu, |
| @@ -1258,6 +1270,25 @@ void Menu::toggleChat() { · 1025 unmodified lines | ||
| 1258 | 1270 | #endif |
| 1259 | 1271 | } |
| 1260 | 1272 | |
| 1273 | +void Menu::toggleConsole() { | |
| 1274 | + QMainWindow* mainWindow = Application::getInstance()->getWindow(); | |
| 1275 | + if (!_jsConsole) { | |
| 1276 | + QDialog* dialog = new QDialog(mainWindow, Qt::WindowStaysOnTopHint); | |
| 1277 | + QVBoxLayout* layout = new QVBoxLayout(dialog); | |
| 1278 | + dialog->setLayout(new QVBoxLayout(dialog)); | |
| 1279 | + | |
| 1280 | + dialog->resize(QSize(CONSOLE_WIDTH, CONSOLE_HEIGHT)); | |
| 1281 | + layout->setMargin(0); | |
| 1282 | + layout->setSpacing(0); | |
| 1283 | + layout->addWidget(new JSConsole(dialog)); | |
| 1284 | + dialog->setWindowOpacity(CONSOLE_WINDOW_OPACITY); | |
| 1285 | + dialog->setWindowTitle(CONSOLE_TITLE); | |
| 1286 | + | |
| 1287 | + _jsConsole = dialog; | |
| 1288 | + } | |
| 1289 | + _jsConsole->setVisible(!_jsConsole->isVisible()); | |
| 1290 | +} | |
| 1291 | + | |
| 1261 | 1292 | void Menu::audioMuteToggled() { |
| 1262 | 1293 | QAction *muteAction = _actionHash.value(MenuOption::MuteAudio); |
| 1263 | 1294 | muteAction->setChecked(Application::getInstance()->getAudio()->getMuted()); |