summaryrefslogtreecommitdiff
path: root/cad/src/PM/PM_RadioButton.py
blob: d22ce98b5a1ac486d3671a519f9361e6a1c85555 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Copyright 2006-2007 Nanorex, Inc.  See LICENSE file for details.
"""
PM_RadioButton.py

@author: Mark
@version: $Id$
@copyright: 2006-2007 Nanorex, Inc.  All rights reserved.

History:

mark 2007-07-22: Split PropMgrRadioButton out of PropMgrBaseClass.py into this
file and renamed it PM_RadioButton.
"""

from PyQt4.Qt import QRadioButton
from PyQt4.Qt import QWidget

class PM_RadioButton( QRadioButton ):
    """
    The PM_RadioButton widget provides a radio button for a
    Property Manager group box.
    """

    defaultIsChecked = False
    setAsDefault = False

    labelWidget  = None  # Needed for PM_GroupBox.addPmWidget().
    label        = ""    # Needed for PM_GroupBox.addPmWidget().
    labelColumn  = 0     # Needed for PM_GroupBox.addPmWidget().
    spanWidth    = False # Needed for PM_GroupBox.addPmWidget().

    def __init__(self,
                 parentWidget,
                 text         = '',
                 isChecked    = False,
                 setAsDefault = False
                 ):
        """
        Appends a QRadioButton widget to <parentWidget>, a property manager
        group box.

        Appends a QCheckBox (Qt) widget to the bottom of I{parentWidget},
        a Property Manager group box.

        @param parentWidget: The parent group box containing this widget.
        @type  parentWidget: PM_GroupBox

        @param text: The text that appears to the right of the radio button.
        @type  text: str

        @param isChecked: Set's the radio button's check state. The default is
                          True.
        @type  isChecked: bool

        @param setAsDefault: If True, will restore I{isChecked} when the
                             "Restore Defaults" button is clicked.
        @type  setAsDefault: bool

        @see: U{B{QRadioButton}<http://doc.trolltech.com/4/qradiobutton.html>}

        """

        QRadioButton.__init__(self)

        self.parentWidget = parentWidget
        self.setAsDefault = setAsDefault

        self.setText(text)

        self.setCheckable(True)
        self.setChecked(isChecked)

        self.defaultIsChecked = isChecked
        self.setAsDefault     = setAsDefault

        parentWidget.addPmWidget(self)

    def restoreDefault(self):
        """
        Restores the default check state.
        """
        if self.setAsDefault:
            self.setChecked(self.defaultIsChecked)

# End of PM_RadioButton ############################