related tdf#33603: fix notespanel missing outliner on mode change

When MainViewShell changed editing mode, two EventMultipexerEvents
arrive in succession - if while processing the first one links are
reset, second one was ignored.

Do not remove EventMultiplexer listener on FillOutliner()

Change-Id: I9c41c823ca74574238d1199ed38f92d9c75a113e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165807
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
This commit is contained in:
Sarper Akdemir
2024-04-11 11:02:09 +02:00
committed by Samuel Mehrbrodt
parent 2919194762
commit c3bc5c09e0
+7 -9
View File
@@ -52,6 +52,9 @@ NotesPanelView::NotesPanelView(DrawDocShell& rDocSh, vcl::Window* pWindow,
// fill Outliner with contents
FillOutliner();
mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->AddEventListener(
LINK(this, NotesPanelView, EventMultiplexerListener));
// TODO: UNDO
// sd::UndoManager* pDocUndoMgr = dynamic_cast<sd::UndoManager*>(mpDocSh->GetUndoManager());
// if (pDocUndoMgr != nullptr)
@@ -60,8 +63,10 @@ NotesPanelView::NotesPanelView(DrawDocShell& rDocSh, vcl::Window* pWindow,
NotesPanelView::~NotesPanelView()
{
ResetLinks();
mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->RemoveEventListener(
LINK(this, NotesPanelView, EventMultiplexerListener));
ResetLinks();
// DisconnectFromApplication();
// mpProgress.reset();
}
@@ -93,16 +98,9 @@ void NotesPanelView::FillOutliner()
void NotesPanelView::SetLinks()
{
maOutliner.SetStatusEventHdl(LINK(this, NotesPanelView, StatusEventHdl));
mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->AddEventListener(
LINK(this, NotesPanelView, EventMultiplexerListener));
}
void NotesPanelView::ResetLinks()
{
maOutliner.SetStatusEventHdl(Link<EditStatus&, void>());
mrNotesPanelViewShell.GetViewShellBase().GetEventMultiplexer()->RemoveEventListener(
LINK(this, NotesPanelView, EventMultiplexerListener));
}
void NotesPanelView::ResetLinks() { maOutliner.SetStatusEventHdl(Link<EditStatus&, void>()); }
void NotesPanelView::removeListener()
{