-rw-r--r-- | library/categoryedit_p.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/library/categoryedit_p.cpp b/library/categoryedit_p.cpp index 14ac2e1..ee0da22 100644 --- a/library/categoryedit_p.cpp +++ b/library/categoryedit_p.cpp @@ -64,134 +64,137 @@ CategoryEdit::CategoryEdit( const QArray<int> &recCats, d = 0; setCategories( recCats, appName, visibleName ); } void CategoryEdit::setCategories( const QArray<int> &recCats, const QString &appName, const QString &visibleName ) { if ( !d ) d = new CategoryEditPrivate( (QWidget*)parent(), name() ); d->mStrApp = appName; d->mVisible = visibleName; QStringList appCats = d->mCategories.labels( d->mStrApp ); QArray<int> cats = d->mCategories.ids(d->mStrApp, appCats); lvView->clear(); QStringList::ConstIterator it; int i, j; for ( i = 0, it = appCats.begin(); it != appCats.end(); i++, ++it ) { QCheckListItem *chk; chk = new QCheckListItem( lvView, (*it), QCheckListItem::CheckBox ); if ( !d->mCategories.isGlobal((*it)) ) chk->setText( 1, tr(d->mVisible) ); else chk->setText( 1, tr("All") ); // Is this record using this category, then we should check it for ( j = 0; j < int(recCats.count()); j++ ) { if ( cats[i] == recCats[j] ) { chk->setOn( true ); break; } } } lvView->setSorting( 0, TRUE ); lvView->sort(); if ( lvView->childCount() < 1 ) txtCat->setEnabled( FALSE ); else { lvView->setSelected( lvView->firstChild(), true ); } } CategoryEdit::~CategoryEdit() { if ( d ) delete d; } void CategoryEdit::slotSetText( QListViewItem *selected ) { d->editItem = selected; if ( !d->editItem ) return; txtCat->setText( d->editItem->text(0) ); txtCat->setEnabled( true ); if ( d->editItem->text(1) == tr("All") ) chkGlobal->setChecked( true ); else chkGlobal->setChecked( false ); } void CategoryEdit::slotAdd() { QString name = tr( "New Category" ); - bool insertOk = FALSE; + int uid = 0; int num = 0; - while ( !insertOk ) { + while ( !uid ) { if ( num++ > 0 ) name = tr("New Category ") + QString::number(num); - insertOk = d->mCategories.addCategory( d->mStrApp, name ); + if ( chkGlobal->isChecked() ) + uid = d->mCategories.addGlobalCategory( name ); + else + uid = d->mCategories.addCategory( d->mStrApp, name ); } QCheckListItem *chk; chk = new QCheckListItem( lvView, name, QCheckListItem::CheckBox ); if ( !chkGlobal->isChecked() ) chk->setText( 1, tr(d->mVisible) ); else chk->setText( 1, tr("All") ); lvView->setSelected( chk, TRUE ); txtCat->selectAll(); txtCat->setFocus(); } void CategoryEdit::slotRemove() { d->editItem = lvView->selectedItem(); if ( d->editItem ) { QListViewItem *sibling = d->editItem->nextSibling(); d->mCategories.removeCategory( d->mStrApp, d->editItem->text(0) ); delete d->editItem; d->editItem = 0; if ( sibling ) lvView->setSelected( sibling, TRUE ); } if ( lvView->childCount() < 1 ) { txtCat->clear(); txtCat->setEnabled( FALSE ); } } void CategoryEdit::slotSetGlobal( bool isChecked ) { if ( d->editItem ) { if ( isChecked ) d->editItem->setText( 1, tr("All") ); else d->editItem->setText( 1, tr(d->mVisible) ); d->mCategories.setGlobal( d->mStrApp, d->editItem->text( 0 ), isChecked ); } } void CategoryEdit::slotTextChanged( const QString &strNew ) { if ( d->editItem ) { if ( chkGlobal->isChecked() ) d->mCategories.renameGlobalCategory( d->editItem->text(0), strNew ); else d->mCategories.renameCategory( d->mStrApp, d->editItem->text(0), strNew ); d->editItem->setText( 0, strNew ); } } QArray<int> CategoryEdit::newCategories() { QArray<int> a; if ( d ) { d->mCategories.save( categoryFileName() ); QListViewItemIterator it( lvView ); QValueList<int> l; for ( ; it.current(); ++it ) { |