Invitation-only memos and inviting people to memos
This commit is contained in:
parent
5b3d6e2570
commit
c248d496fc
12 changed files with 97 additions and 14 deletions
|
@ -28,7 +28,8 @@ CHANGELOG
|
||||||
* Advanced Mode: Alter IRC user mode - Kiooeht [evacipatedBox]
|
* Advanced Mode: Alter IRC user mode - Kiooeht [evacipatedBox]
|
||||||
* Logviewer chum search - Kiooeht [evacipatedBox]
|
* Logviewer chum search - Kiooeht [evacipatedBox]
|
||||||
* Logviewer log search - Kiooeht [evacipatedBox]
|
* Logviewer log search - Kiooeht [evacipatedBox]
|
||||||
* Set server and port from command line - Kiooeht [evacipated]
|
* Set server and port from command line - Kiooeht [evacipatedBox]
|
||||||
|
* Invite-only memos, invite chums to memos - Kiooeht [evacipatedBox]
|
||||||
* Bug fixes
|
* Bug fixes
|
||||||
* Logviewer updates - Kiooeht [evacipatedBox]
|
* Logviewer updates - Kiooeht [evacipatedBox]
|
||||||
* Memo scrollbar thing - Kiooeht [evacipatedBox]
|
* Memo scrollbar thing - Kiooeht [evacipatedBox]
|
||||||
|
|
15
irc.py
15
irc.py
|
@ -221,17 +221,27 @@ class PesterIRC(QtCore.QThread):
|
||||||
helpers.names(self.cli, c)
|
helpers.names(self.cli, c)
|
||||||
except socket.error:
|
except socket.error:
|
||||||
self.setConnectionBroken()
|
self.setConnectionBroken()
|
||||||
|
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString)
|
||||||
|
def inviteChum(self, handle, channel):
|
||||||
|
h = unicode(handle)
|
||||||
|
c = unicode(channel)
|
||||||
|
try:
|
||||||
|
helpers.invite(self.cli, h, c)
|
||||||
|
except socket.error:
|
||||||
|
self.setConnectionBroken()
|
||||||
|
|
||||||
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
|
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
|
||||||
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)
|
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)
|
||||||
messageReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
messageReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
memoReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)
|
memoReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)
|
||||||
noticeReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
noticeReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
|
inviteReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
timeCommand = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)
|
timeCommand = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)
|
||||||
namesReceived = QtCore.pyqtSignal(QtCore.QString, PesterList)
|
namesReceived = QtCore.pyqtSignal(QtCore.QString, PesterList)
|
||||||
channelListReceived = QtCore.pyqtSignal(PesterList)
|
channelListReceived = QtCore.pyqtSignal(PesterList)
|
||||||
nickCollision = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
nickCollision = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
myHandleChanged = QtCore.pyqtSignal(QtCore.QString)
|
myHandleChanged = QtCore.pyqtSignal(QtCore.QString)
|
||||||
|
chanInviteOnly = QtCore.pyqtSignal(QtCore.QString)
|
||||||
connected = QtCore.pyqtSignal()
|
connected = QtCore.pyqtSignal()
|
||||||
userPresentUpdate = QtCore.pyqtSignal(QtCore.QString, QtCore.QString,
|
userPresentUpdate = QtCore.pyqtSignal(QtCore.QString, QtCore.QString,
|
||||||
QtCore.QString)
|
QtCore.QString)
|
||||||
|
@ -387,6 +397,11 @@ class PesterHandler(DefaultCommandHandler):
|
||||||
|
|
||||||
def umodeis(self, server, handle, modes):
|
def umodeis(self, server, handle, modes):
|
||||||
self.parent.mainwindow.modes = modes
|
self.parent.mainwindow.modes = modes
|
||||||
|
def invite(self, sender, you, channel):
|
||||||
|
handle = sender.split('!')[0]
|
||||||
|
self.parent.inviteReceived.emit(handle, channel)
|
||||||
|
def inviteonlychan(self, server, handle, channel, msg):
|
||||||
|
self.parent.chanInviteOnly.emit(channel)
|
||||||
|
|
||||||
def getMood(self, *chums):
|
def getMood(self, *chums):
|
||||||
chumglub = "GETMOOD "
|
chumglub = "GETMOOD "
|
||||||
|
|
33
memos.py
33
memos.py
|
@ -373,8 +373,12 @@ class PesterMemo(PesterConvo):
|
||||||
self.logchum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/viewlog"], self)
|
self.logchum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/viewlog"], self)
|
||||||
self.connect(self.logchum, QtCore.SIGNAL('triggered()'),
|
self.connect(self.logchum, QtCore.SIGNAL('triggered()'),
|
||||||
self, QtCore.SLOT('openChumLogs()'))
|
self, QtCore.SLOT('openChumLogs()'))
|
||||||
|
self.invitechum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/invitechum"], self)
|
||||||
|
self.connect(self.invitechum, QtCore.SIGNAL('triggered()'),
|
||||||
|
self, QtCore.SLOT('inviteChums()'))
|
||||||
self.optionsMenu.addAction(self.quirksOff)
|
self.optionsMenu.addAction(self.quirksOff)
|
||||||
self.optionsMenu.addAction(self.logchum)
|
self.optionsMenu.addAction(self.logchum)
|
||||||
|
self.optionsMenu.addAction(self.invitechum)
|
||||||
|
|
||||||
self.timeslider = TimeSlider(QtCore.Qt.Horizontal, self)
|
self.timeslider = TimeSlider(QtCore.Qt.Horizontal, self)
|
||||||
self.timeinput = TimeInput(self.timeslider, self)
|
self.timeinput = TimeInput(self.timeslider, self)
|
||||||
|
@ -656,6 +660,24 @@ class PesterMemo(PesterConvo):
|
||||||
for n in self.mainwindow.namesdb[self.channel]:
|
for n in self.mainwindow.namesdb[self.channel]:
|
||||||
self.addUser(n)
|
self.addUser(n)
|
||||||
|
|
||||||
|
@QtCore.pyqtSlot(QtCore.QString)
|
||||||
|
def closeInviteOnly(self, channel):
|
||||||
|
c = unicode(channel)
|
||||||
|
if c == self.channel:
|
||||||
|
self.disconnect(self.mainwindow, QtCore.SIGNAL('inviteOnlyChan(QString)'),
|
||||||
|
self, QtCore.SLOT('closeInviteOnly(QString)'))
|
||||||
|
if self.parent():
|
||||||
|
print self.channel
|
||||||
|
i = self.parent().tabIndices[self.channel]
|
||||||
|
self.parent().tabClose(i)
|
||||||
|
else:
|
||||||
|
self.close()
|
||||||
|
msgbox = QtGui.QMessageBox()
|
||||||
|
msgbox.setText("%s: Invites only!" % (c))
|
||||||
|
msgbox.setInformativeText("This channel is invite-only. You must get an invitation from someone on the inside before entering.")
|
||||||
|
msgbox.setStandardButtons(QtGui.QMessageBox.Ok)
|
||||||
|
ret = msgbox.exec_()
|
||||||
|
|
||||||
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString, QtCore.QString)
|
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString, QtCore.QString)
|
||||||
def userPresentChange(self, handle, channel, update):
|
def userPresentChange(self, handle, channel, update):
|
||||||
h = unicode(handle)
|
h = unicode(handle)
|
||||||
|
@ -916,6 +938,17 @@ class PesterMemo(PesterConvo):
|
||||||
self.mainwindow.chumList.pesterlogviewer.raise_()
|
self.mainwindow.chumList.pesterlogviewer.raise_()
|
||||||
self.mainwindow.chumList.pesterlogviewer.activateWindow()
|
self.mainwindow.chumList.pesterlogviewer.activateWindow()
|
||||||
|
|
||||||
|
@QtCore.pyqtSlot()
|
||||||
|
def inviteChums(self):
|
||||||
|
if not hasattr(self, 'invitechums'):
|
||||||
|
self.invitechums = None
|
||||||
|
if not self.invitechums:
|
||||||
|
(chum, ok) = QtGui.QInputDialog.getText(self, "Invite to Char", "Enter the chumhandle of the user you'd like to invite:")
|
||||||
|
if ok:
|
||||||
|
chum = unicode(chum)
|
||||||
|
self.mainwindow.inviteChum.emit(chum, self.channel)
|
||||||
|
self.invitechums = None
|
||||||
|
|
||||||
@QtCore.pyqtSlot()
|
@QtCore.pyqtSlot()
|
||||||
def sendtime(self):
|
def sendtime(self):
|
||||||
me = self.mainwindow.profile()
|
me = self.mainwindow.profile()
|
||||||
|
|
2
menus.py
2
menus.py
|
@ -990,6 +990,7 @@ class PesterMemoList(QtGui.QDialog):
|
||||||
self.orjoinlabel = QtGui.QLabel("OR MAKE A NEW MEMO:")
|
self.orjoinlabel = QtGui.QLabel("OR MAKE A NEW MEMO:")
|
||||||
self.newmemo = QtGui.QLineEdit(channel, self)
|
self.newmemo = QtGui.QLineEdit(channel, self)
|
||||||
self.secretChannel = QtGui.QCheckBox("HIDDEN CHANNEL?", self)
|
self.secretChannel = QtGui.QCheckBox("HIDDEN CHANNEL?", self)
|
||||||
|
self.inviteChannel = QtGui.QCheckBox("INVITATION ONLY?", self)
|
||||||
|
|
||||||
self.timelabel = QtGui.QLabel("TIMEFRAME:")
|
self.timelabel = QtGui.QLabel("TIMEFRAME:")
|
||||||
self.timeslider = TimeSlider(QtCore.Qt.Horizontal, self)
|
self.timeslider = TimeSlider(QtCore.Qt.Horizontal, self)
|
||||||
|
@ -1016,6 +1017,7 @@ class PesterMemoList(QtGui.QDialog):
|
||||||
layout_right.addWidget(self.orjoinlabel)
|
layout_right.addWidget(self.orjoinlabel)
|
||||||
layout_right.addWidget(self.newmemo)
|
layout_right.addWidget(self.newmemo)
|
||||||
layout_right.addWidget(self.secretChannel)
|
layout_right.addWidget(self.secretChannel)
|
||||||
|
layout_right.addWidget(self.inviteChannel)
|
||||||
layout_right.addWidget(self.timelabel)
|
layout_right.addWidget(self.timelabel)
|
||||||
layout_right.addWidget(self.timeslider)
|
layout_right.addWidget(self.timeslider)
|
||||||
layout_right.addWidget(self.timeinput)
|
layout_right.addWidget(self.timeinput)
|
||||||
|
|
|
@ -76,7 +76,7 @@ def quit(cli, msg='gone'):
|
||||||
cli._end = 1
|
cli._end = 1
|
||||||
|
|
||||||
def user(cli, username, realname=None):
|
def user(cli, username, realname=None):
|
||||||
cli.send("USER", realname or username, cli.host, cli.host,
|
cli.send("USER", realname or username, cli.host, cli.host,
|
||||||
realname or username)
|
realname or username)
|
||||||
|
|
||||||
_simple = (
|
_simple = (
|
||||||
|
@ -84,6 +84,7 @@ _simple = (
|
||||||
'part',
|
'part',
|
||||||
'nick',
|
'nick',
|
||||||
'notice',
|
'notice',
|
||||||
|
'invite',
|
||||||
)
|
)
|
||||||
def _addsimple():
|
def _addsimple():
|
||||||
import sys
|
import sys
|
||||||
|
@ -106,6 +107,6 @@ def _addNumerics():
|
||||||
m = sys.modules[__name__]
|
m = sys.modules[__name__]
|
||||||
for num, name in ircevents.numeric_events.iteritems():
|
for num, name in ircevents.numeric_events.iteritems():
|
||||||
setattr(m, name, numericcmd(num, name))
|
setattr(m, name, numericcmd(num, name))
|
||||||
|
|
||||||
_addNumerics()
|
_addNumerics()
|
||||||
|
|
||||||
|
|
|
@ -492,7 +492,7 @@ def themeChecker(theme):
|
||||||
"convo/text/closememo", "convo/text/kickedmemo", \
|
"convo/text/closememo", "convo/text/kickedmemo", \
|
||||||
"main/chums/userlistcolor", "main/defaultwindow/style", \
|
"main/chums/userlistcolor", "main/defaultwindow/style", \
|
||||||
"main/chums/moods", "main/chums/moods/chummy/icon", "main/menus/help/help", \
|
"main/chums/moods", "main/chums/moods/chummy/icon", "main/menus/help/help", \
|
||||||
"main/menus/help/calsprite", "main/menus/help/nickserv"]
|
"main/menus/help/calsprite", "main/menus/help/nickserv", "main/menus/rclickchumlist/invitechum"]
|
||||||
|
|
||||||
for n in needs:
|
for n in needs:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -1404,7 +1404,7 @@ class PesterWindow(MovingWindow):
|
||||||
except ThemeException, (inst):
|
except ThemeException, (inst):
|
||||||
print "Caught: "+inst.parameter
|
print "Caught: "+inst.parameter
|
||||||
themeWarning = QtGui.QMessageBox(self)
|
themeWarning = QtGui.QMessageBox(self)
|
||||||
themeWarning.setText("Theme Error: %s\nFalling back..." % (inst))
|
themeWarning.setText("Theme Error: %s" % (inst))
|
||||||
themeWarning.exec_()
|
themeWarning.exec_()
|
||||||
self.theme = pesterTheme("pesterchum")
|
self.theme = pesterTheme("pesterchum")
|
||||||
|
|
||||||
|
@ -1712,7 +1712,7 @@ class PesterWindow(MovingWindow):
|
||||||
self.connect(self.tabmemo, QtCore.SIGNAL('windowClosed()'),
|
self.connect(self.tabmemo, QtCore.SIGNAL('windowClosed()'),
|
||||||
self, QtCore.SLOT('memoTabsClosed()'))
|
self, QtCore.SLOT('memoTabsClosed()'))
|
||||||
|
|
||||||
def newMemo(self, channel, timestr, secret=False):
|
def newMemo(self, channel, timestr, secret=False, invite=False):
|
||||||
if channel == "#pesterchum":
|
if channel == "#pesterchum":
|
||||||
return
|
return
|
||||||
if self.memos.has_key(channel):
|
if self.memos.has_key(channel):
|
||||||
|
@ -1727,6 +1727,8 @@ class PesterWindow(MovingWindow):
|
||||||
else:
|
else:
|
||||||
memoWindow = PesterMemo(channel, timestr, self, None)
|
memoWindow = PesterMemo(channel, timestr, self, None)
|
||||||
# connect signals
|
# connect signals
|
||||||
|
self.connect(self, QtCore.SIGNAL('inviteOnlyChan(QString)'),
|
||||||
|
memoWindow, QtCore.SLOT('closeInviteOnly(QString)'))
|
||||||
self.connect(memoWindow, QtCore.SIGNAL('messageSent(QString, QString)'),
|
self.connect(memoWindow, QtCore.SIGNAL('messageSent(QString, QString)'),
|
||||||
self, QtCore.SIGNAL('sendMessage(QString, QString)'))
|
self, QtCore.SIGNAL('sendMessage(QString, QString)'))
|
||||||
self.connect(memoWindow, QtCore.SIGNAL('windowClosed(QString)'),
|
self.connect(memoWindow, QtCore.SIGNAL('windowClosed(QString)'),
|
||||||
|
@ -1743,6 +1745,8 @@ class PesterWindow(MovingWindow):
|
||||||
if self.secret:
|
if self.secret:
|
||||||
self.secret = True
|
self.secret = True
|
||||||
self.setChannelMode.emit(channel, "+s", "")
|
self.setChannelMode.emit(channel, "+s", "")
|
||||||
|
if invite:
|
||||||
|
self.setChannelMode.emit(channel, "+i", "")
|
||||||
memoWindow.sendTimeInfo()
|
memoWindow.sendTimeInfo()
|
||||||
memoWindow.show()
|
memoWindow.show()
|
||||||
|
|
||||||
|
@ -1887,7 +1891,7 @@ class PesterWindow(MovingWindow):
|
||||||
themeChecker(theme)
|
themeChecker(theme)
|
||||||
except ThemeException, (inst):
|
except ThemeException, (inst):
|
||||||
themeWarning = QtGui.QMessageBox(self)
|
themeWarning = QtGui.QMessageBox(self)
|
||||||
themeWarning.setText("Theme Error: %s\nFalling back..." % (inst))
|
themeWarning.setText("Theme Error: %s" % (inst))
|
||||||
themeWarning.exec_()
|
themeWarning.exec_()
|
||||||
theme = pesterTheme("pesterchum")
|
theme = pesterTheme("pesterchum")
|
||||||
return
|
return
|
||||||
|
@ -2014,6 +2018,19 @@ class PesterWindow(MovingWindow):
|
||||||
m = unicode(msg)
|
m = unicode(msg)
|
||||||
if self.convos.has_key(h):
|
if self.convos.has_key(h):
|
||||||
self.newMessage(h, m)
|
self.newMessage(h, m)
|
||||||
|
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString)
|
||||||
|
def deliverInvite(self, handle, channel):
|
||||||
|
msgbox = QtGui.QMessageBox()
|
||||||
|
msgbox.setText("You're invited!")
|
||||||
|
msgbox.setInformativeText("%s has invited you to the memo: %s\nWould you like to join them?" % (handle, channel))
|
||||||
|
msgbox.setStandardButtons(QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel)
|
||||||
|
ret = msgbox.exec_()
|
||||||
|
if ret == QtGui.QMessageBox.Ok:
|
||||||
|
self.newMemo(unicode(channel), "+0:00")
|
||||||
|
@QtCore.pyqtSlot(QtCore.QString)
|
||||||
|
def chanInviteOnly(self, channel):
|
||||||
|
print "Invite only: %s" % channel
|
||||||
|
self.inviteOnlyChan.emit(channel)
|
||||||
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString, QtCore.QString)
|
@QtCore.pyqtSlot(QtCore.QString, QtCore.QString, QtCore.QString)
|
||||||
def timeCommand(self, chan, handle, command):
|
def timeCommand(self, chan, handle, command):
|
||||||
(c, h, cmd) = (unicode(chan), unicode(handle), unicode(command))
|
(c, h, cmd) = (unicode(chan), unicode(handle), unicode(command))
|
||||||
|
@ -2226,10 +2243,11 @@ class PesterWindow(MovingWindow):
|
||||||
selectedmemo = self.memochooser.selectedmemo()
|
selectedmemo = self.memochooser.selectedmemo()
|
||||||
time = unicode(self.memochooser.timeinput.text())
|
time = unicode(self.memochooser.timeinput.text())
|
||||||
secret = self.memochooser.secretChannel.isChecked()
|
secret = self.memochooser.secretChannel.isChecked()
|
||||||
|
invite = self.memochooser.inviteChannel.isChecked()
|
||||||
if newmemo:
|
if newmemo:
|
||||||
channel = "#"+unicode(newmemo).replace(" ", "_")
|
channel = "#"+unicode(newmemo).replace(" ", "_")
|
||||||
channel = re.sub(r"[^A-Za-z0-9#_]", "", channel)
|
channel = re.sub(r"[^A-Za-z0-9#_]", "", channel)
|
||||||
self.newMemo(channel, time, secret=secret)
|
self.newMemo(channel, time, secret=secret, invite=invite)
|
||||||
elif selectedmemo:
|
elif selectedmemo:
|
||||||
channel = "#"+unicode(selectedmemo.target)
|
channel = "#"+unicode(selectedmemo.target)
|
||||||
self.newMemo(channel, time)
|
self.newMemo(channel, time)
|
||||||
|
@ -2701,6 +2719,8 @@ class PesterWindow(MovingWindow):
|
||||||
leftChannel = QtCore.pyqtSignal(QtCore.QString)
|
leftChannel = QtCore.pyqtSignal(QtCore.QString)
|
||||||
setChannelMode = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)
|
setChannelMode = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)
|
||||||
channelNames = QtCore.pyqtSignal(QtCore.QString)
|
channelNames = QtCore.pyqtSignal(QtCore.QString)
|
||||||
|
inviteChum = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
|
||||||
|
inviteOnlyChan = QtCore.pyqtSignal(QtCore.QString)
|
||||||
closeSignal = QtCore.pyqtSignal()
|
closeSignal = QtCore.pyqtSignal()
|
||||||
reconnectIRC = QtCore.pyqtSignal()
|
reconnectIRC = QtCore.pyqtSignal()
|
||||||
|
|
||||||
|
@ -2811,6 +2831,8 @@ class MainProgram(QtCore.QObject):
|
||||||
'setChannelMode(QString, QString, QString)'),
|
'setChannelMode(QString, QString, QString)'),
|
||||||
('channelNames(QString)',
|
('channelNames(QString)',
|
||||||
'channelNames(QString)'),
|
'channelNames(QString)'),
|
||||||
|
('inviteChum(QString, QString)',
|
||||||
|
'inviteChum(QString, QString)'),
|
||||||
('reconnectIRC()', 'reconnectIRC()')
|
('reconnectIRC()', 'reconnectIRC()')
|
||||||
]
|
]
|
||||||
# IRC --> Main window
|
# IRC --> Main window
|
||||||
|
@ -2825,6 +2847,8 @@ class MainProgram(QtCore.QObject):
|
||||||
'deliverMemo(QString, QString, QString)'),
|
'deliverMemo(QString, QString, QString)'),
|
||||||
('noticeReceived(QString, QString)',
|
('noticeReceived(QString, QString)',
|
||||||
'deliverNotice(QString, QString)'),
|
'deliverNotice(QString, QString)'),
|
||||||
|
('inviteReceived(QString, QString)',
|
||||||
|
'deliverInvite(QString, QString)'),
|
||||||
('nickCollision(QString, QString)',
|
('nickCollision(QString, QString)',
|
||||||
'nickCollision(QString, QString)'),
|
'nickCollision(QString, QString)'),
|
||||||
('myHandleChanged(QString)',
|
('myHandleChanged(QString)',
|
||||||
|
@ -2836,7 +2860,9 @@ class MainProgram(QtCore.QObject):
|
||||||
('channelListReceived(PyQt_PyObject)',
|
('channelListReceived(PyQt_PyObject)',
|
||||||
'updateChannelList(PyQt_PyObject)'),
|
'updateChannelList(PyQt_PyObject)'),
|
||||||
('timeCommand(QString, QString, QString)',
|
('timeCommand(QString, QString, QString)',
|
||||||
'timeCommand(QString, QString, QString)')
|
'timeCommand(QString, QString, QString)'),
|
||||||
|
('chanInviteOnly(QString)',
|
||||||
|
'chanInviteOnly(QString)')
|
||||||
]
|
]
|
||||||
def connectWidgets(self, irc, widget):
|
def connectWidgets(self, irc, widget):
|
||||||
self.connect(irc, QtCore.SIGNAL('finished()'),
|
self.connect(irc, QtCore.SIGNAL('finished()'),
|
||||||
|
|
|
@ -49,7 +49,8 @@
|
||||||
"banuser": "Ban User",
|
"banuser": "Ban User",
|
||||||
"opuser": "Make OP",
|
"opuser": "Make OP",
|
||||||
"voiceuser": "Give Voice",
|
"voiceuser": "Give Voice",
|
||||||
"quirksoff": "Quirks Off"
|
"quirksoff": "Quirks Off",
|
||||||
|
"invitechum": "Invite Chum"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chums": { "style": "text-align: center; border:0px; background-image:url($path/chumbg.png); background-color: #ffe400; background-repeat: no-repeat; color: white; font-family: 'Century Gothic';selection-background-color:#646464; font-size:18px; ",
|
"chums": { "style": "text-align: center; border:0px; background-image:url($path/chumbg.png); background-color: #ffe400; background-repeat: no-repeat; color: white; font-family: 'Century Gothic';selection-background-color:#646464; font-size:18px; ",
|
||||||
|
|
|
@ -52,7 +52,8 @@
|
||||||
"banuser": "Ban User",
|
"banuser": "Ban User",
|
||||||
"opuser": "Make OP",
|
"opuser": "Make OP",
|
||||||
"voiceuser": "Give Voice",
|
"voiceuser": "Give Voice",
|
||||||
"quirksoff": "Quirks Off"
|
"quirksoff": "Quirks Off",
|
||||||
|
"invitechum": "Invite Chum"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chums": { "style": "border:0px; background-image:url($path/chumbg.png); background-color: rgb(110,110,110); background-repeat: no-repeat; color: white; font-family: 'Arial';selection-background-color:#646464; font-size:14px; ",
|
"chums": { "style": "border:0px; background-image:url($path/chumbg.png); background-color: rgb(110,110,110); background-repeat: no-repeat; color: white; font-family: 'Arial';selection-background-color:#646464; font-size:14px; ",
|
||||||
|
|
|
@ -52,7 +52,8 @@
|
||||||
"banuser": "BAN USER",
|
"banuser": "BAN USER",
|
||||||
"opuser": "MAKE OP",
|
"opuser": "MAKE OP",
|
||||||
"voiceuser": "GIVE VOICE",
|
"voiceuser": "GIVE VOICE",
|
||||||
"quirksoff": "QUIRKS OFF"
|
"quirksoff": "QUIRKS OFF",
|
||||||
|
"invitechum": "INVITE CHUM"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chums": { "style": "border:2px solid yellow; background-color: black;color: white;font: bold;font-family: 'Courier';selection-background-color:#646464; ",
|
"chums": { "style": "border:2px solid yellow; background-color: black;color: white;font: bold;font-family: 'Courier';selection-background-color:#646464; ",
|
||||||
|
|
|
@ -51,7 +51,8 @@
|
||||||
"banuser": "Ban",
|
"banuser": "Ban",
|
||||||
"opuser": "Promote",
|
"opuser": "Promote",
|
||||||
"voiceuser": "Let Speak",
|
"voiceuser": "Let Speak",
|
||||||
"quirksoff": "Quirks Off" }
|
"quirksoff": "Quirks Off",
|
||||||
|
"invitechum": "Invite Chump" }
|
||||||
},
|
},
|
||||||
"chums": { "style": "font-size: 12px; background: white; border:0px; font-family: 'Arial';selection-background-color:rgb(200,200,200); ",
|
"chums": { "style": "font-size: 12px; background: white; border:0px; font-family: 'Arial';selection-background-color:rgb(200,200,200); ",
|
||||||
"scrollbar": { "style" : "background-color:#c2c2c2;",
|
"scrollbar": { "style" : "background-color:#c2c2c2;",
|
||||||
|
|
|
@ -52,7 +52,8 @@
|
||||||
"banuser": "Expel User",
|
"banuser": "Expel User",
|
||||||
"opuser": "Promote",
|
"opuser": "Promote",
|
||||||
"voiceuser": "Let Speak",
|
"voiceuser": "Let Speak",
|
||||||
"quirksoff": "Quirks Off"
|
"quirksoff": "Quirks Off",
|
||||||
|
"invitechum": "Invite User"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chums": { "style": "border:0px; background-color: white; font: bold;font-family: 'Courier';selection-background-color: black; ",
|
"chums": { "style": "border:0px; background-color: white; font: bold;font-family: 'Courier';selection-background-color: black; ",
|
||||||
|
|
Loading…
Reference in a new issue