Browse Source

Fixed use of ActiveWorkbenchWindow / ActiveViewContent / ActiveContent.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2563 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
89bba2c88c
  1. 10
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/PackageFilesView.cs
  2. 35
      src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs
  3. 1
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  4. 6
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryPad.cs
  5. 14
      src/Main/Base/Project/Src/Gui/IWorkbench.cs
  6. 6
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs
  7. 6
      src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs
  8. 6
      src/Main/Base/Project/Src/Gui/Pads/ToolsPad.cs
  9. 32
      src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs
  10. 10
      src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs
  11. 4
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  12. 4
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
  13. 6
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Gui/SearchAndReplacePanel.cs

10
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/PackageFilesView.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.WixBinding @@ -44,7 +44,7 @@ namespace ICSharpCode.WixBinding
TitleName = StringParser.Parse("${res:ICSharpCode.WixBinding.PackageFilesView.Title}");
this.project = project;
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += ActiveWorkbenchWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged += ActiveViewContentChanged;
}
public static PackageFilesView ActiveView {
@ -98,7 +98,7 @@ namespace ICSharpCode.WixBinding @@ -98,7 +98,7 @@ namespace ICSharpCode.WixBinding
public override void Dispose()
{
if (packageFilesControl != null) {
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged -= ActiveWorkbenchWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged -= ActiveViewContentChanged;
packageFilesControl.Dispose();
packageFilesControl = null;
}
@ -214,7 +214,7 @@ namespace ICSharpCode.WixBinding @@ -214,7 +214,7 @@ namespace ICSharpCode.WixBinding
/// Wix document then we update the document's contents. When the user switches
/// back we reload the view if the corresponding Wix document is open.
/// </summary>
void ActiveWorkbenchWindowChanged(object source, EventArgs e)
void ActiveViewContentChanged(object source, EventArgs e)
{
if (IsWixDocumentWindowActive) {
if (IsDirty) {
@ -238,7 +238,7 @@ namespace ICSharpCode.WixBinding @@ -238,7 +238,7 @@ namespace ICSharpCode.WixBinding
get {
WixDocument document = packageFilesControl.Document;
if (document != null) {
IViewContent view = WorkbenchSingleton.Workbench.ActiveContent as IViewContent;
IViewContent view = WorkbenchSingleton.Workbench.ActiveViewContent;
if (view != null) {
return FileUtility.IsEqualFileName(view.PrimaryFileName, document.FileName);
}
@ -252,7 +252,7 @@ namespace ICSharpCode.WixBinding @@ -252,7 +252,7 @@ namespace ICSharpCode.WixBinding
/// </summary>
bool IsActiveWindow {
get {
return Object.ReferenceEquals(WorkbenchSingleton.Workbench.ActiveContent, this);
return Object.ReferenceEquals(WorkbenchSingleton.Workbench.ActiveViewContent, this);
}
}

35
src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDialogDesigner.cs

@ -71,9 +71,9 @@ namespace ICSharpCode.WixBinding @@ -71,9 +71,9 @@ namespace ICSharpCode.WixBinding
JumpToDialogElement(id);
if (base.IsFormsDesignerVisible) {
// Reload so the correct dialog is displayed.
SaveToPrimary();
base.SaveToPrimary();
DialogId = id;
LoadFromPrimary();
base.LoadFromPrimary();
} else {
// Need to open the designer.
DialogId = id;
@ -81,22 +81,7 @@ namespace ICSharpCode.WixBinding @@ -81,22 +81,7 @@ namespace ICSharpCode.WixBinding
}
}
/* //DG:
/// <summary>
/// Set dialog id to null after calling base.Deselecting since base.Deselecting
/// calls MergeFormChanges which will reference this dialog id.
/// </summary>
public override void Deselecting()
{
base.Deselecting();
DialogId = null;
RemoveWixToolboxSideTab();
}
/// <summary>
/// Designer has been selected.
/// </summary>
public override void Selected()
protected override void LoadFromPrimary()
{
try {
if (!ignoreDialogIdSelectedInTextEditor) {
@ -114,20 +99,8 @@ namespace ICSharpCode.WixBinding @@ -114,20 +99,8 @@ namespace ICSharpCode.WixBinding
DialogId = "InvalidXML";
AddToErrorList(ex);
}
base.Selected();
RemoveFormsDesignerToolboxSideTabs();
AddWixToolboxSideTab();
}
/// <summary>
/// Removes the WinForms toolbox side tabs.
/// </summary>
public override void SwitchedTo()
{
base.SwitchedTo();
RemoveFormsDesignerToolboxSideTabs();
base.LoadFromPrimary();
}
*/
/// <summary>
/// Gets the Wix document filename.

1
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -359,6 +359,7 @@ namespace ICSharpCode.FormsDesigner @@ -359,6 +359,7 @@ namespace ICSharpCode.FormsDesigner
protected override void LoadFromPrimary()
{
UnloadDesigner();
Reload();
}

6
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryPad.cs

@ -23,7 +23,7 @@ namespace ICSharpCode.XmlEditor @@ -23,7 +23,7 @@ namespace ICSharpCode.XmlEditor
public XPathQueryPad()
{
xPathQueryControl = new XPathQueryControl();
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += ActiveWorkbenchWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged += ActiveViewContentChanged;
Properties properties = PropertyService.Get(XPathQueryControlProperties, new Properties());
xPathQueryControl.SetMemento(properties);
instance = this;
@ -48,7 +48,7 @@ namespace ICSharpCode.XmlEditor @@ -48,7 +48,7 @@ namespace ICSharpCode.XmlEditor
{
if (!disposed) {
disposed = true;
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged -= ActiveWorkbenchWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged -= ActiveViewContentChanged;
Properties properties = xPathQueryControl.CreateMemento();
PropertyService.Set(XPathQueryControlProperties, properties);
xPathQueryControl.Dispose();
@ -60,7 +60,7 @@ namespace ICSharpCode.XmlEditor @@ -60,7 +60,7 @@ namespace ICSharpCode.XmlEditor
xPathQueryControl.RemoveXPathNodeTextMarkers();
}
void ActiveWorkbenchWindowChanged(object source, EventArgs e)
void ActiveViewContentChanged(object source, EventArgs e)
{
xPathQueryControl.ActiveWindowChanged();
}

14
src/Main/Base/Project/Src/Gui/IWorkbench.cs

@ -47,14 +47,14 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -47,14 +47,14 @@ namespace ICSharpCode.SharpDevelop.Gui
/// <summary>
/// The active workbench window.
/// This is the window containing the active view content.
/// </summary>
IWorkbenchWindow ActiveWorkbenchWindow {
get;
}
/// <summary>
/// Is called, when the workbench window which the user has into
/// the foreground (e.g. editable) changed to a new one.
/// Is called, when the ActiveWorkbenchWindow property changes.
/// </summary>
event EventHandler ActiveWorkbenchWindowChanged;
@ -71,13 +71,19 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -71,13 +71,19 @@ namespace ICSharpCode.SharpDevelop.Gui
event EventHandler ActiveViewContentChanged;
/// <summary>
/// The active content. This can be either a IViewContent or a IPadContent, depending on
/// where the focus currently is.
/// The active content, depending on where the focus currently is.
/// If a document is currently active, this will be equal to ActiveViewContent,
/// if a pad has the focus, this property will return the IPadContent instance.
/// </summary>
object ActiveContent {
get;
}
/// <summary>
/// Is called, when the active content has changed.
/// </summary>
event EventHandler ActiveContentChanged;
IWorkbenchLayout WorkbenchLayout {
get;
set;

6
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs

@ -82,11 +82,11 @@ namespace ICSharpCode.SharpDevelop.Project @@ -82,11 +82,11 @@ namespace ICSharpCode.SharpDevelop.Project
ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
ProjectService.SolutionPreferencesSaving += ProjectServiceSolutionPreferencesSaving;
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += ActiveWindowChanged;
WorkbenchSingleton.Workbench.ActiveContentChanged += ActiveContentChanged;
if (ProjectService.OpenSolution != null) {
ProjectServiceSolutionLoaded(null, new SolutionEventArgs(ProjectService.OpenSolution));
}
ActiveWindowChanged(null, null);
ActiveContentChanged(null, null);
}
public void StartLabelEdit(ExtTreeNode node)
@ -112,7 +112,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -112,7 +112,7 @@ namespace ICSharpCode.SharpDevelop.Project
string lastFileName;
void ActiveWindowChanged(object sender, EventArgs e)
void ActiveContentChanged(object sender, EventArgs e)
{
if (WorkbenchSingleton.Workbench.ActiveContent == this) {
projectBrowserPanel.ProjectBrowserControl.PadActivated();

6
src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs

@ -97,7 +97,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -97,7 +97,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
void WorkbenchWindowChanged(object sender, EventArgs e)
void WorkbenchActiveContentChanged(object sender, EventArgs e)
{
IHasPropertyContainer c = WorkbenchSingleton.Workbench.ActiveContent as IHasPropertyContainer;
if (c == null) {
@ -148,8 +148,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -148,8 +148,8 @@ namespace ICSharpCode.SharpDevelop.Gui
grid.ContextMenuStrip = MenuService.CreateContextMenu(this, "/SharpDevelop/Views/PropertyPad/ContextMenu");
LoggingService.Debug("PropertyPad created");
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += WorkbenchWindowChanged;
WorkbenchWindowChanged(null, null);
WorkbenchSingleton.Workbench.ActiveContentChanged += WorkbenchActiveContentChanged;
WorkbenchActiveContentChanged(null, null);
}
void CombineClosedEvent(object sender, EventArgs e)

6
src/Main/Base/Project/Src/Gui/Pads/ToolsPad.cs

@ -44,8 +44,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -44,8 +44,8 @@ namespace ICSharpCode.SharpDevelop.Gui
panel.Controls.Add(noToolsAvailable);
child = noToolsAvailable;
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += WorkbenchWindowChanged;
WorkbenchWindowChanged(null, null);
WorkbenchSingleton.Workbench.ActiveContentChanged += WorkbenchActiveContentChanged;
WorkbenchActiveContentChanged(null, null);
}
void SetChild(Control newChild)
@ -58,7 +58,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -58,7 +58,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
void WorkbenchWindowChanged(object sender, EventArgs e)
void WorkbenchActiveContentChanged(object sender, EventArgs e)
{
IToolsHost th = WorkbenchSingleton.Workbench.ActiveContent as IToolsHost;
if (th == null) {

32
src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs

@ -136,8 +136,10 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -136,8 +136,10 @@ namespace ICSharpCode.SharpDevelop.Gui
if (layout == null) {
this.ActiveWorkbenchWindow = null;
this.ActiveContent = null;
} else {
this.ActiveWorkbenchWindow = layout.ActiveWorkbenchWindow;
this.ActiveContent = layout.ActiveContent;
}
}
@ -157,13 +159,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -157,13 +159,13 @@ namespace ICSharpCode.SharpDevelop.Gui
if (activeWorkbenchWindow != null) {
activeWorkbenchWindow.ActiveViewContentChanged += OnWorkbenchActiveViewContentChanged;
}
if (ActiveWorkbenchWindowChanged != null) {
ActiveWorkbenchWindowChanged(this, EventArgs.Empty);
}
OnWorkbenchActiveViewContentChanged(null, null);
}
// raise even when activeWorkbenchWindow didn't change because we also use
// ActiveWorkbenchWindowChanged to signal changes in ActiveContent (when switching between pads)
if (ActiveWorkbenchWindowChanged != null) {
ActiveWorkbenchWindowChanged(this, EventArgs.Empty);
}
}
}
@ -175,6 +177,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -175,6 +177,8 @@ namespace ICSharpCode.SharpDevelop.Gui
this.ActiveViewContent = window.ActiveViewContent;
else
this.ActiveViewContent = null;
this.ActiveContent = layout.ActiveContent;
}
public event EventHandler ActiveWorkbenchWindowChanged;
@ -204,14 +208,26 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -204,14 +208,26 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </summary>
public event EventHandler ActiveViewContentChanged;
object activeContent;
public object ActiveContent {
get {
if (layout == null) {
return null;
return activeContent;
}
private set {
if (activeContent != value) {
activeContent = value;
if (ActiveContentChanged != null) {
ActiveContentChanged(this, EventArgs.Empty);
}
}
return layout.ActiveContent;
}
}
/// <summary>
/// Is called, when the active content has changed.
/// </summary>
public event EventHandler ActiveContentChanged;
#endregion
public DefaultWorkbench()

10
src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

@ -102,6 +102,16 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -102,6 +102,16 @@ namespace ICSharpCode.SharpDevelop.Gui
// initialize workbench-dependent services:
Project.ProjectService.InitializeService();
NavigationService.InitializeService();
workbench.ActiveContentChanged += delegate {
Console.WriteLine("ActiveContentChanged to " + workbench.ActiveContent);
};
workbench.ActiveViewContentChanged += delegate {
Console.WriteLine("ActiveViewContentChanged to " + workbench.ActiveViewContent);
};
workbench.ActiveWorkbenchWindowChanged += delegate {
Console.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
};
}
/// <summary>

4
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -513,8 +513,8 @@ namespace ICSharpCode.SharpDevelop @@ -513,8 +513,8 @@ namespace ICSharpCode.SharpDevelop
defaultProjectContent.AddReferencedContent(ParserService.GetProjectContentForReference(item));
}
if (WorkbenchSingleton.Workbench != null) {
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += delegate {
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null) {
WorkbenchSingleton.Workbench.ActiveViewContentChanged += delegate {
if (WorkbenchSingleton.Workbench.ActiveViewContent != null) {
string file = WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName;
if (file != null) {
IParser parser = GetParser(file);

4
src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -60,7 +60,7 @@ namespace ICSharpCode.SharpDevelop.Project
{
if (!initialized) {
initialized = true;
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += ActiveWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged += ActiveViewContentChanged;
FileService.FileRenamed += FileServiceFileRenamed;
FileService.FileRemoved += FileServiceFileRemoved;
}
@ -172,7 +172,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -172,7 +172,7 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
static void ActiveWindowChanged(object sender, EventArgs e)
static void ActiveViewContentChanged(object sender, EventArgs e)
{
IViewContent viewContent = WorkbenchSingleton.Workbench.ActiveViewContent;
if (OpenSolution == null || viewContent == null) {

6
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Gui/SearchAndReplacePanel.cs

@ -341,7 +341,7 @@ namespace SearchAndReplace @@ -341,7 +341,7 @@ namespace SearchAndReplace
return null;
}
void WorkbenchWindowChanged(object source, EventArgs e)
void WorkbenchActiveViewContentChanged(object source, EventArgs e)
{
TextEditorControl activeTextEditorControl = SearchReplaceUtilities.GetActiveTextEditor();
if (activeTextEditorControl != this.textEditor) {
@ -369,7 +369,7 @@ namespace SearchAndReplace @@ -369,7 +369,7 @@ namespace SearchAndReplace
void RemoveActiveWindowChangedHandler()
{
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged -= WorkbenchWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged -= WorkbenchActiveViewContentChanged;
}
/// <summary>
@ -398,7 +398,7 @@ namespace SearchAndReplace @@ -398,7 +398,7 @@ namespace SearchAndReplace
findFirst = true;
selection = GetCurrentTextSelection();
AddSelectionChangedHandler(SearchReplaceUtilities.GetActiveTextEditor());
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += WorkbenchWindowChanged;
WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchActiveViewContentChanged;
}
void RemoveSelectionSearchHandlers()

Loading…
Cancel
Save