mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-22 22:13:35 +02:00
refresh list
This commit is contained in:
parent
38c25cd13e
commit
164aac4db2
@ -226,7 +226,7 @@ void ApplyOnLobbyScreenNetPackVisitor::visitLobbyUpdateState(LobbyUpdateState &
|
|||||||
else
|
else
|
||||||
lobby->updateAfterStateChange();
|
lobby->updateAfterStateChange();
|
||||||
|
|
||||||
if(pack.hostChanged)
|
if(pack.hostChanged || pack.refreshList)
|
||||||
lobby->toggleMode(handler.isHost());
|
lobby->toggleMode(handler.isHost());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,11 +261,11 @@ SelectionTab::SelectionTab(ESelectionScreen Type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SelectionTab::toggleMode()
|
void SelectionTab::toggleMode()
|
||||||
{
|
|
||||||
if(CSH->isGuest())
|
|
||||||
{
|
{
|
||||||
allItems.clear();
|
allItems.clear();
|
||||||
curItems.clear();
|
curItems.clear();
|
||||||
|
if(CSH->isGuest())
|
||||||
|
{
|
||||||
if(slider)
|
if(slider)
|
||||||
slider->block(true);
|
slider->block(true);
|
||||||
}
|
}
|
||||||
@ -344,6 +344,14 @@ void SelectionTab::clickReleased(const Point & cursorPosition)
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::cout << (curItems[py]->isFolder ? curItems[py]->folderName : curItems[py]->fullFileURI) << "\n";
|
std::cout << (curItems[py]->isFolder ? curItems[py]->folderName : curItems[py]->fullFileURI) << "\n";
|
||||||
|
|
||||||
|
if(!curItems[py]->isFolder)
|
||||||
|
CInfoWindow::showYesNoDialog(CGI->generaltexth->translate("vcmi.lobby.deleteFile") + "\n\n" + curItems[py]->fullFileURI, std::vector<std::shared_ptr<CComponent>>(), [this, py](){
|
||||||
|
LobbyDelete ld;
|
||||||
|
ld.type = tabType == ESelectionScreen::newGame ? LobbyDelete::RANDOMMAP : LobbyDelete::SAVEGAME;
|
||||||
|
ld.name = curItems[py]->fileURI;
|
||||||
|
CSH->sendLobbyPack(ld);
|
||||||
|
}, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef VCMI_MOBILE
|
#ifdef VCMI_MOBILE
|
||||||
|
@ -170,12 +170,15 @@ struct DLL_LINKAGE LobbyUpdateState : public CLobbyPackToPropagate
|
|||||||
{
|
{
|
||||||
LobbyState state;
|
LobbyState state;
|
||||||
bool hostChanged = false; // Used on client-side only
|
bool hostChanged = false; // Used on client-side only
|
||||||
|
bool refreshList = false;
|
||||||
|
|
||||||
void visitTyped(ICPackVisitor & visitor) override;
|
void visitTyped(ICPackVisitor & visitor) override;
|
||||||
|
|
||||||
template <typename Handler> void serialize(Handler &h)
|
template <typename Handler> void serialize(Handler &h)
|
||||||
{
|
{
|
||||||
h & state;
|
h & state;
|
||||||
|
if (h.version >= Handler::Version::LOBBY_DELETE)
|
||||||
|
h & refreshList;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@ enum class ESerializationVersion : int32_t
|
|||||||
LOCAL_PLAYER_STATE_DATA, // 866 - player state contains arbitrary client-side data
|
LOCAL_PLAYER_STATE_DATA, // 866 - player state contains arbitrary client-side data
|
||||||
REMOVE_TOWN_PTR, // 867 - removed pointer to CTown from CGTownInstance
|
REMOVE_TOWN_PTR, // 867 - removed pointer to CTown from CGTownInstance
|
||||||
REMOVE_OBJECT_TYPENAME, // 868 - remove typename from CGObjectInstance
|
REMOVE_OBJECT_TYPENAME, // 868 - remove typename from CGObjectInstance
|
||||||
|
LOBBY_DELETE, // 869 - possibility to delete savegames and random maps
|
||||||
|
|
||||||
CURRENT = REMOVE_OBJECT_TYPENAME
|
CURRENT = LOBBY_DELETE
|
||||||
};
|
};
|
||||||
|
@ -442,10 +442,15 @@ void ClientPermissionsCheckerNetPackVisitor::visitLobbyDelete(LobbyDelete & pack
|
|||||||
|
|
||||||
void ApplyOnServerNetPackVisitor::visitLobbyDelete(LobbyDelete & pack)
|
void ApplyOnServerNetPackVisitor::visitLobbyDelete(LobbyDelete & pack)
|
||||||
{
|
{
|
||||||
if(pack.type == LobbyDelete::SAVEGAME)
|
if(pack.type == LobbyDelete::SAVEGAME || pack.type == LobbyDelete::RANDOMMAP)
|
||||||
{
|
{
|
||||||
auto res = ResourcePath(pack.name, EResType::SAVEGAME);
|
auto res = ResourcePath(pack.name, pack.type == LobbyDelete::SAVEGAME ? EResType::SAVEGAME : EResType::MAP);
|
||||||
auto file = boost::filesystem::canonical(*CResourceHandler::get()->getResourceName(res));
|
auto file = boost::filesystem::canonical(*CResourceHandler::get()->getResourceName(res));
|
||||||
boost::filesystem::remove(file);
|
boost::filesystem::remove(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LobbyUpdateState lus;
|
||||||
|
lus.state = srv;
|
||||||
|
lus.refreshList = true;
|
||||||
|
srv.announcePack(lus);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user