diff --git a/AO2XPbase/ao2xp_themes/default/theme.py b/AO2XPbase/ao2xp_themes/default/theme.py index 28061e2..e611c90 100644 --- a/AO2XPbase/ao2xp_themes/default/theme.py +++ b/AO2XPbase/ao2xp_themes/default/theme.py @@ -2,7 +2,7 @@ # window size is defined at the end of the file # IC viewport -_scale = 2.5 +_scale = 2 self.viewport.setGeometry(0, 0, 256 * _scale, 192 * _scale) # Textbox diff --git a/gameview.py b/gameview.py index dd8d389..7e344ca 100644 --- a/gameview.py +++ b/gameview.py @@ -1769,7 +1769,7 @@ class GUI(QtGui.QWidget): "change_character": self.btnChangeChar, "call_mod": self.btnCallMod, "reload_theme": self.btnReloadTheme, - "ic_chat_name": self.shownameEdit, + "ao2_ic_chat_name": self.shownameEdit, "settings": self.btnSettings, "ao2_chatbox": self.chatbox, "ao2_ic_chat_message": self.ICChatInput, @@ -1845,14 +1845,19 @@ class GUI(QtGui.QWidget): stack.setAutoFillBackground(True) stack.setAttribute(QtCore.Qt.WA_NoSystemBackground, False) - with open(AO2XPpath + "ao2xp_themes/" + theme + "/theme.py") as t: - exec t + # pyThemes + pyTheme = AO2XPpath + "ao2xp_themes/" + theme + "/theme.py" + if exists(pyTheme): + with open(pyTheme) as t: + exec t + else: + self._themeCommon() + 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) - self.court.resize(self.viewport.size()) self.bench.resize(self.viewport.size()) self.effectView.resize() @@ -1863,13 +1868,13 @@ class GUI(QtGui.QWidget): self.sideChar.resize() self.slideWitness.resize() self.slideSpeaker.resize() - self.ao2text.setGeometry(self.text.geometry()) self.ao2text.setStyleSheet(self.text.styleSheet()) self.sliDemoSeekbar.setGeometry(self.ICChatInput.geometry()) # Theme chatbox chatboxPixmap = QtGui.QPixmap(testPath( + AO2XPpath + "ao2xp_themes/%s/chatmed.png" % theme, AO2XPpath + "ao2xp_themes/%s/chat.png" % theme, AO2XPpath + 'themes/default/chatmed.png' )) @@ -1908,7 +1913,6 @@ class GUI(QtGui.QWidget): 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(',') @@ -1974,6 +1978,108 @@ class GUI(QtGui.QWidget): # 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)) # os._exit(-2) + + 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 + + # IC input and demo slider + viewportRight = max(self.viewport.x() + self.viewport.width(), 512) + + # IC options + gameTabsHeight = self.gameTabs.height() - self.gameTabs.findChild(QtGui.QTabBar).height() + self.ICLog.setGeometry(0, 0, self.gameTabs.width(), gameTabsHeight) + self.boxPrivateEvidence.setGeometry(8, 8, 192, 20) + self.evidenceDescription.setGeometry(8, 108, self.gameTabs.width() - 22, 112) + self.evidenceImage.setGeometry(self.evidenceDescription.x() + self.evidenceDescription.width() - 70, 8, 70, 70) + self.boxEvidence.setGeometry(8, 8, self.evidenceImage.x() - 16, 20) + self.btnEvidenceAdd.move(8, 32) + self.btnEvidenceAdd.resize(30, 26) + + evidenceadd_size = self.btnEvidenceAdd.size() + self.btnEvidenceEdit.resize(evidenceadd_size) + self.btnEvidenceDelete.resize(evidenceadd_size) + self.btnEvidenceLoad.resize(evidenceadd_size) + self.btnEvidenceSave.resize(evidenceadd_size) + self.btnEvidenceMoveToPrivate.resize(evidenceadd_size) + self.btnEvidenceMoveAllToPrivate.resize(evidenceadd_size) + self.btnEvidenceMoveToGlobal.resize(evidenceadd_size) + self.btnEvidenceMoveAllToGlobal.resize(evidenceadd_size) + self.btnEvidenceSwitchToPrivate.resize(evidenceadd_size) + self.btnEvidenceSwitchToGlobal.resize(evidenceadd_size) + self.btnEvidenceEdit.move(3 + self.btnEvidenceAdd.x() + self.btnEvidenceAdd.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceDelete.move(3 + self.btnEvidenceEdit.x() + self.btnEvidenceEdit.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceMoveToPrivate.move(3 + self.btnEvidenceDelete.x() + self.btnEvidenceDelete.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceMoveAllToPrivate.move(3 + self.btnEvidenceMoveToPrivate.x() + self.btnEvidenceMoveToPrivate.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceMoveToGlobal.move(3 + self.btnEvidenceDelete.x() + self.btnEvidenceDelete.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceMoveAllToGlobal.move(3 + self.btnEvidenceMoveToPrivate.x() + self.btnEvidenceMoveToPrivate.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceSwitchToPrivate.move(3 + self.btnEvidenceMoveAllToPrivate.x() + self.btnEvidenceMoveAllToPrivate.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceSwitchToGlobal.move(3 + self.btnEvidenceMoveAllToPrivate.x() + self.btnEvidenceMoveAllToPrivate.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceLoad.move(3 + self.btnEvidenceSwitchToPrivate.x() + self.btnEvidenceSwitchToPrivate.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidenceSave.move(3 + self.btnEvidenceLoad.x() + self.btnEvidenceLoad.size().width(), self.btnEvidenceAdd.y()) + self.btnEvidencePresent.move(self.evidenceDescription.x() + self.evidenceDescription.width() / 2 - self.btnEvidencePresent.button_off.size().width() / 2, self.evidenceDescription.y() - self.btnEvidencePresent.button_off.size().height()) + + self.queueItems.setGeometry(8, 8, self.gameTabs.width() - 22, gameTabsHeight - self.btnQueueRemove.sizeHint().height() - 20) + self.btnQueueRemove.resize(self.btnQueueRemove.sizeHint()) + self.btnQueueRemove.move(8, self.queueItems.size().height() + 16) + self.btnQueueClear.move(self.btnQueueRemove.x() + self.btnQueueRemove.size().width(), self.btnQueueRemove.y()) + + self.lblNotMuted.move(8, 8) + self.unmutedList.setGeometry(8, 24, 160, 192) + self.mutedList.setGeometry(238, 24, 160, 192) + self.lblMuted.move(238 + self.mutedList.size().width() - self.mutedList.size().width() - 8, 8) + self.btnMute.setGeometry((714 - 304) / 2 - 26, 64, 48, 32) + self.btnUnmute.setGeometry((714 - 304) / 2 - 26, 128, 48, 32) + + self.iniSwapList.setGeometry(8, 8, self.gameTabs.width() - 16, self.iniSwapList.sizeHint().height()) + self.btnIniSwapConfirm.resize(self.btnIniSwapRefresh.sizeHint()) + self.btnIniSwapConfirm.move(8, 64) + self.btnIniSwapReset.resize(self.btnIniSwapRefresh.sizeHint()) + self.btnIniSwapReset.move(8, self.btnIniSwapConfirm.y() + self.btnIniSwapConfirm.size().height() + 8) + self.btnIniSwapRefresh.resize(self.btnIniSwapRefresh.sizeHint()) + self.btnIniSwapRefresh.move(8, self.btnIniSwapReset.y() + self.btnIniSwapReset.size().height() + 8) + self.lblIniSwapInfo.setGeometry(8, 32, 192, 24) + + self.cbPair.setGeometry(16, 16, 128, 24) + self.boxPair.setGeometry(112, 20, 192, 18) + self.sliPairOffset.setGeometry(114, 48, 192, 24) + self.lblPairOffset.move(self.sliPairOffset.x() - 88, self.sliPairOffset.y()+4) + self.sliPairOffsetY.setGeometry(114, 72, 24, 112) + self.lblPairOffsetY.move(self.lblPairOffset.x(), self.lblPairOffset.y()+64) + self.btnPairOffsetReset.move(self.sliPairOffset.x() + self.sliPairOffset.size().width() + 8, self.lblPairOffsetY.y()) + self.lblPairOrder.move(self.lblPairOffset.x(), self.lblPairOffset.y()+144) + self.boxPairOrder.setGeometry(self.sliPairOffset.x(), self.lblPairOrder.y()-4, 80, self.btnPairOffsetReset.sizeHint().height()) + + self.cbSpacing.move(self.cbMockText.x(), self.cbMockText.y()+24) + self.cbAutoCaps.move(self.cbSpacing.x(), self.cbSpacing.y()+24) + + ## Sidebar + oocBottom = self.OOCNameInput.y() + self.OOCNameInput.height() # 268 + self.OOCLogin.resize(48, 20) + self.OOCLogin.move(viewportRight + 14 + self.OOCLog.size().width() - (self.OOCLogin.size().width()), oocBottom + 6) + + # Server tabs + serverTabsHeight = self.serverTabs.height() - self.serverTabs.findChild(QtGui.QTabBar).height() + + self.musicItems.setGeometry(8, 8, self.serverTabs.width() - 20, serverTabsHeight - self.musicSearch.sizeHint().height() - 20) + self.btnMusicOptions.setGeometry(self.musicItems.x() + self.musicItems.width() - self.btnMusicOptions.sizeHint().width(), self.musicItems.size().height() + 16, self.btnMusicOptions.sizeHint().width(), self.musicSearch.sizeHint().height()) + self.musicSearch.setGeometry(8, self.btnMusicOptions.y(), self.musicItems.width() - self.btnMusicOptions.width() - 4, self.musicSearch.sizeHint().height()) + + self.playerItems.setGeometry(8, 8, self.serverTabs.width() - 20, serverTabsHeight - self.btnPlayerPair.sizeHint().height() - 20) + self.btnPlayerPair.resize(self.btnPlayerPair.sizeHint()) + self.btnPlayerKick.resize(self.btnPlayerKick.sizeHint()) + self.btnPlayerBan.resize(self.btnPlayerBan.sizeHint()) + self.btnPlayerPair.move(8, self.playerItems.size().height() + 16) + self.btnPlayerKick.move(8 + self.btnPlayerPair.x() + self.btnPlayerPair.size().width(), self.playerItems.size().height() + 16) + self.btnPlayerBan.move(8 + self.btnPlayerKick.x() + self.btnPlayerKick.size().width(), self.playerItems.size().height() + 16) + + self.backgroundItems.setGeometry(8, 8, self.serverTabs.width() - 20, serverTabsHeight - self.btnBackgroundsRefresh.sizeHint().height() - 20) + self.backgroundSearch.setGeometry(8, self.backgroundItems.size().height() + 16, self.serverTabs.width() - 20 - self.btnBackgroundsRefresh.sizeHint().width() - 20, self.backgroundSearch.sizeHint().height()) + self.btnBackgroundsRefresh.resize(self.btnBackgroundsRefresh.sizeHint().width(), self.backgroundSearch.height()) + self.btnBackgroundsRefresh.move(self.backgroundItems.width() - self.btnBackgroundsRefresh.width(), self.backgroundItems.size().height() + 16) def resetPairOffsets(self): self.sliPairOffset.setValue(0) diff --git a/options.py b/options.py index 81acd41..8999007 100644 --- a/options.py +++ b/options.py @@ -106,7 +106,7 @@ class Settings(QtGui.QDialog): self.cbThemes = QtGui.QComboBox() self.themes = listdir(AO2XPpath + "ao2xp_themes") for theme in self.themes: - if exists(AO2XPpath + "ao2xp_themes/"+theme+"/theme.py"): + if exists(AO2XPpath + "ao2xp_themes/"+theme+"/theme.py") or exists(AO2XPpath + "ao2xp_themes/"+theme+"/courtroom_design.ini"): self.cbThemes.addItem(theme) layTheme.addWidget(lblTheme) layTheme.addWidget(self.cbThemes)