Browse Source

included external help option (to display the help in the default viewer/browser)

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5851 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Mathias Simmack 15 years ago
parent
commit
cfe33a098a
  1. 7
      src/AddIns/Misc/HelpViewer/Source/Commands.cs
  2. 39
      src/AddIns/Misc/HelpViewer/Source/Core/DisplayHelp.cs
  3. 9
      src/AddIns/Misc/HelpViewer/Source/Core/Help3Service.cs
  4. 6
      src/AddIns/Misc/HelpViewer/Source/Help3OptionsPanel.xaml
  5. 9
      src/AddIns/Misc/HelpViewer/Source/Help3OptionsPanel.xaml.cs
  6. 8
      src/AddIns/Misc/HelpViewer/Source/Helper/Help3Configuration.cs

7
src/AddIns/Misc/HelpViewer/Source/Commands.cs

@ -42,8 +42,11 @@ namespace MSHelpSystem.Commands @@ -42,8 +42,11 @@ namespace MSHelpSystem.Commands
{
public override void Run()
{
PadDescriptor toc = WorkbenchSingleton.Workbench.GetPad(typeof(Help3TocPad));
if (toc != null) toc.BringPadToFront();
if (Help3Service.Config.ExternalHelp) DisplayHelp.Catalog();
else {
PadDescriptor toc = WorkbenchSingleton.Workbench.GetPad(typeof(Help3TocPad));
if (toc != null) toc.BringPadToFront();
}
}
}
}

39
src/AddIns/Misc/HelpViewer/Source/Core/DisplayHelp.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using System;
using System.Diagnostics;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;
@ -110,11 +111,14 @@ namespace MSHelpSystem.Core @@ -110,11 +111,14 @@ namespace MSHelpSystem.Core
static void DisplayLocalHelp(string arguments)
{
DisplayLocalHelp(arguments, true);
DisplayLocalHelp(arguments, !Help3Service.Config.ExternalHelp);
}
static void DisplayLocalHelp(string arguments, bool embedded)
{
if (string.IsNullOrEmpty(arguments)) {
throw new ArgumentNullException("arguments");
}
if (!Help3Environment.IsLocalHelp) { return; }
if (!HelpLibraryAgent.IsRunning) {
HelpLibraryAgent.Start();
@ -123,6 +127,10 @@ namespace MSHelpSystem.Core @@ -123,6 +127,10 @@ namespace MSHelpSystem.Core
string helpUrl = string.Format(@"{0}{1}{2}",
arguments, ProjectLanguages.GetCurrentLanguageAsHttpParam(), (embedded)?"&embedded=true":string.Empty);
if (Help3Service.Config.ExternalHelp) {
DisplayHelpWithShellExecute(helpUrl);
return;
}
BrowserPane browser = ActiveHelp3Browser();
if (browser != null) {
LoggingService.Info(string.Format("Help 3.0: Navigating to {0}", helpUrl));
@ -131,9 +139,35 @@ namespace MSHelpSystem.Core @@ -131,9 +139,35 @@ namespace MSHelpSystem.Core
}
}
static void DisplayHelpWithShellExecute(string arguments)
{
if (string.IsNullOrEmpty(arguments)) {
throw new ArgumentNullException("arguments");
}
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = arguments;
psi.UseShellExecute = true;
psi.WindowStyle = ProcessWindowStyle.Normal;
try {
Process p = Process.Start(psi);
p.WaitForInputIdle();
}
catch (Exception ex) {
LoggingService.Error(string.Format("Help 3.0: {0}", ex.ToString()));
}
}
static void DisplayHelpOnMSDN(string keyword)
{
if (string.IsNullOrEmpty(keyword)) {
throw new ArgumentNullException("keyword");
}
string msdnUrl = string.Format(@"http://msdn.microsoft.com/library/{0}.aspx", keyword);
if (Help3Service.Config.ExternalHelp) {
DisplayHelpWithShellExecute(msdnUrl);
return;
}
BrowserPane browser = ActiveHelp3Browser();
if (browser != null) {
LoggingService.Info(string.Format("Help 3.0: Navigating to {0}", msdnUrl));
@ -144,6 +178,9 @@ namespace MSHelpSystem.Core @@ -144,6 +178,9 @@ namespace MSHelpSystem.Core
static void DisplaySearchOnMSDN(string searchWords)
{
if (string.IsNullOrEmpty(searchWords)) {
throw new ArgumentNullException("searchWords");
}
string msdnUrl = string.Format(@"http://social.social.msdn.microsoft.com/Search/{0}/?query={1}&ac=3", CultureInfo.CurrentUICulture.ToString(), searchWords.Replace(" ", "+"));
BrowserPane browser = ActiveHelp3Browser();
if (browser != null) {

9
src/AddIns/Misc/HelpViewer/Source/Core/Help3Service.cs

@ -82,13 +82,8 @@ namespace MSHelpSystem.Core @@ -82,13 +82,8 @@ namespace MSHelpSystem.Core
static void Help3ConfigurationUpdated(object sender, EventArgs e)
{
if (config.OfflineMode) {
HelpClientWatcher.EnableLocalHelp();
}
else {
HelpClientWatcher.EnableOnlineHelp();
HelpLibraryAgent.Stop();
}
if (config.OfflineMode) HelpClientWatcher.EnableLocalHelp();
else HelpClientWatcher.EnableOnlineHelp();
}
#endregion

6
src/AddIns/Misc/HelpViewer/Source/Help3OptionsPanel.xaml

@ -22,7 +22,11 @@ @@ -22,7 +22,11 @@
Margin="0,0,0,5"/>
<RadioButton Name="onlineMode"
Content="{core:Localize AddIns.HelpViewer.UseOnlineHelpLabel}"
Click="Help3OnlineModeClicked" />
Click="Help3OnlineModeClicked"
Margin="0,0,0,8" />
<CheckBox Name="externalHelp"
Content="{core:Localize AddIns.HelpViewer.UseExternalHelp}"
Click="Help3UseExternalHelpClicked" />
</StackPanel>
</GroupBox>
</StackPanel>

9
src/AddIns/Misc/HelpViewer/Source/Help3OptionsPanel.xaml.cs

@ -3,7 +3,7 @@ using System.Collections.Generic; @@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
using System.Windows.Documents;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
@ -30,6 +30,7 @@ namespace MSHelpSystem @@ -30,6 +30,7 @@ namespace MSHelpSystem
help3Catalogs.SelectedValue = Help3Service.ActiveCatalog.ShortName;
help3Catalogs.IsEnabled = (Help3Service.Items.Count > 1 && Help3Service.Config.OfflineMode);
onlineMode.IsChecked = !Help3Service.Config.OfflineMode;
externalHelp.IsChecked = Help3Service.Config.ExternalHelp;
}
void Help3CatalogsSelectionChanged(object sender, SelectionChangedEventArgs e)
@ -54,6 +55,12 @@ namespace MSHelpSystem @@ -54,6 +55,12 @@ namespace MSHelpSystem
help3Catalogs.IsEnabled = false;
}
void Help3UseExternalHelpClicked(object sender, RoutedEventArgs e)
{
Help3Service.Config.ExternalHelp = (bool)externalHelp.IsChecked;
LoggingService.Info(string.Format("Help 3.0: {0} external help", (Help3Service.Config.ExternalHelp)?"Enabling":"Disabling"));
}
public override bool SaveOptions()
{
Help3Service.SaveHelpConfiguration();

8
src/AddIns/Misc/HelpViewer/Source/Helper/Help3Configuration.cs

@ -13,6 +13,7 @@ namespace MSHelpSystem.Helper @@ -13,6 +13,7 @@ namespace MSHelpSystem.Helper
string activeCatalogId = string.Empty;
bool offlineMode = true;
bool externalHelp = false;
[XmlElement("activeCatalog")]
public string ActiveCatalogId
@ -27,5 +28,12 @@ namespace MSHelpSystem.Helper @@ -27,5 +28,12 @@ namespace MSHelpSystem.Helper
get { return offlineMode; }
set { offlineMode = value; }
}
[XmlElement("externalHelp")]
public bool ExternalHelp
{
get { return externalHelp; }
set { externalHelp = value; }
}
}
}

Loading…
Cancel
Save