Skip to content

Commit 27249d8

Browse files
committed
force most core dialogs to remember their state and restore it when
opened (adresses #206)
1 parent 32824e2 commit 27249d8

20 files changed

+219
-179
lines changed

src/app/composer/qgscomposermanager.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,17 @@
2323
#include <QInputDialog>
2424
#include <QListWidgetItem>
2525
#include <QMessageBox>
26+
#include <QSettings>
2627

2728
QgsComposerManager::QgsComposerManager( QWidget * parent, Qt::WindowFlags f ): QDialog( parent, f )
2829
{
2930
QPushButton *pb;
3031

3132
setupUi( this );
33+
34+
QSettings settings;
35+
restoreGeometry( settings.value( "/Windows/ComposerManager/geometry" ).toByteArray() );
36+
3237
connect( mButtonBox, SIGNAL( rejected() ), this, SLOT( close() ) );
3338

3439
pb = new QPushButton( tr( "&Show" ) );
@@ -48,7 +53,8 @@ QgsComposerManager::QgsComposerManager( QWidget * parent, Qt::WindowFlags f ): Q
4853

4954
QgsComposerManager::~QgsComposerManager()
5055
{
51-
56+
QSettings settings;
57+
settings.setValue( "/Windows/ComposerManager/geometry", saveGeometry() );
5258
}
5359

5460
void QgsComposerManager::initialize()

src/app/ogr/qgsnewogrconnection.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ QgsNewOgrConnection::QgsNewOgrConnection( QWidget *parent, const QString& connTy
3838
{
3939
setupUi( this );
4040

41+
QSettings settings;
42+
restoreGeometry( settings.value( "/Windows/OGRDatabaseConnection/geometry" ).toByteArray() );
43+
4144
//add database drivers
4245
QStringList dbDrivers = QgsProviderRegistry::instance()->databaseDrivers().split( ";" );
4346
for ( int i = 0; i < dbDrivers.count(); i++ )
@@ -51,7 +54,6 @@ QgsNewOgrConnection::QgsNewOgrConnection( QWidget *parent, const QString& connTy
5154
{
5255
// populate the dialog with the information stored for the connection
5356
// populate the fields with the stored setting parameters
54-
QSettings settings;
5557
QString key = "/" + connType + "/connections/" + connName;
5658
txtHost->setText( settings.value( key + "/host" ).toString() );
5759
txtDatabase->setText( settings.value( key + "/database" ).toString() );
@@ -72,6 +74,8 @@ QgsNewOgrConnection::QgsNewOgrConnection( QWidget *parent, const QString& connTy
7274

7375
QgsNewOgrConnection::~QgsNewOgrConnection()
7476
{
77+
QSettings settings;
78+
settings.setValue( "/Windows/OGRDatabaseConnection/geometry", saveGeometry() );
7579
}
7680

7781
void QgsNewOgrConnection::testConnection()

src/app/ogr/qgsogrsublayersdialog.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,26 @@
1515

1616
#include "qgsogrsublayersdialog.h"
1717

18+
#include <QSettings>
1819
#include <QTableWidgetItem>
1920

2021

2122
QgsOGRSublayersDialog::QgsOGRSublayersDialog( QWidget* parent, Qt::WFlags fl )
2223
: QDialog( parent, fl )
2324
{
2425
setupUi( this );
26+
27+
QSettings settings;
28+
restoreGeometry( settings.value( "/Windows/OGRSubLayers/geometry" ).toByteArray() );
29+
2530
QStringList labels = QStringList() << tr( "Layer ID" ) << tr( "Layer name" ) << tr( "Nb of features" ) << tr( "Geometry type" );
2631
layersTable->setHeaderLabels( labels );
2732
}
2833

2934
QgsOGRSublayersDialog::~QgsOGRSublayersDialog()
3035
{
36+
QSettings settings;
37+
settings.setValue( "/Windows/OGRSubLayers/geometry", saveGeometry() );
3138
}
3239

3340
QStringList QgsOGRSublayersDialog::getSelection()

src/app/ogr/qgsopenvectorlayerdialog.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ QgsOpenVectorLayerDialog::QgsOpenVectorLayerDialog( QWidget* parent, Qt::WFlags
4848
QSettings settings;
4949
QString enc = settings.value( "/UI/encoding", QString( "System" ) ).toString();
5050

51+
restoreGeometry( settings.value( "/Windows/OpenVectorLayer/geometry" ).toByteArray() );
52+
5153
// The specified decoding is added if not existing alread, and then set current.
5254
// This should select it.
5355
int encindex = cmbEncodings->findText( enc );
@@ -93,6 +95,8 @@ QgsOpenVectorLayerDialog::QgsOpenVectorLayerDialog( QWidget* parent, Qt::WFlags
9395

9496
QgsOpenVectorLayerDialog::~QgsOpenVectorLayerDialog()
9597
{
98+
QSettings settings;
99+
settings.setValue( "/Windows/OpenVectorLayer/geometry", saveGeometry() );
96100
}
97101

98102
QStringList QgsOpenVectorLayerDialog::openFile()

src/app/ogr/qgsvectorlayersaveasdialog.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ QgsVectorLayerSaveAsDialog::QgsVectorLayerSaveAsDialog( QWidget* parent, Qt::WFl
3131
setupUi( this );
3232

3333
QSettings settings;
34+
restoreGeometry( settings.value( "/Windows/VectorLayerSaveAs/geometry" ).toByteArray() );
3435
QMap<QString, QString> map = QgsVectorFileWriter::ogrDriverList();
3536
mFormatComboBox->blockSignals( true );
3637
for ( QMap< QString, QString>::const_iterator it = map.constBegin(); it != map.constEnd(); ++it )
@@ -64,6 +65,8 @@ QgsVectorLayerSaveAsDialog::QgsVectorLayerSaveAsDialog( QWidget* parent, Qt::WFl
6465

6566
QgsVectorLayerSaveAsDialog::~QgsVectorLayerSaveAsDialog()
6667
{
68+
QSettings settings;
69+
settings.setValue( "/Windows/VectorLayerSaveAs/geometry", saveGeometry() );
6770
}
6871

6972
void QgsVectorLayerSaveAsDialog::accept()

src/app/qgisapp.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2096,13 +2096,6 @@ void QgisApp::about()
20962096
abt->activateWindow();
20972097
}
20982098

2099-
2100-
2101-
2102-
2103-
2104-
2105-
21062099
/**
21072100
This method prompts the user for a list of vector file names with a dialog.
21082101
*/

src/app/qgscustomprojectiondialog.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <QFileInfo>
2929
#include <QMessageBox>
3030
#include <QLocale>
31+
#include <QSettings>
3132

3233
//stdc++ includes
3334
#include <fstream>
@@ -45,6 +46,9 @@ QgsCustomProjectionDialog::QgsCustomProjectionDialog( QWidget *parent, Qt::WFlag
4546
{
4647
setupUi( this );
4748

49+
QSettings settings;
50+
restoreGeometry( settings.value( "/Windows/CustomProjection/geometry" ).toByteArray() );
51+
4852
pbnFirst->setIcon( QgisApp::getThemeIcon( "mIconFirst.png" ) );
4953
pbnPrevious->setIcon( QgisApp::getThemeIcon( "mIconPrevious.png" ) );
5054
pbnNext->setIcon( QgisApp::getThemeIcon( "mIconNext.png" ) );
@@ -87,7 +91,8 @@ QgsCustomProjectionDialog::QgsCustomProjectionDialog( QWidget *parent, Qt::WFlag
8791

8892
QgsCustomProjectionDialog::~QgsCustomProjectionDialog()
8993
{
90-
94+
QSettings settings;
95+
settings.setValue( "/Windows/CustomProjection/geometry", saveGeometry() );
9196
}
9297

9398
void QgsCustomProjectionDialog::on_pbnDelete_clicked()

src/app/qgsdecorationcopyrightdialog.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@
1919
#include <QColorDialog>
2020
#include <QColor>
2121
#include <QFont>
22-
23-
22+
#include <QSettings>
2423

2524
QgsDecorationCopyrightDialog::QgsDecorationCopyrightDialog( QgsDecorationCopyright& deco, QWidget* parent )
2625
: QDialog( parent ), mDeco( deco )
2726
{
2827
setupUi( this );
28+
29+
QSettings settings;
30+
restoreGeometry( settings.value( "/Windows/DecorationCopyright/geometry" ).toByteArray() );
31+
2932
//programmatically hide orientation selection for now
3033
cboOrientation->hide();
3134
textLabel15->hide();
@@ -47,6 +50,8 @@ QgsDecorationCopyrightDialog::QgsDecorationCopyrightDialog( QgsDecorationCopyrig
4750

4851
QgsDecorationCopyrightDialog::~QgsDecorationCopyrightDialog()
4952
{
53+
QSettings settings;
54+
settings.setValue( "/Windows/DecorationCopyright/geometry", saveGeometry() );
5055
}
5156

5257
void QgsDecorationCopyrightDialog::on_buttonBox_accepted()

src/app/qgsdecorationnortharrowdialog.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@
1818
#include "qgscontexthelp.h"
1919

2020
#include <QPainter>
21+
#include <QSettings>
2122
#include <cmath>
2223

23-
2424
QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorthArrow& deco, QWidget* parent )
2525
: QDialog( parent ), mDeco( deco )
2626
{
2727
setupUi( this );
2828

29+
QSettings settings;
30+
restoreGeometry( settings.value( "/Windows/DecorationNorthArrow/geometry" ).toByteArray() );
31+
2932
// rotation
3033
rotatePixmap( mDeco.mRotationInt );
3134
// signal/slot connection defined in 'designer' causes the slider to
@@ -46,6 +49,8 @@ QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorth
4649

4750
QgsDecorationNorthArrowDialog::~QgsDecorationNorthArrowDialog()
4851
{
52+
QSettings settings;
53+
settings.setValue( "/Windows/DecorationNorthArrow/geometry", saveGeometry() );
4954
}
5055

5156
void QgsDecorationNorthArrowDialog::on_buttonBox_helpRequested()

src/app/qgsdecorationscalebardialog.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,16 @@
1818
#include "qgscontexthelp.h"
1919

2020
#include <QColorDialog>
21+
#include <QSettings>
2122

2223
QgsDecorationScaleBarDialog::QgsDecorationScaleBarDialog( QgsDecorationScaleBar& deco, int units, QWidget* parent )
2324
: QDialog( parent ), mDeco( deco )
2425
{
2526
setupUi( this );
2627

28+
QSettings settings;
29+
restoreGeometry( settings.value( "/Windows/DecorationScaleBar/geometry" ).toByteArray() );
30+
2731
// set the map units in the spin box
2832
switch ( units )
2933
{
@@ -59,6 +63,8 @@ QgsDecorationScaleBarDialog::QgsDecorationScaleBarDialog( QgsDecorationScaleBar&
5963

6064
QgsDecorationScaleBarDialog::~QgsDecorationScaleBarDialog()
6165
{
66+
QSettings settings;
67+
settings.setValue( "/Windows/DecorationScaleBar/geometry", saveGeometry() );
6268
}
6369

6470
void QgsDecorationScaleBarDialog::on_buttonBox_helpRequested()

0 commit comments

Comments
 (0)