Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions GUI/Options/Panels/AutojoinMemos.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from PyQt4 import QtCore
from PyQt4 import QtGui

class MemoEntryItem(QtGui.QListWidgetItem):
def __init__(self,MemoName):
QtGui.QListWidgetItem.__init__(self,MemoName)
self.MemoName = MemoName

class Panel(QtGui.QWidget):
def __init__(self,Config):
QtGui.QWidget.__init__(self)
self.Config = Config

self.TitleLabel = QtGui.QLabel("Memos to join on startup:")
self.MemosList = QtGui.QListWidget()
self.MemoNameEntry = QtGui.QLineEdit()
self.RemoveButton = QtGui.QPushButton("REMOVE")
self.AddButton = QtGui.QPushButton("ADD")

Layout = QtGui.QVBoxLayout(self)
Layout.setAlignment(QtCore.Qt.AlignTop)
Layout.addWidget(self.TitleLabel)
Layout.addWidget(self.MemosList)
Layout.addWidget(self.MemoNameEntry)
AddRemoveButtonLayout = QtGui.QHBoxLayout()
AddRemoveButtonLayout.addWidget(self.RemoveButton)
AddRemoveButtonLayout.addWidget(self.AddButton)
Layout.addLayout(AddRemoveButtonLayout)

self.connect(self.RemoveButton,QtCore.SIGNAL("clicked()"),self,QtCore.SLOT("RemoveSelectedMemo()"))
self.connect(self.AddButton,QtCore.SIGNAL("clicked()"),self,QtCore.SLOT("AddMemoFromTextEntry()"))

for MemoName in self.Config.config.get("AutojoinMemos",[]):
self.AddMemoEntry(MemoName)

@QtCore.pyqtSlot()
def RemoveSelectedMemo(self):
self.MemosList.takeItem(self.MemosList.currentRow())

@QtCore.pyqtSlot()
def AddMemoFromTextEntry(self):
MemoName = str(self.MemoNameEntry.text()).strip()
if (MemoName != ""):
self.AddMemoEntry(MemoName)
self.MemoNameEntry.setText("")

def AddMemoEntry(self,MemoName):
self.MemosList.addItem(MemoEntryItem(MemoName))

def SaveOptions(self):
MemosListed = []

for MemoIndex in range(self.MemosList.count()):
MemoItem = self.MemosList.item(MemoIndex)
MemosListed.append(MemoItem.MemoName)

self.Config.set("AutojoinMemos",MemosListed)
76 changes: 76 additions & 0 deletions GUI/Options/Panels/Connection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from PyQt4 import QtCore
from PyQt4 import QtGui

class MemoEntryItem(QtGui.QListWidgetItem):
def __init__(self,MemoName):
QtGui.QListWidgetItem.__init__(self,MemoName)
self.MemoName = MemoName

class Panel(QtGui.QWidget):
def __init__(self,Config):
QtGui.QWidget.__init__(self)
self.Config = Config

self.AutoIdentifyCheck = QtGui.QCheckBox("Automatically identify with nickserv")
self.PasswordLabel = QtGui.QLabel("Password:")
self.PasswordEntry = QtGui.QLineEdit()
self.PasswordEntry.setEchoMode(QtGui.QLineEdit.Password)

self.TitleLabel = QtGui.QLabel("Memos to join on startup:")
self.MemosList = QtGui.QListWidget()
self.MemoNameEntry = QtGui.QLineEdit()
self.RemoveButton = QtGui.QPushButton("REMOVE")
self.AddButton = QtGui.QPushButton("ADD")

Layout = QtGui.QVBoxLayout(self)
Layout.setAlignment(QtCore.Qt.AlignTop)
Layout.addWidget(self.AutoIdentifyCheck)
NickservPasswordLayout = QtGui.QHBoxLayout()
NickservPasswordLayout.addWidget(self.PasswordLabel)
NickservPasswordLayout.addWidget(self.PasswordEntry)
Layout.addLayout(NickservPasswordLayout)
Layout.addWidget(self.TitleLabel)
Layout.addWidget(self.MemosList)
Layout.addWidget(self.MemoNameEntry)
AddRemoveButtonLayout = QtGui.QHBoxLayout()
AddRemoveButtonLayout.addWidget(self.RemoveButton)
AddRemoveButtonLayout.addWidget(self.AddButton)
Layout.addLayout(AddRemoveButtonLayout)

self.connect(self.RemoveButton,QtCore.SIGNAL("clicked()"),self,QtCore.SLOT("RemoveSelectedMemo()"))
self.connect(self.AddButton,QtCore.SIGNAL("clicked()"),self,QtCore.SLOT("AddMemoFromTextEntry()"))

if self.Config.userprofile.userprofile.get("AutoIdentify",False):
self.AutoIdentifyCheck.setChecked(True)

self.PasswordEntry.setText(self.Config.userprofile.userprofile.get("NickservPassword",""))

for MemoName in self.Config.config.get("AutojoinMemos",[]):
self.AddMemoEntry(MemoName)

@QtCore.pyqtSlot()
def RemoveSelectedMemo(self):
self.MemosList.takeItem(self.MemosList.currentRow())

@QtCore.pyqtSlot()
def AddMemoFromTextEntry(self):
MemoName = str(self.MemoNameEntry.text()).strip()
if (MemoName != ""):
self.AddMemoEntry(MemoName)
self.MemoNameEntry.setText("")

def AddMemoEntry(self,MemoName):
self.MemosList.addItem(MemoEntryItem(MemoName))

def SaveOptions(self):
MemosListed = []

