src/Widgets.cc

changeset 690
9e9c52ca955e
parent 648
ed6170728ae4
equal deleted inserted replaced
689:397870c6ed38 690:9e9c52ca955e
27 #include <map> 27 #include <map>
28 28
29 #include "Widgets.h" 29 #include "Widgets.h"
30 30
31 // ============================================================================= 31 // =============================================================================
32 // ----------------------------------------------------------------------------- 32 //
33 RadioGroup::RadioGroup (const QString& title, QWidget* parent) : QGroupBox (title, parent) 33 RadioGroup::RadioGroup (const QString& title, QWidget* parent) : QGroupBox (title, parent)
34 { 34 {
35 init (Qt::Vertical); 35 init (Qt::Vertical);
36 } 36 }
37 37
38 // ============================================================================= 38 // =============================================================================
39 // ----------------------------------------------------------------------------- 39 //
40 QBoxLayout::Direction makeDirection (Qt::Orientation orient, bool invert = false) 40 QBoxLayout::Direction makeDirection (Qt::Orientation orient, bool invert = false)
41 { 41 {
42 return (orient == (invert ? Qt::Vertical : Qt::Horizontal)) ? QBoxLayout::LeftToRight : QBoxLayout::TopToBottom; 42 return (orient == (invert ? Qt::Vertical : Qt::Horizontal)) ? QBoxLayout::LeftToRight : QBoxLayout::TopToBottom;
43 } 43 }
44 44
45 // ============================================================================= 45 // =============================================================================
46 // ----------------------------------------------------------------------------- 46 //
47 bool RadioGroup::isChecked (int n) const 47 bool RadioGroup::isChecked (int n) const
48 { 48 {
49 return m_buttonGroup->checkedId() == n; 49 return m_buttonGroup->checkedId() == n;
50 } 50 }
51 51
52 // ============================================================================= 52 // =============================================================================
53 // ----------------------------------------------------------------------------- 53 //
54 void RadioGroup::init (Qt::Orientation orient) 54 void RadioGroup::init (Qt::Orientation orient)
55 { 55 {
56 m_vert = orient == Qt::Vertical; 56 m_vert = orient == Qt::Vertical;
57 57
58 m_buttonGroup = new QButtonGroup; 58 m_buttonGroup = new QButtonGroup;
68 connect (m_buttonGroup, SIGNAL (buttonPressed (int)), this, SLOT (slot_buttonPressed (int))); 68 connect (m_buttonGroup, SIGNAL (buttonPressed (int)), this, SLOT (slot_buttonPressed (int)));
69 connect (m_buttonGroup, SIGNAL (buttonReleased (int)), this, SLOT (slot_buttonReleased (int))); 69 connect (m_buttonGroup, SIGNAL (buttonReleased (int)), this, SLOT (slot_buttonReleased (int)));
70 } 70 }
71 71
72 // ============================================================================= 72 // =============================================================================
73 // ----------------------------------------------------------------------------- 73 //
74 RadioGroup::RadioGroup (const QString& title, initlist<char const*> entries, int const defaultId, const Qt::Orientation orient, QWidget* parent) : 74 RadioGroup::RadioGroup (const QString& title, QList<char const*> entries, int const defaultId, const Qt::Orientation orient, QWidget* parent) :
75 QGroupBox (title, parent), 75 QGroupBox (title, parent),
76 m_defId (defaultId) 76 m_defId (defaultId)
77 { 77 {
78 init (orient); 78 init (orient);
79 m_oldId = m_defId; 79 m_oldId = m_defId;
81 for (const char* entry : entries) 81 for (const char* entry : entries)
82 addButton (entry); 82 addButton (entry);
83 } 83 }
84 84
85 // ============================================================================= 85 // =============================================================================
86 // ----------------------------------------------------------------------------- 86 //
87 void RadioGroup::rowBreak() 87 void RadioGroup::rowBreak()
88 { 88 {
89 QBoxLayout* newLayout = new QBoxLayout (m_vert ? QBoxLayout::TopToBottom : QBoxLayout::LeftToRight); 89 QBoxLayout* newLayout = new QBoxLayout (m_vert ? QBoxLayout::TopToBottom : QBoxLayout::LeftToRight);
90 m_currentLayout = newLayout; 90 m_currentLayout = newLayout;
91 m_layouts << newLayout; 91 m_layouts << newLayout;
92 92
93 m_coreLayout->addLayout (newLayout); 93 m_coreLayout->addLayout (newLayout);
94 } 94 }
95 95
96 // ============================================================================= 96 // =============================================================================
97 // ----------------------------------------------------------------------------- 97 //
98 void RadioGroup::addButton (const char* entry) 98 void RadioGroup::addButton (const char* entry)
99 { 99 {
100 QRadioButton* button = new QRadioButton (entry); 100 QRadioButton* button = new QRadioButton (entry);
101 addButton (button); 101 addButton (button);
102 } 102 }
103 103
104 // ============================================================================= 104 // =============================================================================
105 // ----------------------------------------------------------------------------- 105 //
106 void RadioGroup::addButton (QRadioButton* button) 106 void RadioGroup::addButton (QRadioButton* button)
107 { 107 {
108 bool const selectThis = (m_curId == m_defId); 108 bool const selectThis = (m_curId == m_defId);
109 109
110 m_objects << button; 110 m_objects << button;
114 if (selectThis) 114 if (selectThis)
115 button->setChecked (true); 115 button->setChecked (true);
116 } 116 }
117 117
118 // ============================================================================= 118 // =============================================================================
119 // ----------------------------------------------------------------------------- 119 //
120 RadioGroup& RadioGroup::operator<< (QRadioButton* button) 120 RadioGroup& RadioGroup::operator<< (QRadioButton* button)
121 { 121 {
122 addButton (button); 122 addButton (button);
123 return *this; 123 return *this;
124 } 124 }
125 125
126 // ============================================================================= 126 // =============================================================================
127 // ----------------------------------------------------------------------------- 127 //
128 RadioGroup& RadioGroup::operator<< (const char* entry) 128 RadioGroup& RadioGroup::operator<< (const char* entry)
129 { 129 {
130 addButton (entry); 130 addButton (entry);
131 return *this; 131 return *this;
132 } 132 }
133 133
134 // ============================================================================= 134 // =============================================================================
135 // ----------------------------------------------------------------------------- 135 //
136 void RadioGroup::setCurrentRow (int row) 136 void RadioGroup::setCurrentRow (int row)
137 { 137 {
138 m_currentLayout = m_layouts[row]; 138 m_currentLayout = m_layouts[row];
139 } 139 }
140 140
141 // ============================================================================= 141 // =============================================================================
142 // ----------------------------------------------------------------------------- 142 //
143 int RadioGroup::value() const 143 int RadioGroup::value() const
144 { 144 {
145 return m_buttonGroup->checkedId(); 145 return m_buttonGroup->checkedId();
146 } 146 }
147 147
148 // ============================================================================= 148 // =============================================================================
149 // ----------------------------------------------------------------------------- 149 //
150 void RadioGroup::setValue (int val) 150 void RadioGroup::setValue (int val)
151 { 151 {
152 m_buttonGroup->button (val)->setChecked (true); 152 m_buttonGroup->button (val)->setChecked (true);
153 } 153 }
154 154
155 // ============================================================================= 155 // =============================================================================
156 // ----------------------------------------------------------------------------- 156 //
157 QRadioButton* RadioGroup::operator[] (int n) const 157 QRadioButton* RadioGroup::operator[] (int n) const
158 { 158 {
159 return m_objects[n]; 159 return m_objects[n];
160 } 160 }
161 161
162 // ============================================================================= 162 // =============================================================================
163 // ----------------------------------------------------------------------------- 163 //
164 void RadioGroup::slot_buttonPressed (int btn) 164 void RadioGroup::slot_buttonPressed (int btn)
165 { 165 {
166 emit buttonPressed (btn); 166 emit buttonPressed (btn);
167 167
168 m_oldId = m_buttonGroup->checkedId(); 168 m_oldId = m_buttonGroup->checkedId();
169 } 169 }
170 170
171 // ============================================================================= 171 // =============================================================================
172 // ----------------------------------------------------------------------------- 172 //
173 void RadioGroup::slot_buttonReleased (int btn) 173 void RadioGroup::slot_buttonReleased (int btn)
174 { 174 {
175 emit buttonReleased (btn); 175 emit buttonReleased (btn);
176 int newid = m_buttonGroup->checkedId(); 176 int newid = m_buttonGroup->checkedId();
177 177
178 if (m_oldId != newid) 178 if (m_oldId != newid)
179 emit valueChanged (newid); 179 emit valueChanged (newid);
180 } 180 }
181 181
182 // ============================================================================= 182 // =============================================================================
183 // ----------------------------------------------------------------------------- 183 //
184 RadioGroup::Iterator RadioGroup::begin() 184 RadioGroup::Iterator RadioGroup::begin()
185 { 185 {
186 return m_objects.begin(); 186 return m_objects.begin();
187 } 187 }
188 188
189 // ============================================================================= 189 // =============================================================================
190 // ----------------------------------------------------------------------------- 190 //
191 RadioGroup::Iterator RadioGroup::end() 191 RadioGroup::Iterator RadioGroup::end()
192 { 192 {
193 return m_objects.end(); 193 return m_objects.end();
194 } 194 }

mercurial