This commit is contained in:
Stephen Dranger 2011-02-18 20:02:54 -06:00
parent e0bfd64184
commit fececa45ba
19 changed files with 44 additions and 34 deletions

BIN
convo.pyc

Binary file not shown.

Binary file not shown.

Binary file not shown.

8
irc.py
View file

@ -24,13 +24,15 @@ class PesterIRC(QtCore.QObject):
self.cli.command_handler.mainwindow = self.mainwindow
self.conn = self.cli.connect()
self.brokenConnection = False
self.connectedIRC = False
self.registeredIRC = False
def closeConnection(self):
if self.cli:
self.cli.close()
self.cli = None
def setConnectionBroken(self, broken=True):
self.brokenConnection = True
def setConnected(self):
self.connectedIRC = True
self.registeredIRC = True
self.connected.emit()
@QtCore.pyqtSlot(PesterProfile)
def getMood(self, *chums):
@ -166,7 +168,7 @@ class PesterIRC(QtCore.QObject):
self.setConnectionBroken()
def updateIRC(self):
self.conn.next()
return self.conn.next()
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)

BIN
irc.pyc

Binary file not shown.

BIN
memos.pyc

Binary file not shown.

BIN
menus.pyc

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -168,8 +168,7 @@ class IRCClient:
try:
buffer += self.socket.recv(1024)
except socket.timeout, e:
yield True
continue
raise e
except socket.error, e:
try: # a little dance of compatibility to get the errno
errno = e.errno
@ -195,6 +194,8 @@ class IRCClient:
pass
yield True
except socket.timeout, se:
raise se
except socket.error, se:
if self.socket:
logging.info('closing socket')
@ -206,6 +207,8 @@ class IRCClient:
logging.info('closing socket')
self.socket.close()
def close(self):
if self.socket:
logging.info('closing socket')
self.socket.close()
class IRCApp:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -168,7 +168,7 @@ class pesterTheme(dict):
v = dict.__getitem__(self, keys.pop(0))
for k in keys:
v = v[k]
return v
return default if v is None else v
except KeyError:
if hasattr(self, 'inheritedTheme'):
return self.inheritedTheme.get(key, default)
@ -181,7 +181,7 @@ class pesterTheme(dict):
v = dict.__getitem__(self, keys.pop(0))
for k in keys:
v = v[k]
return True
return False if v is None else True
except KeyError:
if hasattr(self, 'inheritedTheme'):
return self.inheritedTheme.has_key(key)
@ -1667,16 +1667,27 @@ class IRCThread(QtCore.QThread):
def run(self):
irc = self.irc
irc.IRCConnect()
while 1:
timer = QtCore.QTimer(self)
self.connect(timer, QtCore.SIGNAL('timeout()'),
self, QtCore.SLOT('updateIRC()'))
timer.start()
self.exec_()
@QtCore.pyqtSlot()
def updateIRC(self):
irc = self.irc
if irc.brokenConnection:
irc.brokenConnection = False
self.restartIRC.emit()
irc.closeConnection()
irc.IRCConnect()
try:
irc.updateIRC()
res = irc.updateIRC()
except socket.timeout, se:
if not irc.registeredIRC:
irc.closeConnection()
self.failedIRC.emit("Connection timed out")
except socket.error, se:
if irc.connectedIRC:
if irc.registeredIRC:
irc.setConnectionBroken()
else:
irc.closeConnection()
@ -1868,14 +1879,8 @@ class MainProgram(QtCore.QObject):
@QtCore.pyqtSlot()
def tryAgain(self):
self.ircapp.irc.closeConnection()
self.ircapp.irc.IRCConnect()
labeltxt = self.widget.loadingscreen.loadinglabel.text()
if labeltxt != "R3CONN3CT1NG":
self.widget.loadingscreen.loadinglabel.setText("R3CONN3CTING")
elif labeltxt[0:12] == "R3CONN3CT1NG":
i = int(labeltxt[13:])
self.widget.loadingscreen.loadinglabel.setText("R3CONN3CTING %d" (i+1))
self.ircapp.quit()
print "Quit?"
@QtCore.pyqtSlot()
def restartIRC(self):

View file

@ -1 +1 @@
{"color": "#ff00ff", "theme": "pesterchum", "quirks": [], "handle": "ghostDunk"}
{"color": "#ff00ff", "theme": "pesterchum2.5", "quirks": [], "handle": "ghostDunk"}

View file

@ -47,7 +47,7 @@
},
"moodlabel": { "style": "font:bold;font-family:'Courier';color:black;",
"loc": [12, 466],
"text": "MOODS:"
"text": "MOOD:"
},
"moods": [
{ "style": "text-align:left; background:#ffff00;border:2px solid #c48a00;color: black; font-family:'Courier'; font:bold; padding-left:3px;",