summaryrefslogtreecommitdiffabout
path: root/libkdepim/categoryselectdialog.cpp
authorzautrix <zautrix>2004-06-26 19:01:18 (UTC)
committer zautrix <zautrix>2004-06-26 19:01:18 (UTC)
commitb9aad1f15dc600e4dbe4c62d3fcced6363188ba3 (patch) (side-by-side diff)
tree2c3d4004fb21c72cba65793859f9bcd8ffd3a49c /libkdepim/categoryselectdialog.cpp
downloadkdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.zip
kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.gz
kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.bz2
Initial revision
Diffstat (limited to 'libkdepim/categoryselectdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/categoryselectdialog.cpp173
1 files changed, 173 insertions, 0 deletions
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 <schumacher@kde.org>
+
+ 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 <qlistview.h>
+#include <qpushbutton.h>
+#include <qheader.h>
+#include <qapp.h>
+#include <qmessagebox.h>
+
+
+#include <libkdepim/categoryeditdialog.h>
+#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"