/// <summary>
        /// checks if the search specific settings are equal and if the search text is more specific
        /// </summary>
        /// <param name="search"></param>
        /// <returns>true if search is a refinement of this</returns>
        public bool IsRefinedSearch(Search search)
        {

            return this.SettingsEquals(search) && search.userSeachString.Contains(this.userSeachString);
        }
        public bool ParamEquals(Search search)
        {
            return this.userSeachString.Equals(search.userSeachString) && this.SettingsEquals(search);

        }
        //public void performSearch(String searchText)
        //{

        //    this.updateParams();
        //    this.resultEntries = new List<PwEntry>();
        //    this.searchStrings = searchText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        //    System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
        //    sw.Start();
        //    this.performSearch(rootGroup);
        //    System.Diagnostics.Debug.WriteLine("elapsed Ticks: " + sw.ElapsedTicks.ToString() + " elapsed ms: " + sw.ElapsedMilliseconds);
        //    //foreach (PwEntry entry in this.resultEntries)
        //    //{
        //    //    System.Diagnostics.Debug.WriteLine(entry.Strings.ReadSafe(PwDefs.TitleField));
        //    //}
        //    //System.Diagnostics.Debug.WriteLine(this.resultEntries.ToString());
        //}
        public bool SettingsEquals(Search search)
        {
            return this.SearchInTitle == search.SearchInTitle &&
            this.SearchInUrl == search.SearchInUrl &&
            this.SearchInUserName == search.SearchInUserName &&
            this.SearchInNotes == search.SearchInNotes &&
            this.SearchInPassword == search.SearchInPassword &&
            this.searchInOther == search.searchInOther &&
            this.SearchExcludeExpired == search.SearchExcludeExpired &&
            this.searchStringComparison == search.searchStringComparison;
        }