From d75eed10e3977ddccff50d218b2a6d431d993225 Mon Sep 17 00:00:00 2001 From: cidoku Date: Thu, 9 Oct 2025 00:28:34 -0300 Subject: [PATCH] improve widescreen support --- gameview.py | 85 +++++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/gameview.py b/gameview.py index be4ea7c..80f28cc 100644 --- a/gameview.py +++ b/gameview.py @@ -544,7 +544,7 @@ class AOCharMovie(QtGui.QLabel): def getScaledImage(self, f_img): if not f_img.isNull(): transform = self.getTransform(f_img.size().height() > self.size().height()) - aspect = self.getAspect(f_img.size().height() > f_img.size().width()) + aspect = self.getAspect((f_img.size().height() > f_img.size().width()) or not (f_img.size().height() > self.size().height())) return f_img.scaled(self.size(), aspect, transform) return f_img @@ -1691,7 +1691,7 @@ class GUI(QtGui.QWidget): self.ao2text.setStyleSheet(self.text.styleSheet()) chatboxPixmap = QtGui.QPixmap(AO2XPpath + 'themes/default/chatmed.png') - chatboxWidth = chatboxPixmap.size().width() * self.viewportScale + chatboxWidth = self.viewport.width() #chatboxPixmap.size().width() * self.viewportScale self.chatboxHeight = chatboxPixmap.size().height() * self.viewportScale self.chatbox.setPixmap(chatboxPixmap.scaled(chatboxWidth, self.chatboxHeight, QtCore.Qt.KeepAspectRatioByExpanding, QtCore.Qt.FastTransformation)) self.chatbox.resize(chatboxWidth, self.chatboxHeight) @@ -2811,27 +2811,31 @@ class GUI(QtGui.QWidget): if not exists(AOpath + 'background/' + bg): bg = 'default' - for bgfile in [["side_def", "defenseempty"], - ["bench_def", "defensedesk"], - ["side_pro", "prosecutorempty"], - ["bench_pro", "prosecutiondesk"], - ["side_wit", "witnessempty"], - ["bench_wit", "stand"], - ["side_hld", "helperstand"], - ["bench_hld", "helperdesk"], - ["side_hlp", "prohelperstand"], - ["bench_hlp", "prohelperdesk"], - ["side_jud", "judgestand"], - ["bench_jud", "judgedesk"], - ["side_jur", "jurystand"], - ["bench_jur", "jurydesk"], - ["side_sea", "seancestand"], - ["bench_sea", "seancedesk"]]: + for bgfile in [["sideDef", "defenseempty"], + ["benchDef", "defensedesk"], + ["sidePro", "prosecutorempty"], + ["benchPro", "prosecutiondesk"], + ["sideWit", "witnessempty"], + ["benchWit", "stand"], + ["sideHld", "helperstand"], + ["benchHld", "helperdesk"], + ["sideHlp", "prohelperstand"], + ["benchHlp", "prohelperdesk"], + ["sideJud", "judgestand"], + ["benchJud", "judgedesk"], + ["sideJur", "jurystand"], + ["benchJur", "jurydesk"], + ["sideSea", "seancestand"], + ["benchSea", "seancedesk"]]: bgimg = QtGui.QImage(AOpath + 'background/' + bg + '/' + bgfile[1] + '.png') if not bgimg.isNull(): if bgimg.size().width() != self.viewport.width() or bgimg.size().height() != self.viewport.height(): - setattr(self, bgfile[0], QtGui.QPixmap.fromImage(bgimg.scaled(self.viewport.width(), self.viewport.height(), QtCore.Qt.KeepAspectRatioByExpanding, QtCore.Qt.FastTransformation))) + if "bench" in bgfile[0]: + _scale = self.viewport.height() / float(bgimg.size().height()) + setattr(self, bgfile[0], QtGui.QPixmap.fromImage(bgimg.scaled(bgimg.size().width() * _scale, bgimg.size().height() * _scale, QtCore.Qt.KeepAspectRatioByExpanding, QtCore.Qt.FastTransformation))) + else: + setattr(self, bgfile[0], QtGui.QPixmap.fromImage(bgimg.scaled(self.viewport.width(), self.viewport.height(), QtCore.Qt.KeepAspectRatioByExpanding, QtCore.Qt.FastTransformation))) else: setattr(self, bgfile[0], QtGui.QPixmap.fromImage(bgimg)) else: @@ -3136,32 +3140,37 @@ class GUI(QtGui.QWidget): self.presentedEvidence.hide() if side == 'def': - self.court.setPixmap(self.side_def) - self.bench.setPixmap(self.bench_def) - self.bench.move(0, self.viewport.height() - self.bench_def.size().height()) + self.court.setPixmap(self.sideDef) + self.bench.setPixmap(self.benchDef) + self.bench.move(0, self.viewport.height() - self.benchDef.size().height()) elif side == 'pro': - self.court.setPixmap(self.side_pro) - self.bench.setPixmap(self.bench_pro) - self.bench.move(self.viewport.width() - self.bench_pro.size().width(), self.viewport.height() - self.bench_pro.size().height()) + self.court.setPixmap(self.sidePro) + self.bench.setPixmap(self.benchPro) + self.bench.move(self.viewport.width() - self.benchPro.size().width(), self.viewport.height() - self.benchPro.size().height()) elif side == 'wit': - self.court.setPixmap(self.side_wit) - self.bench.setPixmap(self.bench_wit) - self.bench.move(0, 0) + self.court.setPixmap(self.sideWit) + self.bench.setPixmap(self.benchWit) + self.bench.move(self.viewport.width() / 2 - self.benchPro.size().width() / 2, 0) elif side == 'hld': - self.court.setPixmap(self.side_hld) - self.bench.setPixmap(self.bench_hld) + self.court.setPixmap(self.sideHld) + self.bench.setPixmap(self.benchHld) elif side == 'hlp': - self.court.setPixmap(self.side_hlp) - self.bench.setPixmap(self.bench_hlp) + self.court.setPixmap(self.sideHlp) + self.bench.setPixmap(self.benchHlp) elif side == 'jud': - self.court.setPixmap(self.side_jud) - self.bench.setPixmap(self.bench_jud) + self.court.setPixmap(self.sideJud) + self.bench.setPixmap(self.benchJud) + self.bench.move(self.viewport.width() / 2 - self.benchJud.size().width() / 2, 0) elif side == 'sea': - self.court.setPixmap(self.side_jud if self.side_sea.isNull() else self.side_sea) - self.bench.setPixmap(self.bench_jud if self.bench_sea.isNull() else self.bench_sea) + bench = self.benchJud if self.benchSea.isNull() else self.benchSea + self.court.setPixmap(self.sideJud if self.sideSea.isNull() else self.sideSea) + self.bench.setPixmap(bench) + self.bench.move(self.viewport.width() / 2 - bench.size().width() / 2, 0) elif side == 'jur': - self.court.setPixmap(self.side_jud if self.side_jur.isNull() else self.side_jur) - self.bench.setPixmap(self.bench_jud if self.bench_jur.isNull() else self.bench_jur) + bench = self.benchJud if self.benchJur.isNull() else self.benchJur + self.court.setPixmap(self.sideJud if self.sideJur.isNull() else self.sideJur) + self.bench.setPixmap(bench) + self.bench.move(self.viewport.width() / 2 - bench.size().width() / 2, 0) def setBench(self, isPreanim = False): if self.animIsEmpty: