Browse Source

Made HtmlHelp2 addin use the normal search results pad.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@324 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
a7780f0bec
  1. 27
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 19
      src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin
  3. 15
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
  4. 59
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs
  5. 15
      src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorList.cs
  6. 57
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs
  7. 16
      src/Main/Core/Project/Src/Services/ToolBarService/ToolBarService.cs

27
AddIns/ICSharpCode.SharpDevelop.addin

@ -790,7 +790,6 @@ @@ -790,7 +790,6 @@
</Path>
<!-- end toolbars -->
<Path name = "/SharpDevelop/Workbench/OpenFileTab/ContextMenu">
<MenuItem id = "Close"
label = "${res:OpenFileTabEventHandler.ContextMenu.Close}"
@ -1796,15 +1795,23 @@ @@ -1796,15 +1795,23 @@
</Path>
<Path name = "/SharpDevelop/Pads/SearchResultPanel/Toolbar">
<ToolbarItem id = "ExpandAll"
icon = "Icons.16x16.OpenAssembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.ExpandAll.ToolTip}"
class = "SearchAndReplace.ExpandAll"/>
<ToolbarItem id = "CollapseAll"
icon = "Icons.16x16.Assembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
class = "SearchAndReplace.CollapseAll"/>
<Condition name = "Ownerstate" ownerstate = "DefaultMode" action = "Exclude">
<ToolbarItem id = "ExpandAll"
icon = "Icons.16x16.OpenAssembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.ExpandAll.ToolTip}"
class = "SearchAndReplace.ExpandAll"/>
<ToolbarItem id = "CollapseAll"
icon = "Icons.16x16.Assembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
class = "SearchAndReplace.CollapseAll"/>
</Condition>
<Condition name = "Ownerstate" ownerstate = "SpecialPanelMode" action = "Exclude">
<ToolbarItem id = "BackToNormalView"
icon = "Icons.16x16.Assembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.BackToNormalView.ToolTip}"
class = "SearchAndReplace.BackToNormalView"/>
</Condition>
<ToolbarItem id = "ExpandCollapseSeparator" type = "Separator" />
<ToolbarItem id = "ShowLast"

19
src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin

@ -35,11 +35,6 @@ @@ -35,11 +35,6 @@
title = "${res:AddIns.HtmlHelp2.IndexResults}"
icon = "HtmlHelp2.16x16.IndexResults"
class = "HtmlHelp2.HtmlHelp2IndexResultsPad"/>
<Pad id = "SearchResultsPad"
category = "Help2"
title = "${res:AddIns.HtmlHelp2.SearchResults}"
icon = "HtmlHelp2.16x16.SearchResults"
class = "HtmlHelp2.HtmlHelp2SearchResultsPad"/>
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions">
@ -73,7 +68,7 @@ @@ -73,7 +68,7 @@
shortcut = "Control|Alt|F3"
class = "HtmlHelp2.ShowSearchMenuCommand"
insertafter = "IndexPadCommand"/>
<MenuItem id = "FavoritesPadCommand"
<!--<MenuItem id = "FavoritesPadCommand"
label = "${res:AddIns.HtmlHelp2.Favorites}"
icon = "HtmlHelp2.16x16.Favorites"
shortcut = "Control|Alt|F"
@ -81,22 +76,16 @@ @@ -81,22 +76,16 @@
insertafter = "SearchPadCommand"/>
<MenuItem id = "HtmlHelp2Separator1"
type = "Separator"
insertafter = "FavoritesPadCommand"/>
insertafter = "FavoritesPadCommand"/>-->
<MenuItem id = "IndexResultsPadCommand"
label = "${res:AddIns.HtmlHelp2.IndexResults}"
icon = "HtmlHelp2.16x16.IndexResults"
shortcut = "Shift|Alt|F2"
class = "HtmlHelp2.ShowIndexResultsMenuCommand"
insertafter = "HtmlHelp2Separator1"/>
<MenuItem id = "SearchResultsPadCommand"
label = "${res:AddIns.HtmlHelp2.SearchResults}"
icon = "HtmlHelp2.16x16.SearchResults"
shortcut = "Shift|Alt|F3"
class = "HtmlHelp2.ShowSearchResultsMenuCommand"
insertafter = "IndexResultsPadCommand"/>
insertafter = "SearchPadCommand"/>
<MenuItem id = "HtmlHelp2Separator2"
type = "Separator"
insertafter = "SearchResultsPadCommand"
insertafter = "IndexResultsPadCommand"
insertbefore = "ViewGPL"/>
</Path>

