bool UserFiltersModel::InitiateAdd (const QString& suggested) { RuleOptionDialog dia; dia.SetString (suggested); dia.setWindowTitle (tr ("Add a filter")); if (dia.exec () != QDialog::Accepted) return false; return Add (dia); }
void UserFiltersModel::Modify (int index) { int pos = index; bool isException; SplitRow (&pos, &isException); QString rule; if (isException) rule = Filter_.ExceptionStrings_.at (pos); else rule = Filter_.FilterStrings_.at (pos); RuleOptionDialog dia; dia.SetException (isException); dia.SetString (rule); dia.SetType (Filter_.Options_ [rule].MatchType_); dia.SetCase (Filter_.Options_ [rule].Case_); dia.SetDomains (Filter_.Options_ [rule].Domains_); dia.SetNotDomains (Filter_.Options_ [rule].NotDomains_); dia.setWindowTitle (tr ("Modify filter")); if (dia.exec () != QDialog::Accepted) return; Remove (index); Add (dia); }
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 (); }
void UserFiltersModel::Modify (int index) { int pos = index; bool isException; SplitRow (&pos, &isException); const auto& item = isException ? Filter_.Exceptions_.at (pos) : Filter_.Filters_.at (pos); RuleOptionDialog dia; dia.SetException (isException); dia.SetString (item.OrigString_); const auto& options = item.Option_; dia.SetType (options.MatchType_); dia.SetCase (options.Case_); dia.SetDomains (options.Domains_); dia.SetNotDomains (options.NotDomains_); dia.setWindowTitle (tr ("Modify filter")); if (dia.exec () != QDialog::Accepted) return; Remove (index); Add (dia); }
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) { 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 (); }