categoryselectdialog.cpp
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"
This file is part of the documentation for libkdepim Library Version 3.3.2.