Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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 );
}