Different sounds for memos/pesters (though a better sound for memos is needed)
This commit is contained in:
parent
90556079db
commit
15369b7577
13 changed files with 66 additions and 19 deletions
|
@ -12,6 +12,7 @@ CHANGELOG
|
||||||
* More canon trollian theme timeline indicators - [binaryCabalist]
|
* More canon trollian theme timeline indicators - [binaryCabalist]
|
||||||
* By mood chum sorting - Kiooeht [evacipatedBox]
|
* By mood chum sorting - Kiooeht [evacipatedBox]
|
||||||
* Customizable idle time - Kiooeht [evacipatedBox]
|
* Customizable idle time - Kiooeht [evacipatedBox]
|
||||||
|
* Different sound for memos - Kiooeht [evacipatedBox]
|
||||||
* Bug fixes
|
* Bug fixes
|
||||||
* Logviewer updates - Kiooeht [evacipatedBox]
|
* Logviewer updates - Kiooeht [evacipatedBox]
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ Todo
|
||||||
|
|
||||||
Features
|
Features
|
||||||
--------
|
--------
|
||||||
* different sound for memos/pesters
|
|
||||||
* OOC
|
* OOC
|
||||||
* log viewer needs to have BBCode/HTML/Text copy modes
|
* log viewer needs to have BBCode/HTML/Text copy modes
|
||||||
* random pesters
|
* random pesters
|
||||||
|
|
50
menus.py
50
menus.py
|
@ -568,11 +568,14 @@ class PesterOptions(QtGui.QDialog):
|
||||||
hr = QtGui.QFrame()
|
hr = QtGui.QFrame()
|
||||||
hr.setFrameShape(QtGui.QFrame.HLine)
|
hr.setFrameShape(QtGui.QFrame.HLine)
|
||||||
hr.setFrameShadow(QtGui.QFrame.Sunken)
|
hr.setFrameShadow(QtGui.QFrame.Sunken)
|
||||||
|
vr = QtGui.QFrame()
|
||||||
|
vr.setFrameShape(QtGui.QFrame.VLine)
|
||||||
|
vr.setFrameShadow(QtGui.QFrame.Sunken)
|
||||||
|
|
||||||
self.tabs = QtGui.QButtonGroup(self)
|
self.tabs = QtGui.QButtonGroup(self)
|
||||||
self.connect(self.tabs, QtCore.SIGNAL('buttonClicked(int)'),
|
self.connect(self.tabs, QtCore.SIGNAL('buttonClicked(int)'),
|
||||||
self, QtCore.SLOT('changePage(int)'))
|
self, QtCore.SLOT('changePage(int)'))
|
||||||
tabNames = ["Interface", "Chum List", "Conversations", "Logging", "Idle"]
|
tabNames = ["Chum List", "Conversations", "Sound", "Logging", "Idle"]
|
||||||
for t in tabNames:
|
for t in tabNames:
|
||||||
button = QtGui.QPushButton(t)
|
button = QtGui.QPushButton(t)
|
||||||
self.tabs.addButton(button)
|
self.tabs.addButton(button)
|
||||||
|
@ -587,8 +590,18 @@ class PesterOptions(QtGui.QDialog):
|
||||||
self.hideOffline.setChecked(True)
|
self.hideOffline.setChecked(True)
|
||||||
|
|
||||||
self.soundcheck = QtGui.QCheckBox("Sounds On", self)
|
self.soundcheck = QtGui.QCheckBox("Sounds On", self)
|
||||||
|
self.connect(self.soundcheck, QtCore.SIGNAL('stateChanged(int)'),
|
||||||
|
self, QtCore.SLOT('soundChange(int)'))
|
||||||
|
self.chatsoundcheck = QtGui.QCheckBox("Pester Sounds", self)
|
||||||
|
self.chatsoundcheck.setChecked(self.config.chatSound())
|
||||||
|
self.memosoundcheck = QtGui.QCheckBox("Memo Sounds", self)
|
||||||
|
self.memosoundcheck.setChecked(self.config.memoSound())
|
||||||
if self.config.soundOn():
|
if self.config.soundOn():
|
||||||
self.soundcheck.setChecked(True)
|
self.soundcheck.setChecked(True)
|
||||||
|
else:
|
||||||
|
self.chatsoundcheck.setEnabled(False)
|
||||||
|
self.memosoundcheck.setEnabled(False)
|
||||||
|
|
||||||
|
|
||||||
self.timestampcheck = QtGui.QCheckBox("Time Stamps", self)
|
self.timestampcheck = QtGui.QCheckBox("Time Stamps", self)
|
||||||
if self.config.showTimeStamps():
|
if self.config.showTimeStamps():
|
||||||
|
@ -629,9 +642,9 @@ class PesterOptions(QtGui.QDialog):
|
||||||
layout_3.addWidget(sortLabel)
|
layout_3.addWidget(sortLabel)
|
||||||
layout_3.addWidget(self.sortBox, 10)
|
layout_3.addWidget(self.sortBox, 10)
|
||||||
|
|
||||||
self.logpesterscheck = QtGui.QCheckBox("Log all chats", self)
|
self.logpesterscheck = QtGui.QCheckBox("Log all Pesters", self)
|
||||||
self.logpesterscheck.setChecked(self.config.logPesters())
|
self.logpesterscheck.setChecked(self.config.logPesters())
|
||||||
self.logmemoscheck = QtGui.QCheckBox("Log all memos", self)
|
self.logmemoscheck = QtGui.QCheckBox("Log all Memos", self)
|
||||||
self.logmemoscheck.setChecked(self.config.logMemos())
|
self.logmemoscheck.setChecked(self.config.logMemos())
|
||||||
|
|
||||||
times = ["1", "5", "10", "15", "30"]
|
times = ["1", "5", "10", "15", "30"]
|
||||||
|
@ -654,14 +667,6 @@ class PesterOptions(QtGui.QDialog):
|
||||||
layout_2.addWidget(self.ok)
|
layout_2.addWidget(self.ok)
|
||||||
|
|
||||||
# Tab layouts
|
# Tab layouts
|
||||||
# Interface
|
|
||||||
widget = QtGui.QWidget()
|
|
||||||
layout_interface = QtGui.QVBoxLayout(widget)
|
|
||||||
layout_interface.setAlignment(QtCore.Qt.AlignTop)
|
|
||||||
layout_interface.addWidget(self.tabcheck)
|
|
||||||
layout_interface.addWidget(self.soundcheck)
|
|
||||||
self.pages.addWidget(widget)
|
|
||||||
|
|
||||||
# Chum List
|
# Chum List
|
||||||
widget = QtGui.QWidget()
|
widget = QtGui.QWidget()
|
||||||
layout_chumlist = QtGui.QVBoxLayout(widget)
|
layout_chumlist = QtGui.QVBoxLayout(widget)
|
||||||
|
@ -677,7 +682,7 @@ class PesterOptions(QtGui.QDialog):
|
||||||
widget = QtGui.QWidget()
|
widget = QtGui.QWidget()
|
||||||
layout_chat = QtGui.QVBoxLayout(widget)
|
layout_chat = QtGui.QVBoxLayout(widget)
|
||||||
layout_chat.setAlignment(QtCore.Qt.AlignTop)
|
layout_chat.setAlignment(QtCore.Qt.AlignTop)
|
||||||
layout_chat.addWidget(QtGui.QLabel("Time Stamps"))
|
layout_chat.addWidget(self.tabcheck)
|
||||||
layout_chat.addWidget(self.timestampcheck)
|
layout_chat.addWidget(self.timestampcheck)
|
||||||
layout_chat.addWidget(self.timestampBox)
|
layout_chat.addWidget(self.timestampBox)
|
||||||
layout_chat.addWidget(self.secondscheck)
|
layout_chat.addWidget(self.secondscheck)
|
||||||
|
@ -687,6 +692,18 @@ class PesterOptions(QtGui.QDialog):
|
||||||
#layout_chat.addWidget(self.userlinkscheck)
|
#layout_chat.addWidget(self.userlinkscheck)
|
||||||
self.pages.addWidget(widget)
|
self.pages.addWidget(widget)
|
||||||
|
|
||||||
|
# Sound
|
||||||
|
widget = QtGui.QWidget()
|
||||||
|
layout_sound = QtGui.QVBoxLayout(widget)
|
||||||
|
layout_sound.setAlignment(QtCore.Qt.AlignTop)
|
||||||
|
layout_sound.addWidget(self.soundcheck)
|
||||||
|
layout_indent = QtGui.QVBoxLayout()
|
||||||
|
layout_indent.addWidget(self.chatsoundcheck)
|
||||||
|
layout_indent.addWidget(self.memosoundcheck)
|
||||||
|
layout_indent.setContentsMargins(22,0,0,0)
|
||||||
|
layout_sound.addLayout(layout_indent)
|
||||||
|
self.pages.addWidget(widget)
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
widget = QtGui.QWidget()
|
widget = QtGui.QWidget()
|
||||||
layout_logs = QtGui.QVBoxLayout(widget)
|
layout_logs = QtGui.QVBoxLayout(widget)
|
||||||
|
@ -705,6 +722,7 @@ class PesterOptions(QtGui.QDialog):
|
||||||
layout_0 = QtGui.QVBoxLayout()
|
layout_0 = QtGui.QVBoxLayout()
|
||||||
layout_1 = QtGui.QHBoxLayout()
|
layout_1 = QtGui.QHBoxLayout()
|
||||||
layout_1.addLayout(layout_4)
|
layout_1.addLayout(layout_4)
|
||||||
|
layout_1.addWidget(vr)
|
||||||
layout_1.addWidget(self.pages)
|
layout_1.addWidget(self.pages)
|
||||||
layout_0.addLayout(layout_1)
|
layout_0.addLayout(layout_1)
|
||||||
layout_0.addSpacing(30)
|
layout_0.addSpacing(30)
|
||||||
|
@ -717,6 +735,14 @@ class PesterOptions(QtGui.QDialog):
|
||||||
# What is this, I don't even. qt, fuck
|
# What is this, I don't even. qt, fuck
|
||||||
page = -page - 2
|
page = -page - 2
|
||||||
self.pages.setCurrentIndex(page)
|
self.pages.setCurrentIndex(page)
|
||||||
|
@QtCore.pyqtSlot(int)
|
||||||
|
def soundChange(self, state):
|
||||||
|
if state == 0:
|
||||||
|
self.chatsoundcheck.setEnabled(False)
|
||||||
|
self.memosoundcheck.setEnabled(False)
|
||||||
|
else:
|
||||||
|
self.chatsoundcheck.setEnabled(True)
|
||||||
|
self.memosoundcheck.setEnabled(True)
|
||||||
|
|
||||||
class PesterUserlist(QtGui.QDialog):
|
class PesterUserlist(QtGui.QDialog):
|
||||||
def __init__(self, config, theme, parent):
|
def __init__(self, config, theme, parent):
|
||||||
|
|
|
@ -415,6 +415,10 @@ class userConfig(object):
|
||||||
if not self.config.has_key('soundon'):
|
if not self.config.has_key('soundon'):
|
||||||
self.set('soundon', True)
|
self.set('soundon', True)
|
||||||
return self.config['soundon']
|
return self.config['soundon']
|
||||||
|
def chatSound(self):
|
||||||
|
return self.config.get('chatSound', True)
|
||||||
|
def memoSound(self):
|
||||||
|
return self.config.get('memoSound', True)
|
||||||
def set(self, item, setting):
|
def set(self, item, setting):
|
||||||
self.config[item] = setting
|
self.config[item] = setting
|
||||||
try:
|
try:
|
||||||
|
@ -1513,6 +1517,7 @@ class PesterWindow(MovingWindow):
|
||||||
convo.addMessage(msg, False)
|
convo.addMessage(msg, False)
|
||||||
# play sound here
|
# play sound here
|
||||||
if self.config.soundOn():
|
if self.config.soundOn():
|
||||||
|
if self.config.chatSound():
|
||||||
if msg in ["PESTERCHUM:CEASE", "PESTERCHUM:BLOCK"]:
|
if msg in ["PESTERCHUM:CEASE", "PESTERCHUM:BLOCK"]:
|
||||||
self.ceasesound.play()
|
self.ceasesound.play()
|
||||||
else:
|
else:
|
||||||
|
@ -1532,7 +1537,8 @@ class PesterWindow(MovingWindow):
|
||||||
msg = addTimeInitial(msg, memo.times[handle].getGrammar())
|
msg = addTimeInitial(msg, memo.times[handle].getGrammar())
|
||||||
memo.addMessage(msg, handle)
|
memo.addMessage(msg, handle)
|
||||||
if self.config.soundOn():
|
if self.config.soundOn():
|
||||||
self.alarm.play()
|
if self.config.memoSound():
|
||||||
|
self.memosound.play()
|
||||||
|
|
||||||
def changeColor(self, handle, color):
|
def changeColor(self, handle, color):
|
||||||
# pesterconvo and chumlist
|
# pesterconvo and chumlist
|
||||||
|
@ -1744,13 +1750,16 @@ class PesterWindow(MovingWindow):
|
||||||
# sounds
|
# sounds
|
||||||
if not pygame.mixer:
|
if not pygame.mixer:
|
||||||
self.alarm = NoneSound()
|
self.alarm = NoneSound()
|
||||||
|
self.memosound = NoneSound()
|
||||||
self.ceasesound = NoneSound()
|
self.ceasesound = NoneSound()
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self.alarm = pygame.mixer.Sound(theme["main/sounds/alertsound"])
|
self.alarm = pygame.mixer.Sound(theme["main/sounds/alertsound"])
|
||||||
|
self.memosound = pygame.mixer.Sound(theme["main/sounds/memosound"])
|
||||||
self.ceasesound = pygame.mixer.Sound(theme["main/sounds/ceasesound"])
|
self.ceasesound = pygame.mixer.Sound(theme["main/sounds/ceasesound"])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
self.alarm = NoneSound()
|
self.alarm = NoneSound()
|
||||||
|
self.memosound = NoneSound()
|
||||||
self.ceasesound = NoneSound()
|
self.ceasesound = NoneSound()
|
||||||
|
|
||||||
def changeTheme(self, theme):
|
def changeTheme(self, theme):
|
||||||
|
@ -2266,6 +2275,14 @@ class PesterWindow(MovingWindow):
|
||||||
# sound
|
# sound
|
||||||
soundsetting = self.optionmenu.soundcheck.isChecked()
|
soundsetting = self.optionmenu.soundcheck.isChecked()
|
||||||
self.config.set("soundon", soundsetting)
|
self.config.set("soundon", soundsetting)
|
||||||
|
chatsoundsetting = self.optionmenu.chatsoundcheck.isChecked()
|
||||||
|
curchatsound = self.config.chatSound()
|
||||||
|
if chatsoundsetting != curchatsound:
|
||||||
|
self.config.set('chatSound', chatsoundsetting)
|
||||||
|
memosoundsetting = self.optionmenu.memosoundcheck.isChecked()
|
||||||
|
curmemosound = self.config.memoSound()
|
||||||
|
if memosoundsetting != curmemosound:
|
||||||
|
self.config.set('memoSound', memosoundsetting)
|
||||||
# timestamps
|
# timestamps
|
||||||
timestampsetting = self.optionmenu.timestampcheck.isChecked()
|
timestampsetting = self.optionmenu.timestampcheck.isChecked()
|
||||||
self.config.set("showTimeStamps", timestampsetting)
|
self.config.set("showTimeStamps", timestampsetting)
|
||||||
|
|
BIN
themes/gold/alarm2.wav
Normal file
BIN
themes/gold/alarm2.wav
Normal file
Binary file not shown.
|
@ -16,6 +16,7 @@
|
||||||
"loc": [150,22]
|
"loc": [150,22]
|
||||||
},
|
},
|
||||||
"sounds": { "alertsound": "$path/alarm.wav",
|
"sounds": { "alertsound": "$path/alarm.wav",
|
||||||
|
"memosound": "$path/alarm2.wav",
|
||||||
"ceasesound": "$path/cease.wav" },
|
"ceasesound": "$path/cease.wav" },
|
||||||
"menus": {"client": {"_name": "Client",
|
"menus": {"client": {"_name": "Client",
|
||||||
"options": "Options",
|
"options": "Options",
|
||||||
|
|
BIN
themes/pesterchum/alarm2.wav
Normal file
BIN
themes/pesterchum/alarm2.wav
Normal file
Binary file not shown.
|
@ -16,6 +16,7 @@
|
||||||
"loc": [10,0]
|
"loc": [10,0]
|
||||||
},
|
},
|
||||||
"sounds": { "alertsound": "$path/alarm.wav",
|
"sounds": { "alertsound": "$path/alarm.wav",
|
||||||
|
"memosound": "$path/alarm2.wav",
|
||||||
"ceasesound": "$path/cease.wav" },
|
"ceasesound": "$path/cease.wav" },
|
||||||
"menus": {"client": {"_name": "CLIENT",
|
"menus": {"client": {"_name": "CLIENT",
|
||||||
"options": "OPTIONS",
|
"options": "OPTIONS",
|
||||||
|
|
BIN
themes/pesterchum2.5/alarm2.wav
Normal file
BIN
themes/pesterchum2.5/alarm2.wav
Normal file
Binary file not shown.
|
@ -15,7 +15,8 @@
|
||||||
"menuitem": "margin-right:14px;",
|
"menuitem": "margin-right:14px;",
|
||||||
"loc": [14,90]
|
"loc": [14,90]
|
||||||
},
|
},
|
||||||
"sounds": { "alertsound": "$path/alarm.wav" },
|
"sounds": { "alertsound": "$path/alarm.wav",
|
||||||
|
"memosound": "$path/alarm2.wav"},
|
||||||
"menus": {"client": {"_name": "Trollian",
|
"menus": {"client": {"_name": "Trollian",
|
||||||
"options": "Options",
|
"options": "Options",
|
||||||
"memos": "Memos",
|
"memos": "Memos",
|
||||||
|
|
BIN
themes/trollian2.5/alarm2.wav
Normal file
BIN
themes/trollian2.5/alarm2.wav
Normal file
Binary file not shown.
BIN
themes/typewriter/alarm2.wav
Normal file
BIN
themes/typewriter/alarm2.wav
Normal file
Binary file not shown.
|
@ -16,6 +16,7 @@
|
||||||
"loc": [43,220]
|
"loc": [43,220]
|
||||||
},
|
},
|
||||||
"sounds": { "alertsound": "$path/alarm.wav",
|
"sounds": { "alertsound": "$path/alarm.wav",
|
||||||
|
"memosound": "$path/alarm2.wav",
|
||||||
"ceasesound": "$path/cease.wav" },
|
"ceasesound": "$path/cease.wav" },
|
||||||
"menus": {"client": {"_name": "Typewriter",
|
"menus": {"client": {"_name": "Typewriter",
|
||||||
"options": "Preferences",
|
"options": "Preferences",
|
||||||
|
|
Loading…
Reference in a new issue