summaryrefslogtreecommitdiff
path: root/misc.py
blob: c5b0c2ed7b29c3a0352d0ac517cba41489beee6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from PyQt4 import QtCore, QtGui

appIcon=QtGui.QIcon('gfx/icon.png')

eventLoop=QtCore.QEventLoop()
def doEvents():
	"""Make some time for necessary events."""
	eventLoop.processEvents(QtCore.QEventLoop.AllEvents)

def sec2min(secs):
	"""Converts seconds to min:sec."""
	min=int(secs/60)
	sec=secs%60
	if sec<10:sec='0'+str(sec)
	return str(min)+':'+str(sec)

def unique(seq):
	"""Retrieve list of unique elements."""
	seen = []
	return t(c for c in seq if not (c in seen or seen.append(c)))

class Button(QtGui.QPushButton):
	iconSize=32
	"""A simple Button class which calls $onClick when clicked."""
	def __init__(self, caption, onClick=None, iconPath=None, iconOnly=False, parent=None):
		QtGui.QPushButton.__init__(self, parent)

		if onClick:
			self.connect(self, QtCore.SIGNAL('clicked(bool)'), onClick)
		if iconPath:
			self.changeIcon(iconPath)

		if not(iconPath and iconOnly):
			QtGui.QPushButton.setText(self, caption)

		self.setToolTip(caption)
	
	def setText(self, caption):
		self.setToolTip(caption)
		if self.icon()==None:
			self.setText(caption)
	
	def changeIcon(self, iconPath):
		icon=QtGui.QIcon()
		icon.addFile(iconPath, QtCore.QSize(self.iconSize, self.iconSize))
		self.setIcon(icon)