summaryrefslogtreecommitdiffabout
path: root/libkdepim/categoryeditdialog.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/categoryeditdialog.cpp
downloadkdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.zip
kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.gz
kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.bz2
Initial revision
Diffstat (limited to 'libkdepim/categoryeditdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/categoryeditdialog.cpp135
1 files changed, 135 insertions, 0 deletions
diff --git a/libkdepim/categoryeditdialog.cpp b/libkdepim/categoryeditdialog.cpp
new file mode 100644
index 0000000..87172c1
--- a/dev/null
+++ b/libkdepim/categoryeditdialog.cpp
@@ -0,0 +1,135 @@
+/*
+ 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 <qstringlist.h>
+#include <qlineedit.h>
+#include <qlistview.h>
+#include <qheader.h>
+#include <qpushbutton.h>
+#include <qapplication.h>
+
+#include "kpimprefs.h"
+
+#include "categoryeditdialog.h"
+
+using namespace KPIM;
+
+CategoryEditDialog::CategoryEditDialog( KPimPrefs *prefs, QWidget* parent,
+ const char* name, bool modal,
+ WFlags fl )
+ : CategoryEditDialog_base( parent, name, modal, fl ),
+ mPrefs( prefs )
+{
+ mCategories->header()->hide();
+
+ QStringList::Iterator it;
+ bool categoriesExist=false;
+ for (it = mPrefs->mCustomCategories.begin();
+ it != mPrefs->mCustomCategories.end(); ++it ) {
+ new QListViewItem(mCategories,*it);
+ categoriesExist=true;
+ }
+
+ connect(mCategories,SIGNAL(selectionChanged(QListViewItem *)),
+ SLOT(editItem(QListViewItem *)));
+ connect(mEdit,SIGNAL(textChanged ( const QString & )),this,SLOT(slotTextChanged(const QString &)));
+ mButtonRemove->setEnabled(categoriesExist);
+ mButtonModify->setEnabled(categoriesExist);
+ mButtonAdd->setEnabled(!mEdit->text().isEmpty());
+ if ( QApplication::desktop()->width() > 460 )
+ resize( 300, 360 );
+}
+
+/*
+ * Destroys the object and frees any allocated resources
+ */
+CategoryEditDialog::~CategoryEditDialog()
+{
+ // no need to delete child widgets, Qt does it all for us
+}
+
+void CategoryEditDialog::slotTextChanged(const QString &text)
+{
+ mButtonAdd->setEnabled(!text.isEmpty());
+}
+
+void CategoryEditDialog::add()
+{
+ if (!mEdit->text().isEmpty()) {
+ new QListViewItem(mCategories,mEdit->text());
+ mEdit->setText("");
+ mButtonRemove->setEnabled(mCategories->childCount()>0);
+ mButtonModify->setEnabled(mCategories->childCount()>0);
+ }
+}
+
+void CategoryEditDialog::remove()
+{
+ if (mCategories->currentItem()) {
+ delete mCategories->currentItem();
+ mButtonRemove->setEnabled(mCategories->childCount()>0);
+ mButtonModify->setEnabled(mCategories->childCount()>0);
+ }
+}
+
+void CategoryEditDialog::modify()
+{
+ if (!mEdit->text().isEmpty()) {
+ if (mCategories->currentItem()) {
+ mCategories->currentItem()->setText(0,mEdit->text());
+ }
+ }
+}
+void CategoryEditDialog::accept()
+{
+ slotOk();
+}
+
+void CategoryEditDialog::slotOk()
+{
+ slotApply();
+ QDialog::accept();
+}
+
+void CategoryEditDialog::slotApply()
+{
+ mPrefs->mCustomCategories.clear();
+
+ QListViewItem *item = mCategories->firstChild();
+ while(item) {
+ mPrefs->mCustomCategories.append(item->text(0));
+ item = item->nextSibling();
+ }
+ mPrefs->writeConfig();
+
+ emit categoryConfigChanged();
+}
+
+void CategoryEditDialog::editItem(QListViewItem *item)
+{
+ mEdit->setText(item->text(0));
+ mButtonRemove->setEnabled(true);
+ mButtonModify->setEnabled(true);
+}
+
+#include "categoryeditdialog.moc"