void DB::ImageInfo::addCategoryInfo( const QString& category, const StringSet& values )
{
    for ( StringSet::const_iterator valueIt = values.constBegin(); valueIt != values.constEnd(); ++valueIt ) {
        if (! m_categoryInfomation[category].contains( *valueIt ) ) {
            m_dirty = true;
            m_categoryInfomation[category].insert( *valueIt );
        }
    }
    saveChangesIfNotDelayed();
}
void DB::ImageInfo::removeCategoryInfo( const QString& category, const StringSet& values )
{
    for ( StringSet::const_iterator valueIt = values.constBegin(); valueIt != values.constEnd(); ++valueIt ) {
        if ( _categoryInfomation[category].contains( *valueIt ) ) {
            _dirty = true;
            _categoryInfomation[category].remove(*valueIt);
            _taggedAreas[category].remove(*valueIt);
        }
    }
    saveChangesIfNotDelayed();
}