Esempio n. 1
0
	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);
	}
Esempio n. 2
0
	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);
	}
Esempio n. 3
0
	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 ();
	}
Esempio n. 6
0
	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 ();
	}