summaryrefslogtreecommitdiff
path: root/portato/gui/qt/uncheckbox.py
blob: d87fb068906fa53c4057700c04fc6ac40b7dc026 (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
# -*- coding: utf-8 -*-
#
# File: portato/gui/qt/uncheckbox.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
# Copyright (C) 2007 René 'Necoro' Neumann
# This is free software.  You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
#
# Written by René 'Necoro' Neumann <necoro@necoro.net>

from PyQt4.QtGui import QCheckBox
from PyQt4.QtCore import Qt

class UncheckBox (QCheckBox):
	"""A checkbox which looks like a normal one, but cannot be checked by the user.
	Focusing and hovering are disabled too."""

	def __init__ (self, *args):
		QCheckBox.__init__(self, *args)
		self.setFocusPolicy(Qt.NoFocus)

	def mousePressEvent (self, event):
		if event.button() == Qt.LeftButton: # ignore leftbutton clicks
			pass
		else:
			QCheckBox.mousePressEvent(self, event)

	def keyPressEvent (self, event):
		if event.key() == Qt.Key_Space: # ignore space
			pass
		else:
			QCheckBox.keyPressEvent(self, event)

	def enterEvent (self, event):
		# disable hovering - this is set to True somewhere I cannot fix ;)
		self.setAttribute(Qt.WA_Hover, False)