Beispiel #1
0
        /// <summary>
        /// Removes all occurrances of given file.
        /// </summary>
        /// <param name="file">Recently used file.</param>
        public void Remove(RecentlyUsedFile file)
        {
            var changed = false;

            for (var i = BaseItems.Count - 1; i >= 0; i--)
            {
                if (BaseItems[i].Equals(file))
                {
                    BaseItems.RemoveAt(i);
                    changed = true;
                }
            }
            if (changed)
            {
                OnChanged(EventArgs.Empty);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Inserts file name on top of list if one does not exist or moves it to top if one does exist.
        /// </summary>
        /// <param name="fileName">File name.</param>
        public bool Push(string fileName)
        {
            RecentlyUsedFile file;

            try {
                file = new RecentlyUsedFile(fileName);
            } catch (ArgumentException) { return(false); }
            BaseItems.Insert(0, file);
            for (var i = BaseItems.Count - 1; i > 0; i--)   //remove same file if somewhere on the list
            {
                if (BaseItems[i].Equals(file))
                {
                    BaseItems.RemoveAt(i);
                }
            }
            if (BaseItems.Count > MaximumCount)   //limit to maximum count
            {
                BaseItems.RemoveRange(MaximumCount, BaseItems.Count - MaximumCount);
            }
            OnChanged(EventArgs.Empty);
            return(true);
        }