diff --git a/interface/resources/images/address-bar.svg b/interface/resources/images/address-bar.svg index 0a472cbe4e..dd907aa6c9 100644 --- a/interface/resources/images/address-bar.svg +++ b/interface/resources/images/address-bar.svg @@ -15,7 +15,7 @@ viewBox="0 0 1440 200" id="svg4136" inkscape:version="0.91 r13725" - sodipodi:docname="address-bar.svg"> + sodipodi:docname="address-bar.002.svg"> @@ -39,14 +39,14 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1840" + inkscape:window-width="1835" inkscape:window-height="1057" id="namedview4140" showgrid="false" - inkscape:zoom="0.8671875" - inkscape:cx="707.02439" + inkscape:zoom="0.61319416" + inkscape:cx="132.58366" inkscape:cy="52.468468" - inkscape:window-x="72" + inkscape:window-x="77" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg4136" /> @@ -59,6 +59,15 @@ y="30" rx="16.025024" ry="17.019567" /> + + diff --git a/interface/resources/images/darkgreyarrow.png b/interface/resources/images/darkgreyarrow.png new file mode 100644 index 0000000000..4c9a8a2bbf Binary files /dev/null and b/interface/resources/images/darkgreyarrow.png differ diff --git a/interface/resources/images/darkgreyarrow.svg b/interface/resources/images/darkgreyarrow.svg new file mode 100644 index 0000000000..2d049d90d7 --- /dev/null +++ b/interface/resources/images/darkgreyarrow.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/interface/resources/images/left-arrow.svg b/interface/resources/images/left-arrow.svg new file mode 100644 index 0000000000..cede9fa959 --- /dev/null +++ b/interface/resources/images/left-arrow.svg @@ -0,0 +1,50 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/interface/resources/images/lightgreyarrow.png b/interface/resources/images/lightgreyarrow.png new file mode 100644 index 0000000000..1e221f3c73 Binary files /dev/null and b/interface/resources/images/lightgreyarrow.png differ diff --git a/interface/resources/images/lightgreyarrow.svg b/interface/resources/images/lightgreyarrow.svg new file mode 100644 index 0000000000..fbe697c3e9 --- /dev/null +++ b/interface/resources/images/lightgreyarrow.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/interface/resources/images/sepline.png b/interface/resources/images/sepline.png new file mode 100644 index 0000000000..959fcee72f Binary files /dev/null and b/interface/resources/images/sepline.png differ diff --git a/interface/resources/images/sepline.svg b/interface/resources/images/sepline.svg new file mode 100644 index 0000000000..32afaf7148 --- /dev/null +++ b/interface/resources/images/sepline.svg @@ -0,0 +1,3 @@ + + +2015-06-12 18:23ZCanvas 1 Navi Bar diff --git a/interface/resources/qml/AddressBarDialog.qml b/interface/resources/qml/AddressBarDialog.qml index 3377b20d87..70cb22dc4d 100644 --- a/interface/resources/qml/AddressBarDialog.qml +++ b/interface/resources/qml/AddressBarDialog.qml @@ -45,19 +45,64 @@ DialogContainer { property int inputAreaHeight: 56.0 * root.scale // Height of the background's input area property int inputAreaStep: (height - inputAreaHeight) / 2 + Image { + id: backArrow + + source: "../images/left-arrow.svg" + scale: 0.9 + + anchors { + fill: parent + leftMargin: parent.height + hifi.layout.spacing + 6 + rightMargin: parent.height + hifi.layout.spacing * 60 + topMargin: parent.inputAreaStep + parent.inputAreaStep + hifi.layout.spacing + bottomMargin: parent.inputAreaStep + parent.inputAreaStep + hifi.layout.spacing + } + + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.LeftButton + onClicked: { + addressBarDialog.loadBack() + } + } + } + + Image { + id: forwardArrow + + source: "../images/darkgreyarrow.svg" + + anchors { + fill: parent + leftMargin: parent.height + hifi.layout.spacing * 9 + rightMargin: parent.height + hifi.layout.spacing * 53 + topMargin: parent.inputAreaStep + parent.inputAreaStep + hifi.layout.spacing + bottomMargin: parent.inputAreaStep + parent.inputAreaStep + hifi.layout.spacing + } + + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.LeftButton + onClicked: { + addressBarDialog.loadForward() + } + } + } + TextInput { id: addressLine anchors { fill: parent - leftMargin: parent.height + hifi.layout.spacing * 2 + leftMargin: parent.height + parent.height + hifi.layout.spacing * 5 rightMargin: hifi.layout.spacing * 2 topMargin: parent.inputAreaStep + hifi.layout.spacing bottomMargin: parent.inputAreaStep + hifi.layout.spacing } - font.pixelSize: hifi.fonts.pixelSize * root.scale + font.pixelSize: hifi.fonts.pixelSize * root.scale * 0.75 helperText: "Go to: place, @user, /path, network address" @@ -66,7 +111,7 @@ DialogContainer { addressBarDialog.loadAddress(addressLine.text) } } - + MouseArea { // Drag the icon width: parent.height @@ -82,6 +127,7 @@ DialogContainer { } } + /* MouseArea { // Drag the input rectangle width: parent.width - parent.height @@ -95,7 +141,7 @@ DialogContainer { maximumX: root.parent ? root.maximumX : 0 maximumY: root.parent ? root.maximumY + parent.inputAreaStep : 0 } - } + }*/ } } diff --git a/interface/src/devices/OculusManager.cpp b/interface/src/devices/OculusManager.cpp index 271d77bcde..de007f6c19 100644 --- a/interface/src/devices/OculusManager.cpp +++ b/interface/src/devices/OculusManager.cpp @@ -249,7 +249,7 @@ void OculusManager::connect(QOpenGLContext* shareContext) { _ovrHmd = ovrHmd_CreateDebug(ovrHmd_DK2); } #endif - + #endif if (!_ovrHmd) { diff --git a/interface/src/devices/SDL2Manager.cpp b/interface/src/devices/SDL2Manager.cpp index 32408fce18..e039a80b0d 100644 --- a/interface/src/devices/SDL2Manager.cpp +++ b/interface/src/devices/SDL2Manager.cpp @@ -74,9 +74,11 @@ SDL2Manager* SDL2Manager::getInstance() { } void SDL2Manager::focusOutEvent() { +#ifdef HAVE_SDL2 for (auto joystick : _openJoysticks) { joystick->focusOutEvent(); } +#endif } void SDL2Manager::update() { diff --git a/interface/src/ui/AddressBarDialog.cpp b/interface/src/ui/AddressBarDialog.cpp index 3c3a843586..80f51ff906 100644 --- a/interface/src/ui/AddressBarDialog.cpp +++ b/interface/src/ui/AddressBarDialog.cpp @@ -35,6 +35,16 @@ void AddressBarDialog::loadAddress(const QString& address) { } } +void AddressBarDialog::loadBack() { + qDebug() << "Called LoadBack"; + DependencyManager::get()->goBack(); +} + +void AddressBarDialog::loadForward() { + qDebug() << "Called LoadForward"; + DependencyManager::get()->goForward(); +} + void AddressBarDialog::displayAddressOfflineMessage() { OffscreenUi::error("That user or place is currently offline"); } diff --git a/interface/src/ui/AddressBarDialog.h b/interface/src/ui/AddressBarDialog.h index 395cf3c725..da54e29929 100644 --- a/interface/src/ui/AddressBarDialog.h +++ b/interface/src/ui/AddressBarDialog.h @@ -28,6 +28,8 @@ protected: void hide(); Q_INVOKABLE void loadAddress(const QString& address); + Q_INVOKABLE void loadBack(); + Q_INVOKABLE void loadForward(); }; #endif diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 6450f25208..84022d0fb9 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -1011,7 +1011,10 @@ bool AudioClient::outputLocalInjector(bool isStereo, AudioInjector* injector) { localOutput->moveToThread(injector->getLocalBuffer()->thread()); // have it be stopped when that local buffer is about to close - connect(injector->getLocalBuffer(), &AudioInjectorLocalBuffer::bufferEmpty, localOutput, &QAudioOutput::stop); + connect(localOutput, &QAudioOutput::stateChanged, this, &AudioClient::audioStateChanged); + connect(this, &AudioClient::audioFinished, localOutput, &QAudioOutput::stop); + connect(this, &AudioClient::audioFinished, injector, &AudioInjector::stop); + connect(injector->getLocalBuffer(), &QIODevice::aboutToClose, localOutput, &QAudioOutput::stop); qCDebug(audioclient) << "Starting QAudioOutput for local injector" << localOutput; @@ -1329,3 +1332,9 @@ void AudioClient::saveSettings() { windowSecondsForDesiredReduction.set(_receivedAudioStream.getWindowSecondsForDesiredReduction()); repetitionWithFade.set(_receivedAudioStream.getRepetitionWithFade()); } + +void AudioClient::audioStateChanged(QAudio::State state) { + if (state == QAudio::IdleState) { + emit audioFinished(); + } +} diff --git a/libraries/audio-client/src/AudioClient.h b/libraries/audio-client/src/AudioClient.h index 642edde84a..d2492e1064 100644 --- a/libraries/audio-client/src/AudioClient.h +++ b/libraries/audio-client/src/AudioClient.h @@ -188,6 +188,8 @@ signals: void receivedFirstPacket(); void disconnected(); + void audioFinished(); + protected: AudioClient(); ~AudioClient(); @@ -196,6 +198,9 @@ protected: deleteLater(); } +private slots: + void audioStateChanged(QAudio::State state); + private: void outputFormatChanged(); diff --git a/libraries/audio/src/AudioInjector.cpp b/libraries/audio/src/AudioInjector.cpp index 912351e21a..675a3b8b28 100644 --- a/libraries/audio/src/AudioInjector.cpp +++ b/libraries/audio/src/AudioInjector.cpp @@ -60,7 +60,6 @@ void AudioInjector::setIsFinished(bool isFinished) { if (_shouldDeleteAfterFinish) { // we've been asked to delete after finishing, trigger a queued deleteLater here - qCDebug(audio) << "AudioInjector triggering delete from setIsFinished"; QMetaObject::invokeMethod(this, "deleteLater", Qt::QueuedConnection); } } @@ -122,9 +121,6 @@ void AudioInjector::injectLocally() { success = _localAudioInterface->outputLocalInjector(_options.stereo, this); - // if we're not looping and the buffer tells us it is empty then emit finished - connect(_localBuffer, &AudioInjectorLocalBuffer::bufferEmpty, this, &AudioInjector::stop); - if (!success) { qCDebug(audio) << "AudioInjector::injectLocally could not output locally via _localAudioInterface"; } diff --git a/libraries/audio/src/AudioInjectorLocalBuffer.cpp b/libraries/audio/src/AudioInjectorLocalBuffer.cpp index f40e613437..27e93a678e 100644 --- a/libraries/audio/src/AudioInjectorLocalBuffer.cpp +++ b/libraries/audio/src/AudioInjectorLocalBuffer.cpp @@ -69,10 +69,7 @@ qint64 AudioInjectorLocalBuffer::readData(char* data, qint64 maxSize) { _currentOffset += bytesRead; } - if (!_shouldLoop && bytesRead == bytesToEnd) { - // we hit the end of the buffer, emit a signal - emit bufferEmpty(); - } else if (_shouldLoop && _currentOffset == _rawAudioArray.size()) { + if (_shouldLoop && _currentOffset == _rawAudioArray.size()) { _currentOffset = 0; } diff --git a/libraries/audio/src/AudioInjectorLocalBuffer.h b/libraries/audio/src/AudioInjectorLocalBuffer.h index 9753cbbd83..32a1221b78 100644 --- a/libraries/audio/src/AudioInjectorLocalBuffer.h +++ b/libraries/audio/src/AudioInjectorLocalBuffer.h @@ -32,9 +32,6 @@ public: void setCurrentOffset(int currentOffset) { _currentOffset = currentOffset; } void setVolume(float volume) { _volume = glm::clamp(volume, 0.0f, 1.0f); } -signals: - void bufferEmpty(); - private: qint64 recursiveReadFromFront(char* data, qint64 maxSize); diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index 3e83c6f559..e1bd01547e 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -48,6 +48,9 @@ #include "RenderablePolyVoxEntityItem.h" #include "EntitiesRendererLogging.h" +#include "DependencyManager.h" +#include "AddressManager.h" + EntityTreeRenderer::EntityTreeRenderer(bool wantScripts, AbstractViewStateInterface* viewState, AbstractScriptingServicesInterface* scriptingServices) : OctreeRenderer(), @@ -911,15 +914,13 @@ void EntityTreeRenderer::mouseMoveEvent(QMouseEvent* event, unsigned int deviceI bool precisionPicking = false; // for mouse moves we do not do precision picking RayToEntityIntersectionResult rayPickResult = findRayIntersectionWorker(ray, Octree::TryLock, precisionPicking); if (rayPickResult.intersects) { + //qCDebug(entitiesrenderer) << "mouseReleaseEvent over entity:" << rayPickResult.entityID; QScriptValueList entityScriptArgs = createMouseEventArgs(rayPickResult.entityID, event, deviceID); - // load the entity script if needed... QScriptValue entityScript = loadEntityScript(rayPickResult.entity); if (entityScript.property("mouseMoveEvent").isValid()) { entityScript.property("mouseMoveEvent").call(entityScript, entityScriptArgs); } - - //qCDebug(entitiesrenderer) << "mouseMoveEvent over entity:" << rayPickResult.entityID; emit mouseMoveOnEntity(rayPickResult, event, deviceID); if (entityScript.property("mouseMoveOnEntity").isValid()) { entityScript.property("mouseMoveOnEntity").call(entityScript, entityScriptArgs); diff --git a/libraries/entities/src/DeleteEntityOperator.cpp b/libraries/entities/src/DeleteEntityOperator.cpp index 051accc732..bb96b9698d 100644 --- a/libraries/entities/src/DeleteEntityOperator.cpp +++ b/libraries/entities/src/DeleteEntityOperator.cpp @@ -95,6 +95,7 @@ bool DeleteEntityOperator::preRecursion(OctreeElement* element) { EntityItemPointer theEntity = details.entity; bool entityDeleted = entityTreeElement->removeEntityItem(theEntity); // remove it from the element assert(entityDeleted); + (void)entityDeleted; // quite warning _tree->setContainingElement(details.entity->getEntityItemID(), NULL); // update or id to element lookup _foundCount++; } diff --git a/libraries/physics/src/MeshMassProperties.cpp b/libraries/physics/src/MeshMassProperties.cpp index ee2945422d..4e471f7870 100644 --- a/libraries/physics/src/MeshMassProperties.cpp +++ b/libraries/physics/src/MeshMassProperties.cpp @@ -270,7 +270,9 @@ void MeshMassProperties::computeMassProperties(const VectorOfPoints& points, con } // create some variables to hold temporary results + #ifdef DEBUG uint32_t numPoints = points.size(); + #endif const btVector3 p0(0.0f, 0.0f, 0.0f); btMatrix3x3 tetraInertia; btMatrix3x3 doubleDebugInertia; diff --git a/libraries/render-utils/src/TextRenderer3D.cpp b/libraries/render-utils/src/TextRenderer3D.cpp index 0eb560bf72..2f898542b9 100644 --- a/libraries/render-utils/src/TextRenderer3D.cpp +++ b/libraries/render-utils/src/TextRenderer3D.cpp @@ -451,7 +451,6 @@ TextRenderer3D::TextRenderer3D(const char* family, float pointSize, int weight, EffectType effect, int effectThickness, const QColor& color) : _effectType(effect), _effectThickness(effectThickness), - _pointSize(pointSize), _color(toGlm(color)), _font(loadFont3D(family)) { if (!_font) { diff --git a/libraries/render-utils/src/TextRenderer3D.h b/libraries/render-utils/src/TextRenderer3D.h index e61203b06f..9f6a16d743 100644 --- a/libraries/render-utils/src/TextRenderer3D.h +++ b/libraries/render-utils/src/TextRenderer3D.h @@ -65,8 +65,6 @@ private: // the thickness of the effect const int _effectThickness; - const float _pointSize; - // text color const glm::vec4 _color; diff --git a/libraries/shared/src/MatrixStack.h b/libraries/shared/src/MatrixStack.h index a02e284725..5a0b56ff9b 100644 --- a/libraries/shared/src/MatrixStack.h +++ b/libraries/shared/src/MatrixStack.h @@ -118,7 +118,9 @@ public: template void withPush(Function f) { + #ifdef DEBUG size_t startingDepth = size(); + #endif push(); f(); pop(); diff --git a/libraries/shared/src/PhysicsCollisionGroups.h b/libraries/shared/src/PhysicsCollisionGroups.h index cce9637cd4..08d83a29ca 100644 --- a/libraries/shared/src/PhysicsCollisionGroups.h +++ b/libraries/shared/src/PhysicsCollisionGroups.h @@ -55,7 +55,7 @@ const int16_t COLLISION_GROUP_COLLISIONLESS = 1 << 15; const int16_t COLLISION_MASK_DEFAULT = ~ COLLISION_GROUP_COLLISIONLESS; // STATIC also doesn't collide with other STATIC -const int16_t COLLISION_MASK_STATIC = ~ (COLLISION_GROUP_COLLISIONLESS | COLLISION_MASK_STATIC); +const int16_t COLLISION_MASK_STATIC = ~ (COLLISION_GROUP_COLLISIONLESS | COLLISION_GROUP_STATIC); const int16_t COLLISION_MASK_KINEMATIC = COLLISION_MASK_DEFAULT; diff --git a/libraries/ui/src/VrMenu.cpp b/libraries/ui/src/VrMenu.cpp index b6cb0b136b..1b402ff2a3 100644 --- a/libraries/ui/src/VrMenu.cpp +++ b/libraries/ui/src/VrMenu.cpp @@ -135,8 +135,8 @@ void VrMenu::setRootMenu(QObject* rootMenu) { void VrMenu::addMenu(QMenu* menu) { Q_ASSERT(!MenuUserData::forObject(menu)); - QObject * parent = menu->parent(); - QObject * qmlParent; + QObject* parent = menu->parent(); + QObject* qmlParent = nullptr; if (dynamic_cast(parent)) { MenuUserData* userData = MenuUserData::forObject(parent); qmlParent = findMenuObject(userData->uuid.toString()); diff --git a/tools/vhacd-util/src/VHACDUtilApp.cpp b/tools/vhacd-util/src/VHACDUtilApp.cpp index ed4dab020f..2af6bca337 100644 --- a/tools/vhacd-util/src/VHACDUtilApp.cpp +++ b/tools/vhacd-util/src/VHACDUtilApp.cpp @@ -322,6 +322,7 @@ VHACDUtilApp::VHACDUtilApp(int argc, char* argv[]) : QString outputFileName = baseFileName + "-" + QString::number(count) + ".obj"; writeOBJ(outputFileName, fbx, outputCentimeters, count); count++; + (void)meshPart; // quiet warning } } }