diff --git a/.vs/AIProofread/v17/.suo b/.vs/AIProofread/v17/.suo index e918858..e05b1bd 100644 Binary files a/.vs/AIProofread/v17/.suo and b/.vs/AIProofread/v17/.suo differ diff --git a/AIProofread/Bridge.cs b/AIProofread/Bridge.cs index 48a509e..f3aa980 100644 --- a/AIProofread/Bridge.cs +++ b/AIProofread/Bridge.cs @@ -233,13 +233,17 @@ namespace AIProofread item.ResetMarkStyle(); } } - marks.Clear(); DocumentUtil.ClearProofreadMarks(); } catch (Exception ex) { Logger.Log("ClearAllProofreadMark", ex); } + try + { + // 清空marks + marks.Clear(); + }catch (Exception) { } } public void removeBookmark(string markId) @@ -416,7 +420,7 @@ namespace AIProofread // 先滚动到可视区域 //doc.ActiveWindow.ScrollIntoView(mark.Range); marks[proofreadId].Select(); - Globals.ThisAddIn.SendMessageToWeb("select", proofreadId); + //Globals.ThisAddIn.SendMessageToWeb("select", proofreadId); } Globals.ThisAddIn.SendMessageToWeb("select_proofread", proofreadId); } @@ -438,7 +442,6 @@ namespace AIProofread //var app = Globals.ThisAddIn.Application; //var cur = app.Selection; // - int aIndex = 0; foreach (var correct in list) { //cur.TypeText(correct.Insert); @@ -451,16 +454,8 @@ namespace AIProofread // return it.start + correct.Insert_len; //}).ToList(); int index = 0; - if (aIndex++ > 20) - { - Console.WriteLine(aIndex); - } foreach (var item in correct.Diffs) { - if(item.id == 109288) - { - Console.WriteLine("xxx"); - } var mark = AddBookmark(item, index, correct.Sentence_offset, correct.Insert_len, correct.Paragraph_offset); if (item.tag != "i") index++; if (mark != null) @@ -522,7 +517,10 @@ namespace AIProofread // 判断是否已经存在 if (controls.Contains(markName)) { - controls.Remove(markName); + try + { + controls.Remove(markName); + }catch (Exception) { } } Range findRange = null; if (paragraphIndex > document.Paragraphs.Count) return null; diff --git a/AIProofread/Config.cs b/AIProofread/Config.cs index b4d11dd..15f78b0 100644 --- a/AIProofread/Config.cs +++ b/AIProofread/Config.cs @@ -8,15 +8,17 @@ namespace AIProofread public static readonly string APP_NAME = "AI校对王"; public static readonly string APP_VERSION = "1.0.4"; public static bool IS_WPS = false; + + public static readonly string CONFIG_FILE = AppDomain.CurrentDomain.BaseDirectory + "app.json"; #if DEBUG /// /// 网页访问地址 /// - public static readonly string WEB_PATH = "http://192.168.10.100:5173/"; - public static readonly bool RUN_IN_DEBUG = true; + public static string WEB_PATH = "http://192.168.10.100:5173/"; + public static bool RUN_IN_DEBUG = true; #else - public static readonly string WEB_PATH = "https://gm-plugin.gachafun.com/"; - public static readonly bool RUN_IN_DEBUG = false; + public static string WEB_PATH = "https://gm-plugin.gachafun.com/"; + public static bool RUN_IN_DEBUG = false; #endif public static readonly string APP_DATA_PATH = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\ai_proofread"; public static readonly string APP_LOG_PATH = APP_DATA_PATH + "\\logs\\"; diff --git a/AIProofread/Controls/ProofreadMainControl.cs b/AIProofread/Controls/ProofreadMainControl.cs index a9eb303..59bf542 100644 --- a/AIProofread/Controls/ProofreadMainControl.cs +++ b/AIProofread/Controls/ProofreadMainControl.cs @@ -36,5 +36,13 @@ namespace AIProofread.Controls { return label1.Width; } + public void ResetWeb() + { + if (!this.web.IsDisposed) + { + this.web.Stop(); + this.web.Dispose(); + } + } } } diff --git a/AIProofread/ProofreadItem.cs b/AIProofread/ProofreadItem.cs index a5f883e..5ca837c 100644 --- a/AIProofread/ProofreadItem.cs +++ b/AIProofread/ProofreadItem.cs @@ -93,9 +93,14 @@ namespace UtilLib public void ResetMarkStyle() { if (mark == null) return; - mark.Range.Font.Size = originSize; // 还原 - //mark.Range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone; - mark.Range.Shading.BackgroundPatternColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic; + if (mark.Range == null) return; + try + { + mark.Range.Font.Size = originSize; // 还原 + //mark.Range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone; + mark.Range.Shading.BackgroundPatternColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic; + } + catch (Exception) { } } public void Process(int status) diff --git a/AIProofread/Ribbon1.cs b/AIProofread/Ribbon1.cs index 7793208..27362b6 100644 --- a/AIProofread/Ribbon1.cs +++ b/AIProofread/Ribbon1.cs @@ -19,6 +19,11 @@ namespace AIProofread //btnLogout.Label = "退出\n登录"; Globals.ThisAddIn.ribbon = this; + ShowDebug(); + } + + public void ShowDebug() + { if (Config.RUN_IN_DEBUG) { grpDebug.Visible = true; @@ -118,7 +123,8 @@ namespace AIProofread private void btnClear_Click(object sender, RibbonControlEventArgs e) { - DocumentUtil.ClearProofreadMarks(); + //DocumentUtil.ClearProofreadMarks(); + Bridge.bridge.clearAllProofreadMark(); Globals.ThisAddIn.SendMessageToWeb("clear-tips", null); } diff --git a/AIProofread/ThisAddIn.cs b/AIProofread/ThisAddIn.cs index c18adde..9f9906c 100644 --- a/AIProofread/ThisAddIn.cs +++ b/AIProofread/ThisAddIn.cs @@ -10,6 +10,7 @@ using System.Threading; using Microsoft.Office.Interop.Word; using System.Linq; using System.Windows.Forms; +using System.IO; namespace AIProofread { @@ -50,8 +51,12 @@ namespace AIProofread private void Application_WindowDeactivate(Word.Document doc, Window Wn) { - Logger.Log("Application_WindowDeactivate -- " + doc.FullName + " visible:" + currentDocumentTaskPane.Visible); + Logger.Log("Application_WindowDeactivate -- " + doc.FullName + " visible:"); //HidePanel(Doc); + // 处理wps直接资源管理器新开文档面板闪烁问题 + //if (IsWPS) { + // this.currentDocumentTaskPane.Visible = false; + //} } private void Application_WindowActivate(Word.Document activeDoc, Window Wn) @@ -122,6 +127,8 @@ namespace AIProofread } if (taskPanels.ContainsKey(doc)) { + var control = (ProofreadMainControl)taskPanels[doc].Control; + control.ResetWeb(); taskPanels[doc].Visible = false; taskPanels[doc].Dispose(); taskPanels.Remove(doc); @@ -227,10 +234,37 @@ namespace AIProofread // } //} + private void InitAppByConfig() + { + try + { + if (File.Exists(Config.CONFIG_FILE)) + { + string content = File.ReadAllText(Config.CONFIG_FILE); + Logger.Log("Found app.json " + content); + if (content == null || content.Length == 0) return; + AppConfig config = JsonConvert.DeserializeObject(content); + if (config.AppUrl?.Length > 0) + { + Config.WEB_PATH = config.AppUrl; + } + if (config.AppRunInDebug) + { + Config.RUN_IN_DEBUG = config.AppRunInDebug; + if(this.ribbon != null) + { + this.ribbon.ShowDebug(); + } + } + } + }catch (Exception) { } + } + private void ThisAddIn_Startup(object sender, System.EventArgs e) { try { + InitAppByConfig(); FmainThreadContext = SynchronizationContext.Current; // 启动地址 applicationStartupPath = System.Windows.Forms.Application.StartupPath; diff --git a/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache b/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache index 1e5811c..94f9107 100644 Binary files a/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache and b/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache differ diff --git a/AIProofread/obj/Debug/AIProofread.dll b/AIProofread/obj/Debug/AIProofread.dll index b1bde2a..d4a85fc 100644 Binary files a/AIProofread/obj/Debug/AIProofread.dll and b/AIProofread/obj/Debug/AIProofread.dll differ diff --git a/AIProofread/obj/Debug/AIProofread.pdb b/AIProofread/obj/Debug/AIProofread.pdb index 04e6b43..dd80fb8 100644 Binary files a/AIProofread/obj/Debug/AIProofread.pdb and b/AIProofread/obj/Debug/AIProofread.pdb differ diff --git a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 5cb44f7..dbd6ae7 100644 Binary files a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index df29434..90f79c7 100644 Binary files a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/util-lib/AppConfig.cs b/util-lib/AppConfig.cs new file mode 100644 index 0000000..8d6ea0a --- /dev/null +++ b/util-lib/AppConfig.cs @@ -0,0 +1,9 @@ + +namespace UtilLib +{ + public class AppConfig + { + public string AppUrl { get; set; } + public bool AppRunInDebug { get; set; } + } +} diff --git a/util-lib/util-lib.csproj b/util-lib/util-lib.csproj index 5f8b034..b4772b9 100644 --- a/util-lib/util-lib.csproj +++ b/util-lib/util-lib.csproj @@ -52,6 +52,7 @@ +