void DocTypeEdit::saveDocTypes() { // removed doctypes // FIXME: Remove unreferenced number cycles for ( QStringList::Iterator it = mRemovedTypes.begin(); it != mRemovedTypes.end(); ++it ) { if ( mOrigDocTypes.contains( *it ) ) { DocType dt = mOrigDocTypes[*it]; removeTypeFromDb( *it ); mOrigDocTypes.remove( *it ); mChangedDocTypes.remove( *it ); emit removedType( *it ); } } // added doctypes for ( QStringList::Iterator it = mAddedTypes.begin(); it != mAddedTypes.end(); ++it ) { QString name = *it; if ( mOrigDocTypes.contains( name ) ) { // just to check DocType dt = mChangedDocTypes[name]; QString numCycleName = dt.numberCycleName(); kDebug() << "Number cycle name for to add doctype " << name << ": " << numCycleName; dt.save(); } } // edited doctypes QMap<QString, QString>::Iterator it; for ( it = mTypeNameChanges.begin(); it != mTypeNameChanges.end(); ++it ) { QString oldName( it.key() ); if ( mOrigDocTypes.contains( oldName ) ) { QString newName = it.value(); kDebug() << "Renaming " << oldName << " to " << newName; DocType dt = mOrigDocTypes[oldName]; if ( mChangedDocTypes.contains( newName ) ) { dt = mChangedDocTypes[newName]; } else { dt.setName( newName ); } mOrigDocTypes.remove( oldName ); mOrigDocTypes[newName] = dt; dt.save(); } else { kError() << "Can not find doctype to change named " << oldName; } } // check if numberCycles have changed. QMap<QString, DocType>::Iterator mapit; for ( mapit = mChangedDocTypes.begin(); mapit != mChangedDocTypes.end(); ++mapit ) { DocType dt = mapit.value(); dt.save(); } // now the list of document types should be up to date and reflected into // the database. DocType::clearMap(); }
void NumberCycleDialog::slotUpdateExample() { DocType dt; dt.setName( i18n( "Doc-Type" ) ); int id = mBaseWidget->mCounterEdit->value(); dt.setIdentTemplate( mBaseWidget->mIdTemplEdit->text() ); QString idText = dt.generateDocumentIdent( QDate::currentDate(), QLatin1String("<doc type"), QLatin1String("<addressUid>"), id ); mBaseWidget->mExampleId->setText( idText ); }