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 $
13 #include <QGridLayout>
14 #include <QHBoxLayout>
20 HIG :: HIG (QWidget
* parent
):
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);
42 HIG :: addSectionDivider ()
44 QWidget
* w
= new QWidget (this);
45 myGrid
->addWidget (w
, myRow
, 0, 1, 2);
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
);
60 HIG :: addSectionTitle (QWidget
* w
)
62 myGrid
->addWidget (w
, myRow
, 0, 1, 2, Qt::AlignLeft
|Qt::AlignVCenter
);
67 HIG :: addSectionTitle (QLayout
* l
)
69 myGrid
->addLayout (l
, myRow
, 0, 1, 2, Qt::AlignLeft
|Qt::AlignVCenter
);
75 HIG :: addRow (QWidget
* w
)
77 QHBoxLayout
* h
= new QHBoxLayout ();
82 if ((l
= qobject_cast
<QLabel
*>(w
)))
83 l
->setAlignment (Qt::AlignLeft
);
89 HIG :: addWideControl (QLayout
* l
)
91 QHBoxLayout
* h
= new QHBoxLayout ();
94 myGrid
->addLayout (h
, myRow
, 0, 1, 2, Qt::AlignLeft
|Qt::AlignVCenter
);
99 HIG :: addWideControl (QWidget
* w
)
101 QHBoxLayout
* h
= new QHBoxLayout ();
104 myGrid
->addLayout (h
, myRow
, 0, 1, 2, Qt::AlignLeft
|Qt::AlignVCenter
);
109 HIG :: addWideCheckBox (const QString
& text
, bool isChecked
)
111 QCheckBox
* check
= new QCheckBox (text
, this);
112 check
->setChecked (isChecked
);
113 addWideControl (check
);
118 HIG :: addLabel (QWidget
* w
)
120 QHBoxLayout
* h
= new QHBoxLayout ();
123 myGrid
->addLayout (h
, myRow
, 0, 1, 1, Qt::AlignLeft
|Qt::AlignVCenter
);
127 HIG :: addLabel (const QString
& text
)
129 QLabel
* label
= new QLabel (text
, this);
135 HIG :: addTallLabel (QWidget
* w
)
137 QHBoxLayout
* h
= new QHBoxLayout ();
140 myGrid
->addLayout (h
, myRow
, 0, 1, 1, Qt::AlignLeft
|Qt::AlignTop
);
144 HIG :: addTallLabel (const QString
& text
)
146 QLabel
* label
= new QLabel (text
, this);
147 addTallLabel (label
);
152 HIG :: addControl (QWidget
* w
)
154 myGrid
->addWidget (w
, myRow
, 1, 1, 1);
158 HIG :: addControl (QLayout
* l
)
160 myGrid
->addLayout (l
, myRow
, 1, 1, 1);
164 HIG :: addRow (const QString
& text
, QWidget
* control
, QWidget
* buddy
)
166 QLabel
* label
= addLabel (text
);
167 addControl (control
);
168 label
->setBuddy (buddy
? buddy
: control
);
174 HIG :: addTallRow (const QString
& text
, QWidget
* control
, QWidget
* buddy
)
176 QLabel
* label
= addTallLabel (text
);
177 label
->setBuddy (buddy
? buddy
: control
);
178 addControl (control
);
180 myGrid
->setRowStretch (myRow
, 1);
186 HIG :: addRow (const QString
& text
, QLayout
* control
, QWidget
* buddy
)
188 QLabel
* label
= addLabel (text
);
189 addControl (control
);
191 label
->setBuddy (buddy
);
197 HIG :: addRow (QWidget
* label
, QWidget
* control
, QWidget
* buddy
)
203 addControl (control
);
205 QLabel
* l
= qobject_cast
<QLabel
*> (label
);
207 l
->setBuddy (buddy
? buddy
: control
);
214 HIG :: addRow (QWidget
* label
, QLayout
* control
, QWidget
* buddy
)
220 addControl (control
);
222 QLabel
* l
= qobject_cast
<QLabel
*> (label
);
223 if (l
!= 0 && buddy
!= 0)
235 QWidget
* w
= new QWidget (this);
236 myGrid
->addWidget (w
, myRow
, 0, 1, 2);
237 myGrid
->setRowStretch (myRow
, 100);