From b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 26 Jun 2004 19:01:18 +0000 Subject: Initial revision --- (limited to 'libkdepim/categoryselectdialog.cpp') diff --git a/libkdepim/categoryselectdialog.cpp b/libkdepim/categoryselectdialog.cpp new file mode 100644 index 0000000..7b0aced --- a/dev/null +++ b/libkdepim/categoryselectdialog.cpp @@ -0,0 +1,173 @@ +/* + This file is part of libkdepim. + Copyright (c) 2000, 2001, 2002 Cornelius Schumacher + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + As a special exception, permission is given to link this program + with any edition of Qt, and distribute the resulting executable, + without including the source code for Qt in the source distribution. +*/ + +#include +#include +#include +#include +#include + + +#include +#include "categoryselectdialog.h" + +#include "kpimprefs.h" + +using namespace KPIM; + +CategorySelectDialog::CategorySelectDialog( KPimPrefs *prefs, QWidget* parent, + const char* name, + bool modal, WFlags fl ) + : CategorySelectDialog_base( parent, name, true, fl ), + mPrefs( prefs ) +{ + mCategories->header()->hide(); + + setCategories(); + + connect(mButtonEdit,SIGNAL(clicked()),this, SLOT(editCategoriesDialog())); + if ( qApp->desktop()->height() < 321 ) + setMaximumHeight( QApplication::desktop()->height() - 50 ); + else + setMaximumHeight( QApplication::desktop()->height() - 80 ); + if ( QApplication::desktop()->width() > 460 ) + resize( 260, 360 ); +} +void CategorySelectDialog::editCategoriesDialog() +{ + KPIM::CategoryEditDialog* ced = new KPIM::CategoryEditDialog(mPrefs,this ); + + ced->exec(); + delete ced; + setCategories(); +} +void CategorySelectDialog::setCategories() +{ + mCategories->clear(); + mCategoryList.clear(); + + QStringList::Iterator it; + + for (it = mPrefs->mCustomCategories.begin(); + it != mPrefs->mCustomCategories.end(); ++it ) { + new QCheckListItem(mCategories,*it,QCheckListItem::CheckBox); + } +} + +CategorySelectDialog::~CategorySelectDialog() +{ +} + +void CategorySelectDialog::setSelected(const QStringList &selList) +{ + clear(); + + QStringList::ConstIterator it; + QStringList notFound; + bool found = false; + for (it=selList.begin();it!=selList.end();++it) { + //qDebug(" CategorySelectDialog::setSelected("); + QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); + while (item) { + if (item->text() == *it) { + item->setOn(true); + found = true; + break; + } + item = (QCheckListItem *)item->nextSibling(); + } +// if ( ! found ) { + +//emit updateCategoriesGlobal(); +// QMessageBox::information( this, "KO/E: Information!", +// "Categories found, which were not\n" +// "in list of categories!\n" +// "message", +// "OK", "", 0, +// 0, 1 ); +// setSelected(selList); +// return; +// } + } +} + +QStringList CategorySelectDialog::selectedCategories() const +{ + return mCategoryList; +} + +void CategorySelectDialog::slotApply() +{ + QStringList categories; + QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); + while (item) { + if (item->isOn()) { + categories.append(item->text()); + } + item = (QCheckListItem *)item->nextSibling(); + } + + QString categoriesStr = categories.join(","); + + mCategoryList = categories; + + emit categoriesSelected(categories); + emit categoriesSelected(categoriesStr); +} +void CategorySelectDialog::accept() +{ + slotOk(); +} + +void CategorySelectDialog::slotOk() +{ + slotApply(); + QDialog::accept(); +} + +void CategorySelectDialog::clear() +{ + QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); + while (item) { + item->setOn(false); + item = (QCheckListItem *)item->nextSibling(); + } +} + +void CategorySelectDialog::updateCategoryConfig() +{ + QStringList selected; + QCheckListItem *item = (QCheckListItem *)mCategories->firstChild(); + while (item) { + if (item->isOn()) { + selected.append(item->text()); + } + item = (QCheckListItem *)item->nextSibling(); + } + + setCategories(); + + setSelected(selected); +} + +#include "categoryselectdialog.moc" -- cgit v0.9.0.2