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 PyQt4 import QtGui, QtCore
|
||||
|
||||
from dataobjs import PesterProfile, Mood, PesterHistory
|
||||
from mood import Mood
|
||||
from dataobjs import PesterProfile, PesterHistory
|
||||
from generic import PesterIcon
|
||||
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 random
|
||||
|
||||
from mood import Mood
|
||||
from generic import PesterIcon
|
||||
from parsetools import timeDifference, convertTags, lexMessage, parseRegexpFunctions
|
||||
from mispeller import mispeller
|
||||
|
@ -13,36 +14,6 @@ _lowerre = re.compile(r"lower\(([\w<>\\]+)\)")
|
|||
_scramblere = re.compile(r"scramble\(([\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):
|
||||
def __init__(self, quirk):
|
||||
if type(quirk) != dict:
|
||||
|
|
3
irc.py
3
irc.py
|
@ -7,7 +7,8 @@ import random
|
|||
import socket
|
||||
from time import time
|
||||
|
||||
from dataobjs import Mood, PesterProfile
|
||||
from mood import Mood
|
||||
from dataobjs import PesterProfile
|
||||
from generic import PesterList
|
||||
from version import _pcVersion
|
||||
|
||||
|
|
3
memos.py
3
memos.py
|
@ -4,7 +4,8 @@ from copy import copy
|
|||
from PyQt4 import QtGui, QtCore
|
||||
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 convo import PesterConvo, PesterInput, PesterText, PesterTabWindow
|
||||
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, \
|
||||
PesterChooseProfile, PesterOptions, PesterUserlist, PesterMemoList, \
|
||||
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, \
|
||||
MultiTextDialog, PesterList, CaseInsensitiveDict, MovingWindow, \
|
||||
NoneSound, WMButton
|
||||
|
@ -887,85 +888,6 @@ class TrollSlumWindow(QtGui.QFrame):
|
|||
blockChumSignal = 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):
|
||||
def __init__(self, options, parent=None):
|
||||
MovingWindow.__init__(self, parent,
|
||||
|
|
|
@ -10,7 +10,8 @@ from time import strftime, time
|
|||
from PyQt4 import QtGui, QtCore
|
||||
|
||||
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
|
||||
|
||||
_datadir = ostools.getDataDir()
|
||||
|
|
Loading…
Reference in a new issue