Skip to content

Commit cce957c

Browse files
author
g_j_m
committedJan 14, 2006
Migrate from Qt3 widgets to Qt4 widgets.
Had to implement some UI stuff manually as Qt4 does less for the programmer that Qt3 (for button groups). git-svn-id: http://svn.osgeo.org/qgis/trunk@4683 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 51c488b commit cce957c

File tree

3 files changed

+177
-284
lines changed

3 files changed

+177
-284
lines changed
 

‎src/gui/qgsserversourceselect.cpp

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
#include "qgsproviderregistry.h"
2424
#include "../providers/wms/qgswmsprovider.h"
2525

26-
#include <Q3ListView>
2726
#include <QMessageBox>
2827
#include <QPicture>
2928
#include <QSettings>
29+
#include <QButtonGroup>
3030

3131
#include <iostream>
3232

@@ -37,6 +37,23 @@ QgsServerSourceSelect::QgsServerSourceSelect(QgisApp * app, QWidget * parent, co
3737
setupUi(this);
3838
connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
3939

40+
// Qt Designer 4.1 doesn't let us use a QButtonGroup, so it has to
41+
// be done manually... Unless I'm missing something, it's a whole
42+
// lot harder to do groups of radio buttons in Qt4 than Qt3.
43+
m_imageFormatBtns = new QButtonGroup;
44+
// Populate it with a couple of buttons
45+
QRadioButton* btn1 = new QRadioButton(tr("PNG"));
46+
QRadioButton* btn2 = new QRadioButton(tr("JPEG"));
47+
m_imageFormatBtns->addButton(btn1, 1);
48+
m_imageFormatBtns->addButton(btn2, 2);
49+
btn1->setChecked(true);
50+
// And lay then out horizontally
51+
QHBoxLayout *hbox = new QHBoxLayout;
52+
hbox->addWidget(btn1);
53+
hbox->addWidget(btn2);
54+
hbox->addStretch();
55+
btnGrpImageEncoding->setLayout(hbox);
56+
4057
btnAdd->setEnabled(false);
4158
populateConnectionList();
4259
// connect the double-click signal to the addSingleLayer slot in the parent
@@ -170,9 +187,12 @@ void QgsServerSourceSelect::populateImageEncodingGroup(QgsWmsProvider* wmsProvid
170187
//
171188
// Remove old group of buttons
172189
//
173-
for (int i = 1; i <= btnGrpImageEncoding->count(); i++)
190+
QList<QAbstractButton*> btns = m_imageFormatBtns->buttons();
191+
QList<QAbstractButton*>::const_iterator iter = btns.begin();
192+
for (; iter != btns.end(); ++iter)
174193
{
175-
btnGrpImageEncoding->remove( btnGrpImageEncoding->find(i) );
194+
m_imageFormatBtns->removeButton(*iter);
195+
// Should the buttons be deleted too?
176196
}
177197

178198
m_MimeTypeForButtonId.clear();
@@ -203,7 +223,8 @@ void QgsServerSourceSelect::populateImageEncodingGroup(QgsWmsProvider* wmsProvid
203223
std::cout << "QgsServerSourceSelect::populateImageEncodingGroup: got image format " << (*format).toLocal8Bit().data() << "." << std::endl;
204224
#endif
205225

206-
QRadioButton* radioButton = new QRadioButton(btnGrpImageEncoding);
226+
QRadioButton* radioButton = new QRadioButton;
227+
m_imageFormatBtns->addButton(radioButton, i);
207228

208229
if ((*format) == "image/png")
209230
{
@@ -214,9 +235,7 @@ void QgsServerSourceSelect::populateImageEncodingGroup(QgsWmsProvider* wmsProvid
214235
radioButton->setText(tr("JPEG"));
215236
}
216237

217-
/* Qt4 in Qt3 compat mode seems to clobber custom layout variable names */
218-
// layoutImageEncoding->addWidget(radioButton);
219-
hboxLayout3->addWidget(radioButton);
238+
m_imageFormatBtns->addButton(radioButton);
220239

221240
m_MimeTypeForButtonId[i] = (*format);
222241

@@ -381,16 +400,14 @@ QString QgsServerSourceSelect::selectedImageEncoding()
381400
{
382401
// TODO: Match this hard coded list to the list of formats Qt reports it can actually handle.
383402

384-
if (btnGrpImageEncoding->selected() == (QRadioButton *) radioButtonPng)
385-
{
403+
QAbstractButton* checked = m_imageFormatBtns->checkedButton();
404+
405+
if (checked->text() == tr("PNG"))
386406
return "image/png";
387-
}
388-
else if (btnGrpImageEncoding->selected() == (QRadioButton *) radioButtonJpeg)
389-
{
407+
else if (checked->text() == tr("JPEG"))
390408
return "image/jpeg";
391-
}
409+
else // Worst-case scenario - fall back to PNG
410+
return "image/png";
392411

393-
// Worst-case scenario - fall back to PNG
394-
return "image/png";
395412
}
396413

‎src/gui/qgsserversourceselect.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919
#ifndef QGSSERVERSOURCESELECT_H
2020
#define QGSSERVERSOURCESELECT_H
2121
#include "ui_qgsserversourceselectbase.h"
22-
#include <QDialog>
2322

2423
#include <vector>
2524
#include <map>
2625

2726
class QgisApp;
2827
class QgsWmsProvider;
29-
28+
class QButtonGroup;
3029
/*!
3130
* \brief Dialog to create connections and add layers from WMS, etc.
3231
*
@@ -102,6 +101,9 @@ public slots:
102101

103102
//! Pointer to the qgis application mainwindow
104103
QgisApp *qgisApp;
104+
105+
//! The widget that controls the image format radio buttons
106+
QButtonGroup* m_imageFormatBtns;
105107
};
106108

107109

‎src/ui/qgsserversourceselectbase.ui

Lines changed: 141 additions & 267 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<rect>
99
<x>0</x>
1010
<y>0</y>
11-
<width>591</width>
12-
<height>591</height>
11+
<width>577</width>
12+
<height>552</height>
1313
</rect>
1414
</property>
1515
<property name="windowTitle" >
@@ -21,182 +21,98 @@
2121
<property name="sizeGripEnabled" >
2222
<bool>true</bool>
2323
</property>
24-
<layout class="QVBoxLayout" >
24+
<layout class="QGridLayout" >
2525
<property name="margin" >
26-
<number>10</number>
26+
<number>9</number>
2727
</property>
2828
<property name="spacing" >
2929
<number>6</number>
3030
</property>
31-
<item>
32-
<widget class="Q3GroupBox" name="GroupBox1" >
33-
<property name="sizePolicy" >
34-
<sizepolicy>
35-
<hsizetype>5</hsizetype>
36-
<vsizetype>0</vsizetype>
37-
<horstretch>0</horstretch>
38-
<verstretch>0</verstretch>
39-
</sizepolicy>
40-
</property>
31+
<item row="0" column="0" colspan="4" >
32+
<widget class="QGroupBox" name="GroupBox1" >
4133
<property name="title" >
4234
<string>Server Connections</string>
4335
</property>
44-
<layout class="QHBoxLayout" >
36+
<layout class="QGridLayout" >
4537
<property name="margin" >
46-
<number>11</number>
38+
<number>9</number>
4739
</property>
4840
<property name="spacing" >
4941
<number>6</number>
5042
</property>
51-
<item>
52-
<layout class="QVBoxLayout" >
53-
<property name="margin" >
54-
<number>0</number>
43+
<item row="1" column="1" >
44+
<widget class="QPushButton" name="btnNew" >
45+
<property name="text" >
46+
<string>&amp;New</string>
47+
</property>
48+
</widget>
49+
</item>
50+
<item row="1" column="3" >
51+
<widget class="QPushButton" name="btnDelete" >
52+
<property name="text" >
53+
<string>Delete</string>
54+
</property>
55+
</widget>
56+
</item>
57+
<item row="1" column="2" >
58+
<widget class="QPushButton" name="btnEdit" >
59+
<property name="text" >
60+
<string>Edit</string>
61+
</property>
62+
</widget>
63+
</item>
64+
<item row="1" column="4" >
65+
<spacer>
66+
<property name="orientation" >
67+
<enum>Qt::Horizontal</enum>
68+
</property>
69+
<property name="sizeType" >
70+
<enum>QSizePolicy::Expanding</enum>
71+
</property>
72+
<property name="sizeHint" >
73+
<size>
74+
<width>171</width>
75+
<height>30</height>
76+
</size>
5577
</property>
56-
<property name="spacing" >
57-
<number>6</number>
78+
</spacer>
79+
</item>
80+
<item row="1" column="0" >
81+
<widget class="QPushButton" name="btnConnect" >
82+
<property name="text" >
83+
<string>C&amp;onnect</string>
5884
</property>
59-
<item>
60-
<widget class="QComboBox" name="cmbConnections" />
61-
</item>
62-
<item>
63-
<layout class="QHBoxLayout" >
64-
<property name="margin" >
65-
<number>0</number>
66-
</property>
67-
<property name="spacing" >
68-
<number>6</number>
69-
</property>
70-
<item>
71-
<widget class="QPushButton" name="btnConnect" >
72-
<property name="text" >
73-
<string>C&amp;onnect</string>
74-
</property>
75-
</widget>
76-
</item>
77-
<item>
78-
<widget class="QPushButton" name="btnNew" >
79-
<property name="text" >
80-
<string>&amp;New</string>
81-
</property>
82-
</widget>
83-
</item>
84-
<item>
85-
<widget class="QPushButton" name="btnEdit" >
86-
<property name="text" >
87-
<string>Edit</string>
88-
</property>
89-
</widget>
90-
</item>
91-
<item>
92-
<widget class="QPushButton" name="btnDelete" >
93-
<property name="text" >
94-
<string>Delete</string>
95-
</property>
96-
</widget>
97-
</item>
98-
<item>
99-
<spacer>
100-
<property name="orientation" >
101-
<enum>Qt::Horizontal</enum>
102-
</property>
103-
<property name="sizeType" >
104-
<enum>QSizePolicy::Expanding</enum>
105-
</property>
106-
<property name="sizeHint" >
107-
<size>
108-
<width>270</width>
109-
<height>20</height>
110-
</size>
111-
</property>
112-
</spacer>
113-
</item>
114-
</layout>
115-
</item>
116-
</layout>
85+
</widget>
86+
</item>
87+
<item row="0" column="0" colspan="5" >
88+
<widget class="QComboBox" name="cmbConnections" />
11789
</item>
11890
</layout>
11991
</widget>
12092
</item>
121-
<item>
122-
<widget class="Q3ButtonGroup" name="btnGrpImageEncoding" >
93+
<item row="1" column="0" colspan="4" >
94+
<widget class="QGroupBox" name="btnGrpImageEncoding" >
12395
<property name="sizePolicy" >
12496
<sizepolicy>
12597
<hsizetype>5</hsizetype>
126-
<vsizetype>0</vsizetype>
98+
<vsizetype>5</vsizetype>
12799
<horstretch>0</horstretch>
128100
<verstretch>0</verstretch>
129101
</sizepolicy>
130102
</property>
131103
<property name="title" >
132-
<string>Image Encoding</string>
104+
<string>Image encoding</string>
133105
</property>
134-
<layout class="QHBoxLayout" >
135-
<property name="margin" >
136-
<number>10</number>
137-
</property>
138-
<property name="spacing" >
139-
<number>6</number>
140-
</property>
141-
<item>
142-
<layout class="QHBoxLayout" >
143-
<property name="margin" >
144-
<number>0</number>
145-
</property>
146-
<property name="spacing" >
147-
<number>6</number>
148-
</property>
149-
<item>
150-
<widget class="QRadioButton" name="radioButtonPng" >
151-
<property name="text" >
152-
<string>PNG</string>
153-
</property>
154-
</widget>
155-
</item>
156-
<item>
157-
<widget class="QRadioButton" name="radioButtonJpeg" >
158-
<property name="text" >
159-
<string>&amp;JPEG</string>
160-
</property>
161-
</widget>
162-
</item>
163-
<item>
164-
<spacer>
165-
<property name="orientation" >
166-
<enum>Qt::Horizontal</enum>
167-
</property>
168-
<property name="sizeType" >
169-
<enum>QSizePolicy::Expanding</enum>
170-
</property>
171-
<property name="sizeHint" >
172-
<size>
173-
<width>499</width>
174-
<height>21</height>
175-
</size>
176-
</property>
177-
</spacer>
178-
</item>
179-
</layout>
180-
</item>
181-
</layout>
182106
</widget>
183107
</item>
184-
<item>
185-
<widget class="Q3GroupBox" name="groupBox2" >
186-
<property name="sizePolicy" >
187-
<sizepolicy>
188-
<hsizetype>7</hsizetype>
189-
<vsizetype>7</vsizetype>
190-
<horstretch>0</horstretch>
191-
<verstretch>0</verstretch>
192-
</sizepolicy>
193-
</property>
108+
<item row="2" column="0" colspan="4" >
109+
<widget class="QGroupBox" name="groupBox2" >
194110
<property name="title" >
195-
<string>Layers:</string>
111+
<string>Layers</string>
196112
</property>
197-
<layout class="QHBoxLayout" >
113+
<layout class="QVBoxLayout" >
198114
<property name="margin" >
199-
<number>10</number>
115+
<number>9</number>
200116
</property>
201117
<property name="spacing" >
202118
<number>6</number>
@@ -248,159 +164,117 @@
248164
</layout>
249165
</widget>
250166
</item>
251-
<item>
252-
<widget class="Q3ButtonGroup" name="btnGrpSrs" >
253-
<property name="sizePolicy" >
254-
<sizepolicy>
255-
<hsizetype>5</hsizetype>
256-
<vsizetype>0</vsizetype>
257-
<horstretch>0</horstretch>
258-
<verstretch>0</verstretch>
259-
</sizepolicy>
260-
</property>
167+
<item row="3" column="0" colspan="4" >
168+
<widget class="QGroupBox" name="btnGrpSrs" >
261169
<property name="title" >
262170
<string>Spatial Reference System</string>
263171
</property>
264172
<layout class="QHBoxLayout" >
265173
<property name="margin" >
266-
<number>10</number>
174+
<number>9</number>
267175
</property>
268176
<property name="spacing" >
269177
<number>6</number>
270178
</property>
271179
<item>
272-
<layout class="QHBoxLayout" >
273-
<property name="margin" >
274-
<number>0</number>
180+
<widget class="QRadioButton" name="radioButtonEspg4326" >
181+
<property name="text" >
182+
<string>ESPG:4326</string>
183+
</property>
184+
</widget>
185+
</item>
186+
<item>
187+
<spacer>
188+
<property name="orientation" >
189+
<enum>Qt::Horizontal</enum>
190+
</property>
191+
<property name="sizeType" >
192+
<enum>QSizePolicy::Expanding</enum>
275193
</property>
276-
<property name="spacing" >
277-
<number>6</number>
194+
<property name="sizeHint" >
195+
<size>
196+
<width>441</width>
197+
<height>23</height>
198+
</size>
278199
</property>
279-
<item>
280-
<widget class="QRadioButton" name="radioButtonEspg4326" >
281-
<property name="text" >
282-
<string>ESPG:4326</string>
283-
</property>
284-
</widget>
285-
</item>
286-
<item>
287-
<spacer>
288-
<property name="orientation" >
289-
<enum>Qt::Horizontal</enum>
290-
</property>
291-
<property name="sizeType" >
292-
<enum>QSizePolicy::Expanding</enum>
293-
</property>
294-
<property name="sizeHint" >
295-
<size>
296-
<width>499</width>
297-
<height>21</height>
298-
</size>
299-
</property>
300-
</spacer>
301-
</item>
302-
</layout>
200+
</spacer>
303201
</item>
304202
</layout>
305203
</widget>
306204
</item>
307-
<item>
308-
<layout class="QHBoxLayout" >
309-
<property name="margin" >
310-
<number>0</number>
205+
<item row="4" column="2" >
206+
<widget class="QPushButton" name="btnAdd" >
207+
<property name="text" >
208+
<string>&amp;Add</string>
209+
</property>
210+
<property name="shortcut" >
211+
<string>Alt+A</string>
212+
</property>
213+
<property name="autoDefault" >
214+
<bool>true</bool>
311215
</property>
312-
<property name="spacing" >
313-
<number>6</number>
216+
<property name="default" >
217+
<bool>true</bool>
314218
</property>
315-
<item>
316-
<widget class="QPushButton" name="btnHelp" >
317-
<property name="enabled" >
318-
<bool>false</bool>
319-
</property>
320-
<property name="text" >
321-
<string>Help</string>
322-
</property>
323-
<property name="shortcut" >
324-
<string>F1</string>
325-
</property>
326-
<property name="autoDefault" >
327-
<bool>true</bool>
328-
</property>
329-
</widget>
330-
</item>
331-
<item>
332-
<spacer>
333-
<property name="orientation" >
334-
<enum>Qt::Horizontal</enum>
335-
</property>
336-
<property name="sizeType" >
337-
<enum>QSizePolicy::Expanding</enum>
338-
</property>
339-
<property name="sizeHint" >
340-
<size>
341-
<width>382</width>
342-
<height>21</height>
343-
</size>
344-
</property>
345-
</spacer>
346-
</item>
347-
<item>
348-
<widget class="QPushButton" name="btnAdd" >
349-
<property name="text" >
350-
<string>&amp;Add</string>
351-
</property>
352-
<property name="shortcut" >
353-
<string>Alt+A</string>
354-
</property>
355-
<property name="autoDefault" >
356-
<bool>true</bool>
357-
</property>
358-
<property name="default" >
359-
<bool>true</bool>
360-
</property>
361-
</widget>
362-
</item>
363-
<item>
364-
<widget class="QPushButton" name="btnCancel" >
365-
<property name="text" >
366-
<string>C&amp;lose</string>
367-
</property>
368-
<property name="shortcut" >
369-
<string>Alt+L</string>
370-
</property>
371-
<property name="autoDefault" >
372-
<bool>true</bool>
373-
</property>
374-
</widget>
375-
</item>
376-
</layout>
219+
</widget>
220+
</item>
221+
<item row="4" column="0" >
222+
<widget class="QPushButton" name="btnHelp" >
223+
<property name="enabled" >
224+
<bool>false</bool>
225+
</property>
226+
<property name="text" >
227+
<string>Help</string>
228+
</property>
229+
<property name="shortcut" >
230+
<string>F1</string>
231+
</property>
232+
<property name="autoDefault" >
233+
<bool>true</bool>
234+
</property>
235+
</widget>
236+
</item>
237+
<item row="4" column="1" >
238+
<spacer>
239+
<property name="orientation" >
240+
<enum>Qt::Horizontal</enum>
241+
</property>
242+
<property name="sizeType" >
243+
<enum>QSizePolicy::Expanding</enum>
244+
</property>
245+
<property name="sizeHint" >
246+
<size>
247+
<width>284</width>
248+
<height>31</height>
249+
</size>
250+
</property>
251+
</spacer>
252+
</item>
253+
<item row="4" column="3" >
254+
<widget class="QPushButton" name="btnCancel" >
255+
<property name="text" >
256+
<string>C&amp;lose</string>
257+
</property>
258+
<property name="shortcut" >
259+
<string>Alt+L</string>
260+
</property>
261+
<property name="autoDefault" >
262+
<bool>true</bool>
263+
</property>
264+
</widget>
377265
</item>
378266
</layout>
379267
</widget>
380268
<layoutdefault spacing="6" margin="11" />
381269
<pixmapfunction></pixmapfunction>
382270
<customwidgets>
383-
<customwidget>
384-
<class>Q3ButtonGroup</class>
385-
<extends></extends>
386-
<header>Qt3Support/Q3ButtonGroup</header>
387-
<container>1</container>
388-
<pixmap></pixmap>
389-
</customwidget>
390271
<customwidget>
391272
<class>Q3ListView</class>
392273
<extends></extends>
393274
<header>q3listview.h</header>
394275
<container>0</container>
395276
<pixmap></pixmap>
396277
</customwidget>
397-
<customwidget>
398-
<class>Q3GroupBox</class>
399-
<extends></extends>
400-
<header>Qt3Support/Q3GroupBox</header>
401-
<container>1</container>
402-
<pixmap></pixmap>
403-
</customwidget>
404278
</customwidgets>
405279
<tabstops>
406280
<tabstop>cmbConnections</tabstop>

0 commit comments

Comments
 (0)
Please sign in to comment.