15
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs

@ -237,10 +237,7 @@ namespace HtmlHelp2 @@ -237,10 +237,7 @@ namespace HtmlHelp2
return;
}
PadDescriptor searchResults = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchResultsPad));
if(searchResults == null) {
return;
}
HtmlHelp2SearchResultsView searchResults = HtmlHelp2SearchResultsView.Instance;
try {
searchIsBusy = true;
@ -265,8 +262,8 @@ namespace HtmlHelp2 @@ -265,8 +262,8 @@ namespace HtmlHelp2
searchDialog.Dispose();
try {
((HtmlHelp2SearchResultsPad)searchResults.PadContent).CleanUp();
((HtmlHelp2SearchResultsPad)searchResults.PadContent).SearchResultsListView.BeginUpdate();
searchResults.CleanUp();
searchResults.SearchResultsListView.BeginUpdate();
for(int i = 1; i <= matchingTopics.Count; i++) {
IHxTopic topic = matchingTopics.ItemAt(i);
@ -278,15 +275,15 @@ namespace HtmlHelp2 @@ -278,15 +275,15 @@ namespace HtmlHelp2
lvi.SubItems.Add(topic.Rank.ToString());
lvi.Tag = topic;
((HtmlHelp2SearchResultsPad)searchResults.PadContent).SearchResultsListView.Items.Add(lvi);
searchResults.SearchResultsListView.Items.Add(lvi);
}
}
reuseMatches.Enabled = true;
}
finally {
((HtmlHelp2SearchResultsPad)searchResults.PadContent).SearchResultsListView.EndUpdate();
((HtmlHelp2SearchResultsPad)searchResults.PadContent).SetStatusMessage(searchTerm.Text);
searchResults.SearchResultsListView.EndUpdate();
searchResults.SetStatusMessage(searchTerm.Text);
searchResults.BringPadToFront();
searchIsBusy = false;
}

59
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs

@ -16,34 +16,35 @@ namespace HtmlHelp2 @@ -16,34 +16,35 @@ namespace HtmlHelp2
using MSHelpServices;
using HtmlHelp2Service;
public class ShowSearchResultsMenuCommand : AbstractMenuCommand
{
public override void Run()
{
PadDescriptor searchResults = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchResultsPad));
if(searchResults != null) searchResults.BringPadToFront();
}
}
public class HtmlHelp2SearchResultsPad : AbstractPadContent
public class HtmlHelp2SearchResultsView : UserControl
{
ListView listView = new ListView();
ColumnHeader title = new ColumnHeader();
ColumnHeader location = new ColumnHeader();
ColumnHeader rank = new ColumnHeader();
static HtmlHelp2SearchResultsView instance;
public override Control Control
{
public static HtmlHelp2SearchResultsView Instance {
get {
return listView;
if (instance == null)
instance = new HtmlHelp2SearchResultsView();
return instance;
}
}
public override void RedrawContent()
public void BringPadToFront()
{
PadDescriptor descriptor = WorkbenchSingleton.Workbench.GetPad(typeof(SearchAndReplace.SearchResultPanel));
SearchAndReplace.SearchResultPanel srp = (SearchAndReplace.SearchResultPanel)descriptor.PadContent;
srp.ShowSpecialPanel(this);
descriptor.BringPadToFront();
}
public override void Refresh()
{
this.SetListViewHeader();
base.Refresh();
}
public ListView SearchResultsListView
@ -53,7 +54,7 @@ namespace HtmlHelp2 @@ -53,7 +54,7 @@ namespace HtmlHelp2
}
}
public HtmlHelp2SearchResultsPad()
public HtmlHelp2SearchResultsView()
{
this.SetListViewHeader();
listView.Columns.Add(title);
@ -71,7 +72,7 @@ namespace HtmlHelp2 @@ -71,7 +72,7 @@ namespace HtmlHelp2
listView.Resize += new EventHandler(ListViewResize);
listView.DoubleClick += new EventHandler(ListViewDoubleClick);
listView.ColumnClick += new ColumnClickEventHandler(ColumnClick);
listView.CreateControl();
Controls.Add(listView);
}
private void SetListViewHeader()
@ -123,14 +124,14 @@ namespace HtmlHelp2 @@ -123,14 +124,14 @@ namespace HtmlHelp2
* better if I could write what was searched and how many topics are
* matching.
*/
string text = StringParser.Parse("${res:AddIns.HtmlHelp2.ResultsOfSearchResults}",
new string[,]
{{"0", indexTerm},
{"1", listView.Items.Count.ToString()},
{"2", (listView.Items.Count == 1)?"${res:AddIns.HtmlHelp2.SingleTopic}":"${res:AddIns.HtmlHelp2.MultiTopic}"}}
);
StatusBarService.SetMessage(text);
string text = StringParser.Parse("${res:AddIns.HtmlHelp2.ResultsOfSearchResults}",
new string[,]
{{"0", indexTerm},
{"1", listView.Items.Count.ToString()},
{"2", (listView.Items.Count == 1)?"${res:AddIns.HtmlHelp2.SingleTopic}":"${res:AddIns.HtmlHelp2.MultiTopic}"}}
);
StatusBarService.SetMessage(text);
}
#region Sorting
@ -148,8 +149,8 @@ namespace HtmlHelp2 @@ -148,8 +149,8 @@ namespace HtmlHelp2
int a = Int32.Parse(((ListViewItem)x).SubItems[col].Text);
int b = Int32.Parse(((ListViewItem)y).SubItems[col].Text);
if(a > b) return 1;
else if(a < b) return -1;
else return 0;
else if(a < b) return -1;
else return 0;
default:
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}

