From 70d8c376e1658cc740984477f95ecf169f563379 Mon Sep 17 00:00:00 2001 From: cidoku Date: Sun, 12 Oct 2025 01:39:58 -0300 Subject: [PATCH] Support some settings from courtroom_fonts.ini --- AO2XPbase/ao2xp_themes/default/theme.py | 12 +++--- gameview.py | 55 +++++++++++++++---------- 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/AO2XPbase/ao2xp_themes/default/theme.py b/AO2XPbase/ao2xp_themes/default/theme.py index e611c90..6dffe7e 100644 --- a/AO2XPbase/ao2xp_themes/default/theme.py +++ b/AO2XPbase/ao2xp_themes/default/theme.py @@ -2,16 +2,16 @@ # window size is defined at the end of the file # IC viewport -_scale = 2 -self.viewport.setGeometry(0, 0, 256 * _scale, 192 * _scale) +self.viewportScale = 2 +self.viewport.setGeometry(0, 0, 256 * self.viewportScale, 192 * self.viewportScale) # Textbox -self.name.setGeometry(8 * _scale, -15 + 7 * _scale, 248, 32) +self.name.setGeometry(8 * self.viewportScale, -15 + 7 * self.viewportScale, 248, 32) self.name.setStyleSheet('color: white') -self.text.setGeometry(8 * _scale, 16 * _scale, self.viewport.width() - 32, 56 * _scale) +self.text.setGeometry(8 * self.viewportScale, 16 * self.viewportScale, self.viewport.width() - 32, 56 * self.viewportScale) self.text.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: white;") -self.nameFontPointSize = 6 * _scale -self.textFontPointSize = 12 * _scale +self.nameFontPointSize = 6 * self.viewportScale +self.textFontPointSize = 12 * self.viewportScale # IC input and demo slider viewportRight = max(self.viewport.x() + self.viewport.width(), 512) diff --git a/gameview.py b/gameview.py index 7e344ca..452a89b 100644 --- a/gameview.py +++ b/gameview.py @@ -391,7 +391,7 @@ class AOCharMovie(QtGui.QLabel): if exists(placeholderPath): imgPath = placeholderPath - print "[debug] Sprite not found: ", pChar, pEmote, emotePrefix + print "[debug] Sprite not found:", pChar, pEmote, emotePrefix else: imgPath = "" self.usePillow = 0 @@ -1710,8 +1710,6 @@ class GUI(QtGui.QWidget): self.width = 820 self.height = 730 self.viewportScale = 1 - self.nameFontPointSize = 12 - self.textFontPointSize = 24 self.defaultStyle = QtGui.QApplication.style().objectName() self.loadTheme() @@ -1720,11 +1718,15 @@ class GUI(QtGui.QWidget): # try: stylesheet = "" self.emotePageGeometry = [] + self.viewportScale = 0 self.gamewindow.setStyleSheet("") self.chatbox.resetGeometry() self.btnReloadTheme.setVisible(False) self.cbBench.setVisible(True) self.cbSlide.setVisible(True) + self.nameFontPointSize = 6 + self.textFontPointSize = 12 + for w in [self.gameTabs, self.serverTabs]: stack = w.findChild(QtGui.QStackedWidget) if stack: @@ -1748,7 +1750,7 @@ class GUI(QtGui.QWidget): if not keys or "=" not in keys or keys[0] == ";": continue key, value = keys.split("=") - design[key.strip()] = value.replace(" ", "").split(',') + design[key.strip()] = value.split(',') geometry = { "viewport": self.viewport, @@ -1828,8 +1830,6 @@ class GUI(QtGui.QWidget): self.cbSlide.setVisible("slide_enable" in design) self.cbBench.setVisible("ao2xp_desk" in design) self.btnReloadTheme.setVisible(True) - - # TODO: Load script common to all themes QtGui.QApplication.setStyle('plastique') for w in [self.gameTabs, self.serverTabs]: @@ -1856,8 +1856,10 @@ class GUI(QtGui.QWidget): if switching: # This is to reset the colors on the music list. Not necessary on startup self.onMusicSearch("") - - self.viewportScale = self.viewport.height() / float(192) + + if not self.viewportScale: + self.viewportScale = self.viewport.height() / float(192) + self.court.resize(self.viewport.size()) self.bench.resize(self.viewport.size()) self.effectView.resize() @@ -1907,15 +1909,6 @@ class GUI(QtGui.QWidget): self.presentedEvidence.setGeometry(self.viewport.x() + 16, self.viewport.y() + 16, 70 * self.viewportScale, 70 * self.viewportScale) # Theme fonts - courtroomFonts = AO2XPpath + "ao2xp_themes/" + theme + '/courtroom_fonts.ini' - if exists(courtroomFonts): - fonts = {} - with open(courtroomDesign) as f: - for keys in f.read().split("\n"): - if not keys or "=" not in keys or keys[0] == ";": continue - key, value = keys.split("=") - fonts[key.strip()] = value.replace(" ", "").split(',') - fontDb = None nameFont = None textFont = None @@ -1926,6 +1919,28 @@ class GUI(QtGui.QWidget): textFont = QtGui.QFont("Igiari") nameFont.setPointSize(self.nameFontPointSize) textFont.setPointSize(self.textFontPointSize) + + courtroomFonts = AO2XPpath + "ao2xp_themes/" + theme + '/courtroom_fonts.ini' + if exists(courtroomFonts): + fontData = {} + with open(courtroomFonts) as f: + for keys in f.read().split("\n"): + if not keys or "=" not in keys or keys[0] == ";": continue + key, value = keys.split("=") + fontData[key.strip()] = value.split(',') + + if "showname" in fontData: + nameFont.setPointSize(int(*fontData["showname"])) + if "showname_bold" in fontData: + nameFont.setBold(int(*fontData["showname_bold"])) + if "showname_color" in fontData: + self.name.setStyleSheet("color: rgb(%s)" % ",".join(fontData["showname_color"])) + + if "message" in fontData: + textFont.setPointSize(int(*fontData["message"])) + if "message_bold" in fontData: + textFont.setBold(int(*fontData["message_bold"])) + self.text.setFont(textFont) self.ao2text.setFont(textFont) self.name.setFont(nameFont) @@ -1981,10 +1996,8 @@ class GUI(QtGui.QWidget): def _themeCommon(self): # Textbox - self.name.setStyleSheet('color: white') - self.text.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: white;") - self.nameFontPointSize = 12 - self.textFontPointSize = 24 + # self.name.setStyleSheet('color: white') + # self.text.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: white;") # IC input and demo slider viewportRight = max(self.viewport.x() + self.viewport.width(), 512)