void Settings::CategoryItem::renameCategory(DB::MemberMap* memberMap)
{
    QDir dir(QString::fromLatin1("%1/CategoryImages").arg(
            Settings::SettingsData::instance()->imageDirectory()));

    const QStringList files = dir.entryList(QStringList()
                                            << QString::fromLatin1("%1*").arg(m_categoryOrig));

    for (QStringList::ConstIterator fileNameIt = files.begin();
         fileNameIt != files.end();
         ++fileNameIt) {

        QString newName = m_category + (*fileNameIt).mid(m_categoryOrig.length());
        dir.rename(*fileNameIt, newName);
    }

    // update category names for privacy-lock settings:
    Settings::SettingsData* settings = Settings::SettingsData::instance();
    DB::ImageSearchInfo info = settings->currentLock();
    const bool exclude = settings->lockExcludes();

    info.renameCategory(m_categoryOrig, m_category);
    settings->setCurrentLock(info, exclude);

    DB::ImageDB::instance()->categoryCollection()->rename(m_categoryOrig, m_category);
    memberMap->renameCategory(m_categoryOrig, m_category);

#ifdef HAVE_KFACE
    // Also tell the face management page to update the recognition database
    emit newCategoryNameSaved(m_categoryOrig, m_category);
#endif

    m_categoryOrig = m_category;
}
void Settings::CategoryPage::loadSettings( Settings::SettingsData* opt )
{
    _categories->clear();
    QList<DB::CategoryPtr> categories = DB::ImageDB::instance()->categoryCollection()->categories();
    for( QList<DB::CategoryPtr>::Iterator it = categories.begin(); it != categories.end(); ++it ) {
        if( !(*it)->isSpecialCategory() ) {
#ifdef HAVE_KFACE
            Settings::CategoryItem *item = new CategoryItem( (*it)->name(), (*it)->text(),(*it)->iconName(),(*it)->viewType(), (*it)->thumbnailSize(), _categories, (*it)->positionable() );
            if ((*it)->positionable()) {
                connect(item, SIGNAL(newCategoryNameSaved(QString,QString)),
                        this, SLOT(addToRenamedList(QString,QString)));
            }
#else
            new CategoryItem( (*it)->name(), (*it)->text(),(*it)->iconName(),(*it)->viewType(), (*it)->thumbnailSize(), _categories, (*it)->positionable() );
#endif
        }
    }

    _untaggedBox->loadSettings( opt );
}