Added option to lock the menu order

This commit is contained in:
AlexandreRouma 2022-03-31 01:03:31 +02:00
parent 03f173a3ac
commit 8d78eb301c
5 changed files with 19 additions and 1 deletions

View File

@ -221,6 +221,12 @@ int sdrpp_main(int argc, char* argv[]) {
defConfig["vfoColors"]["Radio"] = "#FFFFFF";
#ifdef __ANDROID__
defConfig["lockMenuOrder"] = true;
#else
defConfig["lockMenuOrder"] = false;
#endif
#if defined(_WIN32)
defConfig["modulesDirectory"] = "./modules";
defConfig["resourcesDirectory"] = "./res";

View File

@ -537,6 +537,7 @@ void MainWindow::draw() {
}
ImGui::Checkbox("WF Single Click", &gui::waterfall.VFOMoveSingleClick);
ImGui::Checkbox("Lock Menu Order", &gui::menu.locked);
ImGui::Spacing();
}

View File

@ -91,6 +91,8 @@ namespace displaymenu {
selectedWindow = std::clamp<int>((int)core::configManager.conf["fftWindow"], 0, _FFT_WINDOW_COUNT - 1);
gui::mainWindow.setFFTWindow(selectedWindow);
gui::menu.locked = core::configManager.conf["lockMenuOrder"];
// Define and load UI scales
uiScales.define(1.0f, "100%", 1.0f);
uiScales.define(2.0f, "200%", 2.0f);
@ -124,6 +126,12 @@ namespace displaymenu {
core::configManager.release(true);
}
if (ImGui::Checkbox("Lock Menu Order##_sdrpp", &gui::menu.locked)) {
core::configManager.acquire();
core::configManager.conf["lockMenuOrder"] = gui::menu.locked;
core::configManager.release(true);
}
ImGui::LeftLabel("High-DPI Scaling");
ImGui::FillWidth();
if (ImGui::Combo("##sdrpp_ui_scale", &uiScaleId, uiScales.txt)) {

View File

@ -88,7 +88,7 @@ bool Menu::draw(bool updateStates) {
clickedMenuName = opt.name;
}
if (menuClicked && ImGui::IsMouseDragging(ImGuiMouseButton_Left) && draggedMenuName.empty() && clickedMenuName == opt.name) {
if (menuClicked && ImGui::IsMouseDragging(ImGuiMouseButton_Left) && draggedMenuName.empty() && clickedMenuName == opt.name && !locked) {
draggedMenuName = opt.name;
draggedId = rawId - 1;
draggedOpt = opt;

View File

@ -27,9 +27,12 @@ public:
std::vector<MenuOption_t> order;
bool locked = false;
private:
bool isInOrderList(std::string name);
bool menuClicked = false;
std::string clickedMenuName = "";
std::string draggedMenuName = "";