Skip to content

Commit 4bda397

Browse files
author
telwertowski
committedJan 16, 2007
Make Add Attribute dialog modal and set parent for all dialogs in chain. This fixes incorrect layering of stacked dialogs on Mac (bug #509).
git-svn-id: http://svn.osgeo.org/qgis/trunk@6439 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 771b972 commit 4bda397

7 files changed

+19
-16
lines changed
 

‎src/app/qgisapp.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2525,7 +2525,7 @@ void QgisApp::newVectorLayer()
25252525
QGis::WKBTYPE geometrytype;
25262526
QString fileformat;
25272527

2528-
QgsGeomTypeDialog geomDialog;
2528+
QgsGeomTypeDialog geomDialog(this);
25292529
if(geomDialog.exec()==QDialog::Rejected)
25302530
{
25312531
return;

‎src/app/qgsaddattrdialog.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
#include "qgsaddattrdialog.h"
1919
#include "qgsvectordataprovider.h"
2020

21-
QgsAddAttrDialog::QgsAddAttrDialog(QgsVectorDataProvider* provider)
22-
: QDialog(), mDataProvider(provider)
21+
QgsAddAttrDialog::QgsAddAttrDialog(QgsVectorDataProvider* provider, QWidget *parent, Qt::WFlags fl)
22+
: QDialog(parent, fl), mDataProvider(provider)
2323
{
2424
setupUi(this);
2525
connect(mOkButton, SIGNAL(clicked()), this, SLOT(accept()));
@@ -42,8 +42,8 @@ QgsAddAttrDialog::QgsAddAttrDialog(QgsVectorDataProvider* provider)
4242
*/
4343
}
4444

45-
QgsAddAttrDialog::QgsAddAttrDialog(const std::list<QString>& typelist)
46-
: QDialog(), mDataProvider(0)
45+
QgsAddAttrDialog::QgsAddAttrDialog(const std::list<QString>& typelist, QWidget *parent, Qt::WFlags fl)
46+
: QDialog(parent, fl), mDataProvider(0)
4747
{
4848
setupUi(this);
4949
connect(mOkButton, SIGNAL(clicked()), this, SLOT(accept()));

‎src/app/qgsaddattrdialog.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@
1919
#define QGSADDATTRDIALOG_H
2020

2121
#include "ui_qgsaddattrdialogbase.h"
22-
#include <QDialog>
22+
#include "qgisgui.h"
2323

2424
class QgsVectorDataProvider;
2525

2626
class QgsAddAttrDialog: public QDialog, private Ui::QgsAddAttrDialogBase
2727
{
2828
Q_OBJECT
2929
public:
30-
QgsAddAttrDialog(QgsVectorDataProvider* provider);
31-
QgsAddAttrDialog(const std::list<QString>& typelist);
30+
QgsAddAttrDialog(QgsVectorDataProvider* provider,
31+
QWidget *parent = 0, Qt::WFlags fl = QgisGui::ModalDialogFlags);
32+
QgsAddAttrDialog(const std::list<QString>& typelist,
33+
QWidget *parent = 0, Qt::WFlags fl = QgisGui::ModalDialogFlags);
3234
QString name() const;
3335
QString type() const;
3436
protected:

‎src/app/qgsattributetabledisplay.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ void QgsAttributeTableDisplay::deleteAttributes()
128128

129129
void QgsAttributeTableDisplay::addAttribute()
130130
{
131-
QgsAddAttrDialog dialog(mLayer->getDataProvider());
131+
QgsAddAttrDialog dialog(mLayer->getDataProvider(), this);
132132
if(dialog.exec()==QDialog::Accepted)
133133
{
134134
if(!table()->addAttribute(dialog.name(),dialog.type()))

‎src/app/qgsgeomtypedialog.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
#include "qgsgeomtypedialog.h"
2020
#include "qgsaddattrdialog.h"
2121

22-
QgsGeomTypeDialog::QgsGeomTypeDialog(): QDialog()
22+
QgsGeomTypeDialog::QgsGeomTypeDialog(QWidget *parent, Qt::WFlags fl)
23+
: QDialog(parent, fl)
2324
{
2425
setupUi(this);
2526
connect(mOkButton, SIGNAL(clicked()), this, SLOT(accept()));
@@ -64,7 +65,7 @@ void QgsGeomTypeDialog::on_mAddAttributeButton_clicked()
6465
types.push_back("Real");
6566
types.push_back("Integer");
6667
types.push_back("String");
67-
QgsAddAttrDialog d(types);
68+
QgsAddAttrDialog d(types, this);
6869
if(d.exec()==QDialog::Accepted)
6970
{
7071
Q3ListViewItem* attritem=new Q3ListViewItem(mAttributeView, d.name(), d.type());

‎src/app/qgsgeomtypedialog.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919
#define QGSGEOMTYPEDIALOG_H
2020

2121
#include "ui_qgsgeomtypedialogbase.h"
22+
#include "qgisgui.h"
2223
#include "qgscontexthelp.h"
23-
#include <QDialog>
2424

2525
#include "qgis.h"
2626

2727
class QgsGeomTypeDialog: public QDialog, private Ui::QgsGeomTypeDialogBase
2828
{
2929
Q_OBJECT
3030
public:
31-
QgsGeomTypeDialog();
31+
QgsGeomTypeDialog(QWidget *parent = 0, Qt::WFlags fl = QgisGui::ModalDialogFlags);
3232
~QgsGeomTypeDialog();
3333
/**Returns the selected geometry type*/
3434
QGis::WKBTYPE selectedType() const;

‎src/ui/qgsaddattrdialogbase.ui

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
<ui version="4.0" >
2-
<author></author>
3-
<comment></comment>
4-
<exportmacro></exportmacro>
52
<class>QgsAddAttrDialogBase</class>
63
<widget class="QDialog" name="QgsAddAttrDialogBase" >
74
<property name="geometry" >
@@ -15,6 +12,9 @@
1512
<property name="windowTitle" >
1613
<string>Add Attribute</string>
1714
</property>
15+
<property name="modal" >
16+
<bool>true</bool>
17+
</property>
1818
<layout class="QGridLayout" >
1919
<property name="margin" >
2020
<number>9</number>

0 commit comments

Comments
 (0)
Please sign in to comment.