1212 * (at your option) any later version. *
1313 ***************************************************************************/
1414#include " qgsdelimitedtextplugingui.h"
15- #include " qgscontexthelp.h"
1615
1716#include " qgisinterface.h"
17+ #include " qgscontexthelp.h"
18+ #include " qgslogger.h"
1819
19- #include < QFileDialog>
2020#include < QFile>
21- #include < QComboBox>
22- #include < QSettings>
21+ #include < QFileDialog>
2322#include < QFileInfo>
24- #include < QRegExp>
2523#include < QMessageBox>
24+ #include < QRegExp>
25+ #include < QSettings>
2626#include < QTextStream>
2727#include < QUrl>
28- #include " qgslogger.h"
2928
3029QgsDelimitedTextPluginGui::QgsDelimitedTextPluginGui ( QgisInterface * _qI, QWidget * parent, Qt::WFlags fl )
3130 : QDialog( parent, fl ), qI( _qI )
3231{
3332 setupUi ( this );
33+
34+ QSettings settings;
35+ restoreGeometry ( settings.value ( " /Plugin-DelimitedText/geometry" ).toByteArray () );
36+
3437 pbnOK = buttonBox->button ( QDialogButtonBox::Ok );
3538
3639 updateFieldsAndEnable ();
3740
3841 // at startup, fetch the last used delimiter and directory from
3942 // settings
40- QSettings settings;
4143 QString key = " /Plugin-DelimitedText" ;
4244 txtDelimiter->setText ( settings.value ( key + " /delimiter" ).toString () );
4345
46+ rowCounter->setValue ( settings.value ( key + " /startFrom" , 0 ).toInt () );
47+
4448 // and how to use the delimiter
4549 QString delimiterType = settings.value ( key + " /delimiterType" , " plain" ).toString ();
4650 if ( delimiterType == " selection" )
@@ -60,7 +64,7 @@ QgsDelimitedTextPluginGui::QgsDelimitedTextPluginGui( QgisInterface * _qI, QWidg
6064 cbxDelimSpace->setChecked ( delimiterChars.contains ( " " ) );
6165 cbxDelimTab->setChecked ( delimiterChars.contains ( " \\ t" ) );
6266 cbxDelimColon->setChecked ( delimiterChars.contains ( " :" ) );
63- cbxDelimSemicolon->setChecked ( delimiterChars.contains ( " : " ) );
67+ cbxDelimSemicolon->setChecked ( delimiterChars.contains ( " ; " ) );
6468 cbxDelimComma->setChecked ( delimiterChars.contains ( " ," ) );
6569
6670 cmbXField->setDisabled ( true );
@@ -88,7 +92,7 @@ QgsDelimitedTextPluginGui::QgsDelimitedTextPluginGui( QgisInterface * _qI, QWidg
8892QgsDelimitedTextPluginGui::~QgsDelimitedTextPluginGui ()
8993{
9094}
91- /* * Autoconnected slots * */
95+
9296void QgsDelimitedTextPluginGui::on_btnBrowseForFile_clicked ()
9397{
9498 getOpenFileName ();
@@ -140,11 +144,15 @@ void QgsDelimitedTextPluginGui::on_buttonBox_accepted()
140144 emit drawVectorLayer ( QString::fromAscii ( url.toEncoded () ), txtLayerName->text (), " delimitedtext" );
141145
142146 // store the settings
147+ saveState ();
148+
143149 QSettings settings;
144150 QString key = " /Plugin-DelimitedText" ;
151+ settings.setValue ( key + " /geometry" , saveGeometry () );
145152 settings.setValue ( key + " /delimiter" , txtDelimiter->text () );
146153 QFileInfo fi ( txtFilePath->text () );
147154 settings.setValue ( key + " /text_path" , fi.path () );
155+ settings.setValue ( key + " /startFrom" , rowCounter->value () );
148156
149157 if ( delimiterSelection->isChecked () )
150158 settings.setValue ( key + " /delimiterType" , " selection" );
@@ -164,6 +172,7 @@ void QgsDelimitedTextPluginGui::on_buttonBox_accepted()
164172
165173void QgsDelimitedTextPluginGui::on_buttonBox_rejected ()
166174{
175+ saveState ();
167176 reject ();
168177}
169178
@@ -292,7 +301,6 @@ void QgsDelimitedTextPluginGui::updateFieldLists()
292301
293302 QgsDebugMsg ( QString ( " Split line into %1 parts" ).arg ( fieldList.size () ) );
294303
295- //
296304 // We don't know anything about a text based field other
297305 // than its name. All fields are assumed to be text
298306 bool haveFields = false ;
@@ -443,8 +451,7 @@ void QgsDelimitedTextPluginGui::getOpenFileName()
443451 this ,
444452 tr ( " Choose a delimited text file to open" ),
445453 settings.value ( " /Plugin-DelimitedText/text_path" , " ./" ).toString (),
446- " Text files (*.txt *.csv);; Well Known Text files (*.wkt);; All files (* *.*)" );
447-
454+ " Text files (*.txt *.csv);;Well Known Text files (*.wkt);;All files (* *.*)" );
448455 // set path
449456 txtFilePath->setText ( s );
450457}
@@ -457,14 +464,12 @@ void QgsDelimitedTextPluginGui::updateFieldsAndEnable()
457464
458465void QgsDelimitedTextPluginGui::enableAccept ()
459466{
460-
461467 // If the geometry type field is enabled then there must be
462468 // a valid file, and it must be
463469 bool enabled = haveValidFileAndDelimiters ();
464470
465471 if ( enabled )
466472 {
467-
468473 if ( geomTypeXY->isChecked () )
469474 {
470475 enabled = !( cmbXField->currentText ().isEmpty () || cmbYField->currentText ().isEmpty () || cmbXField->currentText () == cmbYField->currentText () );
@@ -493,12 +498,15 @@ QString QgsDelimitedTextPluginGui::readLine( QTextStream &stream )
493498 // skip leading CR / LF
494499 continue ;
495500 }
496-
497501 break ;
498502 }
499-
500503 buffer.append ( c );
501504 }
502-
503505 return buffer;
504506}
507+
508+ void QgsDelimitedTextPluginGui::saveState ()
509+ {
510+ QSettings settings;
511+ settings.setValue ( " /Plugin-DelimitedText/geometry" , saveGeometry () );
512+ }
0 commit comments