QTfrontend/model/ThemeFilterProxyModel.cpp
changeset 13248 b0022324fb4e
parent 13247 4df9d8cedf7f
child 13257 7d7eb27dab31
equal deleted inserted replaced
13247:4df9d8cedf7f 13248:b0022324fb4e
    26 
    26 
    27 ThemeFilterProxyModel::ThemeFilterProxyModel(QObject *parent)
    27 ThemeFilterProxyModel::ThemeFilterProxyModel(QObject *parent)
    28     : QSortFilterProxyModel(parent)
    28     : QSortFilterProxyModel(parent)
    29 {
    29 {
    30     isFilteringDLC = false;
    30     isFilteringDLC = false;
       
    31     isFilteringHidden = false;
    31 }
    32 }
    32 
    33 
    33 bool ThemeFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex & sourceParent) const
    34 bool ThemeFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex & sourceParent) const
    34 {
    35 {
    35     if(isFilteringDLC)
    36     if(isFilteringDLC || isFilteringHidden)
    36     {
    37     {
    37         QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
    38         QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
    38         bool isDLC = index.data(ThemeModel::IsDlcRole).toBool();
    39         bool isDLC = index.data(ThemeModel::IsDlcRole).toBool();
    39         return !isDLC;
    40         bool isHidden = index.data(ThemeModel::IsHiddenRole).toBool();
       
    41         return (
       
    42             ((isFilteringDLC && !isDLC) || !isFilteringDLC) &&
       
    43             ((isFilteringHidden && !isHidden) || !isFilteringHidden));
       
    44 
    40     }
    45     }
    41     else
    46     else
    42     {
    47     {
    43         return true;
    48         return true;
    44     }
    49     }
    47 void ThemeFilterProxyModel::setFilterDLC(bool enable)
    52 void ThemeFilterProxyModel::setFilterDLC(bool enable)
    48 {
    53 {
    49     isFilteringDLC = enable;
    54     isFilteringDLC = enable;
    50     invalidateFilter();
    55     invalidateFilter();
    51 }
    56 }
       
    57 
       
    58 void ThemeFilterProxyModel::setFilterHidden(bool enable)
       
    59 {
       
    60     isFilteringHidden = enable;
       
    61     invalidateFilter();
       
    62 }