Merge branch 'master' of github.com:kiooeht/pesterchum

This commit is contained in:
Kiooeht 2011-10-24 23:41:17 -07:00
commit 6ea227b39a
5 changed files with 90 additions and 18 deletions

View file

@ -14,6 +14,9 @@ Visit http://nova.xzibition.com/~illuminatedwax/help.html for tutorial.
CHANGELOG CHANGELOG
--------- ---------
### 3.41.2 ### 3.41.2
* Add group option when adding chum - ghostDunk
* OOC Mode - ghostDunk
* Improve animated gifs - ghostDunk
* Set IRC away on idle - Kiooeht [evacipatedBox] * Set IRC away on idle - Kiooeht [evacipatedBox]
* Remote quirk shutoff in memos - Kiooeht [evacipatedBox] * Remote quirk shutoff in memos - Kiooeht [evacipatedBox]
* Compress exit dumps into one line - Kiooeht [evacipatedBox] (Idea: Lexi [lexicalNuance]) * Compress exit dumps into one line - Kiooeht [evacipatedBox] (Idea: Lexi [lexicalNuance])

View file

@ -29,7 +29,6 @@ Bugs
* Windows doesn't show style sheet sometimes?? Maybe related to themes. * Windows doesn't show style sheet sometimes?? Maybe related to themes.
* Issues with connecting? Client not closing connection right? People keep getting "nick taken" messages * Issues with connecting? Client not closing connection right? People keep getting "nick taken" messages
* When using mood sort, scroll position jumps to last selected chum * When using mood sort, scroll position jumps to last selected chum
* When left for a really long time, animations slow down pesterchum
* Closing a timeclone doesn't actually cease for everyone else * Closing a timeclone doesn't actually cease for everyone else
* Kill Zalgo * Kill Zalgo
* Random invisible, tiny links to last link at end of every message * Random invisible, tiny links to last link at end of every message

View file

@ -47,7 +47,9 @@ class RightClickList(QtGui.QListWidget):
if event.reason() == QtGui.QContextMenuEvent.Mouse: if event.reason() == QtGui.QContextMenuEvent.Mouse:
listing = self.itemAt(event.pos()) listing = self.itemAt(event.pos())
self.setCurrentItem(listing) self.setCurrentItem(listing)
self.getOptionsMenu().popup(event.globalPos()) optionsMenu = self.getOptionsMenu()
if optionsMenu:
optionsMenu.popup(event.globalPos())
def getOptionsMenu(self): def getOptionsMenu(self):
return self.optionsMenu return self.optionsMenu
@ -56,7 +58,9 @@ class RightClickTree(QtGui.QTreeWidget):
if event.reason() == QtGui.QContextMenuEvent.Mouse: if event.reason() == QtGui.QContextMenuEvent.Mouse:
listing = self.itemAt(event.pos()) listing = self.itemAt(event.pos())
self.setCurrentItem(listing) self.setCurrentItem(listing)
self.getOptionsMenu().popup(event.globalPos()) optionsMenu = self.getOptionsMenu()
if optionsMenu:
optionsMenu.popup(event.globalPos())
def getOptionsMenu(self): def getOptionsMenu(self):
return self.optionsMenu return self.optionsMenu

View file

@ -1737,3 +1737,45 @@ class UpdatePesterchum(QtGui.QDialog):
layout_0.addLayout(layout_2) layout_0.addLayout(layout_2)
self.setLayout(layout_0) self.setLayout(layout_0)
class AddChumDialog(QtGui.QDialog):
def __init__(self, avail_groups, parent=None):
QtGui.QDialog.__init__(self, parent)
self.mainwindow = parent
self.setStyleSheet(self.mainwindow.theme["main/defaultwindow/style"])
self.setWindowTitle("Enter Chum Handle")
self.setModal(True)
self.title = QtGui.QLabel("Enter Chum Handle")
self.chumBox = QtGui.QLineEdit(self)
self.groupBox = QtGui.QComboBox(self)
avail_groups.sort()
avail_groups.pop(avail_groups.index("Chums"))
avail_groups.insert(0, "Chums")
for g in avail_groups:
self.groupBox.addItem(g)
self.newgrouplabel = QtGui.QLabel("Or make a new group:")
self.newgroup = QtGui.QLineEdit(self)
layout_0 = QtGui.QVBoxLayout()
layout_0.addWidget(self.title)
layout_0.addWidget(self.chumBox)
layout_0.addWidget(self.groupBox)
layout_0.addWidget(self.newgrouplabel)
layout_0.addWidget(self.newgroup)
self.ok = QtGui.QPushButton("OK", self)
self.ok.setDefault(True)
self.connect(self.ok, QtCore.SIGNAL('clicked()'),
self, QtCore.SLOT('accept()'))
self.cancel = QtGui.QPushButton("CANCEL", self)
self.connect(self.cancel, QtCore.SIGNAL('clicked()'),
self, QtCore.SLOT('reject()'))
layout_2 = QtGui.QHBoxLayout()
layout_2.addWidget(self.cancel)
layout_2.addWidget(self.ok)
layout_0.addLayout(layout_2)
self.setLayout(layout_0)

