| 1265 | #endif |
| 1266 | |
| 1267 | void NetHackQtMainWindow::resizePaperDoll(bool showdoll) |
| 1268 | { |
| 1269 | #ifdef ENHANCED_PAPERDOLL |
| 1270 | // this is absurd... |
| 1271 | NetHackQtInvUsageWindow *w = static_cast <NetHackQtMainWindow *> |
| 1272 | (NetHackQtBind::mainWidget())->invusage; |
| 1273 | QList<int> hsplittersizes = hsplitter->sizes(), |
| 1274 | vsplittersizes = vsplitter->sizes(); |
| 1275 | w->resize(w->sizeHint()); |
| 1276 | |
| 1277 | int oldwidth = hsplittersizes[1], |
| 1278 | newwidth = w->width(); |
| 1279 | if (newwidth != oldwidth) { |
| 1280 | if (oldwidth > newwidth) |
| 1281 | hsplittersizes[0] += (oldwidth - newwidth); |
| 1282 | else |
| 1283 | hsplittersizes[2] += (newwidth - oldwidth); |
| 1284 | hsplittersizes[1] = newwidth; |
| 1285 | hsplitter->setSizes(hsplittersizes); |
| 1286 | } |
| 1287 | |
| 1288 | // Height limit is 48+2 pixels per doll cell plus 1 pixel margin at top; |
| 1289 | // values greater than 44+2 need taller window which pushes the map down |
| 1290 | // (when font size 'Large' is used for messages and status; threshold |
| 1291 | // may vary by 1 or 2 for other sizes). |
| 1292 | // FIXME: this doesn't shrink the window back if size is reduced from 45+ |
| 1293 | int oldheight = vsplittersizes[0], |
| 1294 | newheight = w->height(); |
| 1295 | if (newheight > oldheight && oldheight > 0 && vsplittersizes[1] > 0) { |
| 1296 | vsplittersizes[0] = newheight; |
| 1297 | vsplitter->setSizes(vsplittersizes); |
| 1298 | } |
| 1299 | |
| 1300 | if (showdoll) { |
| 1301 | if (w->isHidden()) |
| 1302 | w->show(); |
| 1303 | else |
| 1304 | w->repaint(); |
| 1305 | } else { |
| 1306 | if (w->isVisible()) |
| 1307 | w->hide(); |
| 1308 | } |
| 1309 | #else |
| 1310 | nhUse(showdoll); |
| 1311 | #endif /* ENHANCED_PAPERDOLL */ |
| 1312 | } |
| 1313 | |
| 1314 | void NetHackQtMainWindow::resizeEvent(QResizeEvent*) |
| 1315 | { |