optional setting for horizonal hand display

This commit is contained in:
Max-Wilhelm Bruker 2010-05-27 17:22:18 +02:00
parent 33606f55ce
commit e6e20cb048
19 changed files with 275 additions and 76 deletions

View file

@ -103,3 +103,26 @@ void GameScene::closeMostRecentZoneView()
if (!views.isEmpty())
views.last()->close();
}
void GameScene::processViewSizeChange(const QSize &newSize)
{
qreal newRatio = ((qreal) newSize.width()) / newSize.height();
qreal minWidth = 0;
for (int i = 0; i < players.size(); ++i) {
qreal w = players[i]->getMinimumWidth();
if (w > minWidth)
minWidth = w;
}
qreal minRatio = minWidth / sceneRect().height();
if (minRatio > newRatio) {
// Aspect ratio is dominated by table width.
setSceneRect(sceneRect().x(), sceneRect().y(), minWidth, sceneRect().height());
} else {
// Aspect ratio is dominated by window dimensions.
setSceneRect(sceneRect().x(), sceneRect().y(), newRatio * sceneRect().height(), sceneRect().height());
}
for (int i = 0; i < players.size(); ++i)
players[i]->processSceneSizeChange(sceneRect().size());
}