Code refactoring. Move Mood-type classes into own file
This commit is contained in:
parent
66e233351f
commit
3570a32912
7 changed files with 121 additions and 114 deletions
3
convo.py
3
convo.py
|
@ -7,7 +7,8 @@ from copy import copy
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from PyQt4 import QtGui, QtCore
|
from PyQt4 import QtGui, QtCore
|
||||||
|
|
||||||
from dataobjs import PesterProfile, Mood, PesterHistory
|
from mood import Mood
|
||||||
|
from dataobjs import PesterProfile, PesterHistory
|
||||||
from generic import PesterIcon
|
from generic import PesterIcon
|
||||||
from parsetools import convertTags, lexMessage, splitMessage, mecmd, colorBegin, colorEnd, img2smiley, smiledict
|
from parsetools import convertTags, lexMessage, splitMessage, mecmd, colorBegin, colorEnd, img2smiley, smiledict
|
||||||
|
|
||||||
|
|
31
dataobjs.py
31
dataobjs.py
|
@ -3,6 +3,7 @@ from datetime import *
|
||||||
import re
|
import re
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
from mood import Mood
|
||||||
from generic import PesterIcon
|
from generic import PesterIcon
|
||||||
from parsetools import timeDifference, convertTags, lexMessage, parseRegexpFunctions
|
from parsetools import timeDifference, convertTags, lexMessage, parseRegexpFunctions
|
||||||
from mispeller import mispeller
|
from mispeller import mispeller
|
||||||
|
@ -13,36 +14,6 @@ _lowerre = re.compile(r"lower\(([\w<>\\]+)\)")
|
||||||
_scramblere = re.compile(r"scramble\(([\w<>\\]+)\)")
|
_scramblere = re.compile(r"scramble\(([\w<>\\]+)\)")
|
||||||
_reversere = re.compile(r"reverse\(([\w<>\\]+)\)")
|
_reversere = re.compile(r"reverse\(([\w<>\\]+)\)")
|
||||||
|
|
||||||
class Mood(object):
|
|
||||||
moods = ["chummy", "rancorous", "offline", "pleasant", "distraught",
|
|
||||||
"pranky", "smooth", "ecstatic", "relaxed", "discontent",
|
|
||||||
"devious", "sleek", "detestful", "mirthful", "manipulative",
|
|
||||||
"vigorous", "perky", "acceptant", "protective", "mystified",
|
|
||||||
"amazed", "insolent", "bemused" ]
|
|
||||||
moodcats = ["chums", "trolls", "other"]
|
|
||||||
revmoodcats = {'discontent': 'trolls', 'insolent': 'chums', 'rancorous': 'chums', 'sleek': 'trolls', 'bemused': 'chums', 'mystified': 'chums', 'pranky': 'chums', 'distraught': 'chums', 'offline': 'chums', 'chummy': 'chums', 'protective': 'other', 'vigorous': 'trolls', 'ecstatic': 'trolls', 'relaxed': 'trolls', 'pleasant': 'chums', 'manipulative': 'trolls', 'detestful': 'trolls', 'smooth': 'chums', 'mirthful': 'trolls', 'acceptant': 'trolls', 'perky': 'trolls', 'devious': 'trolls', 'amazed': 'chums'}
|
|
||||||
|
|
||||||
def __init__(self, mood):
|
|
||||||
if type(mood) is int:
|
|
||||||
self.mood = mood
|
|
||||||
else:
|
|
||||||
self.mood = self.moods.index(mood)
|
|
||||||
def value(self):
|
|
||||||
return self.mood
|
|
||||||
def name(self):
|
|
||||||
try:
|
|
||||||
name = self.moods[self.mood]
|
|
||||||
except IndexError:
|
|
||||||
name = "chummy"
|
|
||||||
return name
|
|
||||||
def icon(self, theme):
|
|
||||||
try:
|
|
||||||
f = theme["main/chums/moods"][self.name()]["icon"]
|
|
||||||
except KeyError:
|
|
||||||
return PesterIcon(theme["main/chums/moods/chummy/icon"])
|
|
||||||
return PesterIcon(f)
|
|
||||||
|
|
||||||
|
|
||||||
class pesterQuirk(object):
|
class pesterQuirk(object):
|
||||||
def __init__(self, quirk):
|
def __init__(self, quirk):
|
||||||
if type(quirk) != dict:
|
if type(quirk) != dict:
|
||||||
|
|
3
irc.py
3
irc.py
|
@ -7,7 +7,8 @@ import random
|
||||||
import socket
|
import socket
|
||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
from dataobjs import Mood, PesterProfile
|
from mood import Mood
|
||||||
|
from dataobjs import PesterProfile
|
||||||
from generic import PesterList
|
from generic import PesterList
|
||||||
from version import _pcVersion
|
from version import _pcVersion
|
||||||
|
|
||||||
|
|
3
memos.py
3
memos.py
|
@ -4,7 +4,8 @@ from copy import copy
|
||||||
from PyQt4 import QtGui, QtCore
|
from PyQt4 import QtGui, QtCore
|
||||||
from datetime import time, timedelta, datetime
|
from datetime import time, timedelta, datetime
|
||||||
|
|
||||||
from dataobjs import PesterProfile, Mood, PesterHistory
|
from mood import Mood
|
||||||
|
from dataobjs import PesterProfile, PesterHistory
|
||||||
from generic import PesterIcon, RightClickList, mysteryTime
|
from generic import PesterIcon, RightClickList, mysteryTime
|
||||||
from convo import PesterConvo, PesterInput, PesterText, PesterTabWindow
|
from convo import PesterConvo, PesterInput, PesterText, PesterTabWindow
|
||||||
from parsetools import convertTags, addTimeInitial, timeProtocol, \
|
from parsetools import convertTags, addTimeInitial, timeProtocol, \
|
||||||
|
|
110
mood.py
Normal file
110
mood.py
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
|
from generic import PesterIcon
|
||||||
|
|
||||||
|
class Mood(object):
|
||||||
|
moods = ["chummy", "rancorous", "offline", "pleasant", "distraught",
|
||||||
|
"pranky", "smooth", "ecstatic", "relaxed", "discontent",
|
||||||
|
"devious", "sleek", "detestful", "mirthful", "manipulative",
|
||||||
|
"vigorous", "perky", "acceptant", "protective", "mystified",
|
||||||
|
"amazed", "insolent", "bemused" ]
|
||||||
|
moodcats = ["chums", "trolls", "other"]
|
||||||
|
revmoodcats = {'discontent': 'trolls', 'insolent': 'chums', 'rancorous': 'chums', 'sleek': 'trolls', 'bemused': 'chums', 'mystified': 'chums', 'pranky': 'chums', 'distraught': 'chums', 'offline': 'chums', 'chummy': 'chums', 'protective': 'other', 'vigorous': 'trolls', 'ecstatic': 'trolls', 'relaxed': 'trolls', 'pleasant': 'chums', 'manipulative': 'trolls', 'detestful': 'trolls', 'smooth': 'chums', 'mirthful': 'trolls', 'acceptant': 'trolls', 'perky': 'trolls', 'devious': 'trolls', 'amazed': 'chums'}
|
||||||
|
|
||||||
|
def __init__(self, mood):
|
||||||
|
if type(mood) is int:
|
||||||
|
self.mood = mood
|
||||||
|
else:
|
||||||
|
self.mood = self.moods.index(mood)
|
||||||
|
def value(self):
|
||||||
|
return self.mood
|
||||||
|
def name(self):
|
||||||
|
try:
|
||||||
|
name = self.moods[self.mood]
|
||||||
|
except IndexError:
|
||||||
|
name = "chummy"
|
||||||
|
return name
|
||||||
|
def icon(self, theme):
|
||||||
|
try:
|
||||||
|
f = theme["main/chums/moods"][self.name()]["icon"]
|
||||||
|
except KeyError:
|
||||||
|
return PesterIcon(theme["main/chums/moods/chummy/icon"])
|
||||||
|
return PesterIcon(f)
|
||||||
|
|
||||||
|
class PesterMoodAction(QtCore.QObject):
|
||||||
|
def __init__(self, m, func):
|
||||||
|
QtCore.QObject.__init__(self)
|
||||||
|
self.mood = m
|
||||||
|
self.func = func
|
||||||
|
@QtCore.pyqtSlot()
|
||||||
|
def updateMood(self):
|
||||||
|
self.func(self.mood)
|
||||||
|
|
||||||
|
class PesterMoodHandler(QtCore.QObject):
|
||||||
|
def __init__(self, parent, *buttons):
|
||||||
|
QtCore.QObject.__init__(self)
|
||||||
|
self.buttons = {}
|
||||||
|
self.mainwindow = parent
|
||||||
|
for b in buttons:
|
||||||
|
self.buttons[b.mood.value()] = b
|
||||||
|
if b.mood.value() == self.mainwindow.profile().mood.value():
|
||||||
|
b.setSelected(True)
|
||||||
|
self.connect(b, QtCore.SIGNAL('clicked()'),
|
||||||
|
b, QtCore.SLOT('updateMood()'))
|
||||||
|
self.connect(b, QtCore.SIGNAL('moodUpdated(int)'),
|
||||||
|
self, QtCore.SLOT('updateMood(int)'))
|
||||||
|
def removeButtons(self):
|
||||||
|
for b in self.buttons.values():
|
||||||
|
b.close()
|
||||||
|
def showButtons(self):
|
||||||
|
for b in self.buttons.values():
|
||||||
|
b.show()
|
||||||
|
b.raise_()
|
||||||
|
@QtCore.pyqtSlot(int)
|
||||||
|
def updateMood(self, m):
|
||||||
|
# update MY mood
|
||||||
|
oldmood = self.mainwindow.profile().mood
|
||||||
|
try:
|
||||||
|
oldbutton = self.buttons[oldmood.value()]
|
||||||
|
oldbutton.setSelected(False)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
newbutton = self.buttons[m]
|
||||||
|
newbutton.setSelected(True)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
newmood = Mood(m)
|
||||||
|
self.mainwindow.userprofile.chat.mood = newmood
|
||||||
|
self.mainwindow.userprofile.setLastMood(newmood)
|
||||||
|
if self.mainwindow.currentMoodIcon:
|
||||||
|
moodicon = newmood.icon(self.mainwindow.theme)
|
||||||
|
self.mainwindow.currentMoodIcon.setPixmap(moodicon.pixmap(moodicon.realsize()))
|
||||||
|
if oldmood.name() != newmood.name():
|
||||||
|
for c in self.mainwindow.convos.values():
|
||||||
|
c.myUpdateMood(newmood)
|
||||||
|
self.mainwindow.moodUpdated.emit()
|
||||||
|
|
||||||
|
class PesterMoodButton(QtGui.QPushButton):
|
||||||
|
def __init__(self, parent, **options):
|
||||||
|
icon = PesterIcon(options["icon"])
|
||||||
|
QtGui.QPushButton.__init__(self, icon, options["text"], parent)
|
||||||
|
self.setIconSize(icon.realsize())
|
||||||
|
self.setFlat(True)
|
||||||
|
self.resize(*options["size"])
|
||||||
|
self.move(*options["loc"])
|
||||||
|
self.unselectedSheet = options["style"]
|
||||||
|
self.selectedSheet = options["selected"]
|
||||||
|
self.setStyleSheet(self.unselectedSheet)
|
||||||
|
self.mainwindow = parent
|
||||||
|
self.mood = Mood(options["mood"])
|
||||||
|
def setSelected(self, selected):
|
||||||
|
if selected:
|
||||||
|
self.setStyleSheet(self.selectedSheet)
|
||||||
|
else:
|
||||||
|
self.setStyleSheet(self.unselectedSheet)
|
||||||
|
@QtCore.pyqtSlot()
|
||||||
|
def updateMood(self):
|
||||||
|
# updates OUR mood
|
||||||
|
self.moodUpdated.emit(self.mood.value())
|
||||||
|
moodUpdated = QtCore.pyqtSignal(int)
|
|
@ -59,7 +59,8 @@ if not os.path.exists(_datadir+"logs"):
|
||||||
from menus import PesterChooseQuirks, PesterChooseTheme, \
|
from menus import PesterChooseQuirks, PesterChooseTheme, \
|
||||||
PesterChooseProfile, PesterOptions, PesterUserlist, PesterMemoList, \
|
PesterChooseProfile, PesterOptions, PesterUserlist, PesterMemoList, \
|
||||||
LoadingScreen, AboutPesterchum, UpdatePesterchum
|
LoadingScreen, AboutPesterchum, UpdatePesterchum
|
||||||
from dataobjs import PesterProfile, Mood, pesterQuirk, pesterQuirks
|
from mood import Mood, PesterMoodAction, PesterMoodHandler, PesterMoodButton
|
||||||
|
from dataobjs import PesterProfile, pesterQuirk, pesterQuirks
|
||||||
from generic import PesterIcon, RightClickList, RightClickTree, \
|
from generic import PesterIcon, RightClickList, RightClickTree, \
|
||||||
MultiTextDialog, PesterList, CaseInsensitiveDict, MovingWindow, \
|
MultiTextDialog, PesterList, CaseInsensitiveDict, MovingWindow, \
|
||||||
NoneSound, WMButton
|
NoneSound, WMButton
|
||||||
|
@ -887,85 +888,6 @@ class TrollSlumWindow(QtGui.QFrame):
|
||||||
blockChumSignal = QtCore.pyqtSignal(QtCore.QString)
|
blockChumSignal = QtCore.pyqtSignal(QtCore.QString)
|
||||||
unblockChumSignal = QtCore.pyqtSignal(QtCore.QString)
|
unblockChumSignal = QtCore.pyqtSignal(QtCore.QString)
|
||||||
|
|
||||||
class PesterMoodAction(QtCore.QObject):
|
|
||||||
def __init__(self, m, func):
|
|
||||||
QtCore.QObject.__init__(self)
|
|
||||||
self.mood = m
|
|
||||||
self.func = func
|
|
||||||
@QtCore.pyqtSlot()
|
|
||||||
def updateMood(self):
|
|
||||||
self.func(self.mood)
|
|
||||||
|
|
||||||
class PesterMoodHandler(QtCore.QObject):
|
|
||||||
def __init__(self, parent, *buttons):
|
|
||||||
QtCore.QObject.__init__(self)
|
|
||||||
self.buttons = {}
|
|
||||||
self.mainwindow = parent
|
|
||||||
for b in buttons:
|
|
||||||
self.buttons[b.mood.value()] = b
|
|
||||||
if b.mood.value() == self.mainwindow.profile().mood.value():
|
|
||||||
b.setSelected(True)
|
|
||||||
self.connect(b, QtCore.SIGNAL('clicked()'),
|
|
||||||
b, QtCore.SLOT('updateMood()'))
|
|
||||||
self.connect(b, QtCore.SIGNAL('moodUpdated(int)'),
|
|
||||||
self, QtCore.SLOT('updateMood(int)'))
|
|
||||||
def removeButtons(self):
|
|
||||||
for b in self.buttons.values():
|
|
||||||
b.close()
|
|
||||||
def showButtons(self):
|
|
||||||
for b in self.buttons.values():
|
|
||||||
b.show()
|
|
||||||
b.raise_()
|
|
||||||
@QtCore.pyqtSlot(int)
|
|
||||||
def updateMood(self, m):
|
|
||||||
# update MY mood
|
|
||||||
oldmood = self.mainwindow.profile().mood
|
|
||||||
try:
|
|
||||||
oldbutton = self.buttons[oldmood.value()]
|
|
||||||
oldbutton.setSelected(False)
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
try:
|
|
||||||
newbutton = self.buttons[m]
|
|
||||||
newbutton.setSelected(True)
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
newmood = Mood(m)
|
|
||||||
self.mainwindow.userprofile.chat.mood = newmood
|
|
||||||
self.mainwindow.userprofile.setLastMood(newmood)
|
|
||||||
if self.mainwindow.currentMoodIcon:
|
|
||||||
moodicon = newmood.icon(self.mainwindow.theme)
|
|
||||||
self.mainwindow.currentMoodIcon.setPixmap(moodicon.pixmap(moodicon.realsize()))
|
|
||||||
if oldmood.name() != newmood.name():
|
|
||||||
for c in self.mainwindow.convos.values():
|
|
||||||
c.myUpdateMood(newmood)
|
|
||||||
self.mainwindow.moodUpdated.emit()
|
|
||||||
|
|
||||||
class PesterMoodButton(QtGui.QPushButton):
|
|
||||||
def __init__(self, parent, **options):
|
|
||||||
icon = PesterIcon(options["icon"])
|
|
||||||
QtGui.QPushButton.__init__(self, icon, options["text"], parent)
|
|
||||||
self.setIconSize(icon.realsize())
|
|
||||||
self.setFlat(True)
|
|
||||||
self.resize(*options["size"])
|
|
||||||
self.move(*options["loc"])
|
|
||||||
self.unselectedSheet = options["style"]
|
|
||||||
self.selectedSheet = options["selected"]
|
|
||||||
self.setStyleSheet(self.unselectedSheet)
|
|
||||||
self.mainwindow = parent
|
|
||||||
self.mood = Mood(options["mood"])
|
|
||||||
def setSelected(self, selected):
|
|
||||||
if selected:
|
|
||||||
self.setStyleSheet(self.selectedSheet)
|
|
||||||
else:
|
|
||||||
self.setStyleSheet(self.unselectedSheet)
|
|
||||||
@QtCore.pyqtSlot()
|
|
||||||
def updateMood(self):
|
|
||||||
# updates OUR mood
|
|
||||||
self.moodUpdated.emit(self.mood.value())
|
|
||||||
moodUpdated = QtCore.pyqtSignal(int)
|
|
||||||
|
|
||||||
|
|
||||||
class PesterWindow(MovingWindow):
|
class PesterWindow(MovingWindow):
|
||||||
def __init__(self, options, parent=None):
|
def __init__(self, options, parent=None):
|
||||||
MovingWindow.__init__(self, parent,
|
MovingWindow.__init__(self, parent,
|
||||||
|
|
|
@ -10,7 +10,8 @@ from time import strftime, time
|
||||||
from PyQt4 import QtGui, QtCore
|
from PyQt4 import QtGui, QtCore
|
||||||
|
|
||||||
import ostools
|
import ostools
|
||||||
from dataobjs import PesterProfile, Mood, pesterQuirk, pesterQuirks
|
from mood import Mood
|
||||||
|
from dataobjs import PesterProfile, pesterQuirk, pesterQuirks
|
||||||
from parsetools import convertTags, addTimeInitial, themeChecker, ThemeException
|
from parsetools import convertTags, addTimeInitial, themeChecker, ThemeException
|
||||||
|
|
||||||
_datadir = ostools.getDataDir()
|
_datadir = ostools.getDataDir()
|
||||||
|
|
Loading…
Reference in a new issue