#4949 Recently used files : Use string list serializer

This commit is contained in:
Magne Sjaastad
2019-10-29 14:23:01 +01:00
parent facfd062dc
commit 350a812634
2 changed files with 18 additions and 16 deletions

View File

@@ -20,11 +20,11 @@
#include "RiaFilePathTools.h" #include "RiaFilePathTools.h"
#include "RiaGuiApplication.h" #include "RiaGuiApplication.h"
#include "RiaStringListSerializer.h"
#include <QAction> #include <QAction>
#include <QFileInfo> #include <QFileInfo>
#include <QMessageBox> #include <QMessageBox>
#include <QSettings>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@@ -46,14 +46,8 @@ RiuRecentFileActionProvider::~RiuRecentFileActionProvider() {}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuRecentFileActionProvider::addFileName( const QString& fileName ) void RiuRecentFileActionProvider::addFileName( const QString& fileName )
{ {
QSettings settings; RiaStringListSerializer stringListSerializer( registryKey() );
QStringList files = settings.value( "recentFileList" ).toStringList(); stringListSerializer.addString( fileName, m_maxActionCount );
files.removeAll( fileName );
files.prepend( fileName );
while ( files.size() > m_maxActionCount )
files.removeLast();
settings.setValue( "recentFileList", files );
updateActions(); updateActions();
} }
@@ -63,22 +57,28 @@ void RiuRecentFileActionProvider::addFileName( const QString& fileName )
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuRecentFileActionProvider::removeFileName( const QString& fileName ) void RiuRecentFileActionProvider::removeFileName( const QString& fileName )
{ {
QSettings settings; RiaStringListSerializer stringListSerializer( registryKey() );
QStringList files = settings.value( "recentFileList" ).toStringList(); stringListSerializer.removeString( fileName );
files.removeAll( fileName );
settings.setValue( "recentFileList", files );
updateActions(); updateActions();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiuRecentFileActionProvider::registryKey()
{
return "recentFileList";
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RiuRecentFileActionProvider::updateActions() void RiuRecentFileActionProvider::updateActions()
{ {
QSettings settings; RiaStringListSerializer stringListSerializer( registryKey() );
QStringList files = settings.value( "recentFileList" ).toStringList();
QStringList files = stringListSerializer.textStrings();
int numRecentFiles = qMin( files.size(), m_maxActionCount ); int numRecentFiles = qMin( files.size(), m_maxActionCount );

View File

@@ -49,6 +49,8 @@ private:
void updateActions(); void updateActions();
void removeFileName( const QString& fileName ); void removeFileName( const QString& fileName );
static QString registryKey();
private: private:
int m_maxActionCount; int m_maxActionCount;