View file

@ -58,7 +58,7 @@ 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, AddChumDialog
from mood import Mood, PesterMoodAction, PesterMoodHandler, PesterMoodButton from mood import Mood, PesterMoodAction, PesterMoodHandler, PesterMoodButton
from dataobjs import PesterProfile, pesterQuirk, pesterQuirks from dataobjs import PesterProfile, pesterQuirk, pesterQuirks
from generic import PesterIcon, RightClickList, RightClickTree, \ from generic import PesterIcon, RightClickList, RightClickTree, \
@ -282,6 +282,8 @@ class chumArea(RightClickTree):
self.notify = True self.notify = True
def getOptionsMenu(self): def getOptionsMenu(self):
if not self.currentItem():
return None
text = str(self.currentItem().text(0)) text = str(self.currentItem().text(0))
if text.rfind(" (") != -1: if text.rfind(" (") != -1:
text = text[0:text.rfind(" (")] text = text[0:text.rfind(" (")]
@ -886,6 +888,7 @@ class TrollSlumWindow(QtGui.QFrame):
errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!") errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!")
self.addchumdialog = None self.addchumdialog = None
return return
self.blockChumSignal.emit(handle) self.blockChumSignal.emit(handle)
self.addtrolldialog = None self.addtrolldialog = None
@ -1384,6 +1387,20 @@ class PesterWindow(MovingWindow):
self.config.addChum(chum) self.config.addChum(chum)
self.moodRequest.emit(chum) self.moodRequest.emit(chum)
def addGroup(self, gname):
print gname
self.config.addGroup(gname)
gTemp = self.config.getGroups()
self.chumList.groups = [g[0] for g in gTemp]
self.chumList.openGroups = [g[1] for g in gTemp]
self.chumList.moveGroupMenu()
self.chumList.showAllGroups()
if not self.config.showEmptyGroups():
self.chumList.hideEmptyGroups()
if self.config.showOnlineNumbers():
self.chumList.showOnlineNumbers()
def changeProfile(self, collision=None): def changeProfile(self, collision=None):
if not hasattr(self, 'chooseprofile'): if not hasattr(self, 'chooseprofile'):
self.chooseprofile = None self.chooseprofile = None
@ -1766,17 +1783,34 @@ class PesterWindow(MovingWindow):
if not hasattr(self, 'addchumdialog'): if not hasattr(self, 'addchumdialog'):
self.addchumdialog = None self.addchumdialog = None
if not self.addchumdialog: if not self.addchumdialog:
self.addchumdialog = QtGui.QInputDialog(self) available_groups = [g[0] for g in self.config.getGroups()]
(handle, ok) = self.addchumdialog.getText(self, "New Chum", "Enter Chum Handle:") self.addchumdialog = AddChumDialog(available_groups, self)
ok = self.addchumdialog.exec_()
handle = str(self.addchumdialog.chumBox.text()).strip()
newgroup = str(self.addchumdialog.newgroup.text()).strip()
selectedGroup = self.addchumdialog.groupBox.currentText()
group = newgroup if newgroup else selectedGroup
if ok: if ok:
handle = unicode(handle) handle = unicode(handle)
print self.chumList.chums
if handle in [h.handle for h in self.chumList.chums]:
return
if not (PesterProfile.checkLength(handle) and if not (PesterProfile.checkLength(handle) and
PesterProfile.checkValid(handle)[0]): PesterProfile.checkValid(handle)[0]):
errormsg = QtGui.QErrorMessage(self) errormsg = QtGui.QErrorMessage(self)
errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!") errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!")
self.addchumdialog = None self.addchumdialog = None
return return
chum = PesterProfile(handle, chumdb=self.chumdb) if re.search("[^A-Za-z0-9_\s]", group) is not None:
errormsg = QtGui.QErrorMessage(self)
errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!")
self.addchumdialog = None
return
if newgroup:
# make new group
self.addGroup(group)
chum = PesterProfile(handle, chumdb=self.chumdb, group=group)
self.chumdb.setGroup(handle, group)
self.addChum(chum) self.addChum(chum)
self.addchumdialog = None self.addchumdialog = None
@QtCore.pyqtSlot(QtCore.QString) @QtCore.pyqtSlot(QtCore.QString)
@ -2028,17 +2062,7 @@ class PesterWindow(MovingWindow):
ret = msgbox.exec_() ret = msgbox.exec_()
self.addgroupdialog = None self.addgroupdialog = None
return return
self.config.addGroup(gname) self.addGroup(gname)
gTemp = self.config.getGroups()
self.chumList.groups = [g[0] for g in gTemp]
self.chumList.openGroups = [g[1] for g in gTemp]
self.chumList.moveGroupMenu()
self.chumList.showAllGroups()
if not self.config.showEmptyGroups():
self.chumList.hideEmptyGroups()
if self.config.showOnlineNumbers():
self.chumList.showOnlineNumbers()
self.addgroupdialog = None self.addgroupdialog = None
@QtCore.pyqtSlot() @QtCore.pyqtSlot()