Skip to content

Commit 25e5a8e

Browse files
committed
fix QSettings
1 parent 8633796 commit 25e5a8e

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

sources/layouts/mainwindow.cpp

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -541,17 +541,24 @@ void CMainWindow::ValidateLastDirs()
541541

542542
void CMainWindow::LoadSettings()
543543
{
544+
QSettings::setDefaultFormat( QSettings::IniFormat );
544545
QSettings settings;
545-
settings.setDefaultFormat( QSettings::IniFormat );
546546

547547
settings.beginGroup( QStringLiteral( "mainwindow" ) );
548548
this->setGeometry(
549549
settings.value( QStringLiteral( "geometry" ), this->geometry() )
550550
.value<QRect>() );
551-
this->m_RecentFileNames =
552-
settings.value( QStringLiteral( "recentfiles" ) ).toStringList();
553551
settings.endGroup();
554552

553+
this->m_RecentFileNames.clear();
554+
int size = settings.beginReadArray( QStringLiteral( "recentfiles" ) );
555+
for (int i = 0; i < size; ++i)
556+
{
557+
settings.setArrayIndex( i );
558+
this->m_RecentFileNames.append( settings.value( QStringLiteral( "path" ) ).toString() );
559+
}
560+
settings.endArray();
561+
555562
settings.beginGroup( QStringLiteral( "settings" ) );
556563
this->actionDecrypt_e_files->setChecked(
557564
settings.value( QStringLiteral( "decryptedfiles" ), true ).toBool() );
@@ -577,15 +584,21 @@ void CMainWindow::PostLoadSettings()
577584

578585
void CMainWindow::SaveSettings()
579586
{
587+
QSettings::setDefaultFormat( QSettings::IniFormat );
580588
QSettings settings;
581-
settings.setDefaultFormat( QSettings::IniFormat );
582589

583590
settings.beginGroup( QStringLiteral( "mainwindow" ) );
584591
settings.setValue( QStringLiteral( "geometry" ), this->geometry() );
585-
settings.setValue( QStringLiteral( "recentfiles" ),
586-
this->m_RecentFileNames );
587592
settings.endGroup();
588593

594+
settings.beginWriteArray( QStringLiteral( "recentfiles" ) );
595+
for (int i = 0; i < this->m_RecentFileNames.size(); ++i)
596+
{
597+
settings.setArrayIndex( i );
598+
settings.setValue( QStringLiteral( "path" ), this->m_RecentFileNames.at(i) );
599+
}
600+
settings.endArray();
601+
589602
settings.beginGroup( QStringLiteral( "settings" ) );
590603
settings.setValue( QStringLiteral( "decryptedfiles" ),
591604
this->actionDecrypt_e_files->isChecked() );

0 commit comments

Comments
 (0)