bool UserFiltersModel::Add (const RuleOptionDialog& dia) { const auto& itemRx = dia.GetType () == FilterOption::MTRegexp ? RegExp (dia.GetString (), dia.GetCase ()) : RegExp (); FilterOption fo; fo.Case_ = dia.GetCase (); fo.MatchType_ = dia.GetType (); fo.Domains_ = dia.GetDomains (); fo.NotDomains_ = dia.GetNotDomains (); const FilterItem item { dia.GetString ().toUtf8 (), itemRx, fo.MatchType_ == FilterOption::MTPlain ? QByteArrayMatcher (dia.GetString ().toUtf8 ()) : QByteArrayMatcher (), fo }; auto& container = dia.IsException () ? Filter_.Exceptions_ : Filter_.Filters_; const int size = dia.IsException () ? Filter_.Exceptions_.size () : rowCount (); beginInsertRows (QModelIndex (), size, size); container << item; endInsertRows (); WriteSettings (); return !dia.IsException (); }
bool UserFiltersModel::Add (const RuleOptionDialog& dia) { QString rule = dia.GetString (); int size = 0; if (dia.IsException ()) { size = Filter_.ExceptionStrings_.size (); Filter_.ExceptionStrings_ << rule; } else { size = rowCount (); Filter_.FilterStrings_ << rule; } beginInsertRows (QModelIndex (), size, size); if (dia.GetType () == FilterOption::MTRegexp) Filter_.RegExps_ [rule] = QRegExp (rule, dia.GetCase (), QRegExp::RegExp); Filter_.Options_ [rule].MatchType_ = dia.GetType (); Filter_.Options_ [rule].Case_ = dia.GetCase (); Filter_.Options_ [rule].Domains_ = dia.GetDomains (); Filter_.Options_ [rule].NotDomains_ = dia.GetNotDomains (); endInsertRows (); WriteSettings (); return !dia.IsException (); }
bool UserFiltersModel::Add (const RuleOptionDialog& dia) { const auto& itemRx = dia.GetType () == FilterOption::MTRegexp ? Util::RegExp (dia.GetString (), dia.GetCase ()) : Util::RegExp (); FilterOption fo; fo.Case_ = dia.GetCase (); fo.MatchType_ = dia.GetType (); fo.Domains_ = dia.GetDomains (); fo.NotDomains_ = dia.GetNotDomains (); const auto item = std::make_shared<FilterItem> (FilterItem { itemRx, dia.GetString ().toUtf8 (), fo }); auto& container = dia.IsException () ? Filter_.Exceptions_ : Filter_.Filters_; const int size = dia.IsException () ? Filter_.Exceptions_.size () : rowCount (); beginInsertRows (QModelIndex (), size, size); container << item; endInsertRows (); return !dia.IsException (); }