From dc96709d37d40d1a11a6c7a311e9642d7357c03d Mon Sep 17 00:00:00 2001 From: cidoku Date: Tue, 7 Oct 2025 16:53:15 -0300 Subject: [PATCH] GUI refactor + improve slide setting --- AO2XPbase/ao2xp_themes/dark/theme.py | 40 +- AO2XPbase/ao2xp_themes/default/theme.py | 246 ++-- audio.py | 30 +- buttons.py | 20 +- charselect.py | 18 +- demo.py | 8 +- gameview.py | 1376 ++++++++++++----------- mainmenu.py | 30 +- options.py | 55 +- packets.py | 30 +- 10 files changed, 934 insertions(+), 919 deletions(-) diff --git a/AO2XPbase/ao2xp_themes/dark/theme.py b/AO2XPbase/ao2xp_themes/dark/theme.py index 6c84feb..11b8bfe 100644 --- a/AO2XPbase/ao2xp_themes/dark/theme.py +++ b/AO2XPbase/ao2xp_themes/dark/theme.py @@ -2,27 +2,27 @@ with open(AO2XPpath + "ao2xp_themes/default/theme.py") as t: exec t self.gamewindow.setObjectName("main") -self.sliderlabel1.setObjectName("musiclabel") -self.sliderlabel2.setObjectName("sfxlabel") -self.sliderlabel3.setObjectName("blipslabel") -self.notmutedlabel.setObjectName("notmutedlabel") -self.mutedlabel.setObjectName("mutedlabel") -self.iniSwapInfo.setObjectName("iniSwapInfo") -self.pairoffset_l.setObjectName("pairoffset_l") -self.ypairoffset_l.setObjectName("ypairoffset_l") -self.pair_order_l.setObjectName("pair_order_l") -self.gametab_log.setObjectName("gametab_log") -self.gametab_evidence.setObjectName("gametab_evidence") -self.gametab_mute.setObjectName("gametab_mute") -self.gametab_iniswap.setObjectName("gametab_iniswap") -self.gametab_pair.setObjectName("gametab_pair") -self.gametab_misc.setObjectName("gametab_misc") -self.gametab_msgqueue.setObjectName("gametab_msgqueue") -self.gametab_music.setObjectName("gametab_music") -self.gametab_players.setObjectName("gametab_player") +self.lblMusicVolume.setObjectName("musiclabel") +self.lblSoundVolume.setObjectName("sfxlabel") +self.lblBlipsVolume.setObjectName("blipslabel") +self.lblNotMuted.setObjectName("lblNotMuted") +self.lblMuted.setObjectName("lblMuted") +self.lblIniSwapInfo.setObjectName("lblIniSwapInfo") +self.lblPairOffset.setObjectName("lblPairOffset") +self.lblPairOffsetY.setObjectName("lblPairOffsetY") +self.lblPairOrder.setObjectName("lblPairOrder") +self.tabLog.setObjectName("tabLog") +self.tabEvidence.setObjectName("tabEvidence") +self.tabMute.setObjectName("tabMute") +self.tabIniSwap.setObjectName("tabIniSwap") +self.tabPair.setObjectName("tabPair") +self.tabMisc.setObjectName("tabMisc") +self.tabQueue.setObjectName("tabQueue") +self.tabMusic.setObjectName("tabMusic") +self.tabPlayers.setObjectName("gameTab_player") self.gamewindow.setStyleSheet(""" - QWidget#main, QSlider, QCheckBox, QLabel#musiclabel, QLabel#sfxlabel, QLabel#blipslabel, QLabel#notmutedlabel, QLabel#mutedlabel, QLabel#iniSwapInfo, QLabel#pairoffset_l, QLabel#ypairoffset_l, QLabel#pair_order_l, QWidget#gametab_log, QWidget#gametab_evidence, QWidget#gametab_mute, QWidget#gametab_iniswap, QWidget#gametab_pair, QWidget#gametab_misc, QWidget#gametab_msgqueue, QWidget#gametab_music, QWidget#gametab_player + QWidget#main, QSlider, QCheckBox, QLabel#musiclabel, QLabel#sfxlabel, QLabel#blipslabel, QLabel#lblNotMuted, QLabel#lblMuted, QLabel#lblIniSwapInfo, QLabel#lblPairOffset, QLabel#lblPairOffsetY, QLabel#lblPairOrder, QWidget#tabLog, QWidget#tabEvidence, QWidget#tabMute, QWidget#tabIniSwap, QWidget#tabPair, QWidget#tabMisc, QWidget#tabQueue, QWidget#tabMusic, QWidget#gameTab_player { color: #eeeeee; background: #111111; @@ -35,4 +35,4 @@ self.gamewindow.setStyleSheet(""" """ ) -self.found_songitem_color = "#444444" \ No newline at end of file +self.foundSongItemColor = "#444444" \ No newline at end of file diff --git a/AO2XPbase/ao2xp_themes/default/theme.py b/AO2XPbase/ao2xp_themes/default/theme.py index b11808f..330fbba 100644 --- a/AO2XPbase/ao2xp_themes/default/theme.py +++ b/AO2XPbase/ao2xp_themes/default/theme.py @@ -20,164 +20,164 @@ self.textFontPointSize = 12 * _scale # IC input and demo slider viewportRight = max(self.viewport.x() + self.viewport.width(), 512) viewportBottom = self.viewport.y() + self.viewport.height() -self.icchatinput.setGeometry(self.viewport.x(), viewportBottom, self.viewport.width(), 23) -self.demoslider.setGeometry(self.icchatinput.x(), self.icchatinput.y(), self.viewport.width(), 23) -viewportBottom += self.icchatinput.height() # 407 +self.ICChatInput.setGeometry(self.viewport.x(), viewportBottom, self.viewport.width(), 23) +self.sliDemoSeekbar.setGeometry(self.ICChatInput.x(), self.ICChatInput.y(), self.viewport.width(), 23) +viewportBottom += self.ICChatInput.height() # 407 # IC options -self.emotedropdown.setGeometry(164 - 28, viewportBottom + 7, 72, 20) -self.colordropdown.setGeometry(self.emotedropdown.x(), viewportBottom + 33, 72, 20) -self.posdropdown.setGeometry(self.emotedropdown.x() + self.emotedropdown.size().width() + 4, self.emotedropdown.y(), 72, 20) -self.flipbutton.move(self.posdropdown.x() + self.posdropdown.width() + 4, self.colordropdown.y() - 5) -self.sfxbutton.move(self.flipbutton.x(), self.flipbutton.y() + 14) -self.nointerruptbtn.move(self.flipbutton.x() + 140, self.flipbutton.y()) -self.additivebtn.move(self.nointerruptbtn.x(), self.sfxbutton.y()) -self.deskbtn.move(self.flipbutton.x() + 70, self.flipbutton.y()) -self.slidebutton.move(self.deskbtn.x(), self.sfxbutton.y()) -self.effectdropdown.setGeometry(self.posdropdown.x(), self.colordropdown.y(), 72, 20) -self.callmodbtn.setGeometry(10, viewportBottom + 31, 60, 23) -self.settingsbtn.setGeometry(self.callmodbtn.x()+self.callmodbtn.size().width(), viewportBottom + 31, self.callmodbtn.width(), 23) -self.changechar.setGeometry(10, viewportBottom + 7, self.callmodbtn.size().width() + self.settingsbtn.size().width(), 23) -self.shownameedit.move(self.posdropdown.x() + self.posdropdown.width() + 4, self.posdropdown.y()) -self.shownameedit.resize(viewportRight - self.shownameedit.x(), 20) +self.boxEmotes.setGeometry(164 - 28, viewportBottom + 7, 72, 20) +self.boxColors.setGeometry(self.boxEmotes.x(), viewportBottom + 33, 72, 20) +self.boxPositions.setGeometry(self.boxEmotes.x() + self.boxEmotes.size().width() + 4, self.boxEmotes.y(), 72, 20) +self.cbFlip.move(self.boxPositions.x() + self.boxPositions.width() + 4, self.boxColors.y() - 5) +self.cbPreanim.move(self.cbFlip.x(), self.cbFlip.y() + 14) +self.cbNoInterrupt.move(self.cbFlip.x() + 140, self.cbFlip.y()) +self.cbAdditive.move(self.cbNoInterrupt.x(), self.cbPreanim.y()) +self.cbBench.move(self.cbFlip.x() + 70, self.cbFlip.y()) +self.cbSlide.move(self.cbBench.x(), self.cbPreanim.y()) +self.boxEffects.setGeometry(self.boxPositions.x(), self.boxColors.y(), 72, 20) +self.btnCallMod.setGeometry(10, viewportBottom + 31, 60, 23) +self.btnSettings.setGeometry(self.btnCallMod.x()+self.btnCallMod.size().width(), viewportBottom + 31, self.btnCallMod.width(), 23) +self.btnChangeChar.setGeometry(10, viewportBottom + 7, self.btnCallMod.size().width() + self.btnSettings.size().width(), 23) +self.shownameEdit.move(self.boxPositions.x() + self.boxPositions.width() + 4, self.boxPositions.y()) +self.shownameEdit.resize(viewportRight - self.shownameEdit.x(), 20) -self.gametabs.move(8, viewportBottom + 61) -self.gametabs.resize(viewportRight - 102, 256) +self.gameTabs.move(8, viewportBottom + 61) +self.gameTabs.resize(viewportRight - 102, 256) -leftSideHeight = self.gametabs.y() + self.gametabs.height() + 6 +leftSideHeight = self.gameTabs.y() + self.gameTabs.height() + 6 -self.iclog.setGeometry(8, 8, self.gametabs.width() - 22, 212) +self.ICLog.setGeometry(8, 8, self.gameTabs.width() - 22, 212) -self.evidencedropdown.setGeometry(8, 8, 192, 20) -self.privatedropdown.setGeometry(8, 8, 192, 20) -self.evidencedesc.setGeometry(8, 108, self.gametabs.width() - 22, 112) -self.evidenceimage.setGeometry(self.evidencedesc.x() + self.evidencedesc.width() - 70, 8, 70, 70) +self.boxEvidence.setGeometry(8, 8, 192, 20) +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.evidenceadd.move(8, 32) -self.evidenceadd.resize(30, 26) -evidenceadd_size = self.evidenceadd.size() -self.evidenceedit.resize(evidenceadd_size) -self.evidencedelete.resize(evidenceadd_size) -self.evidenceload.resize(evidenceadd_size) -self.evidencesave.resize(evidenceadd_size) -self.evidencemoveprivate.resize(evidenceadd_size) -self.evidencemoveallprivate.resize(evidenceadd_size) -self.evidencemoveglobal.resize(evidenceadd_size) -self.evidencemoveallglobal.resize(evidenceadd_size) -self.evidenceswitchprivate.resize(evidenceadd_size) -self.evidenceswitchglobal.resize(evidenceadd_size) -self.evidenceedit.move(3 + self.evidenceadd.x() + self.evidenceadd.size().width(), self.evidenceadd.y()) -self.evidencedelete.move(3 + self.evidenceedit.x() + self.evidenceedit.size().width(), self.evidenceadd.y()) -self.evidencemoveprivate.move(3 + self.evidencedelete.x() + self.evidencedelete.size().width(), self.evidenceadd.y()) -self.evidencemoveallprivate.move(3 + self.evidencemoveprivate.x() + self.evidencemoveprivate.size().width(), self.evidenceadd.y()) -self.evidencemoveglobal.move(3 + self.evidencedelete.x() + self.evidencedelete.size().width(), self.evidenceadd.y()) -self.evidencemoveallglobal.move(3 + self.evidencemoveprivate.x() + self.evidencemoveprivate.size().width(), self.evidenceadd.y()) -self.evidenceswitchprivate.move(3 + self.evidencemoveallprivate.x() + self.evidencemoveallprivate.size().width(), self.evidenceadd.y()) -self.evidenceswitchglobal.move(3 + self.evidencemoveallprivate.x() + self.evidencemoveallprivate.size().width(), self.evidenceadd.y()) +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.evidenceload.move(3 + self.evidenceswitchprivate.x() + self.evidenceswitchprivate.size().width(), self.evidenceadd.y()) -self.evidencesave.move(3 + self.evidenceload.x() + self.evidenceload.size().width(), self.evidenceadd.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.evidencepresent.move(self.evidencedesc.x() + self.evidencedesc.width() / 2 - self.evidencepresent.button_off.size().width() / 2, self.evidencedesc.y() - self.evidencepresent.button_off.size().height()) +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.msgqueue_list.setGeometry(8, 8, self.gametabs.width() - 22, 180) -self.remove_queue.resize(self.remove_queue.sizeHint()) -self.remove_queue.move(8, self.msgqueue_list.size().height() + 16) -self.clear_queue.move(self.remove_queue.x() + self.remove_queue.size().width(), self.remove_queue.y()) +self.queueItems.setGeometry(8, 8, self.gameTabs.width() - 22, 180) +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.notmutedlabel.move(8, 8) -self.unmutedlist.setGeometry(8, 24, 160, 192) -self.mutedlist.setGeometry(238, 24, 160, 192) -self.mutedlabel.move(238 + self.mutedlist.size().width() - self.mutedlist.size().width() - 8, 8) -self.mutebtn.setGeometry((714 - 304) / 2 - 26, 64, 48, 32) -self.unmutebtn.setGeometry((714 - 304) / 2 - 26, 128, 48, 32) +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, 192, self.iniSwapList.sizeHint().height()) -self.iniswapconfirm.resize(self.iniswapconfirm.sizeHint()) -self.iniswapconfirm.move(714 - 304 - 22 - self.iniswapconfirm.size().width(), 8) -self.iniswapreset.resize(self.iniswapconfirm.size()) -self.iniswapreset.move(714 - 304 - 22 - self.iniswapconfirm.size().width(), 16 + self.iniswapconfirm.size().height()) -self.iniSwapInfo.setGeometry(8, 32, 192, 24) -self.iniswaprefresh.move(8, 64) -self.iniswaprefresh.resize(self.iniswaprefresh.sizeHint()) +self.btnIniSwapConfirm.resize(self.btnIniSwapConfirm.sizeHint()) +self.btnIniSwapConfirm.move(714 - 304 - 22 - self.btnIniSwapConfirm.size().width(), 8) +self.btnIniSwapReset.resize(self.btnIniSwapConfirm.size()) +self.btnIniSwapReset.move(714 - 304 - 22 - self.btnIniSwapConfirm.size().width(), 16 + self.btnIniSwapConfirm.size().height()) +self.lblIniSwapInfo.setGeometry(8, 32, 192, 24) +self.btnIniSwapRefresh.move(8, 64) +self.btnIniSwapRefresh.resize(self.btnIniSwapRefresh.sizeHint()) -self.paircheckbox.setGeometry(16, 16, 128, 24) -self.pairdropdown.setGeometry(112, 20, 192, 18) -self.pairOffset.setGeometry(114, 48, 192, 24) -self.pairoffset_l.move(self.pairOffset.x() - 88, self.pairOffset.y()+4) -self.yPairOffset.setGeometry(114, 72, 24, 112) -self.ypairoffset_l.move(self.pairoffset_l.x(), self.pairoffset_l.y()+64) -self.pairoffsetreset.move(self.pairOffset.x() + self.pairOffset.size().width() + 8, self.ypairoffset_l.y()) -self.pair_order_l.move(self.pairoffset_l.x(), self.pairoffset_l.y()+144) -self.pair_order.setGeometry(self.pairOffset.x(), self.pair_order_l.y()-4, 80, self.pairoffsetreset.sizeHint().height()) +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.spacebartext.move(self.mocktext.x(), self.mocktext.y()+24) -self.autocaps.move(self.spacebartext.x(), self.spacebartext.y()+24) +self.cbSpacing.move(self.cbMockText.x(), self.cbMockText.y()+24) +self.cbAutoCaps.move(self.cbSpacing.x(), self.cbSpacing.y()+24) # Judge options -self.defensebar.moveBar(self.gametabs.x() + self.gametabs.width() + 11, viewportBottom + 61) -self.prosecutionbar.moveBar(self.defensebar.x(), viewportBottom + 75) -self.realizationbtn.move(self.defensebar.x(), viewportBottom + 89) -self.shakebtn.move(self.realizationbtn.x() + self.realizationbtn.width(), self.realizationbtn.y()) +self.btnDefenseBar.moveBar(self.gameTabs.x() + self.gameTabs.width() + 11, viewportBottom + 61) +self.btnProsecutionBar.moveBar(self.btnDefenseBar.x(), viewportBottom + 75) +self.btnRealization.move(self.btnDefenseBar.x(), viewportBottom + 89) +self.btnShake.move(self.btnRealization.x() + self.btnRealization.width(), self.btnRealization.y()) -self.wtcebtn_1.move(self.defensebar.x(), viewportBottom + 137) -self.wtcebtn_2.move(self.wtcebtn_1.x(), self.wtcebtn_1.y() + self.wtcebtn_1.size().height()) -self.notguiltybtn.move(self.wtcebtn_1.x(), self.wtcebtn_2.y() + self.wtcebtn_2.size().height()) -self.guiltybtn.move(self.wtcebtn_1.x(), self.notguiltybtn.y() + self.notguiltybtn.size().height()) +self.btnWitnessTestimony.move(self.btnDefenseBar.x(), viewportBottom + 137) +self.btnCrossExamination.move(self.btnWitnessTestimony.x(), self.btnWitnessTestimony.y() + self.btnWitnessTestimony.size().height()) +self.btnNotGuilty.move(self.btnWitnessTestimony.x(), self.btnCrossExamination.y() + self.btnCrossExamination.size().height()) +self.btnGuilty.move(self.btnWitnessTestimony.x(), self.btnNotGuilty.y() + self.btnNotGuilty.size().height()) ## Sidebar # OOC chat -self.ooclog.setGeometry(viewportRight + 14, 0, 288, max(730, leftSideHeight) - 482) -self.oocnameinput.resize(self.oocnameinput.sizeHint().width() - 32, self.oocnameinput.sizeHint().height()) -self.oocnameinput.move(viewportRight + 14, self.ooclog.y() + self.ooclog.height()) -self.oocinput.resize(self.ooclog.width() - self.oocnameinput.width(), self.oocinput.sizeHint().height()) -self.oocinput.move(viewportRight + 14 + self.oocnameinput.size().width(), self.oocnameinput.y()) +self.OOCLog.setGeometry(viewportRight + 14, 0, 288, max(730, leftSideHeight) - 482) +self.OOCNameInput.resize(self.OOCNameInput.sizeHint().width() - 32, self.OOCNameInput.sizeHint().height()) +self.OOCNameInput.move(viewportRight + 14, self.OOCLog.y() + self.OOCLog.height()) +self.OOCInput.resize(self.OOCLog.width() - self.OOCNameInput.width(), self.OOCInput.sizeHint().height()) +self.OOCInput.move(viewportRight + 14 + self.OOCNameInput.size().width(), self.OOCNameInput.y()) -oocBottom = self.oocnameinput.y() + self.oocnameinput.height() # 268 +oocBottom = self.OOCNameInput.y() + self.OOCNameInput.height() # 268 # Volume sliders and mod login -self.musicslider.setGeometry(self.oocnameinput.x(), oocBottom + 8, 192, 16) -self.soundslider.setGeometry(self.oocnameinput.x(), oocBottom + 32, 192, 16) -self.blipslider.setGeometry(self.oocnameinput.x(), oocBottom + 56, 192, 16) -self.sliderlabel1.move(self.musicslider.x() + self.musicslider.size().width()+8, self.musicslider.y()) -self.sliderlabel2.move(self.soundslider.x() + self.soundslider.size().width()+8, self.soundslider.y()) -self.sliderlabel3.move(self.blipslider.x() + self.blipslider.size().width()+8, self.blipslider.y()) +self.sliMusicVolume.setGeometry(self.OOCNameInput.x(), oocBottom + 8, 192, 16) +self.sliSoundVolume.setGeometry(self.OOCNameInput.x(), oocBottom + 32, 192, 16) +self.sliBlipsVolume.setGeometry(self.OOCNameInput.x(), oocBottom + 56, 192, 16) +self.lblMusicVolume.move(self.sliMusicVolume.x() + self.sliMusicVolume.size().width()+8, self.sliMusicVolume.y()) +self.lblSoundVolume.move(self.sliSoundVolume.x() + self.sliSoundVolume.size().width()+8, self.sliSoundVolume.y()) +self.lblBlipsVolume.move(self.sliBlipsVolume.x() + self.sliBlipsVolume.size().width()+8, self.sliBlipsVolume.y()) -self.pinglabel.setGeometry(self.sliderlabel3.x() + 32, self.sliderlabel3.y(), 96, 14) -self.ooclogin.resize(48, 20) -self.ooclogin.move(viewportRight + 14 + self.ooclog.size().width() - (self.ooclogin.size().width()), oocBottom + 6) +self.lblPing.setGeometry(self.lblBlipsVolume.x() + 32, self.lblBlipsVolume.y(), 96, 14) +self.OOCLogin.resize(48, 20) +self.OOCLogin.move(viewportRight + 14 + self.OOCLog.size().width() - (self.OOCLogin.size().width()), oocBottom + 6) # Objection and emote buttons -self.holditbtn.move(viewportRight + 14, oocBottom + 84) -self.objectbtn.move(self.holditbtn.x() + 70, self.holditbtn.y()) -self.takethatbtn.move(self.objectbtn.x() + 70, self.holditbtn.y()) -self.customobject.move(self.takethatbtn.x() + 70, self.holditbtn.y()) +self.btnHoldIt.move(viewportRight + 14, oocBottom + 84) +self.btnObjection.move(self.btnHoldIt.x() + 70, self.btnHoldIt.y()) +self.btnTakeThat.move(self.btnObjection.x() + 70, self.btnHoldIt.y()) +self.btnCustomObjection.move(self.btnTakeThat.x() + 70, self.btnHoldIt.y()) self.emotePageGeometry = (viewportRight + 14, oocBottom + 116, 288, 98) -self.prevemotepage.move(viewportRight + 8, oocBottom + 147) -self.nextemotepage.move(viewportRight + 286, self.prevemotepage.y()) +self.btnPrevEmotePage.move(viewportRight + 8, oocBottom + 147) +self.btnNextEmotePage.move(viewportRight + 286, self.btnPrevEmotePage.y()) # Server tabs -self.musicareatabs.setGeometry(viewportRight + 14, oocBottom + 200, 288, 258) +self.serverTabs.setGeometry(viewportRight + 14, oocBottom + 200, 288, 258) -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.musicItems.setGeometry(8, 8, 268, 184) +self.musicSearch.setGeometry(8, self.musicItems.size().height() + 16, 268, self.musicSearch.sizeHint().height()) +self.foundSongItemColor = "#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.backgroundItems.setGeometry(8, 8, 268, 184) +self.backgroundSearch.setGeometry(8, self.musicItems.size().height() + 16, 268 - self.btnBackgroundsRefresh.sizeHint().width() - 20, self.musicSearch.sizeHint().height()) +self.btnBackgroundsRefresh.resize(self.btnBackgroundsRefresh.sizeHint()) +self.btnBackgroundsRefresh.move(268 - self.btnBackgroundsRefresh.sizeHint().width(), self.backgroundItems.size().height() + 16) -self.player_list.setGeometry(8, 8, 268, 180) -self.player_pair.resize(self.player_pair.sizeHint()) -self.player_kick.resize(self.player_kick.sizeHint()) -self.player_ban.resize(self.player_ban.sizeHint()) -self.player_pair.move(8, self.player_list.size().height() + 16) -self.player_kick.move(8 + self.player_pair.x() + self.player_pair.size().width(), self.player_list.size().height() + 16) -self.player_ban.move(8 + self.player_kick.x() + self.player_kick.size().width(), self.player_list.size().height() + 16) +self.playerItems.setGeometry(8, 8, 268, 180) +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) # Main window -self.width = self.ooclog.x() + self.ooclog.width() + 4 +self.width = self.OOCLog.x() + self.OOCLog.width() + 4 self.height = max(730, leftSideHeight) \ No newline at end of file diff --git a/audio.py b/audio.py index 13720d0..1c697ea 100644 --- a/audio.py +++ b/audio.py @@ -57,13 +57,13 @@ Initialize BASS and the opus plugin import pybass.pybassmidi as bassmidi if not dll.BASS_Init(ini.read_ini_int("AO2XP.ini", "Audio", "device", -1), freq, 0, 0, 0): - print "[audio] Audio library could not be initialized. Error", getbasserror() + print "[audio] Audio library could not be initialized. Error", getBassError() if not dll.BASS_PluginLoad(os.path.abspath(opus), 0): - print "[audio] Opus plugin failed to load. Error", getbasserror() + print "[audio] Opus plugin failed to load. Error", getBassError() if not dll.BASS_PluginLoad(os.path.abspath(flac), 0): - print "[audio] FLAC plugin failed to load. Error", getbasserror() + print "[audio] FLAC plugin failed to load. Error", getBassError() if not dll.BASS_PluginLoad(os.path.abspath(midi), 0): - print "[audio] MIDI plugin failed to load. Error", getbasserror() + print "[audio] MIDI plugin failed to load. Error", getBassError() if os.path.exists(os.path.abspath("gm.sf2")): dll.BASS_SetConfigPtr(bassmidi.BASS_CONFIG_MIDI_DEFFONT, "gm.sf2"); @@ -76,10 +76,10 @@ Free BASS """ dll.BASS_Free() -def getcurrdevice(): +def getCurrDevice(): return dll.BASS_GetDevice() -def getdevices(): +def getDevices(): """ Get BASS devices """ @@ -91,13 +91,13 @@ Get BASS devices ind += 1 return devices -def loadhandle(mem, file, offset=0, length=0, flags=0): +def loadHandle(mem, file, offset=0, length=0, flags=0): """ Load a BASS stream handle """ return dll.BASS_StreamCreateFile(mem, file, QWORD(offset), QWORD(length), flags) -def loadURLhandle(url, offset, flags, proc=DOWNLOADPROC(), user=0): +def loadURLHandle(url, offset, flags, proc=DOWNLOADPROC(), user=0): """ Load a BASS stream handle from an URL """ @@ -115,7 +115,7 @@ Load a BASS stream handle """ return bassmidi.BASS_MIDI_StreamCreateFile(mem, file, QWORD(offset), QWORD(length), flags, 0) -def freehandle(handle): +def freeHandle(handle): """ Free a handle """ @@ -127,36 +127,36 @@ Free a module handle """ return dll.BASS_MusicFree(handle) -def playhandle(handle, restart): +def playHandle(handle, restart): """ Play a handle """ return dll.BASS_ChannelPlay(handle, restart) -def pausehandle(handle): +def pauseHandle(handle): """ Play a handle """ return dll.BASS_ChannelPause(handle) -def stophandle(handle): +def stopHandle(handle): """ Stop handle playback """ return dll.BASS_ChannelStop(handle) -def handleisactive(handle): +def handleIsActive(handle): """ Get handle playback status """ return dll.BASS_ChannelIsActive(handle) -def sethandleattr(handle, attr, value): +def setHandleAttr(handle, attr, value): """ Set handle attribute """ if use_ctypes and type(value) == float: value = ctypes.c_float(value) return dll.BASS_ChannelSetAttribute(handle, attr, value) -def getbasserror(): +def getBassError(): return dll.BASS_ErrorGetCode() \ No newline at end of file diff --git a/buttons.py b/buttons.py index 96babfd..0870d88 100644 --- a/buttons.py +++ b/buttons.py @@ -51,9 +51,9 @@ class CustomObjection(QtGui.QLabel): def mousePressEvent(self, event): self.setPressed(not self.isPressed()) - self.parent.objectbtn.setPressed(False) - self.parent.holditbtn.setPressed(False) - self.parent.takethatbtn.setPressed(False) + self.parent.btnObjection.setPressed(False) + self.parent.btnHoldIt.setPressed(False) + self.parent.btnTakeThat.setPressed(False) self.clicked.emit() class WTCEbuttons(QtGui.QLabel): @@ -111,16 +111,16 @@ class Objections(QtGui.QLabel): def mousePressEvent(self, event): self.setPressed(not self.isPressed()) - self.parent.customobject.setPressed(False) + self.parent.btnCustomObjection.setPressed(False) if self.type == 1: - self.parent.objectbtn.setPressed(False) - self.parent.takethatbtn.setPressed(False) + self.parent.btnObjection.setPressed(False) + self.parent.btnTakeThat.setPressed(False) elif self.type == 2: - self.parent.holditbtn.setPressed(False) - self.parent.takethatbtn.setPressed(False) + self.parent.btnHoldIt.setPressed(False) + self.parent.btnTakeThat.setPressed(False) elif self.type == 3: - self.parent.objectbtn.setPressed(False) - self.parent.holditbtn.setPressed(False) + self.parent.btnObjection.setPressed(False) + self.parent.btnHoldIt.setPressed(False) self.clicked.emit() class PixmapButton(QtGui.QAbstractButton): diff --git a/charselect.py b/charselect.py index 93934bd..e4f3307 100644 --- a/charselect.py +++ b/charselect.py @@ -51,7 +51,7 @@ class charselect(QtGui.QWidget): self.cancelbtn.clicked.connect(self.onCancel) self.cancelbtn.move(25, self.quittolobby.y()) - self.buttons = [] + self.btns = [] self.chartaken = [] self.prevpage = PixmapButton(self, QtGui.QPixmap(AO2XPpath + "themes/default/arrow_left.png")) @@ -73,15 +73,15 @@ class charselect(QtGui.QWidget): self.max_chars_on_page = columns * rows for i in range(self.max_chars_on_page): - self.buttons.append(CharIcon(self, i)) + self.btns.append(CharIcon(self, i)) self.chartaken.append(QtGui.QLabel(self)) self.chartaken[i].setPixmap(QtGui.QPixmap(AO2XPpath + "themes/default/char_taken.png")) self.chartaken[i].hide() x_pos = (btn_width + x_spacing) * x_mod_count y_pos = (btn_height + y_spacing) * y_mod_count - self.buttons[i].setGeometry(left+x_pos, top+y_pos, btn_width, btn_height) + self.btns[i].setGeometry(left+x_pos, top+y_pos, btn_width, btn_height) self.chartaken[i].move(left+x_pos, top+y_pos) - self.buttons[i].show() + self.btns[i].show() x_mod_count += 1 if x_mod_count == columns: @@ -106,7 +106,7 @@ class charselect(QtGui.QWidget): i = ind - (self.page * self.max_chars_on_page) if ind >= len(charList): self.chartaken[i].hide() - self.buttons[i].hide() + self.btns[i].hide() self.nextpage.hide() continue else: @@ -133,8 +133,8 @@ class charselect(QtGui.QWidget): self.chartaken[i].setAttribute(QtCore.Qt.WA_TransparentForMouseEvents) self.chartaken[i].show() - self.buttons[i].show() - self.buttons[i].setToolTip(charList[ind][0]) + self.btns[i].show() + self.btns[i].setToolTip(charList[ind][0]) def showCharPageFiltered(self, name): charList = [] @@ -164,8 +164,8 @@ class charselect(QtGui.QWidget): self.charsearch.setText("") # Automatically calls showCharPage def setButtonImage(self, filename, i, charid): - self.buttons[i].setPixmap(QtGui.QPixmap(filename)) - self.buttons[i].setCharIndex(charid) + self.btns[i].setPixmap(QtGui.QPixmap(filename)) + self.btns[i].setCharIndex(charid) def onCharClicked(self, charid): char = self.charList[charid] diff --git a/demo.py b/demo.py index d167cf3..6f3d9cb 100644 --- a/demo.py +++ b/demo.py @@ -46,7 +46,7 @@ class DemoPlayer(QtCore.QObject): self.load_demo(file) print "[client] Started demo playback (%s commands)" % self.demoLength - self.parent.demoslider.setMaximum(self.demoLength - 1) + self.parent.sliDemoSeekbar.setMaximum(self.demoLength - 1) self.OOC_Log.emit("Demo playback started.") secs = self.demoLengthMs / 1000 @@ -68,9 +68,9 @@ class DemoPlayer(QtCore.QObject): return packet = self.demo[self.time] - self.parent.demoslider.blockSignals(True) - self.parent.demoslider.setValue(self.time) - self.parent.demoslider.blockSignals(False) + self.parent.sliDemoSeekbar.blockSignals(True) + self.parent.sliDemoSeekbar.setValue(self.time) + self.parent.sliDemoSeekbar.blockSignals(False) self.time += 1 self.paused = False diff --git a/gameview.py b/gameview.py index faa6f4a..e298640 100644 --- a/gameview.py +++ b/gameview.py @@ -479,9 +479,9 @@ class AOCharMovie(QtGui.QLabel): self.clear() if exists(apngPath): - realDuration = images.get_apngDuration(apngPath) + realDuration = images.get_apng_duration(apngPath) elif exists(webpPath): - realDuration = images.get_webpDuration(webpPath) + realDuration = images.get_webp_duration(webpPath) elif exists(gifPath): self.mMovie.setFileName(gifPath) self.mMovie.jumpToFrame(0) @@ -640,7 +640,7 @@ class AOMovie(QtGui.QLabel): self.yy = y super(AOMovie, self).move(x, y) - def set_play_once(self, once): + def setPlayOnce(self, once): self.playOnce = once def play(self, pImage, pChar=""): @@ -707,7 +707,7 @@ class AOMovie(QtGui.QLabel): def pillowFrameChange(self): if not self.pillowFrames: return - if len(self.pillowFrames)-1 == self.pillowFrame: + if len(self.pillowFrames) - 1 == self.pillowFrame: if self.playOnce or (self.usePillow == 2 and self.pillowLoops+1 == self.webpLoops): delay(int(self.pillowFrames[self.pillowFrame][1] * self.pillowSpeed)) self.stop() @@ -880,14 +880,14 @@ class EditEvidenceDialog(QtGui.QDialog): else: if self.editing: self.gamegui.privateEvidence[self.gamegui.selectedEvidence] = [unicode(name), unicode(desc), unicode(self.filename)] - self.gamegui.privatedropdown.setItemText(self.gamegui.selectedEvidence, name) + self.gamegui.boxPrivateEvidence.setItemText(self.gamegui.selectedEvidence, name) evi = self.gamegui.privateEvidence[self.gamegui.selectedEvidence] - self.gamegui.evidencedesc.setText(evi[1]) - self.gamegui.setEvidenceImage(self.gamegui.evidenceimage, evi[2]) + self.gamegui.evidenceDescription.setText(evi[1]) + self.gamegui.setEvidenceImage(self.gamegui.evidenceImage, evi[2]) else: self.gamegui.privateEvidence.append([name, desc, self.filename]) - self.gamegui.privatedropdown.addItem(name) + self.gamegui.boxPrivateEvidence.addItem(name) self.gamegui.onExportEvidence(True) self.eviname.setText('') @@ -1014,7 +1014,7 @@ class TCPThread(QtCore.QThread): self.send_attempts = 0 #print "[warning] message discarded" del self.parent.messageQueue[0] - self.parent.msgqueue_list.takeItem(0) + self.parent.queueItems.takeItem(0) continue elif error == -1: self.parent.emit(QtCore.SIGNAL('showMessage(QString, QString, QString)'), 'critical', 'Connection lost', "%s connection to server lost." % ("WebSocket" if self.parent.tcp.isWS else "TCP")) @@ -1052,7 +1052,7 @@ class GUI(QtGui.QWidget): blipRate = 1 timeMod = 40 blip = "male" - blipsnd = None + blipSound = None chatMessageSize = 33 mChatMessage = [] blankBlip = False @@ -1198,362 +1198,371 @@ class GUI(QtGui.QWidget): self.onscreenTimerLabels[4].setAlignment(QtCore.Qt.AlignRight) self.onscreenTimerLabels[2].move(self.onscreenTimerLabels[1].x(), self.onscreenTimerLabels[1].y() + self.onscreenTimerLabels[1].size().height() + 4) self.onscreenTimerLabels[4].move(self.onscreenTimerLabels[3].x(), self.onscreenTimerLabels[3].y() + self.onscreenTimerLabels[3].size().height() + 4) - - self.ooclog = ChatLogs(self, 1) - self.ooclog.setReadOnly(True) - self.ooclog.textChanged.connect(self.onOOCLogChanged) - self.oocnameinput = QtGui.QLineEdit(self) - self.oocnameinput.setPlaceholderText('Enter a name...') + # GUI start + self.gameTabs = QtGui.QTabWidget(self) + self.serverTabs = QtGui.QTabWidget(self) + self.tabLog = QtGui.QWidget() # the IC chat log + self.tabEvidence = QtGui.QWidget() # court record + self.tabQueue = QtGui.QWidget() # IC messages pending to be sent + self.tabIniSwap = QtGui.QWidget() # self explanatory + self.tabMute = QtGui.QWidget() # mute a player + self.tabPair = QtGui.QWidget() # AO2 pair + self.tabMisc = QtGui.QWidget() # ao2xp misc/fun stuff + self.tabPlayers = QtGui.QWidget() # player list + self.tabMusic = QtGui.QWidget() # music list + self.tabBackgrounds = QtGui.QWidget() # backgrounds list - self.oocinput = QtGui.QLineEdit(self) - self.oocinput.setPlaceholderText('Server chat/OOC chat...') - self.oocinput.returnPressed.connect(self.onOOCReturn) + # OOC chat log + self.OOCLog = ChatLogs(self, 1) + self.OOCLog.setReadOnly(True) + self.OOCLog.textChanged.connect(self.onOOCLogChanged) + self.OOCNameInput = QtGui.QLineEdit(self) + self.OOCNameInput.setPlaceholderText('Enter a name...') + self.OOCInput = QtGui.QLineEdit(self) + self.OOCInput.setPlaceholderText('Server chat/OOC chat...') + self.OOCInput.returnPressed.connect(self.onOOCReturn) + self.OOCLogin = QtGui.QPushButton("Lo&gin", self) + self.OOCLogin.clicked.connect(self.onOOCLoginClicked) - self.ooclogin = QtGui.QPushButton("Lo&gin", self) - self.ooclogin.clicked.connect(self.onOOCLoginClicked) + # IC chat log + self.ICLog = ChatLogs(self.tabLog, 0, self.OOCLog.logfile) + self.ICLog.setReadOnly(True) + self.ICLog.textChanged.connect(self.onICLogChanged) - self.gametabs = QtGui.QTabWidget(self) - self.gametab_log = QtGui.QWidget() # the IC chat log - self.gametab_evidence = QtGui.QWidget() # court record - self.gametab_msgqueue = QtGui.QWidget() # IC messages pending to be sent - self.gametab_iniswap = QtGui.QWidget() # self explanatory - self.gametab_mute = QtGui.QWidget() # mute a player - self.gametab_pair = QtGui.QWidget() # AO2 pair - 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 + # Evidence + self.boxEvidence = QtGui.QComboBox(self.tabEvidence) + self.boxEvidence.currentIndexChanged.connect(self.changeGlobalEvidence) + self.boxEvidence.setEditable(1) + self.boxPrivateEvidence = QtGui.QComboBox(self.tabEvidence) + self.boxPrivateEvidence.currentIndexChanged.connect(self.changePrivateEvidence) + self.evidenceDescription = QtGui.QTextEdit(self.tabEvidence) + self.evidenceDescription.setReadOnly(True) + self.evidenceImage = QtGui.QLabel(self.tabEvidence) + self.evidenceImage.setPixmap(QtGui.QPixmap(AOpath + 'evidence/empty.png')) + self.evidenceImage.show() + self.btnEvidenceAdd = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "add.png"), "", self.tabEvidence) + self.btnEvidenceAdd.setToolTip('Add new evidence') + self.btnEvidenceAdd.clicked.connect(self.onAddEvidence) + self.btnEvidenceEdit = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "edit.png"), "", self.tabEvidence) + self.btnEvidenceEdit.setToolTip('Edit selected evidence') + self.btnEvidenceEdit.clicked.connect(self.onEditEvidence) + self.btnEvidenceDelete = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "delete.png"), "", self.tabEvidence) + self.btnEvidenceDelete.setToolTip('Delete selected evidence') + self.btnEvidenceDelete.clicked.connect(self.onDeleteEvidence) + self.btnEvidenceLoad = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "folder.png"), "", self.tabEvidence) + self.btnEvidenceLoad.setToolTip('Import all evidence from a file') + self.btnEvidenceLoad.clicked.connect(self.onImportEvidence) + self.btnEvidenceSave = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "disk.png"), "", self.tabEvidence) + self.btnEvidenceSave.setToolTip('Export all evidence to a file') + self.btnEvidenceSave.clicked.connect(self.onExportEvidence) + self.btnEvidenceMoveToPrivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_right.png"), "", self.tabEvidence) + self.btnEvidenceMoveToPrivate.setToolTip('Transfer selected evidence to the private inventory') + self.btnEvidenceMoveToPrivate.clicked.connect(self.onTransferEvidence) + self.btnEvidenceMoveAllToPrivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_right2.png"), "", self.tabEvidence) + self.btnEvidenceMoveAllToPrivate.setToolTip('Transfer all evidence to the private inventory') + self.btnEvidenceMoveAllToPrivate.clicked.connect(self.onTransferAllEvidence) + self.btnEvidenceMoveToGlobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_left.png"), "", self.tabEvidence) + self.btnEvidenceMoveToGlobal.setToolTip('Transfer selected evidence to the global inventory') + self.btnEvidenceMoveToGlobal.clicked.connect(self.onTransferEvidence) + self.btnEvidenceMoveAllToGlobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_left2.png"), "", self.tabEvidence) + self.btnEvidenceMoveAllToGlobal.setToolTip('Transfer all evidence to the global inventory') + self.btnEvidenceMoveAllToGlobal.clicked.connect(self.onTransferAllEvidence) + self.btnEvidenceSwitchToPrivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "world.png"), "", self.tabEvidence) + self.btnEvidenceSwitchToPrivate.setToolTip('Switch to the private inventory') + self.btnEvidenceSwitchToPrivate.clicked.connect(self.onSwitchInventory) + self.btnEvidenceSwitchToGlobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "briefcase.png"), "", self.tabEvidence) + self.btnEvidenceSwitchToGlobal.setToolTip('Switch to the global inventory') + self.btnEvidenceSwitchToGlobal.clicked.connect(self.onSwitchInventory) + self.btnEvidencePresent = buttons.PresentButton(self, self.tabEvidence) + self.boxPrivateEvidence.hide() + self.btnEvidenceMoveToGlobal.hide() + self.btnEvidenceMoveAllToGlobal.hide() + self.btnEvidenceSwitchToGlobal.hide() - self.musicareatabs = QtGui.QTabWidget(self) - self.musicitems = QtGui.QListWidget(self.gametab_music) - self.musicitems.itemDoubleClicked.connect(self.onMusicListItemClicked) - self.musicsearch = QtGui.QLineEdit(self.gametab_music) - self.musicsearch.setPlaceholderText("Search...") - self.musicsearch.textChanged.connect(self.onMusicSearch) + # Muting + self.unmutedList = QtGui.QListWidget(self.tabMute) + self.unmutedList.itemClicked.connect(self.changeUnmuteIndex) + self.mutedList = QtGui.QListWidget(self.tabMute) + self.mutedList.itemClicked.connect(self.changeMuteIndex) + self.btnMute = QtGui.QPushButton(self.tabMute) + self.btnMute.setText('>>') + self.btnMute.clicked.connect(self.onMuteClicked) + self.btnUnmute = QtGui.QPushButton(self.tabMute) + self.btnUnmute.setText('<<') + self.btnUnmute.clicked.connect(self.onUnmuteClicked) + self.lblNotMuted = QtGui.QLabel(self.tabMute) + self.lblNotMuted.setText('Not muted') + self.lblMuted = QtGui.QLabel(self.tabMute) + self.lblMuted.setText('Muted') - self.found_songitem_color = "background: #80FF80;" + # Ini swaps + self.iniSwapList = QtGui.QComboBox(self.tabIniSwap) + self.iniSwapList.currentIndexChanged.connect(self.iniSwapIndexChange) + self.iniSwapList.setEditable(1) + self.btnIniSwapConfirm = QtGui.QPushButton(self.tabIniSwap) + self.btnIniSwapConfirm.setText('Swap') + self.btnIniSwapConfirm.clicked.connect(self.onIniSwapConfirmClicked) + self.btnIniSwapReset = QtGui.QPushButton(self.tabIniSwap) + self.btnIniSwapReset.setText('Reset') + self.btnIniSwapReset.clicked.connect(self.resetIniSwap) + self.btnIniSwapRefresh = QtGui.QPushButton(self.tabIniSwap) + self.btnIniSwapRefresh.setText('Refresh characters') + self.btnIniSwapRefresh.clicked.connect(self.loadSwapCharacters) + self.lblIniSwapInfo = QtGui.QLabel(self.tabIniSwap) + self.lblIniSwapInfo.setText('Not swapped') - self.areaitems = QtGui.QListWidget() - self.areaitems.itemDoubleClicked.connect(self.onAreaListItemClicked) + # Pairing + self.cbPair = QtGui.QCheckBox(self.tabPair) + self.cbPair.setChecked(False) + self.boxPair = QtGui.QComboBox(self.tabPair) + self.sliPairOffset = QtGui.QSlider(QtCore.Qt.Horizontal, self.tabPair) + self.sliPairOffset.setRange(-100, 100) + self.sliPairOffset.setValue(0) + self.lblPairOffset = QtGui.QLabel("X offset", self.tabPair) + self.sliPairOffsetY = QtGui.QSlider(QtCore.Qt.Vertical, self.tabPair) + self.sliPairOffsetY.setRange(-100, 100) + self.sliPairOffsetY.setValue(0) + self.lblPairOffsetY = QtGui.QLabel("Y offset", self.tabPair) + self.btnPairOffsetReset = QtGui.QPushButton("Reset", self.tabPair) + self.btnPairOffsetReset.clicked.connect(self.resetPairOffsets) + self.boxPairOrder = QtGui.QComboBox(self.tabPair) + self.boxPairOrder.addItem("Front") + self.boxPairOrder.addItem("Behind") + self.lblPairOrder = QtGui.QLabel("Pairing order", self.tabPair) + # Misc + self.layMisc = QtGui.QVBoxLayout(self.tabMisc) + self.layMisc.setAlignment(QtCore.Qt.AlignTop) + self.cbMockText = QtGui.QCheckBox() + self.cbMockText.setChecked(False) + self.cbMockText.setText(mockString("mock text")) + self.cbSpacing = QtGui.QCheckBox() + self.cbSpacing.setChecked(False) + self.cbSpacing.setText("S p a c i n g") + self.cbAutoCaps = QtGui.QCheckBox() + self.cbAutoCaps.setChecked(False) + self.cbAutoCaps.setText("Automatic caps and period") + self.layMisc.addWidget(self.cbMockText) + self.layMisc.addWidget(self.cbSpacing) + self.layMisc.addWidget(self.cbAutoCaps) + + # Message queue + self.queueItems = QtGui.QListWidget(self.tabQueue) + self.queueItems.itemClicked.connect(self.onMessageQueueItemClicked) + self.btnQueueRemove = QtGui.QPushButton(self.tabQueue) + self.btnQueueRemove.setText('Delete') + self.btnQueueRemove.clicked.connect(self.onRemoveQueueClicked) + self.btnQueueClear = QtGui.QPushButton(self.tabQueue) + self.btnQueueClear.setText('Clear') + self.btnQueueClear.clicked.connect(self.onClearQueueClicked) + + self.gameTabs.addTab(self.tabLog, '&Log') + self.gameTabs.addTab(self.tabEvidence, '&Evidence') + self.gameTabs.addTab(self.tabMute, 'Mu&te') + self.gameTabs.addTab(self.tabIniSwap, '&INI swap') + self.gameTabs.addTab(self.tabPair, 'Pai&r') + self.gameTabs.addTab(self.tabMisc, 'E&xtras') + self.gameTabs.addTab(self.tabQueue, '&Queue') + + # Music list + self.musicItems = QtGui.QListWidget(self.tabMusic) + self.musicItems.itemDoubleClicked.connect(self.onMusicItemClicked) + self.musicSearch = QtGui.QLineEdit(self.tabMusic) + self.musicSearch.setPlaceholderText("Search...") + self.musicSearch.textChanged.connect(self.onMusicSearch) + self.foundSongItemColor = "background: #80FF80;" + + # Areas list + self.areaItems = QtGui.QListWidget() + self.areaItems.itemDoubleClicked.connect(self.onAreaItemClicked) + + # Player list + self.playerItems = QtGui.QListWidget(self.tabPlayers) + self.playerItems.itemClicked.connect(self.onPlayerItemClicked) + self.btnPlayerPair = QtGui.QPushButton(self.tabPlayers) + self.btnPlayerPair.setText('Pair') + self.btnPlayerPair.clicked.connect(self.onPlayerPairClicked) + self.btnPlayerKick = QtGui.QPushButton(self.tabPlayers) + self.btnPlayerKick.setText('Kick') + self.btnPlayerKick.clicked.connect(self.onPlayerKickClicked) + self.btnPlayerKick.setDisabled(True) + self.btnPlayerBan = QtGui.QPushButton(self.tabPlayers) + self.btnPlayerBan.setText('Ban') + self.btnPlayerBan.clicked.connect(self.onPlayerBanClicked) + self.btnPlayerBan.setDisabled(True) + + # Background list self.backgrounds = [] - self.backgrounditems = QtGui.QListWidget(self.gametab_backgrounds) - self.backgrounditems.itemDoubleClicked.connect(self.onBackgroundListClick) - 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.backgroundItems = QtGui.QListWidget(self.tabBackgrounds) + self.backgroundItems.itemDoubleClicked.connect(self.onBackgroundItemClicked) + self.backgroundSearch = QtGui.QLineEdit(self.tabBackgrounds) + self.backgroundSearch.setPlaceholderText("Search...") + self.backgroundSearch.textChanged.connect(self.onBackgroundSearch) + self.btnBackgroundsRefresh = QtGui.QPushButton(self.tabBackgrounds) + self.btnBackgroundsRefresh.setText('Refresh') + self.btnBackgroundsRefresh.clicked.connect(self.loadBackgrounds) self.loadBackgrounds() + # Demo list self.demoItems = demo.get_demo_treeview() self.demoItems.doubleClicked.connect(self.onDemoClicked) - self.iclog = ChatLogs(self.gametab_log, 0, self.ooclog.logfile) - self.iclog.setReadOnly(True) - self.iclog.textChanged.connect(self.onICLogChanged) + self.serverTabs.addTab(self.tabMusic, "&Music") + self.serverTabs.addTab(self.areaItems, "&Areas") + self.serverTabs.addTab(self.tabPlayers, 'Pla&yers') + self.serverTabs.addTab(self.tabBackgrounds, "&Backs") + self.serverTabs.addTab(self.demoItems, "Demos") - self.evidencedropdown = QtGui.QComboBox(self.gametab_evidence) - self.evidencedropdown.currentIndexChanged.connect(self.changeGlobalEvidence) - self.evidencedropdown.setEditable(1) - self.privatedropdown = QtGui.QComboBox(self.gametab_evidence) - self.privatedropdown.currentIndexChanged.connect(self.changePrivateEvidence) + # IC options + self.ICChatInput = QtGui.QLineEdit(self) + self.ICChatInput.returnPressed.connect(self.onICReturn) + self.ICChatInput.setPlaceholderText('Game chat') - self.evidencedesc = QtGui.QTextEdit(self.gametab_evidence) - self.evidencedesc.setReadOnly(True) - self.evidenceimage = QtGui.QLabel(self.gametab_evidence) - self.evidenceimage.setPixmap(QtGui.QPixmap(AOpath + 'evidence/empty.png')) - self.evidenceimage.show() - self.evidenceadd = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "add.png"), "", self.gametab_evidence) - self.evidenceadd.setToolTip('Add new evidence') - self.evidenceadd.clicked.connect(self.onAddEvidence) - self.evidenceedit = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "edit.png"), "", self.gametab_evidence) - self.evidenceedit.setToolTip('Edit selected evidence') - self.evidenceedit.clicked.connect(self.onEditEvidence) - self.evidencedelete = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "delete.png"), "", self.gametab_evidence) - self.evidencedelete.setToolTip('Delete selected evidence') - self.evidencedelete.clicked.connect(self.onDeleteEvidence) - self.evidenceload = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "folder.png"), "", self.gametab_evidence) - self.evidenceload.setToolTip('Import all evidence from a file') - self.evidenceload.clicked.connect(self.onImportEvidence) - self.evidencesave = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "disk.png"), "", self.gametab_evidence) - self.evidencesave.setToolTip('Export all evidence to a file') - self.evidencesave.clicked.connect(self.onExportEvidence) + self.btnChangeChar = QtGui.QPushButton(self) + self.btnChangeChar.clicked.connect(self.onChangeCharClicked) - self.evidencemoveprivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_right.png"), "", self.gametab_evidence) - self.evidencemoveprivate.setToolTip('Transfer selected evidence to the private inventory') - self.evidencemoveprivate.clicked.connect(self.onTransferEvidence) - self.evidencemoveallprivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_right2.png"), "", self.gametab_evidence) - self.evidencemoveallprivate.setToolTip('Transfer all evidence to the private inventory') - self.evidencemoveallprivate.clicked.connect(self.onTransferAllEvidence) + self.btnCallMod = QtGui.QPushButton(self) + self.btnCallMod.setText('Call mod') + self.btnCallMod.clicked.connect(self.onCallModClicked) - self.evidencemoveglobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_left.png"), "", self.gametab_evidence) - self.evidencemoveglobal.setToolTip('Transfer selected evidence to the global inventory') - self.evidencemoveglobal.clicked.connect(self.onTransferEvidence) - self.evidencemoveallglobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "arrow_left2.png"), "", self.gametab_evidence) - self.evidencemoveallglobal.setToolTip('Transfer all evidence to the global inventory') - self.evidencemoveallglobal.clicked.connect(self.onTransferAllEvidence) + self.btnSettings = QtGui.QPushButton("Settings", self) + self.btnSettings.clicked.connect(self.gamewindow.showSettings) - self.evidenceswitchprivate = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "world.png"), "", self.gametab_evidence) - self.evidenceswitchprivate.setToolTip('Switch to the private inventory') - self.evidenceswitchprivate.clicked.connect(self.onSwitchInventory) - self.evidenceswitchglobal = QtGui.QPushButton(QtGui.QIcon(AO2XPpath + "icons/" + "briefcase.png"), "", self.gametab_evidence) - self.evidenceswitchglobal.setToolTip('Switch to the global inventory') - self.evidenceswitchglobal.clicked.connect(self.onSwitchInventory) + self.boxEmotes = QtGui.QComboBox(self) + self.boxEmotes.currentIndexChanged.connect(partial(self.changeEmote, True)) + self.boxEmotes.setToolTip('Select an emotion for your character') - self.evidencepresent = buttons.PresentButton(self, self.gametab_evidence) + self.boxColors = QtGui.QComboBox(self) + self.boxColors.currentIndexChanged.connect(self.setChatColor) + self.boxColors.setToolTip('Change the color of your message') - self.privatedropdown.hide() - self.evidencemoveglobal.hide() - self.evidencemoveallglobal.hide() - self.evidenceswitchglobal.hide() - - self.msgqueue_list = QtGui.QListWidget(self.gametab_msgqueue) - self.msgqueue_list.itemClicked.connect(self.onMessageQueueItemClicked) - self.remove_queue = QtGui.QPushButton(self.gametab_msgqueue) - self.remove_queue.setText('Delete') - self.remove_queue.clicked.connect(self.onRemoveQueueClicked) - self.clear_queue = QtGui.QPushButton(self.gametab_msgqueue) - self.clear_queue.setText('Clear') - self.clear_queue.clicked.connect(self.onClearQueueClicked) - - self.player_list = QtGui.QListWidget(self.gametab_players) - self.player_list.itemClicked.connect(self.onPlayerListItemClicked) - self.player_pair = QtGui.QPushButton(self.gametab_players) - self.player_pair.setText('Pair') - self.player_pair.clicked.connect(self.onPlayerPairClicked) - self.player_kick = QtGui.QPushButton(self.gametab_players) - self.player_kick.setText('Kick') - self.player_kick.clicked.connect(self.onPlayerKickClicked) - self.player_kick.setDisabled(True) - self.player_ban = QtGui.QPushButton(self.gametab_players) - self.player_ban.setText('Ban') - self.player_ban.clicked.connect(self.onPlayerBanClicked) - self.player_ban.setDisabled(True) - - self.unmutedlist = QtGui.QListWidget(self.gametab_mute) - self.mutedlist = QtGui.QListWidget(self.gametab_mute) - self.mutebtn = QtGui.QPushButton(self.gametab_mute) - self.unmutebtn = QtGui.QPushButton(self.gametab_mute) - self.notmutedlabel = QtGui.QLabel(self.gametab_mute) - self.mutedlabel = QtGui.QLabel(self.gametab_mute) - self.notmutedlabel.setText('Not muted') - self.mutedlabel.setText('Muted') - self.mutebtn.setText('>>') - self.unmutebtn.setText('<<') - self.mutebtn.clicked.connect(self.onMuteClicked) - self.unmutebtn.clicked.connect(self.onUnmuteClicked) - self.mutedlist.itemClicked.connect(self.changeMuteIndex) - self.unmutedlist.itemClicked.connect(self.changeUnmuteIndex) - - self.iniSwapList = QtGui.QComboBox(self.gametab_iniswap) - self.iniSwapList.currentIndexChanged.connect(self.iniSwapIndexChange) - self.iniSwapList.setEditable(1) - self.iniswapconfirm = QtGui.QPushButton(self.gametab_iniswap) - self.iniswapconfirm.setText('Swap') - self.iniswapconfirm.clicked.connect(self.onIniSwapConfirmClicked) - self.iniswapreset = QtGui.QPushButton(self.gametab_iniswap) - self.iniswapreset.setText('Reset') - self.iniswapreset.clicked.connect(self.resetIniSwap) - self.iniSwapInfo = QtGui.QLabel(self.gametab_iniswap) - self.iniSwapInfo.setText('Not swapped') - self.iniswaprefresh = QtGui.QPushButton(self.gametab_iniswap) - self.iniswaprefresh.setText('Refresh characters') - self.iniswaprefresh.clicked.connect(self.loadSwapCharacters) - - self.paircheckbox = QtGui.QCheckBox(self.gametab_pair) - self.paircheckbox.setChecked(False) - self.pairdropdown = QtGui.QComboBox(self.gametab_pair) - self.pairOffset = QtGui.QSlider(QtCore.Qt.Horizontal, self.gametab_pair) - self.pairOffset.setRange(-100, 100) - self.pairOffset.setValue(0) - self.pairoffset_l = QtGui.QLabel("X offset", self.gametab_pair) - self.yPairOffset = QtGui.QSlider(QtCore.Qt.Vertical, self.gametab_pair) - self.yPairOffset.setRange(-100, 100) - self.yPairOffset.setValue(0) - self.ypairoffset_l = QtGui.QLabel("Y offset", self.gametab_pair) - self.pairoffsetreset = QtGui.QPushButton("Reset", self.gametab_pair) - self.pairoffsetreset.clicked.connect(self.resetOffsets) - self.pair_order = QtGui.QComboBox(self.gametab_pair) - self.pair_order.addItem("Front") - self.pair_order.addItem("Behind") - self.pair_order_l = QtGui.QLabel("Pairing order", self.gametab_pair) - - self.misc_layout = QtGui.QVBoxLayout(self.gametab_misc) - self.misc_layout.setAlignment(QtCore.Qt.AlignTop) - self.mocktext = QtGui.QCheckBox() - self.mocktext.setChecked(False) - self.mocktext.setText(mockString("mock text")) - self.spacebartext = QtGui.QCheckBox() - self.spacebartext.setChecked(False) - self.spacebartext.setText("S p a c i n g") - self.autocaps = QtGui.QCheckBox() - self.autocaps.setChecked(False) - self.autocaps.setText("Automatic caps and period") - self.misc_layout.addWidget(self.mocktext) - self.misc_layout.addWidget(self.spacebartext) - self.misc_layout.addWidget(self.autocaps) - - self.gametabs.addTab(self.gametab_log, '&Log') - self.gametabs.addTab(self.gametab_evidence, '&Evidence') - self.gametabs.addTab(self.gametab_mute, 'Mu&te') - self.gametabs.addTab(self.gametab_iniswap, '&INI swap') - self.gametabs.addTab(self.gametab_pair, 'Pai&r') - self.gametabs.addTab(self.gametab_misc, 'E&xtras') - self.gametabs.addTab(self.gametab_msgqueue, '&Queue') - - 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) - self.icchatinput.returnPressed.connect(self.onICReturn) - self.icchatinput.setPlaceholderText('Game chat') - - self.emotedropdown = QtGui.QComboBox(self) - self.emotedropdown.currentIndexChanged.connect(partial(self.changeEmote, True)) - self.emotedropdown.setToolTip('Select an emotion for your character') - - self.colordropdown = QtGui.QComboBox(self) - self.colordropdown.currentIndexChanged.connect(self.setChatColor) - self.colordropdown.setToolTip('Change the color of your message') - - self.posdropdown = QtGui.QComboBox(self) self.defaultPositions = ["def", "pro", "wit", "hld", "hlp", "jud", "jur", "sea"] - self.posdropdown.addItems(self.defaultPositions) - self.posdropdown.currentIndexChanged.connect(self.setPosition) - self.posdropdown.setToolTip('Select your position in the courtroom') - - self.flipbutton = QtGui.QCheckBox(self) - self.flipbutton.stateChanged.connect(self.changeFlipCheck) - self.flipbutton.setText('&Flip') - self.flipbutton.resize(self.flipbutton.sizeHint()) - self.flipbutton.setToolTip("Mirror your character horizontally") - - self.sfxbutton = QtGui.QCheckBox(self) - self.sfxbutton.setChecked(True) - self.sfxbutton.stateChanged.connect(self.changePreanimCheck) - self.sfxbutton.setText('&Pre-anim') - self.sfxbutton.setToolTip("Play a character-specific animation before the next message") + self.boxPositions = QtGui.QComboBox(self) + self.boxPositions.addItems(self.defaultPositions) + self.boxPositions.currentIndexChanged.connect(self.setPosition) + self.boxPositions.setToolTip('Select your position in the courtroom') - self.deskbtn = QtGui.QCheckBox(self) - self.deskbtn.setChecked(True) - self.deskbtn.setText('&Desk') - self.deskbtn.stateChanged.connect(self.ICChatFocus) - self.deskbtn.setToolTip('Show or hide the desk in front of your character') + self.boxEffects = QtGui.QComboBox(self) + self.boxEffects.currentIndexChanged.connect(self.ICChatFocus) + self.boxEffects.setToolTip('Show this effect on your next message') + + self.showname = "" + self.shownameEdit = QtGui.QLineEdit(self) + self.shownameEdit.textChanged.connect(self.onShownameChanged) + self.shownameEdit.setPlaceholderText("Showname") + self.shownameEdit.setToolTip('Set a custom name for your character') + + self.cbFlip = QtGui.QCheckBox(self) + self.cbFlip.stateChanged.connect(self.changeFlipCheck) + self.cbFlip.setText('&Flip') + self.cbFlip.resize(self.cbFlip.sizeHint()) + self.cbFlip.setToolTip("Mirror your character horizontally") + + self.cbPreanim = QtGui.QCheckBox(self) + self.cbPreanim.setChecked(True) + self.cbPreanim.stateChanged.connect(self.changePreanimCheck) + self.cbPreanim.setText('&Pre-anim') + self.cbPreanim.setToolTip("Play a character-specific animation before the next message") + + self.cbBench = QtGui.QCheckBox(self) + self.cbBench.setChecked(True) + self.cbBench.setText('&Desk') + self.cbBench.stateChanged.connect(self.ICChatFocus) + self.cbBench.setToolTip('Show or hide the desk in front of your character') - self.slidebutton = QtGui.QCheckBox(self) - self.slidebutton.stateChanged.connect(self.ICChatFocus) - self.slidebutton.setText('&Slide') - self.slidebutton.resize(self.slidebutton.sizeHint()) - self.slidebutton.setToolTip("Tell clients to play courtroom slide animations for your message") + self.cbSlide = QtGui.QCheckBox(self) + self.cbSlide.stateChanged.connect(self.ICChatFocus) + self.cbSlide.setText('&Slide') + self.cbSlide.resize(self.cbSlide.sizeHint()) + self.cbSlide.setToolTip("Tell clients to play courtroom slide animations for your message") - self.nointerruptbtn = QtGui.QCheckBox(self) - self.nointerruptbtn.setChecked(False) - self.nointerruptbtn.stateChanged.connect(self.ICChatFocus) - self.nointerruptbtn.setText('&No interrupt') - self.deskbtn.resize(self.deskbtn.sizeHint()) - self.nointerruptbtn.setToolTip("Show the next message immediately, ignoring animations") + self.cbNoInterrupt = QtGui.QCheckBox(self) + self.cbNoInterrupt.setChecked(False) + self.cbNoInterrupt.stateChanged.connect(self.ICChatFocus) + self.cbNoInterrupt.setText('&No interrupt') + self.cbNoInterrupt.setToolTip("Show the next message immediately, ignoring animations") - self.additivebtn = QtGui.QCheckBox(self) - self.additivebtn.setChecked(False) - self.additivebtn.setText('Additi&ve') - self.additivebtn.resize(self.additivebtn.sizeHint()) - self.additivebtn.clicked.connect(self.ICChatFocus) - self.additivebtn.setToolTip('Append the next message to the previous one, without a new textbox') - - self.effectdropdown = QtGui.QComboBox(self) - self.effectdropdown.currentIndexChanged.connect(self.ICChatFocus) - self.effectdropdown.setToolTip('Show this effect on your next message') + self.cbAdditive = QtGui.QCheckBox(self) + self.cbAdditive.setChecked(False) + self.cbAdditive.setText('Additi&ve') + self.cbAdditive.resize(self.cbAdditive.sizeHint()) + self.cbAdditive.clicked.connect(self.ICChatFocus) + self.cbAdditive.setToolTip('Append the next message to the previous one, without a new textbox') - self.callmodbtn = QtGui.QPushButton(self) - self.callmodbtn.setText('Call mod') - self.callmodbtn.clicked.connect(self.onCallModClicked) - - self.settingsbtn = QtGui.QPushButton("Settings", self) - self.settingsbtn.clicked.connect(self.gamewindow.showSettings) - - self.changechar = QtGui.QPushButton(self) - self.changechar.clicked.connect(self.onChangeCharClicked) - + # Emotions + self.btnPrevEmotePage = buttons.BackEmoteButton(self) + self.btnPrevEmotePage.hide() + self.btnNextEmotePage = buttons.NextEmoteButton(self) + self.btnNextEmotePage.show() self.currentEmotePage = 0 self.maxEmotesOnPage = 0 self.emoteButtons = [] - self.prevemotepage = buttons.BackEmoteButton(self) - self.prevemotepage.hide() - self.nextemotepage = buttons.NextEmoteButton(self) - self.nextemotepage.show() - self.realizationbtn = buttons.AOToggleButton(self, "realization") - self.realizationbtn.clicked.connect(self.onRealizationClicked) - self.realizationbtn.setToolTip('Show the next message with a realization effect') - self.realizationsnd = audio.loadhandle(False, AOpath + 'sounds/general/sfx-realization.wav', 0, 0, 0) - self.shakebtn = buttons.AOToggleButton(self, "screenshake") # AO 2.8 - self.shakebtn.clicked.connect(self.onShakeClicked) - self.shakebtn.setToolTip('Show the next message with a shaking effect') + # Special effects + self.btnRealization = buttons.AOToggleButton(self, "realization") + self.btnRealization.clicked.connect(self.onRealizationClicked) + self.btnRealization.setToolTip('Show the next message with a realization effect') + self.sndRealization = audio.loadHandle(False, AOpath + 'sounds/general/sfx-realization.wav', 0, 0, 0) + self.btnShake = buttons.AOToggleButton(self, "screenshake") # AO 2.8 + self.btnShake.clicked.connect(self.onShakeClicked) + self.btnShake.setToolTip('Show the next message with a shaking effect') + #self.sndShake = audio.loadHandle(False, AOpath + 'sounds/general/sfx-damage.wav', 0, 0, 0) - self.customobject = buttons.CustomObjection(self) - self.takethatbtn = buttons.Objections(self, 3) - self.objectbtn = buttons.Objections(self, 2) - self.holditbtn = buttons.Objections(self, 1) - self.holditbtn.clicked.connect(self.ICChatFocus) - self.objectbtn.clicked.connect(self.ICChatFocus) - self.takethatbtn.clicked.connect(self.ICChatFocus) - self.customobject.clicked.connect(self.ICChatFocus) + # Objections + self.btnCustomObjection = buttons.CustomObjection(self) + self.btnCustomObjection.clicked.connect(self.ICChatFocus) + self.btnTakeThat = buttons.Objections(self, 3) + self.btnTakeThat.clicked.connect(self.ICChatFocus) + self.btnObjection = buttons.Objections(self, 2) + self.btnObjection.clicked.connect(self.ICChatFocus) + self.btnHoldIt = buttons.Objections(self, 1) + self.btnHoldIt.clicked.connect(self.ICChatFocus) self.objectSound = 0 - self.defensebar = buttons.PenaltyBars(self, 1) - self.prosecutionbar = buttons.PenaltyBars(self, 2) - self.defensebar.minusClicked.connect(self.onPenaltyBarMinusClicked) - self.defensebar.plusClicked.connect(self.onPenaltyBarPlusClicked) - self.prosecutionbar.minusClicked.connect(self.onPenaltyBarMinusClicked) - self.prosecutionbar.plusClicked.connect(self.onPenaltyBarPlusClicked) - - self.wtcebtn_1 = buttons.WTCEbuttons(self, 0) - self.wtcebtn_2 = buttons.WTCEbuttons(self, 1) - self.notguiltybtn = buttons.WTCEbuttons(self, 2, 0) - self.guiltybtn = buttons.WTCEbuttons(self, 2, 1) - - self.wtcebtn_1.clicked.connect(self.OnWTCEButtonClicked) - self.wtcebtn_2.clicked.connect(self.OnWTCEButtonClicked) - self.notguiltybtn.clicked.connect(self.OnWTCEButtonClicked) - self.guiltybtn.clicked.connect(self.OnWTCEButtonClicked) - self.wtcebtn_1.show() - self.wtcebtn_2.show() - self.notguiltybtn.show() - self.guiltybtn.show() + # Judge buttons + self.btnDefenseBar = buttons.PenaltyBars(self, 1) + self.btnDefenseBar.minusClicked.connect(self.onPenaltyBarMinusClicked) + self.btnDefenseBar.plusClicked.connect(self.onPenaltyBarPlusClicked) + self.btnProsecutionBar = buttons.PenaltyBars(self, 2) + self.btnProsecutionBar.minusClicked.connect(self.onPenaltyBarMinusClicked) + self.btnProsecutionBar.plusClicked.connect(self.onPenaltyBarPlusClicked) + self.btnWitnessTestimony = buttons.WTCEbuttons(self, 0) + self.btnWitnessTestimony.clicked.connect(self.OnWTCEButtonClicked) + self.btnCrossExamination = buttons.WTCEbuttons(self, 1) + self.btnCrossExamination.clicked.connect(self.OnWTCEButtonClicked) + self.btnNotGuilty = buttons.WTCEbuttons(self, 2, 0) + self.btnNotGuilty.clicked.connect(self.OnWTCEButtonClicked) + self.btnGuilty = buttons.WTCEbuttons(self, 2, 1) + self.btnGuilty.clicked.connect(self.OnWTCEButtonClicked) + self.btnWitnessTestimony.show() + self.btnCrossExamination.show() + self.btnNotGuilty.show() + self.btnGuilty.show() self.presenting = -1 - self.showname = "" - self.shownameedit = QtGui.QLineEdit(self) - self.shownameedit.textChanged.connect(self.onShownameChanged) - self.shownameedit.setPlaceholderText("Showname") - self.shownameedit.setToolTip('Set a custom name for your character') + # Volume sliders, etc. + self.sliMusicVolume = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliSoundVolume = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliBlipsVolume = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliMusicVolume.setRange(0, 100) + self.sliSoundVolume.setRange(0, 100) + self.sliBlipsVolume.setRange(0, 100) + self.sliMusicVolume.valueChanged.connect(self.changeMusicVolume) + self.sliSoundVolume.valueChanged.connect(self.changeSoundVolume) + self.sliBlipsVolume.valueChanged.connect(self.changeBlipVolume) + self.lblMusicVolume = QtGui.QLabel("Music", self) + self.lblSoundVolume = QtGui.QLabel("SFX", self) + self.lblBlipsVolume = QtGui.QLabel("Blips", self) + self.lblPing = QtGui.QLabel(self) - self.musicslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.soundslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.blipslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.musicslider.setRange(0, 100) - self.soundslider.setRange(0, 100) - self.blipslider.setRange(0, 100) - self.musicslider.valueChanged.connect(self.changeMusicVolume) - self.soundslider.valueChanged.connect(self.changeSoundVolume) - self.blipslider.valueChanged.connect(self.changeBlipVolume) - self.sliderlabel1 = QtGui.QLabel("Music", self) - self.sliderlabel2 = QtGui.QLabel("SFX", self) - self.sliderlabel3 = QtGui.QLabel("Blips", self) + # Demo playback seekbar + self.sliDemoSeekbar = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliDemoSeekbar.valueChanged.connect(self.demoSeek) + self.sliDemoSeekbar.setVisible(False) + self.sliDemoSeekbar.setMinimum(0) - self.pinglabel = QtGui.QLabel(self) - - self.demoslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.demoslider.valueChanged.connect(self.demoSeek) - self.demoslider.setVisible(False) - self.demoslider.setMinimum(0) + # GUI end self.name.show() self.char.show() @@ -1591,15 +1600,12 @@ class GUI(QtGui.QWidget): self.demoPlaying = False self.musicList = {} - self.slideEnabled = bool(getOption("General", "slide", False)) + self.slideEnabled = getOption("General", "slide", False) == 'True' self.slideAvailable = False self.slideHasOverlay = False self.slideKind = 0 # 0 = def-pro, 1 = def-wit, 2 = pro-wit self.slideDirection = 0 # 0 = left to right, 1 = right to left - # if self.slideEnabled: - # self.slidebutton.setChecked(True) - # slideMap[oldPos][newPos] = [kind, direction] self.slideMap = { "def": { "pro": [0, 0], "wit": [1, 0] }, @@ -1717,13 +1723,13 @@ class GUI(QtGui.QWidget): button.lower() self.emoteButtons.append(button) - self.prevemotepage.raise_() - self.nextemotepage.raise_() + self.btnPrevEmotePage.raise_() + self.btnNextEmotePage.raise_() if switching: self.setBackground() self.setScene() - self.emotedropdown.setCurrentIndex(0) + self.boxEmotes.setCurrentIndex(0) self.setEmotePage() self.gamewindow.setFixedSize(self.width, self.height) self.gamewindow.center() @@ -1731,9 +1737,9 @@ class GUI(QtGui.QWidget): 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 resetOffsets(self): - self.pairOffset.setValue(0) - self.yPairOffset.setValue(0) + def resetPairOffsets(self): + self.sliPairOffset.setValue(0) + self.sliPairOffsetY.setValue(0) def screenShakeTick(self): self.shakesRemaining -= 1 @@ -1757,39 +1763,39 @@ class GUI(QtGui.QWidget): self.screenshake.stop() def ICChatFocus(self): - self.icchatinput.setFocus() + self.ICChatInput.setFocus() def onRealizationClicked(self): - if self.realizationbtn.isPressed(): - self.effectdropdown.setCurrentIndex(1) # realization - elif self.effectdropdown.currentText() == "realization": - self.effectdropdown.setCurrentIndex(0) + if self.btnRealization.isPressed(): + self.boxEffects.setCurrentIndex(1) # realization + elif self.boxEffects.currentText() == "realization": + self.boxEffects.setCurrentIndex(0) self.ICChatFocus() def onShakeClicked(self): - self.sfxbutton.setChecked(False) + self.cbPreanim.setChecked(False) self.ICChatFocus() def onOOCLoginClicked(self): - if not self.oocnameinput.text(): - self.oocnameinput.setText("unnamed") + if not self.OOCNameInput.text(): + self.OOCNameInput.setText("unnamed") if not self.login: password, ok = QtGui.QInputDialog.getText(self, "Login as moderator", "Enter password.") if password and ok: - self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/login") - self.sendOOCchat(self.oocnameinput.text().toUtf8(), password.toUtf8()) + self.sendOOCchat(self.OOCNameInput.text().toUtf8(), "/login") + self.sendOOCchat(self.OOCNameInput.text().toUtf8(), password.toUtf8()) else: - self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/logout") + self.sendOOCchat(self.OOCNameInput.text().toUtf8(), "/logout") def setPing(self, newping): - self.pinglabel.setText("Ping: %d" % newping) + self.lblPing.setText("Ping: %d" % newping) def setPosition(self, ind): - if not self.oocnameinput.text(): - self.oocnameinput.setText("unnamed") - self.posdropdown.setCurrentIndex(ind) - self.charSide = str(self.posdropdown.itemText(ind)) + if not self.OOCNameInput.text(): + self.OOCNameInput.setText("unnamed") + self.boxPositions.setCurrentIndex(ind) + self.charSide = str(self.boxPositions.itemText(ind)) self.setJudgeButtons() self.ICChatFocus() @@ -1801,55 +1807,55 @@ class GUI(QtGui.QWidget): if server_is_2_8: self.tcp.send("SP#"+self.charSide+"#%") # all hail new AO 2.8 packet else: - self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/pos "+self.charSide) + self.sendOOCchat(self.OOCNameInput.text().toUtf8(), "/pos "+self.charSide) def changeMusicVolume(self, value): if self.music: - audio.sethandleattr(self.music, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.music, BASS_ATTRIB_VOL, value / 100.0) if value == 0: - audio.pausehandle(self.music) - elif audio.handleisactive(self.music) == BASS_ACTIVE_PAUSED: - audio.playhandle(self.music, False) + audio.pauseHandle(self.music) + elif audio.handleIsActive(self.music) == BASS_ACTIVE_PAUSED: + audio.playHandle(self.music, False) def changeSoundVolume(self, value): if self.sound: - audio.sethandleattr(self.sound, BASS_ATTRIB_VOL, value / 100.0) - audio.sethandleattr(self.realizationsnd, BASS_ATTRIB_VOL, value / 100.0) - audio.sethandleattr(self.wtceSfx, BASS_ATTRIB_VOL, value / 100.0) - audio.sethandleattr(self.guiltySfx, BASS_ATTRIB_VOL, value / 100.0) - audio.sethandleattr(self.notGuiltySfx, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.sound, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.sndRealization, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.wtceSfx, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.guiltySfx, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.notGuiltySfx, BASS_ATTRIB_VOL, value / 100.0) if self.modcall: - audio.sethandleattr(self.modcall, BASS_ATTRIB_VOL, value / 100.0) + audio.setHandleAttr(self.modcall, BASS_ATTRIB_VOL, value / 100.0) def changeBlipVolume(self, value): - if self.blipsnd: - audio.sethandleattr(self.blipsnd, BASS_ATTRIB_VOL, value / 100.0) + if self.blipSound: + audio.setHandleAttr(self.blipSound, BASS_ATTRIB_VOL, value / 100.0) def setJudgeButtons(self): if self.charSide == 'jud': - self.defensebar.minusbtn.show() - self.defensebar.plusbtn.show() - self.prosecutionbar.minusbtn.show() - self.prosecutionbar.plusbtn.show() - self.wtcebtn_1.show() - self.wtcebtn_2.show() - self.notguiltybtn.show() - self.guiltybtn.show() + self.btnDefenseBar.minusbtn.show() + self.btnDefenseBar.plusbtn.show() + self.btnProsecutionBar.minusbtn.show() + self.btnProsecutionBar.plusbtn.show() + self.btnWitnessTestimony.show() + self.btnCrossExamination.show() + self.btnNotGuilty.show() + self.btnGuilty.show() else: - self.defensebar.minusbtn.hide() - self.defensebar.plusbtn.hide() - self.prosecutionbar.minusbtn.hide() - self.prosecutionbar.plusbtn.hide() - self.wtcebtn_1.hide() - self.wtcebtn_2.hide() - self.notguiltybtn.hide() - self.guiltybtn.hide() + self.btnDefenseBar.minusbtn.hide() + self.btnDefenseBar.plusbtn.hide() + self.btnProsecutionBar.minusbtn.hide() + self.btnProsecutionBar.plusbtn.hide() + self.btnWitnessTestimony.hide() + self.btnCrossExamination.hide() + self.btnNotGuilty.hide() + self.btnGuilty.hide() def onShownameChanged(self, text): self.showname = str(text.toUtf8()) def onMusicSearch(self, text): - self.musicitems.clear() + self.musicItems.clear() if text: for song, fname in self.musicList.items(): @@ -1857,29 +1863,29 @@ class GUI(QtGui.QWidget): songitem = QtGui.QListWidgetItem() songitem.setText(song) if exists(unicode(AOpath + 'sounds/music/' + fname.replace("","&").lower())): - songitem.setBackgroundColor(QtGui.QColor(self.found_songitem_color)) - self.musicitems.addItem(songitem) + songitem.setBackgroundColor(QtGui.QColor(self.foundSongItemColor)) + self.musicItems.addItem(songitem) else: self.loadAllMusic() def loadBackgrounds(self): - self.backgrounditems.clear() - self.backgroundsearch.clear() + self.backgroundItems.clear() + self.backgroundSearch.clear() self.backgrounds = [] for folder in os.listdir(unicode(AOpath + 'background')): self.backgrounds.append(folder) - self.backgrounditems.addItem(folder) + self.backgroundItems.addItem(folder) def onBackgroundSearch(self, text): - self.backgrounditems.clear() + self.backgroundItems.clear() if text: for bg in self.backgrounds: if QtCore.QString(bg).contains(text, QtCore.Qt.CaseInsensitive): - self.backgrounditems.addItem(bg) + self.backgroundItems.addItem(bg) else: for bg in self.backgrounds: - self.backgrounditems.addItem(bg) + self.backgroundItems.addItem(bg) def setEvidenceImage(self, guiobj, image, scale=False): if exists(AOpath + 'evidence/' + image): @@ -1903,64 +1909,64 @@ class GUI(QtGui.QWidget): thread.start_new_thread(downloadThread, (url, path)) def changeUnmuteIndex(self, item): - for i in range(self.unmutedlist.count()): - if self.unmutedlist.item(i) == item: + for i in range(self.unmutedList.count()): + if self.unmutedList.item(i) == item: self.muteSelected = i def changeMuteIndex(self, item): - for i in range(self.mutedlist.count()): - if self.mutedlist.item(i) == item: + for i in range(self.mutedList.count()): + if self.mutedList.item(i) == item: self.unmuteSelected = i def onMuteClicked(self): - if self.unmutedlist.count() == 0: + if self.unmutedList.count() == 0: return QtGui.QMessageBox.information(self, 'No character selected', 'There are no characters to mute.') if self.muteSelected == -1: return QtGui.QMessageBox.information(self, 'No character selected', 'To mute a character, select their name from the list to the left, then click the >> button.') for i in range(len(self.charList)): - if self.charList[i][0] == self.unmutedlist.item(self.muteSelected).text(): + if self.charList[i][0] == self.unmutedList.item(self.muteSelected).text(): self.muted.append(i) self.muted.sort() self.muteSelected = -1 break - self.unmutedlist.clear() - self.mutedlist.clear() + self.unmutedList.clear() + self.mutedList.clear() for i in range(len(self.charList)): if i in self.muted: - self.mutedlist.addItem(self.charList[i][0]) + self.mutedList.addItem(self.charList[i][0]) else: - self.unmutedlist.addItem(self.charList[i][0]) + self.unmutedList.addItem(self.charList[i][0]) def onUnmuteClicked(self): - if self.mutedlist.count() == 0: + if self.mutedList.count() == 0: return QtGui.QMessageBox.information(self, 'No character selected', "There are no characters to unmute.") if self.unmuteSelected == -1: return QtGui.QMessageBox.information(self, 'No character selected', 'To unmute a character, select their name from the list to the right, then click the << button.') for char in self.charList: - if char[0] == self.mutedlist.item(self.unmuteSelected).text(): + if char[0] == self.mutedList.item(self.unmuteSelected).text(): del self.muted[self.unmuteSelected] self.unmuteSelected = -1 break - self.unmutedlist.clear() - self.mutedlist.clear() + self.unmutedList.clear() + self.mutedList.clear() for i in range(len(self.charList)): if i in self.muted: - self.mutedlist.addItem(self.charList[i][0]) + self.mutedList.addItem(self.charList[i][0]) else: - self.unmutedlist.addItem(self.charList[i][0]) + self.unmutedList.addItem(self.charList[i][0]) def onPenaltyBarMinusClicked(self, barType): netmsg = 'HP#' + str(barType) + '#' if barType == 1: - if self.defensebar.getHealth() <= 0: + if self.btnDefenseBar.getHealth() <= 0: return - netmsg += str(self.defensebar.getHealth() - 1) + '#' + netmsg += str(self.btnDefenseBar.getHealth() - 1) + '#' elif barType == 2: - if self.prosecutionbar.getHealth() <= 0: + if self.btnProsecutionBar.getHealth() <= 0: return - netmsg += str(self.prosecutionbar.getHealth() - 1) + '#' + netmsg += str(self.btnProsecutionBar.getHealth() - 1) + '#' netmsg += '%' self.tcp.send(netmsg) self.ICChatFocus() @@ -1968,13 +1974,13 @@ class GUI(QtGui.QWidget): def onPenaltyBarPlusClicked(self, barType): netmsg = 'HP#' + str(barType) + '#' if barType == 1: - if self.defensebar.getHealth() >= 10: + if self.btnDefenseBar.getHealth() >= 10: return - netmsg += str(self.defensebar.getHealth() + 1) + '#' + netmsg += str(self.btnDefenseBar.getHealth() + 1) + '#' elif barType == 2: - if self.prosecutionbar.getHealth() >= 10: + if self.btnProsecutionBar.getHealth() >= 10: return - netmsg += str(self.prosecutionbar.getHealth() + 1) + '#' + netmsg += str(self.btnProsecutionBar.getHealth() + 1) + '#' netmsg += '%' self.tcp.send(netmsg) self.ICChatFocus() @@ -2004,22 +2010,22 @@ class GUI(QtGui.QWidget): self.loadCharacter(charName) def loadCharacter(self, charName): - self.msgqueue_list.clear() + self.queueItems.clear() self.messageQueue = [] - self.effectdropdown.clear() - self.emotedropdown.clear() + self.boxEffects.clear() + self.boxEmotes.clear() self.charEmotes = [] self.selectedEmote = 0 self.currentEmotePage = 0 self.swapping = False - self.iniSwapInfo.setText('Not swapped') + self.lblIniSwapInfo.setText('Not swapped') effectsList = ini.get_effects(charName) - self.effectdropdown.setVisible(bool(effectsList)) + self.boxEffects.setVisible(bool(effectsList)) if effectsList: effectsList.insert(0, "No effect") - self.effectdropdown.addItems(effectsList) + self.boxEffects.addItems(effectsList) if isinstance(charName, str): charName = unicode(charName.lower()) @@ -2034,7 +2040,7 @@ class GUI(QtGui.QWidget): self.charShowname = self.charShowname.decode('utf-8') self.charSide = ini.read_ini(AOpath + 'characters/' + charName + '/char.ini', "options", "side", "def") - self.posdropdown.setCurrentIndex(self.posdropdown.findText(self.charSide)) + self.boxPositions.setCurrentIndex(self.boxPositions.findText(self.charSide)) self.setJudgeButtons() for emoteind in range(1, ini.read_ini_int(AOpath + "characters/"+self.charName+"/char.ini", "emotions", "number") + 1): @@ -2057,18 +2063,18 @@ class GUI(QtGui.QWidget): emoteList.append(deskmod) self.charEmotes.append(emoteList) if emoteList[0]: - self.emotedropdown.addItem(emoteList[0]) + self.boxEmotes.addItem(emoteList[0]) else: - self.emotedropdown.addItem(emoteList[1] + ' ' + emoteList[2]) + self.boxEmotes.addItem(emoteList[1] + ' ' + emoteList[2]) - self.emotedropdown.setCurrentIndex(0) + self.boxEmotes.setCurrentIndex(0) self.setEmotePage() def setEmotePage(self): if self.myChar < 0: return - self.prevemotepage.hide() - self.nextemotepage.hide() + self.btnPrevEmotePage.hide() + self.btnNextEmotePage.hide() totalEmotes = len(self.charEmotes) @@ -2090,9 +2096,9 @@ class GUI(QtGui.QWidget): else: emotesOnPage = self.maxEmotesOnPage if totalPages > self.currentEmotePage + 1: - self.nextemotepage.show() + self.btnNextEmotePage.show() if self.currentEmotePage > 0: - self.prevemotepage.show() + self.btnPrevEmotePage.show() for nEmote in range(emotesOnPage): nRealEmote = nEmote + self.currentEmotePage * self.maxEmotesOnPage if nRealEmote == self.selectedEmote: @@ -2124,12 +2130,12 @@ class GUI(QtGui.QWidget): self.resetIniSwap() else: self.swapping = True - self.iniSwapInfo.setText('Swapped to ' + self.charsFolder[self.iniSwapIndex]) + self.lblIniSwapInfo.setText('Swapped to ' + self.charsFolder[self.iniSwapIndex]) self.loadCharacter(self.charsFolder[self.iniSwapIndex]) def resetIniSwap(self): self.swapping = False - self.iniSwapInfo.setText('Not swapped') + self.lblIniSwapInfo.setText('Not swapped') self.loadCharacter(self.charList[self.myChar][0]) def onAddEvidence(self): @@ -2151,7 +2157,7 @@ class GUI(QtGui.QWidget): self.tcp.send('DE#0#%') elif len(self.privateEvidence): del self.privateEvidence[self.selectedEvidence] - self.privatedropdown.removeItem(self.selectedEvidence) + self.boxPrivateEvidence.removeItem(self.selectedEvidence) def onExportEvidence(self, isAutosave=False): if not exists("evidence"): @@ -2217,7 +2223,7 @@ class GUI(QtGui.QWidget): evidence.append([name, description, image]) if self.privateInventorySelected or is_autoload: - dropdown = self.privatedropdown + dropdown = self.boxPrivateEvidence self.privateEvidence = evidence if dropdown.count() > 0: dropdown.clear() @@ -2255,7 +2261,7 @@ class GUI(QtGui.QWidget): self.tcp.send('PE#' + evi[0] + '#' + evi[1] + '#' + evi[2] + '#%') else: self.privateEvidence.append(evi) - self.privatedropdown.addItem(evi[0]) + self.boxPrivateEvidence.addItem(evi[0]) def onTransferAllEvidence(self): fail = [] @@ -2279,7 +2285,7 @@ class GUI(QtGui.QWidget): self.tcp.send('PE#' + evi[0] + '#' + evi[1] + '#' + evi[2] + '#%') else: self.privateEvidence.append(evi) - self.privatedropdown.addItem(evi[0]) + self.boxPrivateEvidence.addItem(evi[0]) if fail: return QtGui.QMessageBox.information(self, "Some evidence wasn't transferred", "The following evidence already exists in the %s inventory:\n\n%s." % (target_str, ", ".join(fail))) @@ -2288,29 +2294,29 @@ class GUI(QtGui.QWidget): self.privateInventorySelected = not self.privateInventorySelected if self.privateInventorySelected and not reset: self.present = False - self.evidencepresent.setPixmap(self.evidencepresent.button_off) - self.evidencepresent.hide() - self.evidencedropdown.hide() - self.privatedropdown.show() - self.evidencemoveglobal.show() - self.evidencemoveallglobal.show() - self.evidenceswitchglobal.show() - self.evidencemoveprivate.hide() - self.evidencemoveallprivate.hide() - self.evidenceswitchprivate.hide() - self.privatedropdown.setCurrentIndex(0) + self.btnEvidencePresent.setPixmap(self.btnEvidencePresent.button_off) + self.btnEvidencePresent.hide() + self.boxEvidence.hide() + self.boxPrivateEvidence.show() + self.btnEvidenceMoveToGlobal.show() + self.btnEvidenceMoveAllToGlobal.show() + self.btnEvidenceSwitchToGlobal.show() + self.btnEvidenceMoveToPrivate.hide() + self.btnEvidenceMoveAllToPrivate.hide() + self.btnEvidenceSwitchToPrivate.hide() + self.boxPrivateEvidence.setCurrentIndex(0) self.changeEvidence(0, 1) else: - self.evidencepresent.show() - self.evidencedropdown.show() - self.privatedropdown.hide() - self.evidencemoveglobal.hide() - self.evidencemoveallglobal.hide() - self.evidenceswitchglobal.hide() - self.evidencemoveprivate.show() - self.evidencemoveallprivate.show() - self.evidenceswitchprivate.show() - self.evidencedropdown.setCurrentIndex(0) + self.btnEvidencePresent.show() + self.boxEvidence.show() + self.boxPrivateEvidence.hide() + self.btnEvidenceMoveToGlobal.hide() + self.btnEvidenceMoveAllToGlobal.hide() + self.btnEvidenceSwitchToGlobal.hide() + self.btnEvidenceMoveToPrivate.show() + self.btnEvidenceMoveAllToPrivate.show() + self.btnEvidenceSwitchToPrivate.show() + self.boxEvidence.setCurrentIndex(0) self.changeEvidence(0, 0) def onCallModClicked(self): @@ -2340,43 +2346,43 @@ class GUI(QtGui.QWidget): if on == 2: on = 1 self.playPreanim = on - self.nointerruptbtn.setDisabled(not on) + self.cbNoInterrupt.setDisabled(not on) if on == 0: - self.nointerruptbtn.setChecked(False) + self.cbNoInterrupt.setChecked(False) self.ICChatFocus() def onMessageQueueItemClicked(self, item): - for i in range(len(self.msgqueue_list)): - if self.msgqueue_list.item(i) == item: + for i in range(len(self.queueItems)): + if self.queueItems.item(i) == item: self.selectedMessage = i def onRemoveQueueClicked(self): - if len(self.msgqueue_list) == 0: + if len(self.queueItems) == 0: return QtGui.QMessageBox.information(self, "No messages in queue", 'Enter a message on the game chat to add one.') if self.selectedMessage == -1: return QtGui.QMessageBox.information(self, 'No message selected', 'Select a message from the list to remove it.') - self.msgqueue_list.takeItem(self.selectedMessage) + self.queueItems.takeItem(self.selectedMessage) del self.messageQueue[self.selectedMessage] def onClearQueueClicked(self): return QtGui.QMessageBox.information(self, "Clear queue", 'Not implemented.') - def onPlayerListItemClicked(self, item): - for i in range(len(self.player_list)): - sel = self.player_list.item(i) + def onPlayerItemClicked(self, item): + for i in range(len(self.playerItems)): + sel = self.playerItems.item(i) if sel == item: s = sel.text() self.selectedPlayer = s[1:s.indexOf("]")] def onPlayerPairClicked(self): if not self.selectedPlayer == -1: - self.gametabs.setCurrentWidget(self.gametab_pair) - self.paircheckbox.setChecked(True) + self.gameTabs.setCurrentWidget(self.tabPair) + self.cbPair.setChecked(True) char = self.playerList[str(self.selectedPlayer)][1] if char == '': return QtGui.QMessageBox.information(self, "Unable to pair", 'That player has no character selected.') else: - self.pairdropdown.setCurrentIndex([c[0] for c in self.charList].index(char)) + self.boxPair.setCurrentIndex([c[0] for c in self.charList].index(char)) else: return QtGui.QMessageBox.information(self, 'No player selected', 'Select a player from the list to attempt pairing.') @@ -2412,8 +2418,8 @@ class GUI(QtGui.QWidget): self.selectedEvidence = ind if len(evi) > 0: - self.evidencedesc.setText(evi[ind][1]) - self.setEvidenceImage(self.evidenceimage, evi[ind][2]) + self.evidenceDescription.setText(evi[ind][1]) + self.setEvidenceImage(self.evidenceImage, evi[ind][2]) def changeGlobalEvidence(self, ind): self.changeEvidence(ind, 0) @@ -2462,10 +2468,10 @@ class GUI(QtGui.QWidget): def disconnectCommon(self): self.onSwitchInventory(True) self.selectedPlayer = -1 - self.player_list.clear() - self.player_kick.setDisabled(True) - self.player_ban.setDisabled(True) - self.ooclogin.setText("Lo&gin") + self.playerItems.clear() + self.btnPlayerKick.setDisabled(True) + self.btnPlayerBan.setDisabled(True) + self.OOCLogin.setText("Lo&gin") self.login = False self.privateInventorySelected = False if self.tcp: @@ -2477,15 +2483,15 @@ class GUI(QtGui.QWidget): self.demoPlaying = False self.stopMusic() - def onMusicListItemClicked(self, item): + def onMusicItemClicked(self, item): self.sendMC(self.musicList[item.text()]) - def onAreaListItemClicked(self, item): + def onAreaItemClicked(self, item): area = item.text().split('\n')[0] self.sendMC(area) - def onBackgroundListClick(self, item): - self.sendOOCchat(self.oocnameinput.text().toUtf8(), "/bg " + item.text()) + def onBackgroundItemClicked(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: @@ -2494,18 +2500,18 @@ class GUI(QtGui.QWidget): self.tcp.send('MC#' + content + '#' + str(self.myChar) + '#%') def onICLogChanged(self): - if self.iclog.verticalScrollBar().value() == self.iclog.verticalScrollBar().maximum(): self.iclog.verticalScrollBar().setValue(self.iclog.verticalScrollBar().maximum()) + if self.ICLog.verticalScrollBar().value() == self.ICLog.verticalScrollBar().maximum(): self.ICLog.verticalScrollBar().setValue(self.ICLog.verticalScrollBar().maximum()) def onOOCLogChanged(self): - if self.ooclog.verticalScrollBar().value() == self.ooclog.verticalScrollBar().maximum(): self.ooclog.verticalScrollBar().setValue(self.ooclog.verticalScrollBar().maximum()) + if self.OOCLog.verticalScrollBar().value() == self.OOCLog.verticalScrollBar().maximum(): self.OOCLog.verticalScrollBar().setValue(self.OOCLog.verticalScrollBar().maximum()) def sendOOCchat(self, name, text): self.tcp.send('CT#' + name + '#' + text + '#%') def onOOCReturn(self): - text = self.oocinput.text().replace('#', '').replace('%', '').replace('&', '').replace('$', '').replace('\\n', '\n') + text = self.OOCInput.text().replace('#', '').replace('%', '').replace('&', '').replace('$', '').replace('\\n', '\n') if text.startsWith('//'): - code = str(self.oocinput.text()).replace('//', '', 1).replace('\\NEWLINE', '\n') + code = str(self.OOCInput.text()).replace('//', '', 1).replace('\\NEWLINE', '\n') try: exec code except Exception as e: @@ -2514,18 +2520,18 @@ class GUI(QtGui.QWidget): msg += str(arg) + '\n' msg = msg.rstrip() - self.ooclog.append(msg) + self.OOCLog.append(msg) return return elif text.startsWith("/pos "): # why....... - ind = self.posdropdown.findText(str(text.split(" ")[1])) - if ind >= 0: self.posdropdown.setCurrentIndex(ind) - self.oocinput.clear() + ind = self.boxPositions.findText(str(text.split(" ")[1])) + if ind >= 0: self.boxPositions.setCurrentIndex(ind) + self.OOCInput.clear() return - if self.mocktext.isChecked(): + if self.cbMockText.isChecked(): text = mockString(text) - if self.autocaps.isChecked(): + if self.cbAutoCaps.isChecked(): l = QtCore.QStringList(list(text)) l[0] = l[0].toUpper() @@ -2533,22 +2539,22 @@ class GUI(QtGui.QWidget): if not l[-1] in last: l.append(".") text = l.join("").replace(" i ", " I ").replace("i'm", "I'm").replace("it's", "It's") - if self.spacebartext.isChecked(): + if self.cbSpacing.isChecked(): l = QtCore.QStringList(list(text)) for i in range(1, len(l)+len(l)-1, 2): l.insert(i, " ") text = l.join("") - self.sendOOCchat(self.oocnameinput.text().toUtf8(), text) - self.oocinput.clear() + self.sendOOCchat(self.OOCNameInput.text().toUtf8(), text) + self.OOCInput.clear() def onICReturn(self): - text = unicode(self.icchatinput.text()).replace('#', '').replace('%', '').replace('&', '').replace('$', '')#.replace('/n', '\n') + text = unicode(self.ICChatInput.text()).replace('#', '').replace('%', '').replace('&', '').replace('$', '')#.replace('/n', '\n') if text: - if self.mocktext.isChecked(): + if self.cbMockText.isChecked(): text = mockString(text) - if self.autocaps.isChecked(): + if self.cbAutoCaps.isChecked(): l = list(text) if l[0] == " " and len(l) > 1: l[1] = l[1].upper() @@ -2558,7 +2564,7 @@ class GUI(QtGui.QWidget): if not l[-1] in last: l.append(".") text = "".join(l).replace(" i ", " I ").replace("i'm", "I'm").replace("it's", "It's") - if self.spacebartext.isChecked(): + if self.cbSpacing.isChecked(): l = list(text) for i in range(1, len(l)+len(l)-1, 2): l.insert(i, " ") @@ -2566,25 +2572,25 @@ class GUI(QtGui.QWidget): emote = self.charEmotes[self.selectedEmote] - if self.nointerruptbtn.isChecked(): + if self.cbNoInterrupt.isChecked(): modifier = 0 else: modifier = self.playPreanim objection = 0 - if self.customobject.isPressed(): + if self.btnCustomObjection.isPressed(): objection = 4 - self.customobject.setPressed(False) - elif self.holditbtn.isPressed(): + self.btnCustomObjection.setPressed(False) + elif self.btnHoldIt.isPressed(): objection = 1 - self.holditbtn.setPressed(False) - elif self.objectbtn.isPressed(): + self.btnHoldIt.setPressed(False) + elif self.btnObjection.isPressed(): objection = 2 - self.objectbtn.setPressed(False) - elif self.takethatbtn.isPressed(): + self.btnObjection.setPressed(False) + elif self.btnTakeThat.isPressed(): objection = 3 - self.takethatbtn.setPressed(False) + self.btnTakeThat.setPressed(False) if emote[3] == '5': #zoom - if self.nointerruptbtn.isChecked(): + if self.cbNoInterrupt.isChecked(): modifier = 5 else: if objection > 0: @@ -2592,7 +2598,7 @@ class GUI(QtGui.QWidget): else: modifier = 5 elif objection > 0: - if self.nointerruptbtn.isChecked(): + if self.cbNoInterrupt.isChecked(): modifier = 0 else: modifier = 2 @@ -2606,7 +2612,7 @@ class GUI(QtGui.QWidget): elif len(emote) > 7 and emote[7]: # Respect deskmod if found msg += "%s#" % str(emote[7]) else: - msg += "%d#" % self.deskbtn.isChecked() + msg += "%d#" % self.cbBench.isChecked() else: msg += "chat#" @@ -2615,7 +2621,7 @@ class GUI(QtGui.QWidget): msg += emote[2]+"#" #anim msg += text+"#" msg += self.charSide+"#" - msg += (ini.get_effect_sound(self.effectdropdown.currentText(), self.charName) if self.effectdropdown.currentIndex() > 0 else emote[4])+"#" #sfx + msg += (ini.get_effect_sound(self.boxEffects.currentText(), self.charName) if self.boxEffects.currentIndex() > 0 else emote[4])+"#" #sfx msg += str(modifier)+"#" #emote modifier msg += str(self.myChar)+"#" #character ID msg += emote[5]+"#" #sfx delay @@ -2624,14 +2630,14 @@ class GUI(QtGui.QWidget): if self.present: self.present = False - self.evidencepresent.setPixmap(self.evidencepresent.button_off) + self.btnEvidencePresent.setPixmap(self.btnEvidencePresent.button_off) if "flipping" in self.features: msg += str(self.myFlip)+"#" else: msg += str(self.myChar)+"#" # old AO servers send a second charID in the message because drunk fanat - msg += str(int(self.realizationbtn.isPressed()))+"#" + msg += str(int(self.btnRealization.isPressed()))+"#" msg += str(self.myChatColor)+"#" if "cccc_ic_support" in self.features: @@ -2639,10 +2645,10 @@ class GUI(QtGui.QWidget): if self.showname == "" and not self.charShowname == "": showname = self.charShowname msg += showname+"#" # custom showname - if self.paircheckbox.isChecked(): - msg += str(self.pairdropdown.currentIndex()) # pair charID + if self.cbPair.isChecked(): + msg += str(self.boxPair.currentIndex()) # pair charID if "effects" in self.features: - msg += "^%d#" % self.pair_order.currentIndex() # pair ordering + msg += "^%d#" % self.boxPairOrder.currentIndex() # pair ordering else: msg += "#" else: @@ -2650,15 +2656,15 @@ class GUI(QtGui.QWidget): # AO 2.8: always send offset if "y_offset" in self.features: # AO 2.9 - msg += str(self.pairOffset.value()) + "&" + str(-self.yPairOffset.value()) + "#" + msg += str(self.sliPairOffset.value()) + "&" + str(-self.sliPairOffsetY.value()) + "#" else: - msg += str(self.pairOffset.value())+"#" + msg += str(self.sliPairOffset.value())+"#" - msg += str(int(self.nointerruptbtn.isChecked()))+"#" # NoInterrupt(TM) + msg += str(int(self.cbNoInterrupt.isChecked()))+"#" # NoInterrupt(TM) if "looping_sfx" in self.features: # AO 2.8 msg += emote[6]+"#" # loop sound? - msg += "%d#" % self.shakebtn.isPressed() # screen shake + msg += "%d#" % self.btnShake.isPressed() # screen shake emotes_to_check = [emote[1], "(b)"+emote[2], "(b)/"+emote[2], "(a)"+emote[2], "(a)/"+emote[2] ] effects_to_check = ["_FrameScreenshake", "_FrameRealization", "_FrameSFX"] @@ -2674,17 +2680,17 @@ class GUI(QtGui.QWidget): msg += packet+"#" if "additive" in self.features: - msg += "%d#" % self.additivebtn.isChecked() + msg += "%d#" % self.cbAdditive.isChecked() if "effects" in self.features: - fx = self.effectdropdown.currentText() if self.effectdropdown.currentIndex() > 0 else "" + fx = self.boxEffects.currentText() if self.boxEffects.currentIndex() > 0 else "" fxSound = ini.get_effect_sound(fx, self.charName) p_effect = ini.read_ini(AOpath + "characters/"+self.charName+"/char.ini", "options", "effects") msg += str(fx + "|" + p_effect + "|" + fxSound + "#").encode('utf-8') - self.effectdropdown.setCurrentIndex(0) + self.boxEffects.setCurrentIndex(0) # AO 2.10.2+ - if "customBlips" in self.features: + if "custom_blips" in self.features: blip = ini.read_ini(AOpath + "characters/"+self.charName+"/char.ini", "options", "blips") if not blip: blip = ini.read_ini(AOpath + "characters/"+self.charName+"/char.ini", "options", "gender") @@ -2692,17 +2698,17 @@ class GUI(QtGui.QWidget): msg += str(blip) + "#" # Slides - msg += "%d#" % self.slidebutton.isChecked() + msg += "%d#" % self.cbSlide.isChecked() msg += "%" - self.msgqueue_list.addItem(self.icchatinput.text()) + self.queueItems.addItem(self.ICChatInput.text()) self.messageQueue.append(msg) self.lastMessage = msg - self.icchatinput.clear() - self.realizationbtn.setPressed(False) - self.shakebtn.setPressed(False) + self.ICChatInput.clear() + self.btnRealization.setPressed(False) + self.btnShake.setPressed(False) def setBackground(self, bg=None, reset=False): if bg is None: @@ -2866,9 +2872,9 @@ class GUI(QtGui.QWidget): def netmsgHP(self, type, health): if type == 1: - self.defensebar.setHealth(health) + self.btnDefenseBar.setHealth(health) elif type == 2: - self.prosecutionbar.setHealth(health) + self.btnProsecutionBar.setHealth(health) def netmsgMS(self, p_contents): if len(p_contents) < 15: #this is already done on the TCP thread but i'll do it here anyway as well @@ -2907,9 +2913,9 @@ class GUI(QtGui.QWidget): special = not chatMsgComp or chatMsgComp.isspace() if examine or (fCharId == self.myChar and (special or mChatMessage[CHATMSG] == chatMsgComp)): # our message showed up del self.messageQueue[0] - self.msgqueue_list.takeItem(0) - if self.additivebtn.isChecked(): - self.icchatinput.insert(" ") + self.queueItems.takeItem(0) + if self.cbAdditive.isChecked(): + self.ICChatInput.insert(" ") mChatMessage[CHARNAME] = mChatMessage[CHARNAME].decode("utf-8") mChatMessage[OTHER_NAME] = mChatMessage[OTHER_NAME].decode("utf-8") @@ -2938,7 +2944,7 @@ class GUI(QtGui.QWidget): logcharName += " (???)" if evidence == -1: - self.iclog.append(timestamp + '%s: %s' % (logcharName, chatmsg)) + self.ICLog.append(timestamp + '%s: %s' % (logcharName, chatmsg)) else: eviname = '(NULL) %d' % evidence try: @@ -2946,7 +2952,7 @@ class GUI(QtGui.QWidget): except: pass - self.iclog.append(timestamp + '%s: %s\n%s presented an evidence: %s' % (logcharName, chatmsg, fChar, eviname.strip())) + self.ICLog.append(timestamp + '%s: %s\n%s presented an evidence: %s' % (logcharName, chatmsg, fChar, eviname.strip())) self.isAdditive = (mChatMessage[ADDITIVE] == "1") @@ -3103,11 +3109,11 @@ class GUI(QtGui.QWidget): if mChatMessage: self.mChatMessage = mChatMessage - new_side = self.mChatMessage[SIDE] - can_slide = self.slideAvailable and not wasZoom and int(self.mChatMessage[EMOTE_MOD]) < 5 + newSide = self.mChatMessage[SIDE] + canSlide = self.slideAvailable and not wasZoom and int(self.mChatMessage[EMOTE_MOD]) < 5 - if can_slide and self.mChatMessage[SLIDE] == "1" and self.slideLastPos and new_side != self.slideLastPos and new_side in ["def", "pro", "wit"]: - self.startSlide(self.slideMap[self.slideLastPos][new_side]) + if canSlide and self.mChatMessage[SLIDE] == "1" and self.slideLastPos and newSide != self.slideLastPos and newSide in ["def", "pro", "wit"]: + self.startSlide(self.slideMap[self.slideLastPos][newSide]) else: self.handleChatMessage2() @@ -3187,11 +3193,11 @@ class GUI(QtGui.QWidget): if got_otherCharId > -1: # user is paired self.sideChar.show() - pair_order = self.mChatMessage[OTHER_CHARID].split("^") - if "effects" in self.features and len(pair_order) > 1: - pair_order = int(pair_order[1]) + boxPairOrder = self.mChatMessage[OTHER_CHARID].split("^") + if "effects" in self.features and len(boxPairOrder) > 1: + boxPairOrder = int(boxPairOrder[1]) else: - pair_order = -1 + boxPairOrder = -1 hor2_offset = vert2_offset = 0 if "y_offset" in self.features: # AO 2.9 @@ -3209,17 +3215,17 @@ class GUI(QtGui.QWidget): if hor2_offset < 0: vert2_offset = -1 * hor2_offset / 10 - if pair_order == -1: # pair ordering not supported + if boxPairOrder == -1: # pair ordering not supported if hor2_offset >= hor_offset: self.sideChar.raise_() self.char.raise_() else: self.char.raise_() self.sideChar.raise_() - elif pair_order == 0: # front + elif boxPairOrder == 0: # front self.sideChar.raise_() self.char.raise_() - elif pair_order == 1: # behind + elif boxPairOrder == 1: # behind self.char.raise_() self.sideChar.raise_() @@ -3380,11 +3386,11 @@ class GUI(QtGui.QWidget): callwords = [line.rstrip() for line in f] for callword in callwords: if callword.decode('utf-8').lower() in self.mChatMessage[CHATMSG].lower().split(" "): - self.ooclog.append("%s called you." % fChar) + self.OOCLog.append("%s called you." % fChar) QtGui.QApplication.alert(self, 1000) - snd = audio.loadhandle(False, "word_call.wav", 0, 0, BASS_STREAM_AUTOFREE) + snd = audio.loadHandle(False, "word_call.wav", 0, 0, BASS_STREAM_AUTOFREE) if snd: - audio.playhandle(snd, True) + audio.playHandle(snd, True) break def playEffect(self, fxName, fxSound, pChar, pFolder): @@ -3396,7 +3402,7 @@ class GUI(QtGui.QWidget): if "effects" not in self.features: return - self.effectView.set_play_once(True) + self.effectView.setPlayOnce(True) self.effectView.play(effect) def startChatTicking(self): @@ -3458,10 +3464,10 @@ class GUI(QtGui.QWidget): ) if path: - self.blipsnd = audio.loadhandle(False, path, 0, 0, 0) + self.blipSound = audio.loadHandle(False, path, 0, 0, 0) - if self.blipsnd: - audio.sethandleattr(self.blipsnd, BASS_ATTRIB_VOL, self.blipslider.value() / 100.0) + if self.blipSound: + audio.setHandleAttr(self.blipSound, BASS_ATTRIB_VOL, self.sliBlipsVolume.value() / 100.0) emoteMod = int(self.mChatMessage[EMOTE_MOD]) if emoteMod in (0, 5) and self.mChatMessage[SCREENSHAKE] == "1": @@ -3644,8 +3650,8 @@ class GUI(QtGui.QWidget): if fMessage[self.tickPos] != " " or self.blankBlip: if self.blipPos % self.blipRate == 0 and not formattingChar: self.blipPos = 0 - if self.blipsnd: - audio.playhandle(self.blipsnd, True) + if self.blipSound: + audio.playHandle(self.blipSound, True) self.blipPos += 1 @@ -3668,7 +3674,7 @@ class GUI(QtGui.QWidget): self.handleChatMessage1(self.inboxQueue[0]) def playRealization(self): - audio.playhandle(self.realizationsnd, True) + audio.playHandle(self.sndRealization, True) def playObjectionSound(self, charName, objection): try: @@ -3677,17 +3683,17 @@ class GUI(QtGui.QWidget): print "WARNING: Can't play objection sound if charName is unicode yet" if self.objectSound: - if audio.handleisactive(self.objectSound): - audio.stophandle(self.objectSound) - audio.freehandle(self.objectSound) + if audio.handleIsActive(self.objectSound): + audio.stopHandle(self.objectSound) + audio.freeHandle(self.objectSound) objecting = ["holdit", "objection", "takethat", "custom"][objection-1] if objecting: if exists(AOpath + 'characters/' + charName + '/' + objecting + '.wav'): - self.objectSound = audio.loadhandle(False, AOpath + 'characters/' + charName + '/' + objecting + '.wav', 0, 0, 0) + self.objectSound = audio.loadHandle(False, AOpath + 'characters/' + charName + '/' + objecting + '.wav', 0, 0, 0) elif exists(AOpath + 'characters/' + charName + '/' + objecting + '.opus'): - self.objectSound = audio.loadhandle(False, AOpath + 'characters/' + charName + '/' + objecting + '.opus', 0, 0, 0) + self.objectSound = audio.loadHandle(False, AOpath + 'characters/' + charName + '/' + objecting + '.opus', 0, 0, 0) else: self.objectSound = None if ini.read_ini_bool("AO2XP.ini", "General", "download sounds", True): @@ -3695,11 +3701,11 @@ class GUI(QtGui.QWidget): thread.start_new_thread(downloadThread, ("base/characters/"+charName+"/"+objecting+".opus", AOpath + "characters/"+charName+"/"+objecting.lower() + ".wav")) if exists(AOpath + 'sounds/general/sfx-objection.opus'): - self.objectSound = audio.loadhandle(False, AOpath + 'sounds/general/sfx-objection.opus', 0, 0, 0) + self.objectSound = audio.loadHandle(False, AOpath + 'sounds/general/sfx-objection.opus', 0, 0, 0) else: - self.objectSound = audio.loadhandle(False, AOpath + 'sounds/general/sfx-objection.wav', 0, 0, 0) - audio.sethandleattr(self.objectSound, BASS_ATTRIB_VOL, self.soundslider.value() / 100.0) - audio.playhandle(self.objectSound, True) + self.objectSound = audio.loadHandle(False, AOpath + 'sounds/general/sfx-objection.wav', 0, 0, 0) + audio.setHandleAttr(self.objectSound, BASS_ATTRIB_VOL, self.sliSoundVolume.value() / 100.0) + audio.playHandle(self.objectSound, True) def playSfx(self): sfxName = self.mChatMessage[SFX] @@ -3710,17 +3716,17 @@ class GUI(QtGui.QWidget): def playSound(self, sfx): if self.sound: - if audio.handleisactive(self.sound): - audio.stophandle(self.sound) - audio.freehandle(self.sound) + if audio.handleIsActive(self.sound): + audio.stopHandle(self.sound) + audio.freeHandle(self.sound) path = testPath(AOpath + 'sounds/general/' + sfx, AOpath + 'sounds/general/' + sfx + '.wav', AOpath + 'sounds/general/' + sfx + '.opus') if path: - self.sound = audio.loadhandle(False, path, 0, 0, 0) - audio.sethandleattr(self.sound, BASS_ATTRIB_VOL, self.soundslider.value() / 100.0) + self.sound = audio.loadHandle(False, path, 0, 0, 0) + audio.setHandleAttr(self.sound, BASS_ATTRIB_VOL, self.sliSoundVolume.value() / 100.0) if self.sound: - audio.playhandle(self.sound, True) + audio.playHandle(self.sound, True) def playMusic(self, mus): if mus == "~stop.mp3": @@ -3735,31 +3741,31 @@ class GUI(QtGui.QWidget): self.stopMusic() if exists(AOpath + 'sounds/music/' + musl): - self.music = audio.loadhandle(False, AOpath + 'sounds/music/' + musl, 0, 0, BASS_SAMPLE_LOOP) - audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) - audio.playhandle(self.music, True) - if self.musicslider.value() == 0: - audio.pausehandle(self.music) + self.music = audio.loadHandle(False, AOpath + 'sounds/music/' + musl, 0, 0, BASS_SAMPLE_LOOP) + audio.setHandleAttr(self.music, BASS_ATTRIB_VOL, self.sliMusicVolume.value() / 100.0) + audio.playHandle(self.music, True) + if self.sliMusicVolume.value() == 0: + audio.pauseHandle(self.music) elif ini.read_ini_bool("AO2XP.ini", "General", "download music", True): if mus.lower().startswith("http"): - #self.music = audio.loadURLhandle(mus, 0, BASS_STREAM_BLOCK | BASS_SAMPLE_LOOP) - self.music = audio.loadURLhandle(mus, 0, BASS_SAMPLE_LOOP) + #self.music = audio.loadURLHandle(mus, 0, BASS_STREAM_BLOCK | BASS_SAMPLE_LOOP) + self.music = audio.loadURLHandle(mus, 0, BASS_SAMPLE_LOOP) print "[audio] Trying to play", mus else: for bucket in buckets: if not bucket: continue print "[audio] Music stream:", bucket+'base/sounds/music/' + mus - self.music = audio.loadURLhandle(bucket+'base/sounds/music/' + musl, 0, BASS_STREAM_BLOCK | BASS_SAMPLE_LOOP) + self.music = audio.loadURLHandle(bucket+'base/sounds/music/' + musl, 0, BASS_STREAM_BLOCK | BASS_SAMPLE_LOOP) if self.music: break if self.music: - audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) - audio.playhandle(self.music, True) - if self.musicslider.value() == 0: - audio.pausehandle(self.music) + audio.setHandleAttr(self.music, BASS_ATTRIB_VOL, self.sliMusicVolume.value() / 100.0) + audio.playHandle(self.music, True) + if self.sliMusicVolume.value() == 0: + audio.pauseHandle(self.music) else: - error = audio.getbasserror() + error = audio.getBassError() #print "[audio] Couldn't play music. Error", error # Here comes the evil HTTPS hack for XP systems, but it also allows us to download and play modules and midis, because, why not? musext = os.path.splitext(basename(musl))[-1] @@ -3775,14 +3781,14 @@ class GUI(QtGui.QWidget): def stopMusic(self): if self.music: - if audio.handleisactive(self.music): - audio.stophandle(self.music) + if audio.handleIsActive(self.music): + audio.stopHandle(self.music) if self.specialStream: if self.specialStream == 2: audio.freeMOD(self.music) self.specialStream = 0 else: - audio.freehandle(self.music) + audio.freeHandle(self.music) if self.stream: self.stream = None @@ -3799,40 +3805,40 @@ class GUI(QtGui.QWidget): elif self.specialStream == 2: self.music = audio.loadMOD(True, self.stream, 0, file_length, BASS_SAMPLE_LOOP) else: - self.music = audio.loadhandle(True, self.stream, 0, file_length, BASS_SAMPLE_LOOP) - audio.sethandleattr(self.music, BASS_ATTRIB_VOL, self.musicslider.value() / 100.0) - audio.playhandle(self.music, True) - if self.musicslider.value() == 0: - audio.pausehandle(self.music) + self.music = audio.loadHandle(True, self.stream, 0, file_length, BASS_SAMPLE_LOOP) + audio.setHandleAttr(self.music, BASS_ATTRIB_VOL, self.sliMusicVolume.value() / 100.0) + audio.playHandle(self.music, True) + if self.sliMusicVolume.value() == 0: + audio.pauseHandle(self.music) def loadAllMusic(self): for song, fname in self.musicList.items(): songitem = QtGui.QListWidgetItem() songitem.setText(song) if exists(unicode(AOpath + 'sounds/music/' + fname.replace("","&").lower())): - songitem.setBackgroundColor(QtGui.QColor(self.found_songitem_color)) + songitem.setBackgroundColor(QtGui.QColor(self.foundSongItemColor)) #else: #songitem.setBackgroundColor(QtGui.QColor(255, 128, 128)) - self.musicitems.addItem(songitem) + self.musicItems.addItem(songitem) def loadAllEvidence(self, evi): self.evidence = evi - if self.evidencedropdown.count() > 0: - self.evidencedropdown.clear() + if self.boxEvidence.count() > 0: + self.boxEvidence.clear() for evi in self.evidence: while len(evi) < 3: # new AO 2.9 bug where they never correctly escaped evidence name/desc/image on FantaProtocol evi += [""] evi[0] = decodeAOString(evi[0].decode('utf-8')) evi[1] = decodeAOString(evi[1].decode('utf-8')) evi[2] = decodeAOString(evi[2].decode('utf-8')) - self.evidencedropdown.addItem(evi[0].strip()) + self.boxEvidence.addItem(evi[0].strip()) if not self.evidence: - self.evidencedropdown.setCurrentIndex(0) - self.evidencedesc.setText('.') + self.boxEvidence.setCurrentIndex(0) + self.evidenceDescription.setText('.') else: - self.evidencedropdown.setCurrentIndex(self.selectedEvidence) + self.boxEvidence.setCurrentIndex(self.selectedEvidence) def updatePlayerList(self, pid, op, utype, data=""): if not self.playerList: @@ -3841,20 +3847,20 @@ class GUI(QtGui.QWidget): pid = str(pid) if op == 0: # Add or remove player if utype == 0: # Add a player - self.player_list.addItem("[%s]" % pid) + self.playerItems.addItem("[%s]" % pid) if not pid in self.playerList: self.playerList[pid] = ["", "", "", ""] if utype == 1: # Remove a player - item = self.player_list.findItems("[%s]" % pid, QtCore.Qt.MatchStartsWith) + item = self.playerItems.findItems("[%s]" % pid, QtCore.Qt.MatchStartsWith) if item: - self.player_list.takeItem(self.player_list.row(item[0])) + self.playerItems.takeItem(self.playerItems.row(item[0])) if pid in self.playerList: del self.playerList[pid] else: # Update a player if pid in self.playerList: self.playerList[pid][utype] = data - item = self.player_list.findItems("[%s]" % pid, QtCore.Qt.MatchStartsWith) + item = self.playerItems.findItems("[%s]" % pid, QtCore.Qt.MatchStartsWith) if item: name = self.playerList[pid][0] char = self.playerList[pid][1] @@ -3912,10 +3918,10 @@ class GUI(QtGui.QWidget): if not fname: return - self.player_list.clear() + self.playerItems.clear() self.stopMusic() - self.iclog.clear() - self.ooclog.clear() + self.ICLog.clear() + self.OOCLog.clear() if not self.demoPlaying: self.enableWidgets(True) @@ -3926,8 +3932,8 @@ class GUI(QtGui.QWidget): self.demoPlayer.MS_Chat.connect(self.netmsgMS) self.demoPlayer.newChar.connect(self.onPVPacket) self.demoPlayer.newBackground.connect(self.setBackground) - self.demoPlayer.OOC_Log.connect(self.ooclog.append) - self.demoPlayer.IC_Log.connect(self.iclog.append) + self.demoPlayer.OOC_Log.connect(self.OOCLog.append) + self.demoPlayer.IC_Log.connect(self.ICLog.append) self.demoPlayer.charSlots.connect(partial(self.charSelect.setCharList, self.charList)) self.demoPlayer.loadAllEvidence.connect(self.loadAllEvidence) self.demoPlayer.updatePlayerList.connect(self.updatePlayerList) @@ -3976,35 +3982,38 @@ class GUI(QtGui.QWidget): autojoinarea = getOption("General", "auto join area").decode('utf-8') if autojoinarea != "": self.sendMC(autojoinarea) - self.oocnameinput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name", "unnamed")) - self.shownameedit.setText(ini.read_ini("AO2XP.ini", "General", "Showname")) + self.OOCNameInput.setText(ini.read_ini("AO2XP.ini", "General", "OOC name", "unnamed")) + self.shownameEdit.setText(ini.read_ini("AO2XP.ini", "General", "Showname")) - self.pairdropdown.clear() - self.paircheckbox.setChecked(False) + self.enableWidgets() + + self.boxPair.clear() + self.cbPair.setChecked(False) if "cccc_ic_support" in features: - self.shownameedit.show() - self.nointerruptbtn.show() - self.paircheckbox.setDisabled(False) - self.paircheckbox.setText("Enable pairing") + self.shownameEdit.show() + self.cbNoInterrupt.show() + self.cbPair.setDisabled(False) + self.cbPair.setText("Enable pairing") for char in charList: - self.pairdropdown.addItem(char[0]) + self.boxPair.addItem(char[0]) else: - self.shownameedit.hide() - self.nointerruptbtn.hide() - self.paircheckbox.setDisabled(True) - self.paircheckbox.setText("This server does not support pairing.") + self.shownameEdit.hide() + self.cbNoInterrupt.hide() + self.cbPair.setDisabled(True) + self.cbPair.setToolTip("This server does not support pairing.") - self.deskbtn.setDisabled("deskmod" not in features) - self.flipbutton.setDisabled("flipping" not in features) - self.customobject.setVisible("customobjections" in features) - self.yPairOffset.setVisible("y_offset" in features) - self.ypairoffset_l.setVisible("y_offset" in features) + self.cbBench.setDisabled("deskmod" not in features) + self.cbFlip.setDisabled("flipping" not in features) + self.cbSlide.setDisabled(not self.slideEnabled or "custom_blips" not in features) + self.btnCustomObjection.setVisible("customobjections" in features) + self.sliPairOffsetY.setVisible("y_offset" in features) + self.lblPairOffsetY.setVisible("y_offset" in features) - self.colordropdown.clear() - self.colordropdown.addItems(['White', 'Green', 'Red', 'Orange', 'Blue']) + self.boxColors.clear() + self.boxColors.addItems(['White', 'Green', 'Red', 'Orange', 'Blue']) if "yellowtext" in features: - self.colordropdown.addItems(['Yellow', 'Pink', 'Cyan', 'Gray', 'Rainbow', 'Black']) - self.colordropdown.setCurrentIndex(self.myChatColor) + self.boxColors.addItems(['Yellow', 'Pink', 'Cyan', 'Gray', 'Rainbow', 'Black']) + self.boxColors.setCurrentIndex(self.myChatColor) for hp in hpList: self.healthbars.emit(hp[0], hp[1]) @@ -4016,40 +4025,40 @@ class GUI(QtGui.QWidget): if char[2] == "": char[2] = getCharIni(char[0], "Options", "blips").lower() - self.realizationbtn.setPressed(False) - self.customobject.setPressed(False) - self.mutedlist.clear() - self.unmutedlist.clear() + self.btnRealization.setPressed(False) + self.btnCustomObjection.setPressed(False) + self.mutedList.clear() + self.unmutedList.clear() for char in self.charList: - self.unmutedlist.addItem(char[0]) + self.unmutedList.addItem(char[0]) - self.musicitems.clear() - self.areaitems.clear() - self.evidencedropdown.clear() + self.musicItems.clear() + self.areaItems.clear() + self.boxEvidence.clear() for evi in evidence: - self.evidencedropdown.addItem(evi[0].strip()) + self.boxEvidence.addItem(evi[0].strip()) logstart = '--- Log started on ' + time.ctime() + ' ---' - if self.ooclog.toPlainText(): - self.ooclog.append("\n"+logstart) + if self.OOCLog.toPlainText(): + self.OOCLog.append("\n"+logstart) else: - self.ooclog.append(logstart) - if self.iclog.toPlainText(): - self.iclog.append("\n"+logstart) + self.OOCLog.append(logstart) + if self.ICLog.toPlainText(): + self.ICLog.append("\n"+logstart) else: - self.iclog.append(logstart) + self.ICLog.append(logstart) self.setBackground(background.lower()) self.setScene(True) self.chatbox.hide() for msg in joinOOC: - self.ooclog.append(msg) + self.OOCLog.append(msg) if self.areasLen: for i in range(self.areasLen): areaitem = QtGui.QListWidgetItem() - self.areaitems.addItem(areaitem) + self.areaItems.addItem(areaitem) self.loadAllMusic() self.updateAreaList() else: @@ -4060,9 +4069,9 @@ class GUI(QtGui.QWidget): for type in range(len(playerList[pid])): self.updatePlayerList(pid, 1, type, playerList[pid][type]) - self.musicslider.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Music volume", 100)) - self.soundslider.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Sound volume", 100)) - self.blipslider.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Blip volume", 100)) + self.sliMusicVolume.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Music volume", 100)) + self.sliSoundVolume.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Sound volume", 100)) + self.sliBlipsVolume.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Blip volume", 100)) self.onImportEvidence(True) @@ -4070,8 +4079,8 @@ class GUI(QtGui.QWidget): self.tcpThread.MS_Chat.connect(self.netmsgMS) self.tcpThread.newChar.connect(self.onPVPacket) self.tcpThread.newBackground.connect(self.setBackground) - self.tcpThread.OOC_Log.connect(self.ooclog.append) - self.tcpThread.IC_Log.connect(self.iclog.append) + self.tcpThread.OOC_Log.connect(self.OOCLog.append) + self.tcpThread.IC_Log.connect(self.ICLog.append) self.tcpThread.charSlots.connect(partial(self.charSelect.setCharList, self.charList)) self.tcpThread.showCharSelect.connect(self.charSelect.showCharSelect) self.tcpThread.loadAllEvidence.connect(self.loadAllEvidence) @@ -4081,10 +4090,9 @@ class GUI(QtGui.QWidget): self.tcpThread.start() self.demoPlaying = False - self.enableWidgets() self.startDemoRecorder(background) - self.icchatinput.setFocus() + self.ICChatInput.setFocus() def startDemo(self, fname): self.playerList = [] @@ -4092,7 +4100,7 @@ class GUI(QtGui.QWidget): self.evidence = [] self.areas = [] self.areasLen = 0 - self.features = ['noencryption', 'yellowtext', 'prezoom', 'flipping', 'customobjections', 'fastloading', 'deskmod', 'evidence', 'cccc_ic_support', 'arup', 'casing_alerts', 'modcall_reason', 'looping_sfx', 'additive', 'effects', 'y_offset', 'expanded_deskMods', 'auth_packet', 'customBlips'] + self.features = ['noencryption', 'yellowtext', 'prezoom', 'flipping', 'customobjections', 'fastloading', 'deskmod', 'evidence', 'cccc_ic_support', 'arup', 'casing_alerts', 'modcall_reason', 'looping_sfx', 'additive', 'effects', 'y_offset', 'expanded_desk_mods', 'auth_packet', 'custom_blips'] self.musicList = OrderedDict([]) self.charSelect.hide() self.onPVPacket() @@ -4101,9 +4109,9 @@ class GUI(QtGui.QWidget): self.setScene(True) self.chatbox.hide() - self.musicslider.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Music volume", 100)) - self.soundslider.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Sound volume", 100)) - self.blipslider.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Blip volume", 100)) + self.sliMusicVolume.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Music volume", 100)) + self.sliSoundVolume.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Sound volume", 100)) + self.sliBlipsVolume.setValue(ini.read_ini_int("AO2XP.ini", "Audio", "Blip volume", 100)) self.onImportEvidence(True) @@ -4111,20 +4119,20 @@ class GUI(QtGui.QWidget): self.demoPlayer.MS_Chat.connect(self.netmsgMS) self.demoPlayer.newChar.connect(self.onPVPacket) self.demoPlayer.newBackground.connect(self.setBackground) - self.demoPlayer.OOC_Log.connect(self.ooclog.append) - self.demoPlayer.IC_Log.connect(self.iclog.append) + self.demoPlayer.OOC_Log.connect(self.OOCLog.append) + self.demoPlayer.IC_Log.connect(self.ICLog.append) self.demoPlayer.charSlots.connect(partial(self.charSelect.setCharList, self.charList)) self.demoPlayer.loadAllEvidence.connect(self.loadAllEvidence) self.demoPlayer.updatePlayerList.connect(self.updatePlayerList) self.demoPlayer.rainbowColor.connect(self.text.setStyleSheet) self.demoPlayer.timerUpdate.connect(self.startPauseOnscreenTimers) - self.player_list.clear() + self.playerItems.clear() self.stopMusic() - self.iclog.clear() - self.ooclog.clear() + self.ICLog.clear() + self.OOCLog.clear() - self.changechar.setText('Disconnect') + self.btnChangeChar.setText('Disconnect') self.enableWidgets(True) self.demoPlaying = True self.demoPlayer.start(fname) @@ -4139,27 +4147,27 @@ class GUI(QtGui.QWidget): def enableWidgets(self, demo = False): for widget in [ - self.oocinput, self.callmodbtn, - self.oocnameinput, self.ooclogin, self.gametab_evidence, - self.gametab_msgqueue, self.gametab_iniswap, self.gametab_mute, - self.gametab_pair, self.gametab_misc, self.gametab_players, - self.gametab_music, self.emotedropdown, self.posdropdown, - self.flipbutton, self.sfxbutton, self.nointerruptbtn, - self.effectdropdown, self.slidebutton, self.deskbtn, - self.additivebtn, self.areaitems, self.shownameedit, - self.colordropdown, self.defensebar.minusbtn, self.prosecutionbar.minusbtn, - self.defensebar.plusbtn, self.prosecutionbar.plusbtn, self.wtcebtn_1, - self.wtcebtn_2, self.notguiltybtn, self.guiltybtn, - self.realizationbtn, self.shakebtn, + self.OOCInput, self.btnCallMod, + self.OOCNameInput, self.OOCLogin, self.tabEvidence, + self.tabQueue, self.tabIniSwap, self.tabMute, + self.tabPair, self.tabMisc, self.tabPlayers, + self.tabMusic, self.boxEmotes, self.boxPositions, + self.cbFlip, self.cbPreanim, self.cbNoInterrupt, + self.boxEffects, self.cbSlide, self.cbBench, + self.cbAdditive, self.areaItems, self.shownameEdit, + self.boxColors, self.btnDefenseBar.minusbtn, self.btnProsecutionBar.minusbtn, + self.btnDefenseBar.plusbtn, self.btnProsecutionBar.plusbtn, self.btnWitnessTestimony, + self.btnCrossExamination, self.btnNotGuilty, self.btnGuilty, + self.btnRealization, self.btnShake, ]: widget.setEnabled(not demo) - self.demoslider.setVisible(demo) - self.icchatinput.setVisible(not demo) + self.sliDemoSeekbar.setVisible(demo) + self.ICChatInput.setVisible(not demo) if demo: - self.changechar.setText('Disconnect') + self.btnChangeChar.setText('Disconnect') else: - self.changechar.setText('Switch &character') + self.btnChangeChar.setText('Switch &character') def updateAreaList(self): try: @@ -4170,13 +4178,13 @@ class GUI(QtGui.QWidget): area_locked = self.areas[3][i].title() area_name = self.areas[4][i].decode('utf-8') if area_status == "Casing": - self.areaitems.item(i).setText("%s\n%s | %s\n%s users | %s" % (area_name, area_status, area_cm, area_players, area_locked)) + self.areaItems.item(i).setText("%s\n%s | %s\n%s users | %s" % (area_name, area_status, area_cm, area_players, area_locked)) else: - self.areaitems.item(i).setText("%s\n%s\n%s users | %s" % (area_name, area_status, area_players, area_locked)) + self.areaItems.item(i).setText("%s\n%s\n%s users | %s" % (area_name, area_status, area_players, area_locked)) if area_locked == "Locked": - self.areaitems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "lock.png")) + self.areaItems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "lock.png")) else: - self.areaitems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "house.png")) + self.areaItems.item(i).setIcon(QtGui.QIcon(AO2XPpath + "icons/" + "house.png")) except: print "[debug] Couldn't update areas" \ No newline at end of file diff --git a/mainmenu.py b/mainmenu.py index e429c39..03e4757 100644 --- a/mainmenu.py +++ b/mainmenu.py @@ -70,16 +70,16 @@ class lobby(QtGui.QWidget): self.connectingimg.setPixmap(self.pix_connecting) self.connectingimg.hide() - self.settingsbtn = QtGui.QPushButton(self) - self.settingsbtn.setText("Settings") - self.settingsbtn.resize(self.settingsbtn.sizeHint()) - self.settingsbtn.move(self.pix_lobby.size().width() - self.settingsbtn.size().width(), 0) - self.settingsbtn.clicked.connect(self.onSettingsClicked) + self.btnSettings = QtGui.QPushButton(self) + self.btnSettings.setText("Settings") + self.btnSettings.resize(self.btnSettings.sizeHint()) + self.btnSettings.move(self.pix_lobby.size().width() - self.btnSettings.size().width(), 0) + self.btnSettings.clicked.connect(self.onSettingsClicked) self.demobtn = QtGui.QPushButton(self) self.demobtn.setText("Play a demo") self.demobtn.resize(self.demobtn.sizeHint()) - self.demobtn.move(self.settingsbtn.x() - self.demobtn.size().width(), 0) + self.demobtn.move(self.btnSettings.x() - self.demobtn.size().width(), 0) self.demobtn.clicked.connect(self.on_demo_clicked) self.btn_public = PicButton(self.pix_btn_public, self) @@ -165,12 +165,12 @@ class lobby(QtGui.QWidget): self.connectprogress.move(135-20, 92) self.oocname = 'Name' - self.oocnameinput = QtGui.QLineEdit(self) - self.oocnameinput.setText(self.oocname) - self.oocnameinput.move(0, 646) - self.oocnameinput.resize(91, 19) - self.oocnameinput.setStyleSheet('background-color: rgb(87, 87, 87);') - self.oocnameinput.textChanged.connect(self.setoocname) + self.OOCNameInput = QtGui.QLineEdit(self) + self.OOCNameInput.setText(self.oocname) + self.OOCNameInput.move(0, 646) + self.OOCNameInput.resize(91, 19) + self.OOCNameInput.setStyleSheet('background-color: rgb(87, 87, 87);') + self.OOCNameInput.textChanged.connect(self.setoocname) self.lobbychatinput = QtGui.QLineEdit(self) self.lobbychatinput.setPlaceholderText("Say something...") @@ -308,7 +308,7 @@ class lobby(QtGui.QWidget): self.serverlist.hide() self.onlineplayers.hide() self.serverinfo.hide() - self.settingsbtn.hide() + self.btnSettings.hide() self.demobtn.hide() self.connectprogress.setText('Connecting...') @@ -329,7 +329,7 @@ class lobby(QtGui.QWidget): self.serverlist.show() self.onlineplayers.show() self.serverinfo.show() - self.settingsbtn.show() + self.btnSettings.show() self.demobtn.show() def onClicked_serverlist(self, item): @@ -361,7 +361,7 @@ class lobby(QtGui.QWidget): self.lobbychatinput.clear() def setoocname(self): - self.oocname = self.oocnameinput.text().toUtf8() + self.oocname = self.OOCNameInput.text().toUtf8() def lobbychatlog_update(self): if self.lobbychatlog.verticalScrollBar().value() == self.lobbychatlog.verticalScrollBar().maximum(): self.lobbychatlog.verticalScrollBar().setValue(self.lobbychatlog.verticalScrollBar().maximum()) diff --git a/options.py b/options.py index e46b00d..6f83f23 100644 --- a/options.py +++ b/options.py @@ -188,24 +188,24 @@ class Settings(QtGui.QDialog): musiclabel = QtGui.QLabel("Music") soundlabel = QtGui.QLabel("Sounds") bliplabel = QtGui.QLabel("Blips") - self.musicslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.soundslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.blipslider = QtGui.QSlider(QtCore.Qt.Horizontal, self) - self.musicslider.setRange(0, 100) - self.soundslider.setRange(0, 100) - self.blipslider.setRange(0, 100) + self.sliMusicVolume = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliSoundVolume = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliBlipsVolume = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.sliMusicVolume.setRange(0, 100) + self.sliSoundVolume.setRange(0, 100) + self.sliBlipsVolume.setRange(0, 100) audio_layout.setWidget(2, QtGui.QFormLayout.LabelRole, musiclabel) - audio_layout.setWidget(2, QtGui.QFormLayout.FieldRole, self.musicslider) + audio_layout.setWidget(2, QtGui.QFormLayout.FieldRole, self.sliMusicVolume) audio_layout.setWidget(3, QtGui.QFormLayout.LabelRole, soundlabel) - audio_layout.setWidget(3, QtGui.QFormLayout.FieldRole, self.soundslider) + audio_layout.setWidget(3, QtGui.QFormLayout.FieldRole, self.sliSoundVolume) audio_layout.setWidget(4, QtGui.QFormLayout.LabelRole, bliplabel) - audio_layout.setWidget(4, QtGui.QFormLayout.FieldRole, self.blipslider) + audio_layout.setWidget(4, QtGui.QFormLayout.FieldRole, self.sliBlipsVolume) self.reloadaudio = QtGui.QPushButton(text="Reload audio system") self.reloadaudio.clicked.connect(self.onReloadAudio) audio_layout.setWidget(5, QtGui.QFormLayout.FieldRole, self.reloadaudio) - for device in audio.getdevices(): + for device in audio.getDevices(): self.device_list.addItem(device) ###### Callwords tab ###### @@ -267,10 +267,10 @@ class Settings(QtGui.QDialog): self.check_updates.setChecked(ini.read_ini_bool(self.inifile, "General", "install updates", False)) # Automatic updates are opt-in! - self.device_list.setCurrentIndex(ini.read_ini_int(self.inifile, "Audio", "device", audio.getcurrdevice())) - self.musicslider.setValue(ini.read_ini_int(self.inifile, "Audio", "Music volume", 100)) - self.soundslider.setValue(ini.read_ini_int(self.inifile, "Audio", "Sound volume", 100)) - self.blipslider.setValue(ini.read_ini_int(self.inifile, "Audio", "Blip volume", 100)) + self.device_list.setCurrentIndex(ini.read_ini_int(self.inifile, "Audio", "device", audio.getCurrDevice())) + self.sliMusicVolume.setValue(ini.read_ini_int(self.inifile, "Audio", "Music volume", 100)) + self.sliSoundVolume.setValue(ini.read_ini_int(self.inifile, "Audio", "Sound volume", 100)) + self.sliBlipsVolume.setValue(ini.read_ini_int(self.inifile, "Audio", "Blip volume", 100)) else: self.savetolog.setChecked(False) self.savetolog_combine.setChecked(False) @@ -287,10 +287,10 @@ class Settings(QtGui.QDialog): self.autopick.setEditText("") self.autojoinarea.setText("") - self.device_list.setCurrentIndex(audio.getcurrdevice()) - self.musicslider.setValue(100) - self.soundslider.setValue(100) - self.blipslider.setValue(100) + self.device_list.setCurrentIndex(audio.getCurrDevice()) + self.sliMusicVolume.setValue(100) + self.sliSoundVolume.setValue(100) + self.sliBlipsVolume.setValue(100) self.callwords_edit.clear() if exists(AO2XPpath + "callwords.ini"): @@ -333,9 +333,9 @@ class Settings(QtGui.QDialog): self.inifile.set("General", "install updates", self.check_updates.isChecked()) self.inifile.set("Audio", "device", self.device_list.currentIndex()) - self.inifile.set("Audio", "Music volume", self.musicslider.value()) - self.inifile.set("Audio", "Sound volume", self.soundslider.value()) - self.inifile.set("Audio", "Blip volume", self.blipslider.value()) + self.inifile.set("Audio", "Music volume", self.sliMusicVolume.value()) + self.inifile.set("Audio", "Sound volume", self.sliSoundVolume.value()) + self.inifile.set("Audio", "Blip volume", self.sliBlipsVolume.value()) with open("AO2XP.ini", "wb") as f: self.inifile.write(f) @@ -344,14 +344,21 @@ class Settings(QtGui.QDialog): f.write(self.callwords_edit.toPlainText().toUtf8()) self.gamewindow.gamewidget.textWaitTime = self.textstaytime.value() - self.gamewindow.gamewidget.slideEnabled = self.enableslide.isChecked() + + slideEnabled = self.enableslide.isChecked() + self.gamewindow.gamewidget.slideEnabled = slideEnabled + self.gamewindow.gamewidget.cbSlide.setEnabled(slideEnabled) + + if not slideEnabled: + self.gamewindow.gamewidget.cbSlide.setChecked(False) + if not self.theme_state == self.currtheme.currentText(): self.gamewindow.gamewidget.loadTheme(True) if not self.gamewindow.gamewidget.demoPlaying: if not (self.savelogs_state == self.savetolog.isChecked() and self.combinelogs_state == self.savetolog_combine.isChecked()): - self.gamewindow.gamewidget.ooclog.setLogFiles() - self.gamewindow.gamewidget.iclog.setLogFiles(self.gamewindow.gamewidget.ooclog.logfile) + self.gamewindow.gamewidget.OOCLog.setLogFiles() + self.gamewindow.gamewidget.ICLog.setLogFiles(self.gamewindow.gamewidget.OOCLog.logfile) if not self.savedemos_state == self.savedemos.isChecked(): if self.savedemos.isChecked(): diff --git a/packets.py b/packets.py index a759a81..e503431 100644 --- a/packets.py +++ b/packets.py @@ -60,10 +60,10 @@ def handlePackets(caller, total, record=True): elif header == 'ZZ': if caller.parent.modcall: - audio.freehandle(caller.parent.modcall) - caller.parent.modcall = audio.loadhandle(0, "mod_call.wav", 0, 0, 0) - audio.sethandleattr(caller.parent.modcall, BASS_ATTRIB_VOL, caller.parent.soundslider.value() / 100.0) - audio.playhandle(caller.parent.modcall, False) + audio.freeHandle(caller.parent.modcall) + caller.parent.modcall = audio.loadHandle(0, "mod_call.wav", 0, 0, 0) + audio.setHandleAttr(caller.parent.modcall, BASS_ATTRIB_VOL, caller.parent.sliSoundVolume.value() / 100.0) + audio.playHandle(caller.parent.modcall, False) if len(network) > 1: caller.OOC_Log.emit('[MOD CALL] ' + network[1].replace("\n", "
") + '
') @@ -80,7 +80,7 @@ def handlePackets(caller, total, record=True): testimony = network[1] wtcefile = AOpath + "sounds/general/sfx-testimony2" if caller.parent.wtceSfx: - audio.freehandle(caller.parent.wtceSfx) + audio.freeHandle(caller.parent.wtceSfx) if testimony == 'judgeruling': variant = int(network[2]) @@ -90,10 +90,10 @@ def handlePackets(caller, total, record=True): wtcefile = AOpath + "sounds/general/sfx-guilty" else: variant = 0 - caller.parent.wtceSfx = audio.loadhandle(False, wtcefile+".opus" if exists(wtcefile+".opus") else wtcefile+".wav", 0, 0, 0) - audio.sethandleattr(caller.parent.wtceSfx, BASS_ATTRIB_VOL, caller.parent.soundslider.value() / 100.0) + caller.parent.wtceSfx = audio.loadHandle(False, wtcefile+".opus" if exists(wtcefile+".opus") else wtcefile+".wav", 0, 0, 0) + audio.setHandleAttr(caller.parent.wtceSfx, BASS_ATTRIB_VOL, caller.parent.sliSoundVolume.value() / 100.0) if caller.parent.wtceSfx: - audio.playhandle(caller.parent.wtceSfx, True) + audio.playHandle(caller.parent.wtceSfx, True) caller.parent.wtceSignal.emit(testimony, variant) elif header == 'HP': @@ -118,14 +118,14 @@ def handlePackets(caller, total, record=True): statusStrings = ["You have logged out", "Wrong password", "Logged in"] if status == 1: caller.parent.login = True - caller.parent.player_kick.setDisabled(False) - caller.parent.player_ban.setDisabled(False) - caller.parent.ooclogin.setText("Lo&g out") + caller.parent.buttonPlayerKick.setDisabled(False) + caller.parent.buttonPlayerBan.setDisabled(False) + caller.parent.OOCLogin.setText("Lo&g out") elif status == -1: caller.parent.login = False - caller.parent.player_kick.setDisabled(True) - caller.parent.player_ban.setDisabled(True) - caller.parent.ooclogin.setText("Lo&gin") + caller.parent.buttonPlayerKick.setDisabled(True) + caller.parent.buttonPlayerBan.setDisabled(True) + caller.parent.OOCLogin.setText("Lo&gin") caller.OOC_Log.emit("%s" % (statusStrings[status+1])) # elif header == "CHECK": #ping @@ -160,7 +160,7 @@ def handlePackets(caller, total, record=True): caller.parent.areas[4].append(area_val) areaitem = QtGui.QListWidgetItem() - caller.parent.areaitems.addItem(areaitem) + caller.parent.areaItems.addItem(areaitem) for j in range(4): if j != kind: