diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2025-02-03 12:43:44 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2025-02-03 12:43:44 +1100 |
commit | fa6d3d10c49762a0073ac1e159057633692de670 (patch) | |
tree | 4c3b28fcf299831e7f0c7e1c75aa44f0e498e04b /source/frontend/StarTitleScreen.cpp | |
parent | 182937d1506cb7536056a633fed328d209850b7d (diff) |
fix two bugs and optimize images
[skip ci]
Diffstat (limited to 'source/frontend/StarTitleScreen.cpp')
-rw-r--r-- | source/frontend/StarTitleScreen.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/frontend/StarTitleScreen.cpp b/source/frontend/StarTitleScreen.cpp index a2d2c53..747744c 100644 --- a/source/frontend/StarTitleScreen.cpp +++ b/source/frontend/StarTitleScreen.cpp @@ -337,6 +337,9 @@ void TitleScreen::initMultiPlayerMenu() { GuiReader readerServer; m_serverList = Root::singleton().configuration()->get("serverList"); + if (!m_serverList.isType(Json::Type::Array)) + m_serverList = JsonArray(); + auto assets = Root::singleton().assets(); readerServer.registerCallback("saveServer", [=](Widget*) { @@ -348,9 +351,9 @@ void TitleScreen::initMultiPlayerMenu() { }; auto serverList = m_serverSelectPane->fetchChild<ListWidget>("serverSelectArea.serverList"); - if (auto const pos = serverList->selectedItem(); pos != NPos) {// Edit existing + if (auto const pos = serverList->selectedItem(); pos != NPos) { // Edit existing m_serverList = m_serverList.set(pos, serverData); - } else {// Save new + } else { // Save new m_serverList = m_serverList.insert(0, serverData); } @@ -374,6 +377,8 @@ void TitleScreen::initMultiPlayerMenu() { serverList->setCallback([=](Widget* widget) { if (auto selectedItem = serverList->selectedWidget()) { + if (selectedItem->findChild<ButtonWidget>("delete")->isHovered()) + return; auto& data = selectedItem->data(); setMultiPlayerAddress(data.getString("address", "")); setMultiPlayerPort(data.getString("port", "")); |