15
src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorList.cs

@ -70,7 +70,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -70,7 +70,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
public override Control Control {
get {
return contentPanel;
@ -123,7 +123,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -123,7 +123,7 @@ namespace ICSharpCode.SharpDevelop.Gui
listView.Resize += new EventHandler(ListViewResize);
listView.CreateControl();
contentPanel.Controls.Add(listView);
toolStrip = ToolbarService.CreateToolStrip(this, "/SharpDevelop/Pads/ErrorList/Toolbar");
toolStrip.Stretch = true;
toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
@ -188,7 +188,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -188,7 +188,7 @@ namespace ICSharpCode.SharpDevelop.Gui
taskToolTip.SetToolTip(listView, description);
taskToolTip.Active = true;
} else {
taskToolTip.RemoveAll();
taskToolTip.RemoveAll();
taskToolTip.Active = false;
}
currentListViewItem = item;
@ -291,7 +291,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -291,7 +291,7 @@ namespace ICSharpCode.SharpDevelop.Gui
/// <summary>
/// Removes new lines, carriage returns and tab characters from
/// the list view task description and replaces them with a space.
/// the list view task description and replaces them with a space.
/// </summary>
/// <param name="description">The task list description.</param>
/// <returns>A formatted task list description.</returns>
@ -304,11 +304,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -304,11 +304,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void UpdateToolstripStatus()
{
foreach (ToolStripItem item in toolStrip.Items) {
if (item is IStatusUpdate) {
((IStatusUpdate)item).UpdateStatus();
}
}
ToolbarService.UpdateToolbar(toolStrip);
}
void InternalShowResults()
@ -327,7 +323,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -327,7 +323,6 @@ namespace ICSharpCode.SharpDevelop.Gui
listView.EndUpdate();
UpdateToolstripStatus();
}
}
}

57
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs

