fix warning+exit crash, fix menusection offset resetting when menus are rebuilt
This commit is contained in:
parent
083d488566
commit
4190946de5
@ -23,4 +23,4 @@ bool Favorite::IsFavorite(std::string identifier)
|
|||||||
{
|
{
|
||||||
std::vector<std::string> tempFavoritsList = *favoritesList;
|
std::vector<std::string> tempFavoritsList = *favoritesList;
|
||||||
return std::find(tempFavoritsList.begin(), tempFavoritsList.end(), identifier) != tempFavoritsList.end();
|
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++)
|
for (size_t i = 0; i < menuList.size(); i++)
|
||||||
{
|
{
|
||||||
|
if (i == SC_FAVORITES)
|
||||||
|
menuList[i]->ClearTools();
|
||||||
delete menuList[i];
|
delete menuList[i];
|
||||||
}
|
}
|
||||||
for (std::vector<Tool*>::iterator iter = extraElementTools.begin(), end = extraElementTools.end(); iter != end; ++iter)
|
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();
|
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)
|
if (i == SC_FAVORITES)
|
||||||
continue;
|
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()))
|
if (Favorite::Ref().IsFavorite(menuList[i]->GetToolList()[j]->GetIdentifier()))
|
||||||
{
|
{
|
||||||
|
@ -538,11 +538,13 @@ public:
|
|||||||
void ActionCallback(ui::Button * sender_)
|
void ActionCallback(ui::Button * sender_)
|
||||||
{
|
{
|
||||||
ToolButton *sender = (ToolButton*)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)
|
if (Favorite::Ref().IsFavorite(tool->GetIdentifier()) && sender->GetSelectionState() == 1)
|
||||||
|
{
|
||||||
Favorite::Ref().GetFavoritesList()->erase(std::remove(Favorite::Ref().GetFavoritesList()->begin(), Favorite::Ref().GetFavoritesList()->end(),
|
Favorite::Ref().GetFavoritesList()->erase(std::remove(Favorite::Ref().GetFavoritesList()->begin(), Favorite::Ref().GetFavoritesList()->end(),
|
||||||
tool->GetIdentifier()), Favorite::Ref().GetFavoritesList()->end());
|
tool->GetIdentifier()), Favorite::Ref().GetFavoritesList()->end());
|
||||||
|
}
|
||||||
else if (sender->GetSelectionState() == 0)
|
else if (sender->GetSelectionState() == 0)
|
||||||
Favorite::Ref().GetFavoritesList()->push_back(tool->GetIdentifier());
|
Favorite::Ref().GetFavoritesList()->push_back(tool->GetIdentifier());
|
||||||
else if (sender->GetSelectionState() == 2)
|
else if (sender->GetSelectionState() == 2)
|
||||||
@ -728,7 +730,6 @@ void GameView::NotifyLastToolChanged(GameModel * sender)
|
|||||||
|
|
||||||
void GameView::NotifyToolListChanged(GameModel * sender)
|
void GameView::NotifyToolListChanged(GameModel * sender)
|
||||||
{
|
{
|
||||||
lastOffset = 0;
|
|
||||||
int currentX = WINDOWW-56;
|
int currentX = WINDOWW-56;
|
||||||
for (size_t i = 0; i < menuButtons.size(); i++)
|
for (size_t i = 0; i < menuButtons.size(); i++)
|
||||||
{
|
{
|
||||||
@ -795,6 +796,11 @@ void GameView::NotifyToolListChanged(GameModel * sender)
|
|||||||
}
|
}
|
||||||
if (sender->GetActiveMenu() != SC_DECO)
|
if (sender->GetActiveMenu() != SC_DECO)
|
||||||
lastMenu = sender->GetActiveMenu();
|
lastMenu = sender->GetActiveMenu();
|
||||||
|
|
||||||
|
// don't reset scroll back to 0
|
||||||
|
int origOffset = lastOffset;
|
||||||
|
lastOffset = 0;
|
||||||
|
setToolButtonOffset(origOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameView::NotifyColourSelectorVisibilityChanged(GameModel * sender)
|
void GameView::NotifyColourSelectorVisibilityChanged(GameModel * sender)
|
||||||
|
Reference in New Issue
Block a user