From 491226ec038e6bea2dae9adf8e7fc1b31bf819c7 Mon Sep 17 00:00:00 2001 From: cidoku Date: Mon, 18 Aug 2025 03:27:03 -0400 Subject: [PATCH] background list --- AO2XPbase/ao2xp_themes/default/theme.py | 9 +++++-- README.md | 2 +- gameview.py | 36 +++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/AO2XPbase/ao2xp_themes/default/theme.py b/AO2XPbase/ao2xp_themes/default/theme.py index 1d38f0d..53dd685 100644 --- a/AO2XPbase/ao2xp_themes/default/theme.py +++ b/AO2XPbase/ao2xp_themes/default/theme.py @@ -3,8 +3,8 @@ self.gamewindow.setStyleSheet("") self.width = 820 self.height = 730 -self.viewport_w = 256*2 -self.viewport_h = 192*2 +#self.viewport_w = 256*2 +#self.viewport_h = 192*2 self.ao2text.setGeometry(16, 32, self.viewport_w - 32, 112) self.ao2text.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: white;") @@ -49,6 +49,11 @@ self.musicitems.setGeometry(8, 8, 268, 184) self.musicsearch.setGeometry(8, self.musicitems.size().height() + 16, 268, self.musicsearch.sizeHint().height()) self.found_songitem_color = "#80ff80" +self.backgrounditems.setGeometry(8, 8, 268, 184) +self.backgroundsearch.setGeometry(8, self.musicitems.size().height() + 16, 268 - self.backgroundrefresh.sizeHint().width() - 20, self.musicsearch.sizeHint().height()) +self.backgroundrefresh.resize(self.backgroundrefresh.sizeHint()) +self.backgroundrefresh.move(268 - self.backgroundrefresh.sizeHint().width(), self.backgrounditems.size().height() + 16) + self.iclog.setGeometry(8, 8, 714 - 304 - 22, 212) self.evidencedropdown.setGeometry(8, 8, 192, 20) diff --git a/README.md b/README.md index 379e91c..d33d07c 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Features added since the last commit of [Headshot's AO2XP](https://github.com/he - Exporting/importing evidence to/from a file - Timers - Slide animations -- Player and area lists +- Player, area, and background lists - Search boxes on music list and character select - Join a server automatically on launch - Pick a character and join an area automatically on join diff --git a/gameview.py b/gameview.py index 6d2f3e8..f357b2b 100644 --- a/gameview.py +++ b/gameview.py @@ -1236,6 +1236,7 @@ class GUI(QtGui.QWidget): self.gametab_misc = QtGui.QWidget() # ao2xp misc/fun stuff self.gametab_players = QtGui.QWidget() # client list self.gametab_music = QtGui.QWidget() # music list + self.gametab_backgrounds = QtGui.QWidget() # backgrounds list self.musicareatabs = QtGui.QTabWidget(self) self.musicitems = QtGui.QListWidget(self.gametab_music) @@ -1249,6 +1250,18 @@ class GUI(QtGui.QWidget): self.areaitems = QtGui.QListWidget() self.areaitems.itemDoubleClicked.connect(self.onAreaClick) + self.backgrounds = [] + self.backgrounditems = QtGui.QListWidget(self.gametab_backgrounds) + self.backgrounditems.itemDoubleClicked.connect(self.onBackgroundClick) + self.backgroundsearch = QtGui.QLineEdit(self.gametab_backgrounds) + self.backgroundsearch.setPlaceholderText("Search...") + self.backgroundsearch.textChanged.connect(self.onBackgroundSearch) + self.backgroundrefresh = QtGui.QPushButton(self.gametab_backgrounds) + self.backgroundrefresh.setText('Refresh') + self.backgroundrefresh.clicked.connect(self.loadBackgrounds) + + self.loadBackgrounds() + self.demoitems = demo.get_demo_treeview() self.demoitems.doubleClicked.connect(self.on_demo_click) @@ -1406,6 +1419,7 @@ class GUI(QtGui.QWidget): self.musicareatabs.addTab(self.gametab_music, "&Music") self.musicareatabs.addTab(self.areaitems, "&Areas") self.musicareatabs.addTab(self.gametab_players, 'Pla&yers') + self.musicareatabs.addTab(self.gametab_backgrounds, "&Backs") self.musicareatabs.addTab(self.demoitems, "Demos") self.icchatinput = QtGui.QLineEdit(self) @@ -1787,6 +1801,25 @@ class GUI(QtGui.QWidget): self.musicitems.addItem(songitem) else: self.allMusic() + + def loadBackgrounds(self): + self.backgrounditems.clear() + self.backgroundsearch.clear() + self.backgrounds = [] + for folder in os.listdir(unicode(AOpath + 'background')): + self.backgrounds.append(folder) + self.backgrounditems.addItem(folder) + + def onBackgroundSearch(self, text): + self.backgrounditems.clear() + + if text: + for bg in self.backgrounds: + if QtCore.QString(bg).contains(text, QtCore.Qt.CaseInsensitive): + self.backgrounditems.addItem(bg) + else: + for bg in self.backgrounds: + self.backgrounditems.addItem(bg) def setEvidenceImg(self, guiobj, image, scale=False): if exists(AOpath + 'evidence/' + image): @@ -2391,6 +2424,9 @@ class GUI(QtGui.QWidget): area = item.text().split('\n')[0] self.sendMC(area) + def onBackgroundClick(self, item): + self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/bg " + item.text()) + def sendMC(self, content): if "cccc_ic_support" in self.features and self.showname: self.tcp.send('MC#' + content + '#' + str(self.mychar) + '#' + self.showname.decode('utf-8') + '#%')