summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-02-19 20:30:34 (UTC)
committer zautrix <zautrix>2005-02-19 20:30:34 (UTC)
commit6f4d42c16c87668279db1e0a0d3e4f4aad5b84f6 (patch) (side-by-side diff)
tree89fbb2b107a1681a1fbb19b35c3a9484652dc352
parent11b5b0eb24cfb943df106f7ee97646955bec0fd3 (diff)
downloadkdepimpi-6f4d42c16c87668279db1e0a0d3e4f4aad5b84f6.zip
kdepimpi-6f4d42c16c87668279db1e0a0d3e4f4aad5b84f6.tar.gz
kdepimpi-6f4d42c16c87668279db1e0a0d3e4f4aad5b84f6.tar.bz2
cat select fix
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/categoryeditdialog.h24
-rw-r--r--libkdepim/categoryselectdialog.cpp6
2 files changed, 28 insertions, 2 deletions
diff --git a/libkdepim/categoryeditdialog.h b/libkdepim/categoryeditdialog.h
index 4ebc802..3e8ab45 100644
--- a/libkdepim/categoryeditdialog.h
+++ b/libkdepim/categoryeditdialog.h
@@ -1,62 +1,86 @@
/*
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.
*/
#ifndef KPIM_CATEGORYEDITDIALOG_H
#define KPIM_CATEGORYEDITDIALOG_H
#include <categoryeditdialog_base.h>
+#include <qlistview.h>
class KPimPrefs;
namespace KPIM {
+ class CategorySelectItem :public QObject, public QCheckListItem
+{
+
+ Q_OBJECT
+ public:
+
+ CategorySelectItem(QListView * parent, const QString & text, Type tt) :
+ QCheckListItem (parent, text, tt ) , QObject( parent )
+ {;}
+
+ signals:
+ void stateChanged( QListViewItem*);
+
+ protected:
+
+ virtual void stateChange(bool b)
+ {
+ QCheckListItem::stateChange(b);
+ emit stateChanged( this );
+ }
+};
+
+
class CategoryEditDialog : public CategoryEditDialog_base
{
Q_OBJECT
public:
CategoryEditDialog( KPimPrefs *prefs, QWidget* parent = 0,
const char* name = 0,
bool modal = FALSE, WFlags fl = 0 );
~CategoryEditDialog();
public slots:
void add();
void remove();
void modify();
void accept();
void slotOk();
void slotApply();
signals:
void categoryConfigChanged();
private slots:
void editItem(QListViewItem *item);
void slotTextChanged(const QString &text);
KPimPrefs *mPrefs;
};
}
#endif
diff --git a/libkdepim/categoryselectdialog.cpp b/libkdepim/categoryselectdialog.cpp
index 8038934..4d80726 100644
--- a/libkdepim/categoryselectdialog.cpp
+++ b/libkdepim/categoryselectdialog.cpp
@@ -1,172 +1,174 @@
/*
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 <kmessagebox.h>
#include "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 )
{
mColorItem = 0;
mColorEnabled = false;
mCategories->header()->hide();
setCategories();
connect(mButtonEdit,SIGNAL(clicked()),this, SLOT(editCategoriesDialog()));
if ( QApplication::desktop()->width() > 460 )
resize( 300, 360 );
else
showMaximized();
connect( mSetColorCat, SIGNAL( clicked() ), this, SLOT( setColorCat() ) );
- connect( mCategories, SIGNAL( clicked(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) );
+ // connect( mCategories, SIGNAL( clicked(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) );
}
void CategorySelectDialog::editCategoriesDialog()
{
KPIM::CategoryEditDialog* ced = new KPIM::CategoryEditDialog(mPrefs,this );
ced->exec();
delete ced;
setCategories();
}
void CategorySelectDialog::setCategories()
{
mColorItem = 0;
mCategories->clear();
mCategoryList.clear();
QStringList::Iterator it;
for (it = mPrefs->mCustomCategories.begin();
it != mPrefs->mCustomCategories.end(); ++it ) {
- new QCheckListItem(mCategories,*it,QCheckListItem::CheckBox);
+ CategorySelectItem * item = new CategorySelectItem(mCategories,*it,QCheckListItem::CheckBox);
+ QObject::connect( item, SIGNAL( stateChanged(QListViewItem *) ), this, SLOT( clicked(QListViewItem *) ) );
+
}
}
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);
if ( ! found )
setColorItem( item );
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::setColorEnabled()
{
mColorEnabled = true;
mSetColorCat->show();
}
void CategorySelectDialog::setColorCat()
{
QCheckListItem * newColorItem = (QCheckListItem * )mCategories->currentItem ();
if ( !newColorItem ) {
KMessageBox::error(this,i18n("There is no current item."));
return;
}
if ( !newColorItem->isOn() )
newColorItem->setOn( true );
setColorItem( newColorItem );
}
void CategorySelectDialog::clicked ( QListViewItem * it )
{
if ( ! it )
return;
QCheckListItem *i = (QCheckListItem *) it;
if ( !i->isOn() && i==mColorItem) {
setColorItem( 0);
QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
while (item) {
if (item->isOn()) {
setColorItem( item );
break;
}
item = (QCheckListItem *)item->nextSibling();
}
} else if ( i->isOn() && !mColorItem) {
setColorItem( i);
}
}
void CategorySelectDialog::setColorItem( QCheckListItem * newColorItem )
{
if ( !mColorEnabled )
return;
if ( mColorItem == newColorItem)
return;
if ( mColorItem ) {
mColorItem->setPixmap ( 0, QPixmap() );
mColorItem = 0;
}
if ( newColorItem ) {
QPixmap pix (newColorItem->height()/2, newColorItem->height()/2 );
pix.fill(Qt::red );
newColorItem->setPixmap ( 0, pix );