00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#include <qlistview.h>
00023
#include <qpushbutton.h>
00024
#include <qheader.h>
00025
00026
#include <libkdepim/categoryselectdialog_base.h>
00027
#include <klocale.h>
00028
#include "categoryselectdialog.h"
00029
00030
#include "kpimprefs.h"
00031
00032
using namespace KPIM;
00033
00034 CategorySelectDialog::CategorySelectDialog( KPimPrefs *prefs,
QWidget* parent,
00035
const char* name,
bool modal )
00036 : KDialogBase::KDialogBase( parent, name, modal,
00037 i18n(
"Select Categories"), Ok|Apply|Cancel|Help, Ok, true ),
00038 mPrefs( prefs )
00039 {
00040 mWidget =
new CategorySelectDialog_base(
this,
"CategorySelection" );
00041 mWidget->mCategories->header()->hide();
00042 setMainWidget( mWidget );
00043
00044 setCategories();
00045
00046 connect( mWidget->mButtonEdit, SIGNAL(clicked()),
00047 SIGNAL(editCategories()) );
00048 connect( mWidget->mButtonClear, SIGNAL(clicked()),
00049 SLOT(clear()) );
00050 }
00051
00052
void CategorySelectDialog::setCategories(
const QStringList &categoryList )
00053 {
00054 mWidget->mCategories->clear();
00055 mCategoryList.clear();
00056
00057 QStringList::ConstIterator it;
00058
00059
for ( it = categoryList.begin(); it != categoryList.end(); ++it )
00060
if ( mPrefs->mCustomCategories.find( *it ) == mPrefs->mCustomCategories.end() )
00061 mPrefs->mCustomCategories.append( *it );
00062
00063
for ( it = mPrefs->mCustomCategories.begin();
00064 it != mPrefs->mCustomCategories.end(); ++it ) {
00065
new QCheckListItem( mWidget->mCategories, *it, QCheckListItem::CheckBox );
00066 }
00067 }
00068
00069 CategorySelectDialog::~CategorySelectDialog()
00070 {
00071 }
00072
00073
void CategorySelectDialog::setSelected(
const QStringList &selList)
00074 {
00075 clear();
00076
00077 QStringList::ConstIterator it;
00078
for ( it = selList.begin(); it != selList.end(); ++it ) {
00079
QCheckListItem *item = (
QCheckListItem *)mWidget->mCategories->firstChild();
00080
while (item) {
00081
if (item->text() == *it) {
00082 item->setOn(
true);
00083
break;
00084 }
00085 item = (
QCheckListItem *)item->nextSibling();
00086 }
00087 }
00088 }
00089
00090
QStringList CategorySelectDialog::selectedCategories()
const
00091
{
00092
return mCategoryList;
00093 }
00094
00095
void CategorySelectDialog::slotApply()
00096 {
00097
QStringList categories;
00098
QCheckListItem *item = (
QCheckListItem *)mWidget->mCategories->firstChild();
00099
while (item) {
00100
if (item->isOn()) {
00101 categories.append(item->text());
00102 }
00103 item = (
QCheckListItem *)item->nextSibling();
00104 }
00105
00106
QString categoriesStr = categories.join(
", ");
00107
00108 mCategoryList = categories;
00109
00110 emit categoriesSelected(categories);
00111 emit categoriesSelected(categoriesStr);
00112 }
00113
00114
void CategorySelectDialog::slotOk()
00115 {
00116 slotApply();
00117 accept();
00118 }
00119
00120
void CategorySelectDialog::clear()
00121 {
00122
QCheckListItem *item = (
QCheckListItem *)mWidget->mCategories->firstChild();
00123
while (item) {
00124 item->setOn(
false);
00125 item = (
QCheckListItem *)item->nextSibling();
00126 }
00127 }
00128
00129
void CategorySelectDialog::updateCategoryConfig()
00130 {
00131
QStringList selected;
00132
QCheckListItem *item = (
QCheckListItem *)mWidget->mCategories->firstChild();
00133
while (item) {
00134
if (item->isOn()) {
00135 selected.append(item->text());
00136 }
00137 item = (
QCheckListItem *)item->nextSibling();
00138 }
00139
00140 setCategories();
00141
00142 setSelected(selected);
00143 }
00144
00145
#include "categoryselectdialog.moc"