Animated smilies
This commit is contained in:
parent
4d81ea1dab
commit
7f776a8c54
3 changed files with 22 additions and 3 deletions
|
@ -10,7 +10,6 @@ Features
|
||||||
* More complex quirks: by-sound
|
* More complex quirks: by-sound
|
||||||
* Theme checking
|
* Theme checking
|
||||||
* Spy mode
|
* Spy mode
|
||||||
* Animated
|
|
||||||
* Turn @ and # links on/off?
|
* Turn @ and # links on/off?
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
|
|
19
convo.py
19
convo.py
|
@ -9,7 +9,7 @@ from PyQt4 import QtGui, QtCore
|
||||||
|
|
||||||
from dataobjs import PesterProfile, Mood, PesterHistory
|
from dataobjs import PesterProfile, Mood, PesterHistory
|
||||||
from generic import PesterIcon
|
from generic import PesterIcon
|
||||||
from parsetools import convertTags, lexMessage, splitMessage, mecmd, colorBegin, colorEnd, img2smiley
|
from parsetools import convertTags, lexMessage, splitMessage, mecmd, colorBegin, colorEnd, img2smiley, smiledict
|
||||||
|
|
||||||
class PesterTabWindow(QtGui.QFrame):
|
class PesterTabWindow(QtGui.QFrame):
|
||||||
def __init__(self, mainwindow, parent=None, convo="convo"):
|
def __init__(self, mainwindow, parent=None, convo="convo"):
|
||||||
|
@ -206,6 +206,23 @@ class PesterText(QtGui.QTextEdit):
|
||||||
self.textSelected = False
|
self.textSelected = False
|
||||||
self.connect(self, QtCore.SIGNAL('copyAvailable(bool)'),
|
self.connect(self, QtCore.SIGNAL('copyAvailable(bool)'),
|
||||||
self, QtCore.SLOT('textReady(bool)'))
|
self, QtCore.SLOT('textReady(bool)'))
|
||||||
|
self.urls = {}
|
||||||
|
for k in smiledict:
|
||||||
|
self.addAnimation(QtCore.QUrl("smilies/%s" % (smiledict[k])), "smilies/%s" % (smiledict[k]));
|
||||||
|
def addAnimation(self, url, fileName):
|
||||||
|
movie = QtGui.QMovie(self)
|
||||||
|
movie.setFileName(fileName)
|
||||||
|
self.urls[movie] = url
|
||||||
|
self.connect(movie, QtCore.SIGNAL('frameChanged(int)'),
|
||||||
|
self, QtCore.SLOT('animate()'));
|
||||||
|
movie.start();
|
||||||
|
@QtCore.pyqtSlot()
|
||||||
|
def animate(self):
|
||||||
|
movie = self.sender()
|
||||||
|
self.document().addResource(QtGui.QTextDocument.ImageResource,
|
||||||
|
self.urls[movie], movie.currentPixmap());
|
||||||
|
self.setLineWrapColumnOrWidth(self.lineWrapColumnOrWidth());
|
||||||
|
|
||||||
@QtCore.pyqtSlot(bool)
|
@QtCore.pyqtSlot(bool)
|
||||||
def textReady(self, ready):
|
def textReady(self, ready):
|
||||||
self.textSelected = ready
|
self.textSelected = ready
|
||||||
|
|
5
memos.py
5
memos.py
|
@ -8,7 +8,7 @@ from dataobjs import PesterProfile, Mood, 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, \
|
||||||
lexMessage, colorBegin, colorEnd, mecmd
|
lexMessage, colorBegin, colorEnd, mecmd, smiledict
|
||||||
from logviewer import PesterLogViewer
|
from logviewer import PesterLogViewer
|
||||||
|
|
||||||
|
|
||||||
|
@ -241,6 +241,9 @@ class MemoText(PesterText):
|
||||||
self.textSelected = False
|
self.textSelected = False
|
||||||
self.connect(self, QtCore.SIGNAL('copyAvailable(bool)'),
|
self.connect(self, QtCore.SIGNAL('copyAvailable(bool)'),
|
||||||
self, QtCore.SLOT('textReady(bool)'))
|
self, QtCore.SLOT('textReady(bool)'))
|
||||||
|
self.urls = {}
|
||||||
|
for k in smiledict:
|
||||||
|
self.addAnimation(QtCore.QUrl("smilies/%s" % (smiledict[k])), "smilies/%s" % (smiledict[k]));
|
||||||
|
|
||||||
def initTheme(self, theme):
|
def initTheme(self, theme):
|
||||||
if theme.has_key("memos/scrollbar"):
|
if theme.has_key("memos/scrollbar"):
|
||||||
|
|
Loading…
Reference in a new issue