1
0
mirror of https://github.com/The-Powder-Toy/The-Powder-Toy.git synced 2025-04-08 08:23:54 +02:00

fix warning+exit crash, fix menusection offset resetting when menus are rebuilt

This commit is contained in:
jacob1 2016-06-25 11:53:42 -04:00
parent 083d488566
commit 4190946de5
3 changed files with 13 additions and 5 deletions

@ -23,4 +23,4 @@ bool Favorite::IsFavorite(std::string identifier)
{
std::vector<std::string> tempFavoritsList = *favoritesList;
return std::find(tempFavoritsList.begin(), tempFavoritsList.end(), identifier) != tempFavoritsList.end();
}
}

@ -166,6 +166,8 @@ GameModel::~GameModel()
for (size_t i = 0; i < menuList.size(); i++)
{
if (i == SC_FAVORITES)
menuList[i]->ClearTools();
delete menuList[i];
}
for (std::vector<Tool*>::iterator iter = extraElementTools.begin(), end = extraElementTools.end(); iter != end; ++iter)
@ -370,12 +372,12 @@ void GameModel::BuildFavoritesMenu()
{
menuList[SC_FAVORITES]->ClearTools();
for (int i = 0; i < menuList.size(); i++)
for (size_t i = 0; i < menuList.size(); i++)
{
if (i == SC_FAVORITES)
continue;
for (int j = 0; j < menuList[i]->GetToolList().size(); j++)
for (size_t j = 0; j < menuList[i]->GetToolList().size(); j++)
{
if (Favorite::Ref().IsFavorite(menuList[i]->GetToolList()[j]->GetIdentifier()))
{

@ -538,11 +538,13 @@ public:
void ActionCallback(ui::Button * sender_)
{
ToolButton *sender = (ToolButton*)sender_;
if (v->ShiftBehaviour() && !v->CtrlBehaviour() && !v->AltBehaviour())
if (v->ShiftBehaviour() && v->CtrlBehaviour() && !v->AltBehaviour())
{
if (Favorite::Ref().IsFavorite(tool->GetIdentifier()) && sender->GetSelectionState() == 1)
{
Favorite::Ref().GetFavoritesList()->erase(std::remove(Favorite::Ref().GetFavoritesList()->begin(), Favorite::Ref().GetFavoritesList()->end(),
tool->GetIdentifier()), Favorite::Ref().GetFavoritesList()->end());
}
else if (sender->GetSelectionState() == 0)
Favorite::Ref().GetFavoritesList()->push_back(tool->GetIdentifier());
else if (sender->GetSelectionState() == 2)
@ -728,7 +730,6 @@ void GameView::NotifyLastToolChanged(GameModel * sender)
void GameView::NotifyToolListChanged(GameModel * sender)
{
lastOffset = 0;
int currentX = WINDOWW-56;
for (size_t i = 0; i < menuButtons.size(); i++)
{
@ -795,6 +796,11 @@ void GameView::NotifyToolListChanged(GameModel * sender)
}
if (sender->GetActiveMenu() != SC_DECO)
lastMenu = sender->GetActiveMenu();
// don't reset scroll back to 0
int origOffset = lastOffset;
lastOffset = 0;
setToolButtonOffset(origOffset);
}
void GameView::NotifyColourSelectorVisibilityChanged(GameModel * sender)