switch themes without restarting

This commit is contained in:
cidoku 2025-06-21 19:31:08 -04:00
parent 96d051adfe
commit 428a3b7213
2 changed files with 5 additions and 2 deletions

View File

@ -1626,11 +1626,14 @@ class GUI(QtGui.QWidget):
self.height = 730 self.height = 730
self.load_theme() self.load_theme()
def load_theme(self): def load_theme(self, switching=False):
theme = get_option("General", "theme", "default") theme = get_option("General", "theme", "default")
try: try:
with open(AO2XPpath+"ao2xp_themes/"+theme+"/theme.py") as t: with open(AO2XPpath+"ao2xp_themes/"+theme+"/theme.py") as t:
exec t exec t
if switching:
# This is to reset the colors on the music list. Not necessary on startup
self.onMusicSearch("")
except Exception as e: except Exception as e:
QtGui.QMessageBox.critical(None, "Unable to load theme", "There was a problem loading the current theme \"%s\":\n\n%s." % (theme, e)) QtGui.QMessageBox.critical(None, "Unable to load theme", "There was a problem loading the current theme \"%s\":\n\n%s." % (theme, e))
os._exit(-2) os._exit(-2)

View File

@ -346,7 +346,7 @@ class Settings(QtGui.QDialog):
self.gamewindow.gamewidget.text_wait_time = self.textstaytime.value() self.gamewindow.gamewidget.text_wait_time = self.textstaytime.value()
self.gamewindow.gamewidget.slide_enabled = self.enableslide.isChecked() self.gamewindow.gamewidget.slide_enabled = self.enableslide.isChecked()
if not self.theme_state == self.currtheme.currentText(): if not self.theme_state == self.currtheme.currentText():
self.gamewindow.gamewidget.load_theme() self.gamewindow.gamewidget.load_theme(True)
if not self.gamewindow.gamewidget.demo_playing: if not self.gamewindow.gamewidget.demo_playing:
if not (self.savelogs_state == self.savetolog.isChecked() and self.combinelogs_state == self.savetolog_combine.isChecked()): if not (self.savelogs_state == self.savetolog.isChecked() and self.combinelogs_state == self.savetolog_combine.isChecked()):