@ -22,13 +22,14 @@ using ICSharpCode.SharpDevelop.Gui; @@ -22,13 +22,14 @@ using ICSharpCode.SharpDevelop.Gui;
namespace SearchAndReplace
{
public enum SearchResultPanelViewMode {
Flat,
public enum SearchResultPanelViewMode
{
Flat,
PerFile,
Structural
}
public class SearchResultPanel : AbstractPadContent
public class SearchResultPanel : AbstractPadContent, IOwnerState
{
static SearchResultPanel instance;
@ -38,8 +39,9 @@ namespace SearchAndReplace @@ -38,8 +39,9 @@ namespace SearchAndReplace
}
}
Panel myPanel = new Panel();
ExtTreeView resultTreeView = new ExtTreeView();
Panel myPanel = new Panel();
ExtTreeView resultTreeView = new ExtTreeView();
ToolStrip toolStrip;
string curPattern = null;
List<SearchResult> curResults = null;
@ -139,6 +141,8 @@ namespace SearchAndReplace @@ -139,6 +141,8 @@ namespace SearchAndReplace
public void ShowSearchResults(string pattern, List<SearchResult> results)
{
RemoveSpecialPanel();
this.curPattern = pattern;
this.curResults = results;
if (results == null) {
@ -167,12 +171,53 @@ namespace SearchAndReplace @@ -167,12 +171,53 @@ namespace SearchAndReplace
resultTreeView.Dock = DockStyle.Fill;
resultTreeView.Font = ExtTreeNode.Font;
resultTreeView.IsSorted = false;
ToolStrip toolStrip = ToolbarService.CreateToolStrip(this, "/SharpDevelop/Pads/SearchResultPanel/Toolbar");
toolStrip = ToolbarService.CreateToolStrip(this, "/SharpDevelop/Pads/SearchResultPanel/Toolbar");
toolStrip.Stretch = true;
toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
myPanel.Controls.AddRange(new Control[] { resultTreeView, toolStrip} );
}
// Special panel mode:
enum SearchResultPanelOwnerState
{
DefaultMode = 1,
SpecialPanelMode = 2,
// warning: OwnerState does a FLAG comparison!
}
Control specialPanel;
Enum IOwnerState.InternalState {
get {
return (specialPanel != null) ? SearchResultPanelOwnerState.SpecialPanelMode : SearchResultPanelOwnerState.DefaultMode;
}
}
public void ShowSpecialPanel(Control ctl)
{
ctl.Dock = DockStyle.Fill;
if (specialPanel == ctl)
return;
if (specialPanel != null)
myPanel.Controls.Remove(specialPanel);
else
myPanel.Controls.Remove(resultTreeView);
specialPanel = ctl;
myPanel.Controls.Add(ctl);
myPanel.Controls.SetChildIndex(ctl, 0);
ToolbarService.UpdateToolbar(toolStrip);
}
public void RemoveSpecialPanel()
{
if (specialPanel != null) {
specialPanel = null;
myPanel.Controls.Remove(specialPanel);
myPanel.Controls.Add(resultTreeView);
myPanel.Controls.SetChildIndex(resultTreeView, 0);
ToolbarService.UpdateToolbar(toolStrip);
}
}
}
}

16
src/Main/Core/Project/Src/Services/ToolBarService/ToolBarService.cs

@ -11,7 +11,7 @@ using System.Windows.Forms; @@ -11,7 +11,7 @@ using System.Windows.Forms;
namespace ICSharpCode.Core
{
public static class ToolbarService
public static class ToolbarService
{
// readonly static string toolBarPath = "/SharpDevelop/Workbench/ToolBar";
@ -35,14 +35,15 @@ namespace ICSharpCode.Core @@ -35,14 +35,15 @@ namespace ICSharpCode.Core
{
ToolStrip toolStrip = new ToolStrip();
toolStrip.Items.AddRange(CreateToolStripItems(owner, treeNode));
UpdateToolbar(toolStrip); // setting Visible is only possible after the items have been added
return toolStrip;
}
public static ToolStrip CreateToolStrip(object owner, string addInTreePath)
{
ToolStrip toolStrip = new ToolStrip();
toolStrip.ShowItemToolTips = true;
toolStrip.Items.AddRange(CreateToolStripItems(owner, addInTreePath));
UpdateToolbar(toolStrip); // setting Visible is only possible after the items have been added
return toolStrip;
}
@ -53,7 +54,7 @@ namespace ICSharpCode.Core @@ -53,7 +54,7 @@ namespace ICSharpCode.Core
treeNode = AddInTree.GetTreeNode(addInTreePath);
} catch (TreePathNotFoundException) {
return null;
}
List<ToolStrip> toolBars = new List<ToolStrip>();
foreach (AddInTreeNode childNode in treeNode.ChildNodes.Values) {
@ -61,5 +62,14 @@ namespace ICSharpCode.Core @@ -61,5 +62,14 @@ namespace ICSharpCode.Core
}
return toolBars.ToArray();
}
public static void UpdateToolbar(ToolStrip toolStrip)
{
foreach (ToolStripItem item in toolStrip.Items) {
if (item is IStatusUpdate) {
((IStatusUpdate)item).UpdateStatus();
}
}
}
}
}

Loading…
Cancel
Save