Ticket #6149: mythgallery_filter_19740.diff

File mythgallery_filter_19740.diff, 2.3 KB (added by trisooma <trisooma@…>, 17 years ago)
  • mythplugins/mythgallery/mythgallery/gallerysettings.cpp

     
    1111
    1212// General Settings
    1313
     14static HostLineEdit *MythGalleryFilter()
     15{
     16    HostLineEdit *gc = new HostLineEdit("GalleryFilter");
     17    gc->setLabel(QObject::tr("Directory filter"));
     18    gc->setValue("");
     19    gc->setHelpText(QObject::tr("Enter direcory names to be excluded in browser. "
     20                                "(multiple entries delimited with ':')"));
     21    return gc;
     22};
     23
    1424static HostLineEdit *MythGalleryDir()
    1525{
    1626    HostLineEdit *gc = new HostLineEdit("GalleryDir");
     
    218228    general->addChild(MythGallerySortOrder());
    219229    general->addChild(MythGalleryImportDirs());
    220230    general->addChild(MythGalleryMoviePlayerCmd());
     231    general->addChild(MythGalleryFilter());
    221232    addChild(general);
    222233
    223234    GalleryConfigurationGroup* config = new GalleryConfigurationGroup();
  • mythplugins/mythgallery/mythgallery/galleryutil.cpp

     
    213213    QString blah = dir;
    214214    QDir d(blah);
    215215    QString currDir = d.absolutePath();
    216 
     216    QString filterDir = gContext->GetSetting("GalleryFilter");
     217   
    217218    bool isGallery;
    218219    QFileInfoList gList = d.entryInfoList(QStringList("serial*.dat"),
    219220                                          QDir::Files);
     
    253254                (fi->fileName().indexOf(".highlight.") > 0)))
    254255            continue;
    255256
     257                // skip filtered directory
     258                if (fi->isDir() && !filterDir.isEmpty())
     259                {
     260                        bool match = false;
     261                       
     262            QStringList splitFD = filterDir.split(":");
     263            for (QStringList::Iterator itFD = splitFD.begin(); itFD != splitFD.end(); itFD++) {
     264                            if ( *itFD == fi->fileName())
     265                {
     266                    match = true;
     267                                        break;
     268                    }
     269            }
     270                        if (match)
     271                                continue;
     272                }
     273       
    256274        if (fi->isDir() && recurse)
    257275        {
    258276            GalleryUtil::LoadDirectory(