Commit 7c446cb7 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Qt: recents factorization.

parent dc92e9b3
......@@ -1416,11 +1416,11 @@ void QVLCMenu::DoAction( QObject *data )
void QVLCMenu::updateRecents( intf_thread_t *p_intf )
{
if (recentsMenu)
if( recentsMenu )
{
QAction* action;
RecentsMRL* rmrl = RecentsMRL::getInstance( p_intf );
QList<QString> l = rmrl->recents();
QStringList l = rmrl->recents();
recentsMenu->clear();
......
......@@ -26,8 +26,7 @@
#include "dialogs_provider.hpp"
#include "menus.hpp"
#include <QList>
#include <QString>
#include <QStringList>
#include <QAction>
#include <QSettings>
#include <QRegExp>
......@@ -41,14 +40,15 @@ RecentsMRL* RecentsMRL::instance = NULL;
RecentsMRL::RecentsMRL( intf_thread_t *_p_intf ) : p_intf( _p_intf )
{
stack = new QList<QString>;
signalMapper = new QSignalMapper(this);
stack = new QStringList;
signalMapper = new QSignalMapper( this );
CONNECT( signalMapper,
mapped(const QString & ),
DialogsProvider::getInstance( p_intf ),
playMRL( const QString & ) );
isActive = config_GetInt( p_intf, "qt-recentplay" );
/* Load the filter psz */
char* psz_tmp = config_GetPsz( p_intf, "qt-recentplay-filter" );
if( psz_tmp && *psz_tmp )
filter = new QRegExp( psz_tmp, Qt::CaseInsensitive );
......@@ -57,6 +57,7 @@ RecentsMRL::RecentsMRL( intf_thread_t *_p_intf ) : p_intf( _p_intf )
free( psz_tmp );
load();
isActive = config_GetInt( p_intf, "qt-recentplay" );
if( !isActive ) clear();
}
......@@ -98,20 +99,23 @@ void RecentsMRL::clear()
{
if ( stack->isEmpty() )
return;
stack->clear();
if( isActive ) QVLCMenu::updateRecents( p_intf );
save();
}
QList<QString> RecentsMRL::recents()
QStringList RecentsMRL::recents()
{
return QList<QString>(*stack);
return *stack;
}
void RecentsMRL::load()
{
/* Load from the settings */
QStringList list = getSettings()->value( "RecentsMRL/list" ).toStringList();
/* And filter the regexp on the list */
for( int i = 0; i < list.size(); ++i )
{
if ( !filter || filter->indexIn( list.at(i) ) == -1 )
......@@ -121,11 +125,6 @@ void RecentsMRL::load()
void RecentsMRL::save()
{
QStringList list;
for( int i = 0; i < stack->size(); ++i )
list << stack->at(i);
getSettings()->setValue( "RecentsMRL/list", list );
getSettings()->setValue( "RecentsMRL/list", *stack );
}
......@@ -27,10 +27,9 @@
#include "qt4.hpp"
#include <QObject>
#include <QList>
#include <QString>
#include <QRegExp>
#include <QSignalMapper>
class QStringList;
class QRegExp;
class QSignalMapper;
#define RECENTS_LIST_SIZE 10
......@@ -52,7 +51,8 @@ public:
}
void addRecent( const QString & );
QList<QString> recents();
QStringList recents();
QSignalMapper *signalMapper;
private:
......@@ -61,13 +61,13 @@ private:
static RecentsMRL *instance;
intf_thread_t *p_intf;
QStringList *stack;
QRegExp *filter;
bool isActive;
void load();
void save();
intf_thread_t* p_intf;
QList<QString> *stack;
bool isActive;
QRegExp *filter;
public slots:
void clear();
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment