diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 67fe5caf16..8f56352024 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -495,6 +495,11 @@ void Application::keyPressEvent(QKeyEvent* event) { bool isShifted = event->modifiers().testFlag(Qt::ShiftModifier); switch (event->key()) { + case Qt::Key_Shift: + if (Menu::getInstance()->isOptionChecked(MenuOption::VoxelSelectMode)) { + _pasteMode = true; + } + break; case Qt::Key_BracketLeft: case Qt::Key_BracketRight: case Qt::Key_BraceLeft: @@ -726,6 +731,9 @@ void Application::keyReleaseEvent(QKeyEvent* event) { } switch (event->key()) { + case Qt::Key_Shift: + _pasteMode = false; + break; case Qt::Key_E: _myAvatar.setDriveKeys(UP, 0); break; @@ -1201,22 +1209,17 @@ void Application::exportVoxels() { } void Application::importVoxels() { - _pasteMode = false; - if (_voxelImporter.exec()) { qDebug("[DEBUG] Import succedded.\n"); - if (_voxelImporter.getimportIntoClipboard()) { + if (_voxelImporter.getImportIntoClipboard()) { _clipboard.killLocalVoxels(); _voxelImporter.getVoxelSystem()->copySubTreeIntoNewTree( _voxelImporter.getVoxelSystem()->getVoxelAt(0, 0, 0, 1), &_clipboard, true); - } else { - _pasteMode = true; + _voxelImporter.reset(); } - - } else { qDebug("[DEBUG] Import failed.\n"); } @@ -1239,12 +1242,6 @@ void Application::copyVoxels() { // then copy onto it _voxels.copySubTreeIntoNewTree(selectedNode, &_clipboard, true); } - - _pasteMode = false; -} - -void Application::togglePasteMode() { - _pasteMode = !_pasteMode; } void Application::pasteVoxels() { diff --git a/interface/src/Application.h b/interface/src/Application.h index f85e5136f7..737d931321 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -140,7 +140,6 @@ public slots: void importVoxels(); void cutVoxels(); void copyVoxels(); - void togglePasteMode(); void pasteVoxels(); void setRenderVoxels(bool renderVoxels); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 434ecbdf58..0e5f8bb5b9 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -248,7 +248,7 @@ Menu::Menu() : addActionToQMenuAndActionHash(voxelMenu, MenuOption::ImportVoxels, Qt::CTRL | Qt::Key_I, appInstance, SLOT(importVoxels())); addActionToQMenuAndActionHash(voxelMenu, MenuOption::CutVoxels, Qt::CTRL | Qt::Key_X, appInstance, SLOT(cutVoxels())); addActionToQMenuAndActionHash(voxelMenu, MenuOption::CopyVoxels, Qt::CTRL | Qt::Key_C, appInstance, SLOT(copyVoxels())); - addActionToQMenuAndActionHash(voxelMenu, MenuOption::PasteVoxels, Qt::CTRL | Qt::Key_V, appInstance, SLOT(togglePasteMode())); + addActionToQMenuAndActionHash(voxelMenu, MenuOption::PasteVoxels, Qt::CTRL | Qt::Key_V, appInstance, SLOT(pasteVoxels())); QMenu* debugMenu = addMenu("Debug"); diff --git a/interface/src/VoxelImporter.h b/interface/src/VoxelImporter.h index 4ab230d6fb..9b25adcee0 100644 --- a/interface/src/VoxelImporter.h +++ b/interface/src/VoxelImporter.h @@ -26,7 +26,7 @@ public: bool getImportWaiting() const { return _importWaiting; } VoxelSystem* getVoxelSystem() { return &_voxelSystem; } - bool getimportIntoClipboard() const { return _importDialog.getImportIntoClipboard(); } + bool getImportIntoClipboard() const { return _importDialog.getImportIntoClipboard(); } public slots: int exec();