优化面板按钮逻辑
- 调整 `TaskPane_VisibleChanged` 方法逻辑,增加异步延迟处理和详细日志记录,修复 `CurrentDocument` 引用问题。 - 优化 `CheckBtnStatus` 方法,提升代码可读性并修正按钮状态逻辑。 - 改进 `TaskPane` 释放逻辑,增加对控件的重置操作。
This commit is contained in:
parent
32e85c62c0
commit
a54765e911
Binary file not shown.
@ -188,7 +188,7 @@ namespace AIProofread.Model
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Logger.Debug("激活 for " + CurrentDocument.FullName + " 没有 visible is " + PaneVisible);
|
Logger.Debug("激活 for " + CurrentDocument.Name + " 没有 visible is " + PaneVisible);
|
||||||
ShowDocumentStatus("Active");
|
ShowDocumentStatus("Active");
|
||||||
IsActive = true;
|
IsActive = true;
|
||||||
if (Config.IS_WPS && null != TaskPane)
|
if (Config.IS_WPS && null != TaskPane)
|
||||||
@ -212,9 +212,10 @@ namespace AIProofread.Model
|
|||||||
{
|
{
|
||||||
PaneVisible = TaskPane.Visible;
|
PaneVisible = TaskPane.Visible;
|
||||||
TaskPane.Visible = false;
|
TaskPane.Visible = false;
|
||||||
Logger.Debug("取消 for " + CurrentDocument.FullName + " current visible " + PaneVisible);
|
Logger.Debug("取消 for " + CurrentDocument.Name + " current visible " + PaneVisible);
|
||||||
}
|
}
|
||||||
}catch (Exception e)
|
}
|
||||||
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Logger.Error("Deactive Error", e);
|
Logger.Error("Deactive Error", e);
|
||||||
}
|
}
|
||||||
@ -304,22 +305,28 @@ namespace AIProofread.Model
|
|||||||
//
|
//
|
||||||
if (Globals.ThisAddIn.ribbon != null)
|
if (Globals.ThisAddIn.ribbon != null)
|
||||||
{
|
{
|
||||||
Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !PaneVisible && Proofread;
|
var visible = TaskPane.Visible;
|
||||||
|
Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !visible && Proofread;
|
||||||
Globals.ThisAddIn.ribbon.SetCommonBtnStatus(!Proofreading);
|
Globals.ThisAddIn.ribbon.SetCommonBtnStatus(!Proofreading);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TaskPane_VisibleChanged(object sender, EventArgs e)
|
private void TaskPane_VisibleChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (Config.IS_WPS)
|
// 异步等待500ms
|
||||||
|
System.Threading.Tasks.Task.Delay(1000).ContinueWith(t =>
|
||||||
{
|
{
|
||||||
if(CurrentDocument == Globals.ThisAddIn.ActiveDocument)
|
Logger.Debug($"2==> VisibleChanged {CurrentDocument.Name} is {TaskPane.Visible}");
|
||||||
|
if (Config.IS_WPS)
|
||||||
{
|
{
|
||||||
Logger.Debug($"VisibleChanged ${CurrentDocument.Name} is {TaskPane.Visible}");
|
if (CurrentDocument == Globals.ThisAddIn.ActiveDocument.CurrentDocument)
|
||||||
// 如果已经隐藏 则记录隐藏用于(WPS)多面板的切换的处理
|
{
|
||||||
PaneVisible = TaskPane.Visible;
|
// 如果已经隐藏 则记录隐藏用于(WPS)多面板的切换的处理
|
||||||
|
PaneVisible = TaskPane.Visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
Globals.ThisAddIn.ActiveDocument?.CheckBtnStatus();
|
||||||
|
});
|
||||||
CheckBtnStatus();
|
CheckBtnStatus();
|
||||||
//Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !TaskPane.Visible && Proofread;
|
//Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !TaskPane.Visible && Proofread;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user