miniupnpd 1.9 (20160113)
[tomato.git] / release / src / router / transmission / qt / hig.cc
blob132882a6d45a7bb73a6b7e82658b17a4af36e203
1 /*
2 * This file Copyright (C) 2009-2014 Mnemosyne LLC
4 * It may be used under the GNU Public License v2 or v3 licenses,
5 * or any future license endorsed by Mnemosyne LLC.
7 * $Id: hig.cc 14225 2014-01-19 01:09:44Z jordan $
8 */
10 #include <iostream>
12 #include <QCheckBox>
13 #include <QGridLayout>
14 #include <QHBoxLayout>
15 #include <QLabel>
17 #include "hig.h"
20 HIG :: HIG (QWidget * parent):
21 QWidget (parent),
22 myRow (0),
23 myHasTall (false),
24 myGrid (new QGridLayout (this))
26 myGrid->setContentsMargins (PAD_BIG, PAD_BIG, PAD_BIG, PAD_BIG);
27 myGrid->setHorizontalSpacing (PAD_BIG);
28 myGrid->setVerticalSpacing (PAD);
29 myGrid->setColumnStretch (1, 1);
32 HIG :: ~HIG ()
34 delete myGrid;
37 /***
38 ****
39 ***/
41 void
42 HIG :: addSectionDivider ()
44 QWidget * w = new QWidget (this);
45 myGrid->addWidget (w, myRow, 0, 1, 2);
46 ++myRow;
49 void
50 HIG :: addSectionTitle (const QString& title)
52 QLabel * label = new QLabel (this);
53 label->setText (title);
54 label->setStyleSheet ("font: bold");
55 label->setAlignment (Qt::AlignLeft|Qt::AlignVCenter);
56 addSectionTitle (label);
59 void
60 HIG :: addSectionTitle (QWidget * w)
62 myGrid->addWidget (w, myRow, 0, 1, 2, Qt::AlignLeft|Qt::AlignVCenter);
63 ++myRow;
66 void
67 HIG :: addSectionTitle (QLayout * l)
69 myGrid->addLayout (l, myRow, 0, 1, 2, Qt::AlignLeft|Qt::AlignVCenter);
70 ++myRow;
74 QLayout *
75 HIG :: addRow (QWidget * w)
77 QHBoxLayout * h = new QHBoxLayout ();
78 h->addSpacing (18);
79 h->addWidget (w);
81 QLabel * l;
82 if ((l = qobject_cast<QLabel*>(w)))
83 l->setAlignment (Qt::AlignLeft);
85 return h;
88 void
89 HIG :: addWideControl (QLayout * l)
91 QHBoxLayout * h = new QHBoxLayout ();
92 h->addSpacing (18);
93 h->addLayout (l);
94 myGrid->addLayout (h, myRow, 0, 1, 2, Qt::AlignLeft|Qt::AlignVCenter);
95 ++myRow;
98 void
99 HIG :: addWideControl (QWidget * w)
101 QHBoxLayout * h = new QHBoxLayout ();
102 h->addSpacing (18);
103 h->addWidget (w);
104 myGrid->addLayout (h, myRow, 0, 1, 2, Qt::AlignLeft|Qt::AlignVCenter);
105 ++myRow;
108 QCheckBox*
109 HIG :: addWideCheckBox (const QString& text, bool isChecked)
111 QCheckBox * check = new QCheckBox (text, this);
112 check->setChecked (isChecked);
113 addWideControl (check);
114 return check;
117 void
118 HIG :: addLabel (QWidget * w)
120 QHBoxLayout * h = new QHBoxLayout ();
121 h->addSpacing (18);
122 h->addWidget (w);
123 myGrid->addLayout (h, myRow, 0, 1, 1, Qt::AlignLeft|Qt::AlignVCenter);
126 QLabel*
127 HIG :: addLabel (const QString& text)
129 QLabel * label = new QLabel (text, this);
130 addLabel (label);
131 return label;
134 void
135 HIG :: addTallLabel (QWidget * w)
137 QHBoxLayout * h = new QHBoxLayout ();
138 h->addSpacing (18);
139 h->addWidget (w);
140 myGrid->addLayout (h, myRow, 0, 1, 1, Qt::AlignLeft|Qt::AlignTop);
143 QLabel*
144 HIG :: addTallLabel (const QString& text)
146 QLabel * label = new QLabel (text, this);
147 addTallLabel (label);
148 return label;
151 void
152 HIG :: addControl (QWidget * w)
154 myGrid->addWidget (w, myRow, 1, 1, 1);
157 void
158 HIG :: addControl (QLayout * l)
160 myGrid->addLayout (l, myRow, 1, 1, 1);
163 QLabel *
164 HIG :: addRow (const QString& text, QWidget * control, QWidget * buddy)
166 QLabel * label = addLabel (text);
167 addControl (control);
168 label->setBuddy (buddy ? buddy : control);
169 ++myRow;
170 return label;
173 QLabel *
174 HIG :: addTallRow (const QString& text, QWidget * control, QWidget * buddy)
176 QLabel* label = addTallLabel (text);
177 label->setBuddy (buddy ? buddy : control);
178 addControl (control);
179 myHasTall = true;
180 myGrid->setRowStretch (myRow, 1);
181 ++myRow;
182 return label;
185 QLabel *
186 HIG :: addRow (const QString& text, QLayout * control, QWidget * buddy)
188 QLabel * label = addLabel (text);
189 addControl (control);
190 if (buddy != 0)
191 label->setBuddy (buddy);
192 ++myRow;
193 return label;
196 void
197 HIG :: addRow (QWidget * label, QWidget * control, QWidget * buddy)
199 addLabel (label);
201 if (control)
203 addControl (control);
205 QLabel * l = qobject_cast<QLabel*> (label);
206 if (l != 0)
207 l->setBuddy (buddy ? buddy : control);
210 ++myRow;
213 void
214 HIG :: addRow (QWidget * label, QLayout * control, QWidget * buddy)
216 addLabel (label);
218 if (control)
220 addControl (control);
222 QLabel * l = qobject_cast<QLabel*> (label);
223 if (l != 0 && buddy != 0)
224 l->setBuddy (buddy);
227 ++myRow;
230 void
231 HIG :: finish ()
233 if (!myHasTall)
235 QWidget * w = new QWidget (this);
236 myGrid->addWidget (w, myRow, 0, 1, 2);
237 myGrid->setRowStretch (myRow, 100);
238 ++myRow;