summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-02-06 18:00:15 (UTC)
committer zautrix <zautrix>2005-02-06 18:00:15 (UTC)
commit282c7fc5b72f8a6ff78a408e10a6018c290ed9f0 (patch) (side-by-side diff)
tree95291ead32969e45a6e4e405f15532c9f29543f7
parent002a447671cdec6a2ee7940bc183c630c61121fa (diff)
downloadkdepimpi-282c7fc5b72f8a6ff78a408e10a6018c290ed9f0.zip
kdepimpi-282c7fc5b72f8a6ff78a408e10a6018c290ed9f0.tar.gz
kdepimpi-282c7fc5b72f8a6ff78a408e10a6018c290ed9f0.tar.bz2
cat color better
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt4
-rw-r--r--korganizer/koeditorgeneral.cpp1
-rw-r--r--korganizer/kotodoview.cpp7
-rw-r--r--libkdepim/categoryselectdialog.cpp88
-rw-r--r--libkdepim/categoryselectdialog.h8
-rw-r--r--libkdepim/categoryselectdialog_base.cpp9
-rw-r--r--libkdepim/categoryselectdialog_base.h1
7 files changed, 103 insertions, 15 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 523c054..ee37492 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1225,4 +1225,8 @@
{ "Sub todos:<br>","Unter Todos:<br>" },
{ "Parent todo:<br>","Über Todo:<br>" },
+{ "Set current as color category","Setze Gewählte als Farbkategorie" },
+{ "","" },
+{ "","" },
+{ "","" },
{ "","" },
{ "","" },
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp
index f5eb52e..496f125 100644
--- a/korganizer/koeditorgeneral.cpp
+++ b/korganizer/koeditorgeneral.cpp
@@ -122,4 +122,5 @@ void KOEditorGeneral::editCategories()
connect(csd,SIGNAL(categoriesSelected(const QString &)), this ,SLOT(setCategories(const QString &)));
//KOGlobals::fitDialogToScreen( csd );
+ csd->setColorEnabled();
csd->setSelected( QStringList::split (",", mCategoriesLabel->text()) );
csd->exec();
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 1a1bce5..3011458 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -962,4 +962,5 @@ void KOTodoView::changedCategories(int index)
if (mActiveItem && !mActiveItem->todo()->isReadOnly ()) {
QStringList categories = mActiveItem->todo()->categories ();
+ QString colcat = categories.first();
if (categories.find (mCategory[index]) != categories.end ())
categories.remove (mCategory[index]);
@@ -967,4 +968,10 @@ void KOTodoView::changedCategories(int index)
categories.insert (categories.end(), mCategory[index]);
categories.sort ();
+ if ( !colcat.isEmpty() ) {
+ if ( categories.find ( colcat ) != categories.end () ) {
+ categories.remove( colcat );
+ categories.prepend( colcat );
+ }
+ }
mActiveItem->todo()->setCategories (categories);
mActiveItem->construct();
diff --git a/libkdepim/categoryselectdialog.cpp b/libkdepim/categoryselectdialog.cpp
index 7df9154..8b2bc4e 100644
--- a/libkdepim/categoryselectdialog.cpp
+++ b/libkdepim/categoryselectdialog.cpp
@@ -27,4 +27,5 @@
#include <qapp.h>
#include <qmessagebox.h>
+#include <kmessagebox.h>
@@ -42,13 +43,17 @@ CategorySelectDialog::CategorySelectDialog( KPimPrefs *prefs, QWidget* parent,
mPrefs( prefs )
{
- mCategories->header()->hide();
+ mColorItem = 0;
+ mColorEnabled = false;
+ mCategories->header()->hide();
- setCategories();
+ setCategories();
- connect(mButtonEdit,SIGNAL(clicked()),this, SLOT(editCategoriesDialog()));
- if ( QApplication::desktop()->width() > 460 )
- resize( 300, 360 );
- else
- showMaximized();
+ 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 *) ) );
}
void CategorySelectDialog::editCategoriesDialog()
@@ -56,5 +61,5 @@ void CategorySelectDialog::editCategoriesDialog()
KPIM::CategoryEditDialog* ced = new KPIM::CategoryEditDialog(mPrefs,this );
- ced->exec();
+ ced->exec();
delete ced;
setCategories();
@@ -62,9 +67,9 @@ void CategorySelectDialog::editCategoriesDialog()
void CategorySelectDialog::setCategories()
{
+ mColorItem = 0;
mCategories->clear();
mCategoryList.clear();
QStringList::Iterator it;
-
for (it = mPrefs->mCustomCategories.begin();
it != mPrefs->mCustomCategories.end(); ++it ) {
@@ -90,4 +95,6 @@ void CategorySelectDialog::setSelected(const QStringList &selList)
if (item->text() == *it) {
item->setOn(true);
+ if ( ! found )
+ setColorItem( item );
found = true;
break;
@@ -114,16 +121,75 @@ 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;
+ qDebug("click %d ", i->isOn());
+ 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::blue );
+ newColorItem->setPixmap ( 0, pix );
+ mColorItem = newColorItem;
+ }
+}
void CategorySelectDialog::slotApply()
{
QStringList categories;
QCheckListItem *item = (QCheckListItem *)mCategories->firstChild();
+ QString colcat;
while (item) {
if (item->isOn()) {
- categories.append(item->text());
+ if ( item == mColorItem)
+ colcat = item->text();
+ else
+ categories.append(item->text());
}
item = (QCheckListItem *)item->nextSibling();
}
-
+ categories.sort();
+ if ( ! colcat.isEmpty() )
+ categories.prepend( colcat );
QString categoriesStr = categories.join(",");
diff --git a/libkdepim/categoryselectdialog.h b/libkdepim/categoryselectdialog.h
index 9b6261c..680a093 100644
--- a/libkdepim/categoryselectdialog.h
+++ b/libkdepim/categoryselectdialog.h
@@ -27,4 +27,5 @@
class KPimPrefs;
+class QCheckListItem;
namespace KPIM {
@@ -40,4 +41,5 @@ class CategorySelectDialog : public CategorySelectDialog_base
void setCategories();
+ void setColorEnabled();
void setSelected(const QStringList &selList);
@@ -51,5 +53,6 @@ class CategorySelectDialog : public CategorySelectDialog_base
void editCategoriesDialog();
void updateCategoryConfig();
-
+ void setColorCat();
+ void clicked ( QListViewItem * );
signals:
void categoriesSelected(const QString &);
@@ -58,6 +61,9 @@ class CategorySelectDialog : public CategorySelectDialog_base
private:
+ bool mColorEnabled;
KPimPrefs *mPrefs;
QStringList mCategoryList;
+ QCheckListItem *mColorItem;
+ void setColorItem( QCheckListItem * );
class CategorySelectDialogPrivate;
diff --git a/libkdepim/categoryselectdialog_base.cpp b/libkdepim/categoryselectdialog_base.cpp
index 3f050cf..4793fd7 100644
--- a/libkdepim/categoryselectdialog_base.cpp
+++ b/libkdepim/categoryselectdialog_base.cpp
@@ -37,6 +37,7 @@ CategorySelectDialog_base::CategorySelectDialog_base( QWidget* parent, const cha
mCategories->addColumn( i18n( "Category" ) );
CategorySelectDialog_baseLayout->addWidget( mCategories );
-
- Layout12 = new QHBoxLayout( 0, 0, 6, "Layout12");
+ mSetColorCat = new QPushButton( this, "msetColor" );
+ CategorySelectDialog_baseLayout->addWidget( mSetColorCat );
+ Layout12 = new QHBoxLayout( 0, 0, 4, "Layout12");
mClear = new QPushButton( this, "mClear" );
@@ -49,5 +50,5 @@ CategorySelectDialog_base::CategorySelectDialog_base( QWidget* parent, const cha
CategorySelectDialog_baseLayout->addLayout( Layout12 );
- Layout11 = new QHBoxLayout( 0, 0, 6, "Layout11");
+ Layout11 = new QHBoxLayout( 0, 0, 4, "Layout11");
//mButtonHelp = new QPushButton( this, "mButtonHelp" );
@@ -85,4 +86,5 @@ CategorySelectDialog_base::CategorySelectDialog_base( QWidget* parent, const cha
// showMaximized();
//raise();
+ mSetColorCat->hide();
}
@@ -108,4 +110,5 @@ void CategorySelectDialog_base::languageChange()
//mApply->setText( i18n( "&Apply" ) );
mButtonOk->setText( i18n( "&OK" ) );
+ mSetColorCat->setText( i18n( "Set current as color category" ) );
mButtonCancel->setText( i18n( "&Cancel" ) );
}
diff --git a/libkdepim/categoryselectdialog_base.h b/libkdepim/categoryselectdialog_base.h
index af905ed..59ffa22 100644
--- a/libkdepim/categoryselectdialog_base.h
+++ b/libkdepim/categoryselectdialog_base.h
@@ -36,4 +36,5 @@ public:
QPushButton* mButtonOk;
QPushButton* mButtonCancel;
+ QPushButton* mSetColorCat;
public slots: