from PyQt5 import QtCore, QtGui, QtWidgets 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 CaseInsensitiveDict(dict): def __setitem__(self, key, value): super(CaseInsensitiveDict, self).__setitem__(key.lower(), value) def __getitem__(self, key): return super(CaseInsensitiveDict, self).__getitem__(key.lower()) def __contains__(self, key): return super(CaseInsensitiveDict, self).__contains__(key.lower()) def has_key(self, key): return key.lower() in super(CaseInsensitiveDict, self) def __delitem__(self, key): super(CaseInsensitiveDict, self).__delitem__(key.lower()) class PesterList(list): def __init__(self, l): self.extend(l) class PesterIcon(QtGui.QIcon): def __init__(self, *x): super(PesterIcon, self).__init__(x[0]) if type(x[0]) in [str, str]: 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(QtWidgets.QListWidget): def contextMenuEvent(self, event): #fuckin Qt <--- I feel that 5: self.moveupdate = 0 self.update() def mousePressEvent(self, event): if event.button() == 1: self.moving = event.globalPos() - self.pos() def mouseReleaseEvent(self, event): if event.button() == 1: self.update() self.moving = None class NoneSound(object): def __init__(self, *args, **kwargs): pass def play(self): pass def setVolume(self, v): pass class WMButton(QtWidgets.QPushButton): def __init__(self, icon, parent=None): super(WMButton, self).__init__(icon, "", parent) self.setIconSize(icon.realsize()) self.resize(icon.realsize()) self.setFlat(True) self.setStyleSheet("QPushButton { padding: 0px; }") self.setAutoDefault(False)