18
18
#include " qgsattributedialog.h"
19
19
#include " qgsfeature.h"
20
20
#include < QTableWidgetItem>
21
+ #include < QSettings>
21
22
22
23
QgsAttributeDialog::QgsAttributeDialog (const std::vector<QgsFeatureAttribute>* attributes)
23
- : QDialog()
24
+ : QDialog(), _settingsPath( " /Windows/AttributeDialog/ " )
24
25
{
26
+ restorePositionAndColumnWidth ();
27
+
25
28
setupUi (this );
26
29
mTable ->setRowCount (attributes->size ());
27
30
@@ -35,11 +38,12 @@ QgsAttributeDialog::QgsAttributeDialog(const std::vector<QgsFeatureAttribute>* a
35
38
mTable ->setItem (index, 1 , myValueItem);
36
39
++index;
37
40
}
41
+ mTable ->resizeColumnsToContents ();
38
42
}
39
43
40
44
QgsAttributeDialog::~QgsAttributeDialog ()
41
45
{
42
-
46
+ savePositionAndColumnWidth ();
43
47
}
44
48
45
49
QString QgsAttributeDialog::value (int row)
@@ -64,3 +68,26 @@ bool QgsAttributeDialog::queryAttributes(QgsFeature& f)
64
68
return false ;
65
69
}
66
70
}
71
+ void QgsAttributeDialog::savePositionAndColumnWidth ()
72
+ {
73
+ QSettings settings;
74
+ QPoint p = this ->pos ();
75
+ QSize s = this ->size ();
76
+ settings.writeEntry (_settingsPath+" x" , p.x ());
77
+ settings.writeEntry (_settingsPath+" y" , p.y ());
78
+ settings.writeEntry (_settingsPath+" w" , s.width ());
79
+ settings.writeEntry (_settingsPath+" h" , s.height ());
80
+
81
+ }
82
+
83
+ void QgsAttributeDialog::restorePositionAndColumnWidth ()
84
+ {
85
+ QSettings settings;
86
+ int ww = settings.readNumEntry (_settingsPath+" w" , 281 );
87
+ int wh = settings.readNumEntry (_settingsPath+" h" , 316 );
88
+ int wx = settings.readNumEntry (_settingsPath+" x" , 100 );
89
+ int wy = settings.readNumEntry (_settingsPath+" y" , 100 );
90
+
91
+ resize (ww,wh);
92
+ move (wx,wy);
93
+ }
0 commit comments