Ticket #6125: mythgallery_filter.diff

File mythgallery_filter.diff, 2.8 KB (added by trisooma@…, 17 years ago)
  • 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();
  • mythgallery/galleryutil.cpp

     
    144144    QString blah = dir;
    145145    QDir d(blah);
    146146    QString currDir = d.absPath();
     147        QStringList filterDir(QStringList::split(":", gContext->GetSetting("GalleryFilter")));
    147148
    148149    bool isGallery;
    149150    const QFileInfoList* gList = d.entryInfoList("serial*.dat", QDir::Files);
     
    186187                (fi->fileName().find(".highlight.") > 0)))
    187188            continue;
    188189
     190                // skip filtered directory
     191                if (fi->isDir() && filterDir.count() > 0)
     192                {
     193                        bool match = false;
     194                       
     195            for (QStringList::Iterator itFD = filterDir.begin(); itFD != filterDir.end(); itFD++) {
     196                            if ( *itFD == fi->fileName())
     197                {
     198                    match = true;
     199                                        break;
     200                    }
     201            }
     202                        if (match)
     203                                continue;
     204                }
     205               
    189206        if (fi->isDir() && recurse)
    190207        {
    191208            GalleryUtil::LoadDirectory(
     
    194211        }
    195212        else
    196213        {
    197             ThumbItem *item = new ThumbItem(
    198                 fi->fileName(),
    199                 QDir::cleanDirPath(fi->absFilePath()), fi->isDir());
     214                ThumbItem *item = new ThumbItem(
     215                    fi->fileName(),
     216                    QDir::cleanDirPath(fi->absFilePath()), fi->isDir());
    200217
    201             itemList.append(item);
     218                itemList.append(item);
    202219
    203             if (itemDict)
    204                 itemDict->insert(item->GetName(), item);
     220                if (itemDict)
     221                    itemDict->insert(item->GetName(), item);
    205222
    206             if (thumbGen)
    207                 thumbGen->addFile(item->GetName());
     223                if (thumbGen)
     224                    thumbGen->addFile(item->GetName());
    208225        }
    209226    }
    210227