mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-10 16:24:45 -07:00
Game: save and restore dock sizes
This commit is contained in:
parent
cddb45085c
commit
058b913455
4 changed files with 151 additions and 7 deletions
|
|
@ -362,6 +362,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, GameReplay *_replay)
|
|||
refreshShortcuts();
|
||||
messageLog->logReplayStarted(gameInfo.game_id());
|
||||
|
||||
this->installEventFilter(this);
|
||||
QTimer::singleShot(0, this, SLOT(loadLayout()));
|
||||
}
|
||||
|
||||
|
|
@ -410,6 +411,7 @@ TabGame::TabGame(TabSupervisor *_tabSupervisor, QList<AbstractClient *> &_client
|
|||
for (int i = gameInfo.game_types_size() - 1; i >= 0; i--)
|
||||
gameTypes.append(roomGameTypes.find(gameInfo.game_types(i)).value());
|
||||
|
||||
this->installEventFilter(this);
|
||||
QTimer::singleShot(0, this, SLOT(loadLayout()));
|
||||
}
|
||||
|
||||
|
|
@ -426,14 +428,7 @@ void TabGame::emitUserEvent() {
|
|||
TabGame::~TabGame()
|
||||
{
|
||||
if(replay)
|
||||
{
|
||||
settingsCache->layouts().setReplayPlayAreaState(saveState());
|
||||
settingsCache->layouts().setReplayPlayAreaGeometry(saveGeometry());
|
||||
delete replay;
|
||||
} else {
|
||||
settingsCache->layouts().setGamePlayAreaState(saveState());
|
||||
settingsCache->layouts().setGamePlayAreaGeometry(saveGeometry());
|
||||
}
|
||||
|
||||
QMapIterator<int, Player *> i(players);
|
||||
while (i.hasNext())
|
||||
|
|
@ -1335,9 +1330,25 @@ void TabGame::loadLayout()
|
|||
{
|
||||
restoreGeometry(settingsCache->layouts().getReplayPlayAreaGeometry());
|
||||
restoreState(settingsCache->layouts().getReplayPlayAreaLayoutState());
|
||||
|
||||
cardInfoDock->setMinimumSize(settingsCache->layouts().getReplayCardInfoSize());
|
||||
cardInfoDock->setMaximumSize(settingsCache->layouts().getReplayCardInfoSize());
|
||||
messageLayoutDock->setMinimumSize(settingsCache->layouts().getReplayMessageLayoutSize());
|
||||
messageLayoutDock->setMaximumSize(settingsCache->layouts().getReplayMessageLayoutSize());
|
||||
playerListDock->setMinimumSize(settingsCache->layouts().getReplayPlayerListSize());
|
||||
playerListDock->setMaximumSize(settingsCache->layouts().getReplayPlayerListSize());
|
||||
replayDock->setMinimumSize(settingsCache->layouts().getReplayReplaySize());
|
||||
replayDock->setMaximumSize(settingsCache->layouts().getReplayReplaySize());
|
||||
} else {
|
||||
restoreGeometry(settingsCache->layouts().getGamePlayAreaGeometry());
|
||||
restoreState(settingsCache->layouts().getGamePlayAreaLayoutState());
|
||||
|
||||
cardInfoDock->setMinimumSize(settingsCache->layouts().getGameCardInfoSize());
|
||||
cardInfoDock->setMaximumSize(settingsCache->layouts().getGameCardInfoSize());
|
||||
messageLayoutDock->setMinimumSize(settingsCache->layouts().getGameMessageLayoutSize());
|
||||
messageLayoutDock->setMaximumSize(settingsCache->layouts().getGameMessageLayoutSize());
|
||||
playerListDock->setMinimumSize(settingsCache->layouts().getGamePlayerListSize());
|
||||
playerListDock->setMaximumSize(settingsCache->layouts().getGamePlayerListSize());
|
||||
}
|
||||
|
||||
aCardInfoDockVisible->setChecked(cardInfoDock->isVisible());
|
||||
|
|
@ -1358,6 +1369,26 @@ void TabGame::loadLayout()
|
|||
aReplayDockFloating->setEnabled(aReplayDockVisible->isChecked());
|
||||
aReplayDockFloating->setChecked(replayDock->isFloating());
|
||||
}
|
||||
|
||||
QTimer::singleShot(100, this, SLOT(freeDocksSize()));
|
||||
}
|
||||
|
||||
void TabGame::freeDocksSize()
|
||||
{
|
||||
cardInfoDock->setMinimumSize(100, 100);
|
||||
cardInfoDock->setMaximumSize(5000, 5000);
|
||||
|
||||
messageLayoutDock->setMinimumSize(100, 100);
|
||||
messageLayoutDock->setMaximumSize(5000, 5000);
|
||||
|
||||
playerListDock->setMinimumSize(100,100);
|
||||
playerListDock->setMaximumSize(5000,5000);
|
||||
|
||||
if(replayDock)
|
||||
{
|
||||
replayDock->setMinimumSize(100,100);
|
||||
replayDock->setMaximumSize(5000,5000);
|
||||
}
|
||||
}
|
||||
|
||||
void TabGame::actResetLayout()
|
||||
|
|
@ -1595,6 +1626,23 @@ bool TabGame::eventFilter(QObject * o, QEvent * e)
|
|||
}
|
||||
}
|
||||
|
||||
if( o == this && e->type() == QEvent::Hide){
|
||||
if(replay)
|
||||
{
|
||||
settingsCache->layouts().setReplayPlayAreaState(saveState());
|
||||
settingsCache->layouts().setReplayPlayAreaGeometry(saveGeometry());
|
||||
settingsCache->layouts().setReplayCardInfoSize(cardInfoDock->size());
|
||||
settingsCache->layouts().setReplayMessageLayoutSize(messageLayoutDock->size());
|
||||
settingsCache->layouts().setReplayPlayerListSize(playerListDock->size());
|
||||
settingsCache->layouts().setReplayReplaySize(replayDock->size());
|
||||
} else {
|
||||
settingsCache->layouts().setGamePlayAreaState(saveState());
|
||||
settingsCache->layouts().setGamePlayAreaGeometry(saveGeometry());
|
||||
settingsCache->layouts().setGameCardInfoSize(cardInfoDock->size());
|
||||
settingsCache->layouts().setGameMessageLayoutSize(messageLayoutDock->size());
|
||||
settingsCache->layouts().setGamePlayerListSize(playerListDock->size());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue