81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
from PyQt4 import QtGui, QtCore
|
|
from datetime import timedelta
|
|
|
|
class mysteryTime(timedelta):
|
|
def __sub__(self, other):
|
|
return self
|
|
def __eq__(self, other):
|
|
return (type(other) is mysteryTime)
|
|
def __neq__(self, other):
|
|
return (type(other) is not mysteryTime)
|
|
|
|
class PesterList(list):
|
|
def __init__(self, l):
|
|
self.extend(l)
|
|
|
|
class PesterIcon(QtGui.QIcon):
|
|
def __init__(self, *x, **y):
|
|
QtGui.QIcon.__init__(self, *x, **y)
|
|
if type(x[0]) in [str, unicode]:
|
|
self.icon_pixmap = QtGui.QPixmap(x[0])
|
|
else:
|
|
self.icon_pixmap = None
|
|
def realsize(self):
|
|
if self.icon_pixmap:
|
|
return self.icon_pixmap.size()
|
|
else:
|
|
try:
|
|
return self.availableSizes()[0]
|
|
except IndexError:
|
|
return None
|
|
|
|
class RightClickList(QtGui.QListWidget):
|
|
def contextMenuEvent(self, event):
|
|
#fuckin Qt
|
|
if event.reason() == QtGui.QContextMenuEvent.Mouse:
|
|
listing = self.itemAt(event.pos())
|
|
self.setCurrentItem(listing)
|
|
self.optionsMenu.popup(event.globalPos())
|
|
|
|
class MultiTextDialog(QtGui.QDialog):
|
|
def __init__(self, title, parent, *queries):
|
|
QtGui.QDialog.__init__(self, parent)
|
|
self.setWindowTitle(title)
|
|
if len(queries) == 0:
|
|
return
|
|
self.inputs = {}
|
|
layout_1 = QtGui.QHBoxLayout()
|
|
for d in queries:
|
|
label = d["label"]
|
|
inputname = d["inputname"]
|
|
value = d.get("value", "")
|
|
l = QtGui.QLabel(label, self)
|
|
layout_1.addWidget(l)
|
|
self.inputs[inputname] = QtGui.QLineEdit(value, self)
|
|
layout_1.addWidget(self.inputs[inputname])
|
|
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_ok = QtGui.QHBoxLayout()
|
|
layout_ok.addWidget(self.cancel)
|
|
layout_ok.addWidget(self.ok)
|
|
|
|
layout_0 = QtGui.QVBoxLayout()
|
|
layout_0.addLayout(layout_1)
|
|
layout_0.addLayout(layout_ok)
|
|
|
|
self.setLayout(layout_0)
|
|
def getText(self):
|
|
r = self.exec_()
|
|
if r == QtGui.QDialog.Accepted:
|
|
retval = {}
|
|
for (name, widget) in self.inputs.iteritems():
|
|
retval[name] = unicode(widget.text())
|
|
return retval
|
|
else:
|
|
return None
|