Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/05/13 10:52:45 (11 years ago)
Author:
jkarder
Message:

#2116:

  • refactored outermost view host detection
  • fixed update logic of breadcrumb trail
  • fixed some views
Location:
branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs

    r10103 r10106  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.ComponentModel;
    2524using System.Drawing;
    2625using System.Linq;
     
    4241      viewsLabel.Visible = false;
    4342      viewsLabelVisible = true;
    44       IsValidOutermostViewhost = true;
    4543
    4644      breadcrumbControl.ViewHost = this;
     
    6159
    6260    public bool HotlinkingEnabled { get; set; }
    63 
    64     [DefaultValue(true)]
    65     public bool IsValidOutermostViewhost { get; set; }
    6661
    6762    private IContentView cachedView;
     
    371366      if (!newCrumbs.Any()) return;
    372367      var ll = new LinkedList<IContent>();
    373       foreach (var c in oldCrumbs) {
    374         if (c != newCrumbs.First())
    375           ll.AddLast(c);
    376         else break;
     368      if (newCrumbs.Contains(oldCrumbs.LastOrDefault())) {
     369        foreach (var c in oldCrumbs) {
     370          if (c != newCrumbs.First())
     371            ll.AddLast(c);
     372          else break;
     373        }
    377374      }
    378375      foreach (var c in newCrumbs)
     
    382379
    383380    private void PerformOutermostViewHostDetection() {
    384       if (!IsValidOutermostViewhost) return;
    385       var mainForm = MainFormManager.GetMainForm<MainForm>();
    386       if (mainForm == null) return; // needed for designer
    387       var outermostViewHost = mainForm.GetOutermostControlOfType<ViewHost>(this);
    388       viewContextMenuStrip.ShowBreadcrumbsToolStripMenuItem.Checked = outermostViewHost == this;
     381      var parentContentViews = GetParentViewsOfType<ContentView>();
     382      viewContextMenuStrip.ShowBreadcrumbsToolStripMenuItem.Checked = !parentContentViews.Any();
    389383    }
    390384    #endregion
  • branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Views/View.cs

    r9920 r10106  
    2121
    2222using System;
     23using System.Collections.Generic;
    2324using System.Linq;
    2425using System.Reflection;
     
    261262        ((Control)this).ResumeRepaint(refresh);
    262263    }
     264
     265    public IEnumerable<T> GetParentViewsOfType<T>() where T : View {
     266      for (var view = Parent; view != null; view = view.Parent)
     267        if (view is View) yield return view as T;
     268    }
    263269  }
    264270}
Note: See TracChangeset for help on using the changeset viewer.