From 240ab1d46a6a7379d53811d74912f95bdc09d922 Mon Sep 17 00:00:00 2001 From: Thomas McGuire Date: Tue, 26 Jan 2010 15:04:04 +0000 Subject: [PATCH] SVN_MERGE: Merged revisions 971901 via svnmerge from svn+ssh://tmcguire@svn.kde.org/home/kde/branches/kdepim/enterprise/kdepim ........ r971901 | mlaurent | 2009-05-23 17:59:31 +0200 (Sat, 23 May 2009) | 9 lines Add two buttons to selectall and unselectall necessary when we had a lot of filters. becarefull: there is a new feature, and there is a new i18n We must merge in KDE 4.4 not in kde4.3 we must merge in e4 ........ svn path=/trunk/KDE/kdepim/kmail/; revision=1080607 --- filterimporterexporter.cpp | 109 +++++++++++++++++++++---------------- filterimporterexporter.h | 22 ++++++++ 2 files changed, 85 insertions(+), 46 deletions(-) diff --git a/filterimporterexporter.cpp b/filterimporterexporter.cpp index 30724ddab..a2b5547f0 100644 --- a/filterimporterexporter.cpp +++ b/filterimporterexporter.cpp @@ -38,63 +38,80 @@ #include #include #include -#include -#include +#include +#include #include - using namespace KMail; -class FilterSelectionDialog : public KDialog +FilterSelectionDialog::FilterSelectionDialog( QWidget * parent ) + :KDialog( parent ) { -public: - FilterSelectionDialog( QWidget * parent = 0 ) - :KDialog( parent ) - { - setObjectName( "filterselection" ); - setModal( true ); - setCaption( i18n("Select Filters") ); - setButtons( Ok|Cancel ); - setDefaultButton( Ok ); - showButtonSeparator( true ); - filtersListWidget = new QListWidget( this ); - filtersListWidget->setAlternatingRowColors( true ); - setMainWidget( filtersListWidget ); - filtersListWidget->setSortingEnabled( false ); - filtersListWidget->setSelectionMode( QAbstractItemView::NoSelection ); - resize( 300, 350 ); - } + setObjectName( "filterselection" ); + setModal( true ); + setCaption( i18n("Select Filters") ); + setButtons( Ok|Cancel ); + setDefaultButton( Ok ); + showButtonSeparator( true ); + QVBoxLayout * const top = new QVBoxLayout( mainWidget() ); + filtersListWidget = new QListWidget(); + top->addWidget( filtersListWidget ); + filtersListWidget->setAlternatingRowColors( true ); + filtersListWidget->setSortingEnabled( false ); + filtersListWidget->setSelectionMode( QAbstractItemView::NoSelection ); + QHBoxLayout * const buttonLayout = new QHBoxLayout(); + top->addLayout( buttonLayout ); + selectAllButton = new KPushButton( i18n( "Select All" ) ); + buttonLayout->addWidget( selectAllButton ); + unselectAllButton = new KPushButton( i18n( "Unselect All" ) ); + buttonLayout->addWidget( unselectAllButton ); + connect( selectAllButton, SIGNAL( clicked() ), this, SLOT( slotSelectAllButton() ) ); + connect( unselectAllButton, SIGNAL( clicked() ), this, SLOT( slotUnselectAllButton() ) ); + resize( 300, 350 ); +} - virtual ~FilterSelectionDialog() - { - } +FilterSelectionDialog::~FilterSelectionDialog() +{ +} - void setFilters( const QList &filters ) - { - originalFilters = filters; - filtersListWidget->clear(); - foreach ( KMFilter *const filter, filters ) { - QListWidgetItem *item = new QListWidgetItem( filter->name(), filtersListWidget ); - item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled ); - item->setCheckState( Qt::Checked ); - } +void FilterSelectionDialog::setFilters( const QList &filters ) +{ + originalFilters = filters; + filtersListWidget->clear(); + foreach ( KMFilter *const filter, filters ) { + QListWidgetItem *item = new QListWidgetItem( filter->name(), filtersListWidget ); + item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled ); + item->setCheckState( Qt::Checked ); } +} - QList selectedFilters() const - { - QList filters; - for ( int i = 0; i < filtersListWidget->count(); i++ ) { - QListWidgetItem *item = filtersListWidget->item( i ); - if ( item->checkState() == Qt::Checked ) - filters << originalFilters[i]; - } - return filters; +QList FilterSelectionDialog::selectedFilters() const +{ + QList filters; + for ( int i = 0; i < filtersListWidget->count(); i++ ) { + QListWidgetItem *item = filtersListWidget->item( i ); + if ( item->checkState() == Qt::Checked ) + filters << originalFilters[i]; } -private: - QListWidget *filtersListWidget; - QList originalFilters; -}; + return filters; +} + +void FilterSelectionDialog::slotUnselectAllButton() +{ + for ( int i = 0; i < filtersListWidget->count(); i++ ) { + QListWidgetItem * const item = filtersListWidget->item( i ); + item->setCheckState( Qt::Unchecked ); + } +} + +void FilterSelectionDialog::slotSelectAllButton() +{ + for ( int i = 0; i < filtersListWidget->count(); i++ ) { + QListWidgetItem * const item = filtersListWidget->item( i ); + item->setCheckState( Qt::Checked ); + } +} /* static */ QList FilterImporterExporter::readFiltersFromConfig( KSharedConfig::Ptr config, diff --git a/filterimporterexporter.h b/filterimporterexporter.h index 26c9352a0..43a02c9ea 100644 --- a/filterimporterexporter.h +++ b/filterimporterexporter.h @@ -33,9 +33,12 @@ #include #include +#include class KMFilter; class QWidget; +class QListWidget; +class KPushButton; namespace KMail { @@ -68,6 +71,25 @@ private: bool mPopFilter; }; + +class FilterSelectionDialog : public KDialog +{ + Q_OBJECT + public: + FilterSelectionDialog( QWidget * parent = 0 ); + virtual ~FilterSelectionDialog(); + void setFilters( const QList &filters ); + QList selectedFilters() const; + public slots: + void slotUnselectAllButton(); + void slotSelectAllButton(); + private: + QListWidget *filtersListWidget; + QList originalFilters; + KPushButton *selectAllButton; + KPushButton *unselectAllButton; +}; + } #endif /* __FILTERIMPORTEREXPORTER_H__ */