Browse Source

Rename "autosavePeriod" to "autosaveInterval" in settings.json. Auto-hide menu bar when fullscreen, show when hovering the top of the screen.

tags/v2.0.0
Andrew Belt 4 years ago
parent
commit
426b6d20ed
7 changed files with 46 additions and 20 deletions
  1. +2
    -1
      include/app/RackScrollWidget.hpp
  2. +0
    -2
      include/app/Scene.hpp
  3. +1
    -1
      include/settings.hpp
  4. +3
    -3
      src/app/MenuBar.cpp
  5. +18
    -3
      src/app/RackScrollWidget.cpp
  6. +17
    -5
      src/app/Scene.cpp
  7. +5
    -5
      src/settings.cpp

+ 2
- 1
include/app/RackScrollWidget.hpp View File

@@ -17,11 +17,12 @@ struct RackScrollWidget : ui::ScrollWidget {
math::Vec oldOffset;

RackScrollWidget();
void reset();
void step() override;
void draw(const DrawArgs& args) override;
void onHoverKey(const event::HoverKey& e) override;
void onHoverScroll(const event::HoverScroll& e) override;
void reset();
void onHover(const event::Hover& e) override;
};




+ 0
- 2
include/app/Scene.hpp View File

@@ -32,8 +32,6 @@ struct Scene : widget::OpaqueWidget {
void onDragHover(const event::DragHover& e) override;
void onHoverKey(const event::HoverKey& e) override;
void onPathDrop(const event::PathDrop& e) override;

void runCheckVersion();
};




+ 1
- 1
include/settings.hpp View File

@@ -46,7 +46,7 @@ extern bool tooltips;
extern bool cpuMeter;
extern bool lockModules;
extern int frameSwapInterval;
extern float autosavePeriod;
extern float autosaveInterval;
extern bool skipLoadOnLaunch;
extern std::string patchPath;
extern std::list<std::string> recentPatchPaths;


+ 3
- 3
src/app/MenuBar.cpp View File

@@ -5,9 +5,6 @@

#include <app/MenuBar.hpp>
#include <widget/OpaqueWidget.hpp>
#include <window.hpp>
#include <engine/Engine.hpp>
#include <asset.hpp>
#include <ui/Button.hpp>
#include <ui/MenuItem.hpp>
#include <ui/MenuSeparator.hpp>
@@ -16,6 +13,9 @@
#include <ui/TextField.hpp>
#include <ui/PasswordField.hpp>
#include <ui/ProgressBar.hpp>
#include <engine/Engine.hpp>
#include <window.hpp>
#include <asset.hpp>
#include <context.hpp>
#include <settings.hpp>
#include <helpers.hpp>


+ 18
- 3
src/app/RackScrollWidget.cpp View File

@@ -20,6 +20,13 @@ RackScrollWidget::RackScrollWidget() {
reset();
}


void RackScrollWidget::reset() {
offset = RACK_OFFSET.mult(zoomWidget->zoom);
offset = offset.minus(math::Vec(30, 30));
}


void RackScrollWidget::step() {
// Clamp zoom
settings::zoom = math::clamp(settings::zoom, -2.f, 2.f);
@@ -78,10 +85,12 @@ void RackScrollWidget::step() {
oldOffset = offset;
}


void RackScrollWidget::draw(const DrawArgs& args) {
ScrollWidget::draw(args);
}


void RackScrollWidget::onHoverKey(const event::HoverKey& e) {
ScrollWidget::onHoverKey(e);
if (e.isConsumed())
@@ -116,6 +125,7 @@ void RackScrollWidget::onHoverKey(const event::HoverKey& e) {
}
}


void RackScrollWidget::onHoverScroll(const event::HoverScroll& e) {
if ((APP->window->getMods() & RACK_MOD_MASK) == RACK_MOD_CTRL) {
// Increase zoom
@@ -131,9 +141,14 @@ void RackScrollWidget::onHoverScroll(const event::HoverScroll& e) {
ScrollWidget::onHoverScroll(e);
}

void RackScrollWidget::reset() {
offset = RACK_OFFSET.mult(zoomWidget->zoom);
offset = offset.minus(math::Vec(30, 30));

void RackScrollWidget::onHover(const event::Hover& e) {
ScrollWidget::onHover(e);

// Hide menu bar if fullscreen and moving mouse over the RackScrollWidget
if (APP->window->isFullScreen()) {
APP->scene->menuBar->hide();
}
}




+ 17
- 5
src/app/Scene.cpp View File

@@ -56,9 +56,16 @@ Scene::~Scene() {
}

void Scene::step() {
bool fullscreen = APP->window->isFullScreen();
menuBar->visible = !fullscreen;
rackScroll->box.pos.y = menuBar->visible ? menuBar->box.size.y : 0;
if (APP->window->isFullScreen()) {
// Expand RackScrollWidget to cover entire screen if fullscreen
rackScroll->box.pos.y = 0;
}
else {
// Always show MenuBar if not fullscreen
menuBar->show();
rackScroll->box.pos.y = menuBar->box.size.y;
}

frameRateWidget->box.pos.x = box.size.x - frameRateWidget->box.size.x;

// Resize owned descendants
@@ -66,9 +73,9 @@ void Scene::step() {
rackScroll->box.size = box.size.minus(rackScroll->box.pos);

// Autosave periodically
if (settings::autosavePeriod > 0.0) {
if (settings::autosaveInterval > 0.0) {
double time = glfwGetTime();
if (time - lastAutosaveTime >= settings::autosavePeriod) {
if (time - lastAutosaveTime >= settings::autosaveInterval) {
lastAutosaveTime = time;
APP->patch->saveAutosave();
settings::save(asset::settingsPath);
@@ -84,6 +91,9 @@ void Scene::draw(const DrawArgs& args) {

void Scene::onHover(const event::Hover& e) {
mousePos = e.pos;
if (mousePos.y < menuBar->box.size.y) {
menuBar->show();
}
OpaqueWidget::onHover(e);
}

@@ -169,6 +179,8 @@ void Scene::onHoverKey(const event::HoverKey& e) {
}
if (e.key == GLFW_KEY_F11 && (e.mods & RACK_MOD_MASK) == 0) {
APP->window->setFullScreen(!APP->window->isFullScreen());
// The MenuBar will be hidden when the mouse moves over the RackScrollWidget.
// menuBar->hide();
e.consume(this);
}
// Alternate key command for exiting fullscreen, since F11 doesn't work reliably on Mac due to "Show desktop" OS binding.


+ 5
- 5
src/settings.cpp View File

@@ -37,7 +37,7 @@ bool lockModules = false;
#else
int frameSwapInterval = 1;
#endif
float autosavePeriod = 15.0;
float autosaveInterval = 15.0;
bool skipLoadOnLaunch = false;
std::string patchPath;
std::list<std::string> recentPatchPaths;
@@ -90,7 +90,7 @@ json_t* toJson() {

json_object_set_new(rootJ, "frameSwapInterval", json_integer(frameSwapInterval));

json_object_set_new(rootJ, "autosavePeriod", json_real(autosavePeriod));
json_object_set_new(rootJ, "autosaveInterval", json_real(autosaveInterval));

if (skipLoadOnLaunch)
json_object_set_new(rootJ, "skipLoadOnLaunch", json_boolean(true));
@@ -196,9 +196,9 @@ void fromJson(json_t* rootJ) {
if (frameSwapIntervalJ)
frameSwapInterval = json_integer_value(frameSwapIntervalJ);

json_t* autosavePeriodJ = json_object_get(rootJ, "autosavePeriod");
if (autosavePeriodJ)
autosavePeriod = json_number_value(autosavePeriodJ);
json_t* autosaveIntervalJ = json_object_get(rootJ, "autosaveInterval");
if (autosaveIntervalJ)
autosaveInterval = json_number_value(autosaveIntervalJ);

json_t* skipLoadOnLaunchJ = json_object_get(rootJ, "skipLoadOnLaunch");
if (skipLoadOnLaunchJ)


Loading…
Cancel
Save