for MemoIndex in range(self.MemosList.count()):
MemoItem = self.MemosList.item(MemoIndex)
MemosListed.append(MemoItem.MemoName)

self.Config.set("AutojoinMemos",MemosListed)

self.Config.userprofile.userprofile["AutoIdentify"] = self.AutoIdentifyCheck.isChecked()
self.Config.userprofile.userprofile["NickservPassword"] = str(self.PasswordEntry.text())
self.Config.userprofile.save() #barf, why are there different classes for both configs with different behaviors
Empty file added GUI/Options/Panels/__init__.py
Empty file.
Empty file added GUI/Options/__init__.py
Empty file.
Empty file added GUI/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions irc.py
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,9 @@ def killSomeQuirks(self, channel, handle):
quirkDisable = QtCore.pyqtSignal(QtCore.QString, QtCore.QString, QtCore.QString)

class PesterHandler(DefaultCommandHandler):
def __init__(self,client):
DefaultCommandHandler.__init__(self,client)
self.AutojoinDone = False
def notice(self, nick, chan, msg):
try:
msg = msg.decode('utf-8')
Expand Down
6 changes: 5 additions & 1 deletion menus.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from PyQt4 import QtGui, QtCore
import re, ostools
import GUI.Options.Panels.Connection

from os import remove
from generic import RightClickList, RightClickTree, MultiTextDialog
Expand Down Expand Up @@ -1001,7 +1002,7 @@ def __init__(self, config, theme, parent):
self.tabs = QtGui.QButtonGroup(self)
self.connect(self.tabs, QtCore.SIGNAL('buttonClicked(int)'),
self, QtCore.SLOT('changePage(int)'))
tabNames = ["Chum List", "Conversations", "Interface", "Sound", "Notifications", "Logging", "Idle/Updates", "Theme"]
tabNames = ["Chum List", "Conversations", "Interface", "Sound", "Notifications", "Logging", "Idle/Updates", "Theme", "Connection"]
if parent.advanced: tabNames.append("Advanced")
for t in tabNames:
button = QtGui.QPushButton(t)
Expand Down Expand Up @@ -1374,6 +1375,9 @@ def __init__(self, config, theme, parent):
layout_advanced.addLayout(layout_change)
self.pages.addWidget(widget)

self.ConnectionPanel = GUI.Options.Panels.Connection.Panel(self.config)
self.pages.addWidget(self.ConnectionPanel)

layout_0 = QtGui.QVBoxLayout()
layout_1 = QtGui.QHBoxLayout()
layout_1.addLayout(layout_4)
Expand Down
20 changes: 20 additions & 0 deletions pesterchum.py
Original file line number Diff line number Diff line change
Expand Up @@ -986,6 +986,7 @@ def __init__(self, options, parent=None):
MovingWindow.__init__(self, parent,
(QtCore.Qt.CustomizeWindowHint |
QtCore.Qt.FramelessWindowHint))
self.AutojoinDone = False
self.convos = CaseInsensitiveDict()
self.memos = CaseInsensitiveDict()
self.tabconvo = None
Expand Down Expand Up @@ -1222,6 +1223,8 @@ def __init__(self, options, parent=None):
self.lastping = int(time())
self.pingtimer.start(1000*90)



@QtCore.pyqtSlot()
def mspacheck(self):
# Fuck you EVEN more OSX leopard! >:((((
Expand Down Expand Up @@ -1706,11 +1709,23 @@ def systemTrayFunction(self):
else:
self.waitingMessages.answerMessage()

def DoAutoIdentify(self):
if self.config.userprofile.userprofile.get("AutoIdentify",False):
self.sendMessage.emit("identify " + self.config.userprofile.userprofile.get("NickservPassword",""), "nickserv")

@QtCore.pyqtSlot()
def connected(self):
if self.loadingscreen:
self.loadingscreen.done(QtGui.QDialog.Accepted)
self.loadingscreen = None

self.DoAutoIdentify()

if not self.AutojoinDone:
self.AutojoinDone = True
for MemoName in self.config.config.get("AutojoinMemos",[]):
self.newMemo("#" + MemoName,"i")

@QtCore.pyqtSlot()
def blockSelectedChum(self):
curChumListing = self.chumList.currentItem()
Expand Down Expand Up @@ -2449,6 +2464,7 @@ def updateOptions(self):
newmodes = self.optionmenu.modechange.text()
if newmodes:
self.setChannelMode.emit(self.profile().handle, newmodes, "")
self.optionmenu.ConnectionPanel.SaveOptions() #yeah this is bad design but it's so much cleaner than what's currently goin on here
except Exception, e:
logging.error(e)
finally:
Expand Down Expand Up @@ -2618,6 +2634,7 @@ def nickCollision(self, handle, tmphandle):
@QtCore.pyqtSlot(QtCore.QString)
def myHandleChanged(self, handle):
if self.profile().handle == handle:
self.DoAutoIdentify()
return
else:
self.nickCollision(self.profile().handle, handle)
Expand Down Expand Up @@ -2698,6 +2715,8 @@ def __init__(self):

options = self.oppts(sys.argv[1:])

self.AutojoinDone = False

if pygame and pygame.mixer:
# we could set the frequency higher but i love how cheesy it sounds
try:
Expand Down Expand Up @@ -2966,6 +2985,7 @@ def showLoading(self, widget, msg="CONN3CT1NG"):
@QtCore.pyqtSlot()
def connected(self):
self.attempts = 0

@QtCore.pyqtSlot()
def tryAgain(self):
if not self.reconnectok:
Expand Down