fix: 修正扩展初始化时面板没有初始化的问题

This commit is contained in:
LittleBoy 2025-04-19 18:36:27 +08:00
parent fa62b66a02
commit d061406026
3 changed files with 41 additions and 17 deletions

Binary file not shown.

View File

@ -110,14 +110,8 @@ namespace AIProofread.Model
public DocumentInfo SetActiveDocument(Document originDocument)
{
if (originDocument == null) return null;
var document = Get(originDocument);
var document = InitDocument(originDocument);
// 如果不存在,则添加
if (document == null)
{
document = new DocumentInfo(originDocument);
Add(document);
}
if (ActiveDocument == document) return document;
else if (Globals.ThisAddIn.IsWPS)
{
@ -135,5 +129,18 @@ namespace AIProofread.Model
{
documentList.ForEach(d => d.HidePane());
}
public DocumentInfo InitDocument(Document originDocument)
{
var document = Get(originDocument);
// 如果不存在,则添加
if (document == null)
{
document = new DocumentInfo(originDocument);
Add(document);
}
return document;
}
}
}

View File

@ -109,7 +109,7 @@ namespace AIProofread
//formCommonsenseDetection.ShowInTaskbar = false;
//formCommonsenseDetection.Show();
Logger.Debug("ThisAddIn_Startup Platform --> " + (IsWPS?"WPS":"WORD"));
Logger.Debug("ThisAddIn_Startup Platform --> " + (IsWPS ? "WPS" : "WORD"));
// 捕获全局异常
AppDomain.CurrentDomain.UnhandledException += ProcessApplicationException;
System.Windows.Forms.Application.ThreadException += ProcessApplicationFormException;
@ -121,7 +121,7 @@ namespace AIProofread
Application.WindowActivate += Application_WindowActivate;
//Application.WindowDeactivate += Application_WindowDeactivate;
Application.DocumentBeforeSave += Application_DocumentBeforeSave;
(Application as ApplicationEvents4_Event).NewDocument += Application_NewDocument;
Application.DocumentChange += Application_DocumentChange;
// 选区发生变化事件
@ -137,7 +137,7 @@ namespace AIProofread
}
catch (Exception ex1)
{
Logger.Error("Startup Error",ex1);
Logger.Error("Startup Error", ex1);
}
}
@ -161,7 +161,7 @@ namespace AIProofread
}
catch (Exception ex)
{
Logger.Error("InitDeviceId Error:",ex);
Logger.Error("InitDeviceId Error:", ex);
}
});
}
@ -187,7 +187,7 @@ namespace AIProofread
// 可能出现另存问题 所以需要更新文件名称
var oldName = item.fileName;
var currentName = item.CurrentDocument.FullName;
if(oldName != currentName)
if (oldName != currentName)
{
item.fileName = currentName;
}
@ -219,7 +219,7 @@ namespace AIProofread
}
catch (Exception ex)
{
Logger.Debug(ex.Message,ex);
Logger.Debug(ex.Message, ex);
}
//await System.Threading.Tasks.Task.Run(() =>
// {
@ -244,7 +244,7 @@ namespace AIProofread
}
catch (Exception ex)
{
Logger.Error("检测升级信息异常: ",ex);
Logger.Error("检测升级信息异常: ", ex);
}
});
}
@ -286,9 +286,25 @@ namespace AIProofread
}
catch (Exception ex)
{
Logger.Error("Init WPS Error ",ex);
Logger.Error("Init WPS Error ", ex);
}
}
try
{
// 默认已经打开了文档 直接初始化
if(CurrentWordApplication.Documents.Count > 0){
foreach (Document item in CurrentWordApplication.Documents)
{
var info = documentList.InitDocument(item);
// 直接初始化面板
info.CheckPanel();
}
}
}
catch (Exception ex)
{
Logger.Error("Initialize documentlist Error ", ex);
}
string verTextFile = Config.APP_BASE_DIR + Path.GetFileName("app_version.txt");
try
{
@ -345,7 +361,8 @@ namespace AIProofread
ActiveDocument = documentList.SetActiveDocument(CurrentWordApplication.ActiveDocument);
ActiveDocument.CheckBtnStatus();
CheckDocumentClosed(null, null);
if (formCommonsenseDetection != null) {
if (formCommonsenseDetection != null)
{
formCommonsenseDetection.SendMessageToWeb("document-change", null);
}
//LogHelper.Log("Application_DocumentChange -- " + ActiveDocument.fileName + " track is " + ActiveDocument.CurrentDocument.TrackRevisions);
@ -373,7 +390,7 @@ namespace AIProofread
/// <param name="Wn"></param>
private void Application_WindowActivate(Document activeDoc, Window Wn)
{
if(activeDoc != null && (ActiveDocument == null || activeDoc != ActiveDocument.CurrentDocument))
if (activeDoc != null && (ActiveDocument == null || activeDoc != ActiveDocument.CurrentDocument))
{
ActiveDocument = documentList.SetActiveDocument(activeDoc);
Logger.Info("Application_WindowActivate -- " + ActiveDocument.fileName);