summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/source/view/charttypes/GL3DBarChart.cxx1
-rw-r--r--cui/source/tabpages/macroass.cxx12
-rw-r--r--desktop/source/app/app.cxx5
-rw-r--r--drawinglayer/source/primitive2d/textlayoutdevice.cxx2
-rw-r--r--drawinglayer/source/processor2d/vclhelperbufferdevice.cxx1
-rw-r--r--editeng/source/editeng/impedit2.cxx3
-rw-r--r--framework/source/layoutmanager/layoutmanager.cxx1
-rw-r--r--framework/source/services/autorecovery.cxx1
-rw-r--r--framework/source/uielement/menubarmanager.cxx2
-rw-r--r--framework/source/uielement/toolbarmanager.cxx1
-rw-r--r--include/vcl/dockwin.hxx7
-rw-r--r--include/vcl/syswin.hxx7
-rw-r--r--include/vcl/timer.hxx2
-rw-r--r--sc/inc/chartlis.hxx3
-rw-r--r--sc/source/core/tool/chartlis.cxx14
-rw-r--r--sc/source/ui/app/scmod.cxx3
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx1
-rw-r--r--sc/source/ui/miscdlgs/acredlin.cxx1
-rw-r--r--sc/source/ui/miscdlgs/conflictsdlg.cxx1
-rw-r--r--sd/source/ui/dlg/brkdlg.cxx9
-rw-r--r--sd/source/ui/dlg/filedlg.cxx1
-rw-r--r--sd/source/ui/inc/BreakDlg.hxx2
-rw-r--r--sfx2/source/appl/appcfg.cxx1
-rw-r--r--sfx2/source/control/bindings.cxx53
-rw-r--r--sfx2/source/control/dispatch.cxx1
-rw-r--r--sfx2/source/control/itemdel.cxx2
-rw-r--r--sfx2/source/dialog/dockwin.cxx1
-rwxr-xr-xsolenv/bin/install-gdb-printers3
-rw-r--r--solenv/gdb/libreoffice/vcl.py90
-rw-r--r--svtools/source/contnr/imivctl1.cxx20
-rw-r--r--svtools/source/contnr/treelistbox.cxx1
-rw-r--r--svtools/source/control/tabbar.cxx5
-rw-r--r--svtools/source/graphic/grfcache.cxx2
-rw-r--r--svtools/source/graphic/grfmgr.cxx2
-rw-r--r--svx/source/form/fmshimp.cxx1
-rw-r--r--svx/source/sdr/overlay/overlaymanagerbuffered.cxx1
-rw-r--r--svx/source/sidebar/PanelLayout.cxx1
-rw-r--r--svx/source/svdraw/svdetc.cxx3
-rw-r--r--svx/source/svdraw/svdpntv.cxx1
-rw-r--r--sw/source/core/doc/DocumentStatisticsManager.cxx1
-rw-r--r--sw/source/core/doc/DocumentTimerManager.cxx1
-rw-r--r--sw/source/core/doc/docnew.cxx1
-rw-r--r--sw/source/core/txtnode/SwGrammarContact.cxx1
-rw-r--r--sw/source/core/unocore/unochart.cxx1
-rw-r--r--sw/source/uibase/misc/swruler.cxx1
-rw-r--r--sw/source/uibase/uiview/view.cxx1
-rw-r--r--vcl/source/app/help.cxx8
-rw-r--r--vcl/source/app/timer.cxx3
-rw-r--r--vcl/source/control/edit.cxx1
-rw-r--r--vcl/source/control/quickselectionengine.cxx1
-rw-r--r--vcl/source/control/scrbar.cxx1
-rw-r--r--vcl/source/edit/texteng.cxx1
-rw-r--r--vcl/source/window/cursor.cxx1
-rw-r--r--vcl/source/window/dockmgr.cxx3
-rw-r--r--vcl/source/window/dockwin.cxx2
-rw-r--r--vcl/source/window/menufloatingwindow.cxx5
-rw-r--r--vcl/source/window/scrwnd.cxx1
-rw-r--r--vcl/source/window/seleng.cxx1
-rw-r--r--vcl/source/window/splitwin.cxx1
-rw-r--r--vcl/source/window/syswin.cxx1
-rw-r--r--vcl/source/window/toolbox.cxx3
-rw-r--r--vcl/source/window/window2.cxx1
-rw-r--r--vcl/source/window/wrkwin.cxx2
-rw-r--r--vcl/unx/generic/window/salframe.cxx1
64 files changed, 249 insertions, 63 deletions
diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index 401b66428805..6891007f9e04 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -560,6 +560,7 @@ GL3DBarChart::GL3DBarChart(
}
maIdle.SetPriority(SchedulerPriority::REPAINT);
maIdle.SetIdleHdl(LINK(this, GL3DBarChart, UpdateTimerHdl));
+ maIdle.SetDebugName( "charttypes::GL3DBarChart maIdle" );
maIdle.Start();
osl_getSystemTime(&maFPSRenderStartTime);
osl_getSystemTime(&maFPSRenderEndTime);
diff --git a/cui/source/tabpages/macroass.cxx b/cui/source/tabpages/macroass.cxx
index b05a057ad6bd..529124c191ef 100644
--- a/cui/source/tabpages/macroass.cxx
+++ b/cui/source/tabpages/macroass.cxx
@@ -136,6 +136,11 @@ SfxMacroTabPage::SfxMacroTabPage(vcl::Window* pParent, const Reference< XFrame >
: SfxTabPage(pParent, "EventAssignPage", "cui/ui/eventassignpage.ui", &rAttrSet)
{
mpImpl.reset(new SfxMacroTabPage_Impl);
+
+ mpImpl->maFillGroupIdle.SetIdleHdl( LINK( this, SfxMacroTabPage, TimeOut_Impl ) );
+ mpImpl->maFillGroupIdle.SetPriority( SchedulerPriority::HIGHEST );
+ mpImpl->maFillGroupIdle.SetDebugName( "SfxMacroTabPage maFillGroupIdle" );
+
mpImpl->sStrEvent = get<FixedText>("eventft")->GetText();
mpImpl->sAssignedMacro = get<FixedText>("assignft")->GetText();
get(mpImpl->pEventLB , "assignments");
@@ -154,7 +159,6 @@ SfxMacroTabPage::SfxMacroTabPage(vcl::Window* pParent, const Reference< XFrame >
ScriptChanged();
}
-
SfxMacroTabPage::~SfxMacroTabPage()
{
disposeOnce();
@@ -208,12 +212,8 @@ bool SfxMacroTabPage::FillItemSet( SfxItemSet* rSet )
void SfxMacroTabPage::LaunchFillGroup()
{
- if (!mpImpl->maFillGroupIdle.GetIdleHdl().IsSet())
- {
- mpImpl->maFillGroupIdle.SetIdleHdl( LINK( this, SfxMacroTabPage, TimeOut_Impl ) );
- mpImpl->maFillGroupIdle.SetPriority( SchedulerPriority::HIGHEST );
+ if (! mpImpl->maFillGroupIdle.IsActive() )
mpImpl->maFillGroupIdle.Start();
- }
}
void SfxMacroTabPage::ActivatePage( const SfxItemSet& )
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 90ace3cfb8d3..0fe6ba610e29 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -527,6 +527,9 @@ Desktop::Desktop()
, m_aBootstrapError(BE_OK)
, m_aBootstrapStatus(BS_OK)
{
+ m_firstRunTimer.SetTimeout(3000); // 3 sec.
+ m_firstRunTimer.SetTimeoutHdl(LINK(this, Desktop, AsyncInitFirstRun));
+ m_firstRunTimer.SetDebugName( "desktop::Desktop m_firstRunTimer" );
}
Desktop::~Desktop()
@@ -2649,8 +2652,6 @@ void Desktop::CheckFirstRun( )
{
// use VCL timer, which won't trigger during shutdown if the
// application exits before timeout
- m_firstRunTimer.SetTimeout(3000); // 3 sec.
- m_firstRunTimer.SetTimeoutHdl(LINK(this, Desktop, AsyncInitFirstRun));
m_firstRunTimer.Start();
#ifdef _WIN32
diff --git a/drawinglayer/source/primitive2d/textlayoutdevice.cxx b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
index 50eae8bd792c..4e28bf616c97 100644
--- a/drawinglayer/source/primitive2d/textlayoutdevice.cxx
+++ b/drawinglayer/source/primitive2d/textlayoutdevice.cxx
@@ -73,7 +73,7 @@ namespace
};
ImpTimedRefDev::ImpTimedRefDev(scoped_timed_RefDev& rOwnerOfMe)
- : Timer( "Timer to destroy drawinglayer reference device" ),
+ : Timer( "drawinglayer ImpTimedRefDev destroy mpVirDev" ),
mrOwnerOfMe(rOwnerOfMe),
mpVirDev(nullptr),
mnUseCount(0L)
diff --git a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
index abeb6fcdf8f4..ba1181009f0e 100644
--- a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
+++ b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
@@ -71,6 +71,7 @@ namespace
maUsedBuffers()
{
SetTimeout(10L * 1000L); // ten seconds
+ SetDebugName("drawinglayer::VDevBuffer via Invoke()");
}
VDevBuffer::~VDevBuffer()
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 86023d33bb8a..946ae5c406cb 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -146,12 +146,15 @@ ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) :
aStatusTimer.SetTimeout( 200 );
aStatusTimer.SetTimeoutHdl( LINK( this, ImpEditEngine, StatusTimerHdl ) );
+ aStatusTimer.SetDebugName( "editeng::ImpEditEngine aStatusTimer" );
aIdleFormatter.SetPriority( SchedulerPriority::REPAINT );
aIdleFormatter.SetIdleHdl( LINK( this, ImpEditEngine, IdleFormatHdl ) );
+ aIdleFormatter.SetDebugName( "editeng::ImpEditEngine aIdleFormatter" );
aOnlineSpellTimer.SetTimeout( 100 );
aOnlineSpellTimer.SetTimeoutHdl( LINK( this, ImpEditEngine, OnlineSpellHdl ) );
+ aOnlineSpellTimer.SetDebugName( "editeng::ImpEditEngine aOnlineSpellTimer" );
// Access data already from here on!
SetRefDevice( nullptr );
diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index 4f3f86aef942..b6303be61138 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -140,6 +140,7 @@ LayoutManager::LayoutManager( const Reference< XComponentContext >& xContext ) :
m_aAsyncLayoutTimer.SetTimeout( 50 );
m_aAsyncLayoutTimer.SetTimeoutHdl( LINK( this, LayoutManager, AsyncLayoutHdl ) );
+ m_aAsyncLayoutTimer.SetDebugName( "framework::LayoutManager m_aAsyncLayoutTimer" );
registerProperty( LAYOUTMANAGER_PROPNAME_ASCII_AUTOMATICTOOLBARS, LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS, css::beans::PropertyAttribute::TRANSIENT, &m_bAutomaticToolbars, cppu::UnoType<decltype(m_bAutomaticToolbars)>::get() );
registerProperty( LAYOUTMANAGER_PROPNAME_ASCII_HIDECURRENTUI, LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI, beans::PropertyAttribute::TRANSIENT, &m_bHideCurrentUI, cppu::UnoType<decltype(m_bHideCurrentUI)>::get() );
diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index 2d37455d6039..2a3f926a6e95 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -1241,6 +1241,7 @@ AutoRecovery::AutoRecovery(const css::uno::Reference< css::uno::XComponentContex
, m_nMinSpaceDocSave (MIN_DISCSPACE_DOCSAVE )
, m_nMinSpaceConfigSave (MIN_DISCSPACE_CONFIGSAVE )
{
+ m_aTimer.SetDebugName( "framework::AutoRecovery m_aTimer" );
}
void AutoRecovery::initListeners()
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 0a50c024e31e..d776a5c215c8 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -136,6 +136,7 @@ MenuBarManager::MenuBarManager(
, m_xURLTransformer(_xURLTransformer)
, m_sIconTheme( SvtMiscOptions().GetIconTheme() )
{
+ m_aAsyncSettingsTimer.SetDebugName( "framework::MenuBarManager::Deactivate m_aAsyncSettingsTimer" );
m_xPopupMenuControllerFactory = frame::thePopupMenuControllerFactory::get(m_xContext);
FillMenuManager( pMenu, rFrame, rDispatchProvider, rModuleIdentifier, bDelete );
}
@@ -157,6 +158,7 @@ MenuBarManager::MenuBarManager(
, m_xURLTransformer(_xURLTransformer)
, m_sIconTheme( SvtMiscOptions().GetIconTheme() )
{
+ m_aAsyncSettingsTimer.SetDebugName( "framework::MenuBarManager::Deactivate m_aAsyncSettingsTimer" );
Init(rFrame,pAddonMenu, popup);
}
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index 489ad878715a..e3bd0d15b9d1 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -193,6 +193,7 @@ ToolBarManager::ToolBarManager( const Reference< XComponentContext >& rxContext,
m_aAsyncUpdateControllersTimer.SetTimeout( 50 );
m_aAsyncUpdateControllersTimer.SetTimeoutHdl( LINK( this, ToolBarManager, AsyncUpdateControllersHdl ) );
+ m_aAsyncUpdateControllersTimer.SetDebugName( "framework::ToolBarManager m_aAsyncUpdateControllersTimer" );
SvtMiscOptions().AddListenerLink( LINK( this, ToolBarManager, MiscOptionsChanged ) );
}
diff --git a/include/vcl/dockwin.hxx b/include/vcl/dockwin.hxx
index aa5dced2d19e..c6d8fdb065f9 100644
--- a/include/vcl/dockwin.hxx
+++ b/include/vcl/dockwin.hxx
@@ -248,6 +248,8 @@ private:
DockingWindow & operator= (const DockingWindow &) = delete;
protected:
+ SAL_DLLPRIVATE void SetIdleDebugName( const sal_Char *pDebugName );
+
using Window::ImplInit;
SAL_DLLPRIVATE void ImplInit( vcl::Window* pParent, WinBits nStyle );
SAL_DLLPRIVATE void ImplInitSettings();
@@ -362,6 +364,11 @@ inline void DockingWindow::SetFloatingPos( const Point& rNewPos )
maFloatPos = rNewPos;
}
+inline void DockingWindow::SetIdleDebugName( const sal_Char *pDebugName )
+{
+ maLayoutIdle.SetDebugName( pDebugName );
+}
+
#endif // INCLUDED_VCL_DOCKWIN_HXX
diff --git a/include/vcl/syswin.hxx b/include/vcl/syswin.hxx
index 971cd604de48..a0c3b6972059 100644
--- a/include/vcl/syswin.hxx
+++ b/include/vcl/syswin.hxx
@@ -189,6 +189,8 @@ protected:
virtual void settingOptimalLayoutSize(Window *pBox);
SAL_DLLPRIVATE void DoInitialLayout();
+
+ SAL_DLLPRIVATE void SetIdleDebugName( const sal_Char *pDebugName );
public:
virtual ~SystemWindow() override;
virtual void dispose() override;
@@ -286,6 +288,11 @@ public:
virtual void doDeferredInit(WinBits nBits);
};
+inline void SystemWindow::SetIdleDebugName( const sal_Char *pDebugName )
+{
+ maLayoutIdle.SetDebugName( pDebugName );
+}
+
#endif // INCLUDED_VCL_SYSWIN_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/timer.hxx b/include/vcl/timer.hxx
index 149ba9099ac9..0e32810b9d12 100644
--- a/include/vcl/timer.hxx
+++ b/include/vcl/timer.hxx
@@ -56,7 +56,7 @@ public:
class VCL_DLLPUBLIC AutoTimer : public Timer
{
public:
- AutoTimer();
+ AutoTimer( const sal_Char *pDebugName = nullptr );
AutoTimer( const AutoTimer& rTimer );
AutoTimer& operator=( const AutoTimer& rTimer );
diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx
index 6b982c316fc1..5037236ffece 100644
--- a/sc/inc/chartlis.hxx
+++ b/sc/inc/chartlis.hxx
@@ -149,6 +149,9 @@ private:
ScChartListenerCollection& operator=( const ScChartListenerCollection& ) = delete;
+protected:
+ void Init();
+
public:
ScChartListenerCollection( ScDocument* pDoc );
ScChartListenerCollection( const ScChartListenerCollection& );
diff --git a/sc/source/core/tool/chartlis.cxx b/sc/source/core/tool/chartlis.cxx
index 750678588b84..fd27fbdd169f 100644
--- a/sc/source/core/tool/chartlis.cxx
+++ b/sc/source/core/tool/chartlis.cxx
@@ -402,21 +402,26 @@ ScChartHiddenRangeListener::~ScChartHiddenRangeListener()
// empty d'tor
}
+void ScChartListenerCollection::Init()
+{
+ aIdle.SetIdleHdl( LINK( this, ScChartListenerCollection, TimerHdl ) );
+ aIdle.SetPriority( SchedulerPriority::REPAINT );
+ aIdle.SetDebugName( "sc::ScChartListenerCollection aIdle" );
+}
+
ScChartListenerCollection::ScChartListenerCollection( ScDocument* pDocP ) :
meModifiedDuringUpdate( SC_CLCUPDATE_NONE ),
- aIdle( "sc ScChartListenerCollection" ),
pDoc( pDocP )
{
- aIdle.SetIdleHdl( LINK( this, ScChartListenerCollection, TimerHdl ) );
+ Init();
}
ScChartListenerCollection::ScChartListenerCollection(
const ScChartListenerCollection& rColl ) :
meModifiedDuringUpdate( SC_CLCUPDATE_NONE ),
- aIdle( "sc ScChartListenerCollection" ),
pDoc( rColl.pDoc )
{
- aIdle.SetIdleHdl( LINK( this, ScChartListenerCollection, TimerHdl ) );
+ Init();
}
ScChartListenerCollection::~ScChartListenerCollection()
@@ -591,7 +596,6 @@ void ScChartListenerCollection::FreeUno( const uno::Reference< chart::XChartData
void ScChartListenerCollection::StartTimer()
{
- aIdle.SetPriority( SchedulerPriority::REPAINT );
aIdle.Start();
}
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index be0319dbbc1f..c81adcca58a1 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -181,8 +181,11 @@ ScModule::ScModule( SfxObjectFactory* pFact ) :
aSpellIdle.SetPriority(SchedulerPriority::LOWER);
aSpellIdle.SetIdleHdl( LINK( this, ScModule, SpellTimerHdl ) );
+ aSpellIdle.SetDebugName( "sc::ScModule aSpellIdle" );
+
aIdleTimer.SetTimeout(SC_IDLE_MIN);
aIdleTimer.SetTimeoutHdl( LINK( this, ScModule, IdleHandler ) );
+ aIdleTimer.SetDebugName( "sc::ScModule aIdleTimer" );
aIdleTimer.Start();
pMessagePool = new ScMessagePool;
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index d5b694518541..42c17b937db9 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -1683,6 +1683,7 @@ ScExternalRefManager::ScExternalRefManager(ScDocument* pDoc) :
{
maSrcDocTimer.SetTimeoutHdl( LINK(this, ScExternalRefManager, TimeOutHdl) );
maSrcDocTimer.SetTimeout(SRCDOC_SCAN_INTERVAL);
+ maSrcDocTimer.SetDebugName( "sc::ScExternalRefManager maSrcDocTimer" );
}
ScExternalRefManager::~ScExternalRefManager()
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index 4aa805c34d3f..e92e3ee9dc74 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -116,6 +116,7 @@ ScAcceptChgDlg::ScAcceptChgDlg(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window
pTheView=pTPView->GetTableControl();
aSelectionIdle.SetPriority(SchedulerPriority::LOW);
aSelectionIdle.SetIdleHdl(LINK( this, ScAcceptChgDlg, UpdateSelectionHdl ));
+ aSelectionIdle.SetDebugName( "ScAcceptChgDlg aSelectionIdle" );
pTPFilter->SetReadyHdl(LINK( this, ScAcceptChgDlg, FilterHandle ));
pTPFilter->SetRefHdl(LINK( this, ScAcceptChgDlg, RefHandle ));
diff --git a/sc/source/ui/miscdlgs/conflictsdlg.cxx b/sc/source/ui/miscdlgs/conflictsdlg.cxx
index 82172383c262..578efed90481 100644
--- a/sc/source/ui/miscdlgs/conflictsdlg.cxx
+++ b/sc/source/ui/miscdlgs/conflictsdlg.cxx
@@ -423,6 +423,7 @@ ScConflictsDlg::ScConflictsDlg( vcl::Window* pParent, ScViewData* pViewData, ScD
maSelectionIdle.SetPriority( SchedulerPriority::LOW );
maSelectionIdle.SetIdleHdl( LINK( this, ScConflictsDlg, UpdateSelectionHdl ) );
+ maSelectionIdle.SetDebugName( "ScConflictsDlg maSelectionIdle" );
m_pLbConflicts->SetSelectHdl( LINK( this, ScConflictsDlg, SelectHandle ) );
m_pLbConflicts->SetDeselectHdl( LINK( this, ScConflictsDlg, DeselectHandle ) );
diff --git a/sd/source/ui/dlg/brkdlg.cxx b/sd/source/ui/dlg/brkdlg.cxx
index 516a3bcfbe9b..0626fde2e485 100644
--- a/sd/source/ui/dlg/brkdlg.cxx
+++ b/sd/source/ui/dlg/brkdlg.cxx
@@ -45,9 +45,12 @@ BreakDlg::BreakDlg(
sal_uLong nSumActionCount,
sal_uLong nObjCount )
: SfxModalDialog(pWindow, "BreakDialog", "modules/sdraw/ui/breakdialog.ui")
- , aIdle("sd BreakDlg Idle")
, mpProgress( nullptr )
{
+ m_aUpdateIdle.SetPriority( SchedulerPriority::REPAINT );
+ m_aUpdateIdle.SetIdleHdl( LINK( this, BreakDlg, InitialUpdate ) );
+ m_aUpdateIdle.SetDebugName( "sd::BreakDlg m_aUpdateIdle" );
+
get(m_pFiObjInfo, "metafiles");
get(m_pFiActInfo, "metaobjects");
get(m_pFiInsInfo, "drawingobjects");
@@ -160,9 +163,7 @@ IMPL_LINK( BreakDlg, UpDate, void*, nInit, bool )
*/
short BreakDlg::Execute()
{
- aIdle.SetPriority( SchedulerPriority::REPAINT );
- aIdle.SetIdleHdl( LINK( this, BreakDlg, InitialUpdate ) );
- aIdle.Start();
+ m_aUpdateIdle.Start();
return SfxModalDialog::Execute();
}
diff --git a/sd/source/ui/dlg/filedlg.cxx b/sd/source/ui/dlg/filedlg.cxx
index e5823d139d61..b06c7804fea6 100644
--- a/sd/source/ui/dlg/filedlg.cxx
+++ b/sd/source/ui/dlg/filedlg.cxx
@@ -214,6 +214,7 @@ SdFileDialog_Imp::SdFileDialog_Imp() :
mbLabelPlaying(false)
{
maUpdateIdle.SetIdleHdl(LINK(this, SdFileDialog_Imp, IsMusicStoppedHdl));
+ maUpdateIdle.SetDebugName( "SdFileDialog_Imp maUpdateIdle" );
css::uno::Reference < css::ui::dialogs::XFilePicker2 > xFileDlg = GetFilePicker();
diff --git a/sd/source/ui/inc/BreakDlg.hxx b/sd/source/ui/inc/BreakDlg.hxx
index e333ea3df50a..1f37322bc3f0 100644
--- a/sd/source/ui/inc/BreakDlg.hxx
+++ b/sd/source/ui/inc/BreakDlg.hxx
@@ -66,7 +66,7 @@ private:
bool bCancel;
- Idle aIdle;
+ Idle m_aUpdateIdle;
SvdProgressInfo *pProgrInfo;
SfxProgress *mpProgress;
diff --git a/sfx2/source/appl/appcfg.cxx b/sfx2/source/appl/appcfg.cxx
index b7e89dcd2de5..f0a87265eb82 100644
--- a/sfx2/source/appl/appcfg.cxx
+++ b/sfx2/source/appl/appcfg.cxx
@@ -110,6 +110,7 @@ SfxEventAsyncer_Impl::SfxEventAsyncer_Impl( const SfxEventHint& rHint )
pIdle.reset( new Idle("SfxEventASyncer") );
pIdle->SetIdleHdl( LINK(this, SfxEventAsyncer_Impl, IdleHdl) );
pIdle->SetPriority( SchedulerPriority::HIGHEST );
+ pIdle->SetDebugName( "sfx::SfxEventAsyncer_Impl pIdle" );
pIdle->Start();
}
diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx
index e5f1d86db779..f1e5e334ab19 100644
--- a/sfx2/source/control/bindings.cxx
+++ b/sfx2/source/control/bindings.cxx
@@ -144,7 +144,7 @@ public:
bool bAllMsgDirty; // Has a MessageServer been invalidated?
bool bAllDirty; // After InvalidateAll
bool bCtrlReleased; // while EnterRegistrations
- AutoTimer aTimer; // for volatile Slots
+ AutoTimer aAutoTimer; // for volatile Slots
bool bInUpdate; // for Assertions
bool bInNextJob; // for Assertions
bool bFirstRound; // First round in Update
@@ -179,7 +179,8 @@ SfxBindings::SfxBindings()
// all caches are valid (no pending invalidate-job)
// create the list of caches
pImpl->pCaches = new SfxStateCacheArr_Impl;
- pImpl->aTimer.SetTimeoutHdl( LINK(this, SfxBindings, NextJob) );
+ pImpl->aAutoTimer.SetTimeoutHdl( LINK(this, SfxBindings, NextJob) );
+ pImpl->aAutoTimer.SetDebugName( "sfx::SfxBindings aAutoTimer" );
}
@@ -203,7 +204,7 @@ SfxBindings::~SfxBindings()
ENTERREGISTRATIONS();
- pImpl->aTimer.Stop();
+ pImpl->aAutoTimer.Stop();
DeleteControllers_Impl();
// Delete Caches
@@ -604,9 +605,9 @@ void SfxBindings::InvalidateAll
pImpl->nMsgPos = 0;
if ( !nRegLevel )
{
- pImpl->aTimer.Stop();
- pImpl->aTimer.SetTimeout(TIMEOUT_FIRST);
- pImpl->aTimer.Start();
+ pImpl->aAutoTimer.Stop();
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_FIRST);
+ pImpl->aAutoTimer.Start();
}
}
@@ -655,9 +656,9 @@ void SfxBindings::Invalidate
pImpl->nMsgPos = 0;
if ( !nRegLevel )
{
- pImpl->aTimer.Stop();
- pImpl->aTimer.SetTimeout(TIMEOUT_FIRST);
- pImpl->aTimer.Start();
+ pImpl->aAutoTimer.Stop();
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_FIRST);
+ pImpl->aAutoTimer.Start();
}
}
@@ -707,9 +708,9 @@ void SfxBindings::InvalidateShell
pImpl->nMsgPos = 0;
if ( !nRegLevel )
{
- pImpl->aTimer.Stop();
- pImpl->aTimer.SetTimeout(TIMEOUT_FIRST);
- pImpl->aTimer.Start();
+ pImpl->aAutoTimer.Stop();
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_FIRST);
+ pImpl->aAutoTimer.Start();
pImpl->bFirstRound = true;
pImpl->nFirstShell = nLevel;
}
@@ -743,9 +744,9 @@ void SfxBindings::Invalidate
pImpl->nMsgPos = std::min(GetSlotPos(nId), pImpl->nMsgPos);
if ( !nRegLevel )
{
- pImpl->aTimer.Stop();
- pImpl->aTimer.SetTimeout(TIMEOUT_FIRST);
- pImpl->aTimer.Start();
+ pImpl->aAutoTimer.Stop();
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_FIRST);
+ pImpl->aAutoTimer.Start();
}
}
}
@@ -779,9 +780,9 @@ void SfxBindings::Invalidate
pImpl->nMsgPos = std::min(GetSlotPos(nId), pImpl->nMsgPos);
if ( !nRegLevel )
{
- pImpl->aTimer.Stop();
- pImpl->aTimer.SetTimeout(TIMEOUT_FIRST);
- pImpl->aTimer.Start();
+ pImpl->aAutoTimer.Stop();
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_FIRST);
+ pImpl->aAutoTimer.Start();
}
}
}
@@ -1449,7 +1450,7 @@ bool SfxBindings::NextJob_Impl(Timer * pTimer)
if ( Application::GetLastInputInterval() < MAX_INPUT_DELAY && pTimer )
{
- pImpl->aTimer.SetTimeout(TIMEOUT_UPDATING);
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_UPDATING);
return true;
}
@@ -1477,7 +1478,7 @@ bool SfxBindings::NextJob_Impl(Timer * pTimer)
}
pImpl->bAllDirty = false;
- pImpl->aTimer.SetTimeout(TIMEOUT_UPDATING);
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_UPDATING);
// at least 10 loops and further if more jobs are available but no input
bool bPreEmptive = pTimer && !pSfxApp->Get_Impl()->nInReschedule;
@@ -1525,7 +1526,7 @@ bool SfxBindings::NextJob_Impl(Timer * pTimer)
pImpl->nMsgPos = 0;
- pImpl->aTimer.Stop();
+ pImpl->aAutoTimer.Stop();
// Update round is finished
pImpl->bInNextJob = false;
@@ -1561,7 +1562,7 @@ sal_uInt16 SfxBindings::EnterRegistrations(const char *pFile, int nLine)
if ( ++nRegLevel == 1 )
{
// stop background-processing
- pImpl->aTimer.Stop();
+ pImpl->aAutoTimer.Stop();
// flush the cache
pImpl->nCachedFunc1 = 0;
@@ -1627,9 +1628,9 @@ void SfxBindings::LeaveRegistrations( const char *pFile, int nLine )
return;
if ( pImpl->pCaches && !pImpl->pCaches->empty() )
{
- pImpl->aTimer.Stop();
- pImpl->aTimer.SetTimeout(TIMEOUT_FIRST);
- pImpl->aTimer.Start();
+ pImpl->aAutoTimer.Stop();
+ pImpl->aAutoTimer.SetTimeout(TIMEOUT_FIRST);
+ pImpl->aAutoTimer.Start();
}
}
@@ -1722,7 +1723,7 @@ void SfxBindings::StartUpdate_Impl( bool bComplete )
if ( !bComplete )
// Update may be interrupted
- NextJob_Impl(&pImpl->aTimer);
+ NextJob_Impl(&pImpl->aAutoTimer);
else
// Update all slots in a row
NextJob_Impl(nullptr);
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 93e5c778d8f2..49e7e5406459 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -452,6 +452,7 @@ void SfxDispatcher::Construct_Impl()
xImp->aIdle.SetPriority(SchedulerPriority::MEDIUM);
xImp->aIdle.SetIdleHdl( LINK(this, SfxDispatcher, EventHdl_Impl ) );
+ xImp->aIdle.SetDebugName( "sfx::SfxDispatcher_Impl aIdle" );
}
SfxDispatcher::SfxDispatcher()
diff --git a/sfx2/source/control/itemdel.cxx b/sfx2/source/control/itemdel.cxx
index a1d6478a45fd..c835b8c145d5 100644
--- a/sfx2/source/control/itemdel.cxx
+++ b/sfx2/source/control/itemdel.cxx
@@ -42,7 +42,7 @@ public:
SfxItemDisruptor_Impl::SfxItemDisruptor_Impl(SfxPoolItem *const pItemToDisrupt)
: pItem(pItemToDisrupt)
- , m_Idle("SfxItemDisruptor_Impl")
+ , m_Idle("sfx SfxItemDisruptor_Impl::Delete")
{
m_Idle.SetIdleHdl(LINK(this, SfxItemDisruptor_Impl, Delete));
m_Idle.SetPriority(SchedulerPriority::DEFAULT_IDLE);
diff --git a/sfx2/source/dialog/dockwin.cxx b/sfx2/source/dialog/dockwin.cxx
index 16d71547ada1..6178bd0df75b 100644
--- a/sfx2/source/dialog/dockwin.cxx
+++ b/sfx2/source/dialog/dockwin.cxx
@@ -435,6 +435,7 @@ SfxDockingWindow_Impl::SfxDockingWindow_Impl(SfxDockingWindow* pBase)
{
aMoveIdle.SetPriority(SchedulerPriority::RESIZE);
aMoveIdle.SetIdleHdl(LINK(pBase,SfxDockingWindow,TimerHdl));
+ aMoveIdle.SetDebugName( "sfx::SfxDockingWindow_Impl aMoveIdle" );
}
/* [Description]
diff --git a/solenv/bin/install-gdb-printers b/solenv/bin/install-gdb-printers
index 0362a5c04a06..4d5be9247087 100755
--- a/solenv/bin/install-gdb-printers
+++ b/solenv/bin/install-gdb-printers
@@ -123,7 +123,7 @@ if [[ ${DESTDIR}${pythondir} != ${GDBDIR} ]]; then
fi
if [[ -n "${MERGELIBS}" ]]; then
- make_autoload merged program libmergedlo."$DYLIB" merge svl tl basegfx
+ make_autoload merged program libmergedlo."$DYLIB" merge svl tl basegfx vcl
make_autoload cppu program libuno_cppu."$DYLIB".3
make_autoload sal program libuno_sal."$DYLIB".3
make_autoload sw program libswlo."$DYLIB"
@@ -134,6 +134,7 @@ else
make_autoload svl program libsvllo."$DYLIB"
make_autoload sw program libswlo."$DYLIB"
make_autoload tl program libtllo."$DYLIB"
+ make_autoload vcl program libvcllo."$DYLIB"
fi
make_autoload writerfilter program libwriterfilterlo."$DYLIB"
diff --git a/solenv/gdb/libreoffice/vcl.py b/solenv/gdb/libreoffice/vcl.py
new file mode 100644
index 000000000000..83f405758216
--- /dev/null
+++ b/solenv/gdb/libreoffice/vcl.py
@@ -0,0 +1,90 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+import six
+import gdb
+from libreoffice.util import printing
+
+class ImplSchedulerDataPrinter(object):
+ '''Prints the ImplSchedulerData linked list.
+
+ This can be used to dump the current state of the scheduler via:
+ p *ImplGetSVData()->mpFirstSchedulerData
+ '''
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+ self.timer_type_ptr = gdb.lookup_type("Timer").pointer()
+ self.idle_type_ptr = gdb.lookup_type("Idle").pointer()
+
+ def as_string(self, gdbobj):
+ if gdbobj['mpScheduler']:
+ sched = gdbobj['mpScheduler'].dereference()
+ if gdbobj['mpScheduler'].dynamic_cast( self.timer_type_ptr ):
+ sched_type = "Timer"
+ elif gdbobj['mpScheduler'].dynamic_cast( self.idle_type_ptr ):
+ sched_type = "Idle"
+ else:
+ assert sched_type, "Scheduler object neither Timer nor Idle"
+ res = "{:7s}{:10s} active: {:6s}".format( sched_type, str(sched['mePriority']), str(sched['mbActive']) )
+ name = sched['mpDebugName']
+ if not name:
+ res = res + " (scheduler debug name not set)"
+ else:
+ res = "{} '{}' ({})".format(res, str(name.string()), str(sched.dynamic_type))
+ return res
+ else:
+ assert gdbobj['mbDelete'], "No scheduler set and not marked for deletion!"
+ return "(no scheduler)"
+
+ def to_string(self):
+ return self.typename
+
+ def children(self):
+ return self._iterator(self)
+
+ def display_hint(self):
+ return 'array'
+
+ class _iterator(six.Iterator):
+
+ def __init__(self, printer):
+ self.pos = 0
+ self.printer = printer
+ self.value = printer.value
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if not self.value['mpNext']:
+ raise StopIteration()
+
+ pos = str(self.pos)
+ name = "\n " + self.printer.as_string(self.value)
+ self.value = self.value['mpNext']
+ self.pos += 1
+
+ return (pos, name)
+
+printer = None
+
+def build_pretty_printers():
+ global printer
+
+ printer = printing.Printer("libreoffice/vcl")
+ printer.add('ImplSchedulerData', ImplSchedulerDataPrinter)
+
+def register_pretty_printers(obj):
+ printing.register_pretty_printer(printer, obj)
+
+build_pretty_printers()
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx
index b3068ba23d12..2532c826ece9 100644
--- a/svtools/source/contnr/imivctl1.cxx
+++ b/svtools/source/contnr/imivctl1.cxx
@@ -58,7 +58,7 @@ class IcnViewEdit_Impl : public MultiLineEdit
Link<LinkParamNone*,void> aCallBackHdl;
Accelerator aAccReturn;
Accelerator aAccEscape;
- Idle aIdle;
+ Idle maLoseFocusIdle;
bool bCanceled;
bool bAlreadyInCallback;
bool bGrabFocus;
@@ -141,15 +141,23 @@ SvxIconChoiceCtrl_Impl::SvxIconChoiceCtrl_Impl(
aEditIdle.SetPriority( SchedulerPriority::LOWEST );
aEditIdle.SetIdleHdl(LINK(this,SvxIconChoiceCtrl_Impl,EditTimeoutHdl));
+ aEditIdle.SetDebugName( "svtools::SvxIconChoiceCtrl_Impl aEditIdle" );
+
aAutoArrangeIdle.SetPriority( SchedulerPriority::LOW );
aAutoArrangeIdle.SetIdleHdl(LINK(this,SvxIconChoiceCtrl_Impl,AutoArrangeHdl));
+ aAutoArrangeIdle.SetDebugName( "svtools::SvxIconChoiceCtrl_Impl aAutoArrangeIdle" );
+
aCallSelectHdlIdle.SetPriority( SchedulerPriority::LOWEST );
aCallSelectHdlIdle.SetIdleHdl( LINK(this,SvxIconChoiceCtrl_Impl,CallSelectHdlHdl));
+ aCallSelectHdlIdle.SetDebugName( "svtools::SvxIconChoiceCtrl_Impl aCallSelectHdlIdle" );
aDocRectChangedIdle.SetPriority( SchedulerPriority::MEDIUM );
aDocRectChangedIdle.SetIdleHdl(LINK(this,SvxIconChoiceCtrl_Impl,DocRectChangedHdl));
+ aDocRectChangedIdle.SetDebugName( "svtools::SvxIconChoiceCtrl_Impl aDocRectChangedIdle" );
+
aVisRectChangedIdle.SetPriority( SchedulerPriority::MEDIUM );
aVisRectChangedIdle.SetIdleHdl(LINK(this,SvxIconChoiceCtrl_Impl,VisRectChangedHdl));
+ aVisRectChangedIdle.SetDebugName( "svtools::SvxIconChoiceCtrl_Impl aVisRectChangedIdle" );
Clear( true );
Size gridSize(100,70);
@@ -3024,6 +3032,10 @@ IcnViewEdit_Impl::IcnViewEdit_Impl( SvtIconChoiceCtrl* pParent, const Point& rPo
bAlreadyInCallback( false ),
bGrabFocus( false )
{
+ maLoseFocusIdle.SetPriority(SchedulerPriority::REPAINT);
+ maLoseFocusIdle.SetIdleHdl(LINK(this,IcnViewEdit_Impl,Timeout_Impl));
+ maLoseFocusIdle.SetDebugName( "svx::IcnViewEdit_Impl maLoseFocusIdle" );
+
// FIXME: Outside of Paint Hierarchy
vcl::Font aFont(pParent->GetPointFont(*this));
aFont.SetTransparent( false );
@@ -3063,7 +3075,7 @@ void IcnViewEdit_Impl::dispose()
void IcnViewEdit_Impl::CallCallBackHdl_Impl()
{
- aIdle.Stop();
+ maLoseFocusIdle.Stop();
if ( !bAlreadyInCallback )
{
bAlreadyInCallback = true;
@@ -3125,9 +3137,7 @@ bool IcnViewEdit_Impl::PreNotify( NotifyEvent& rNEvt )
((!Application::GetFocusWindow()) || !IsChild(Application::GetFocusWindow())))
{
bCanceled = false;
- aIdle.SetPriority(SchedulerPriority::REPAINT);
- aIdle.SetIdleHdl(LINK(this,IcnViewEdit_Impl,Timeout_Impl));
- aIdle.Start();
+ maLoseFocusIdle.Start();
}
}
return false;
diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx
index b35985967e71..b9cdf535d9d2 100644
--- a/svtools/source/contnr/treelistbox.cxx
+++ b/svtools/source/contnr/treelistbox.cxx
@@ -201,6 +201,7 @@ void SvInplaceEdit2::LoseFocus()
bCanceled = false;
aIdle.SetPriority(SchedulerPriority::REPAINT);
aIdle.SetIdleHdl(LINK(this,SvInplaceEdit2,Timeout_Impl));
+ aIdle.SetDebugName( "svtools::SvInplaceEdit2 aIdle" );
aIdle.Start();
}
}
diff --git a/svtools/source/control/tabbar.cxx b/svtools/source/control/tabbar.cxx
index 357c70d3a017..10e02ba2b9e4 100644
--- a/svtools/source/control/tabbar.cxx
+++ b/svtools/source/control/tabbar.cxx
@@ -399,6 +399,9 @@ TabBarEdit::TabBarEdit( TabBar* pParent, WinBits nWinStyle ) :
Edit( pParent, nWinStyle )
{
mbPostEvt = false;
+ maLoseFocusIdle.SetPriority( SchedulerPriority::REPAINT );
+ maLoseFocusIdle.SetIdleHdl( LINK( this, TabBarEdit, ImplEndTimerHdl ) );
+ maLoseFocusIdle.SetDebugName( "svtools::TabBarEdit maLoseFocusIdle" );
}
bool TabBarEdit::PreNotify( NotifyEvent& rNEvt )
@@ -452,8 +455,6 @@ IMPL_LINK( TabBarEdit, ImplEndEditHdl, void*, pCancel, void )
// when it shows the context menu or the insert symbol dialog
if ( !HasFocus() && HasChildPathFocus( true ) )
{
- maLoseFocusIdle.SetPriority( SchedulerPriority::REPAINT );
- maLoseFocusIdle.SetIdleHdl( LINK( this, TabBarEdit, ImplEndTimerHdl ) );
maLoseFocusIdle.Start();
}
else
diff --git a/svtools/source/graphic/grfcache.cxx b/svtools/source/graphic/grfcache.cxx
index 6e637d4ac708..dc67cae5170d 100644
--- a/svtools/source/graphic/grfcache.cxx
+++ b/svtools/source/graphic/grfcache.cxx
@@ -826,7 +826,7 @@ void GraphicDisplayCacheEntry::Draw( OutputDevice* pOut, const Point& rPt, const
}
GraphicCache::GraphicCache( sal_uLong nDisplayCacheSize, sal_uLong nMaxObjDisplayCacheSize ) :
- maReleaseTimer ( "GraphicCache maReleaseTimer" ),
+ maReleaseTimer ( "svtools::GraphicCache maReleaseTimer" ),
mnReleaseTimeoutSeconds ( 0UL ),
mnMaxDisplaySize ( nDisplayCacheSize ),
mnMaxObjDisplaySize ( nMaxObjDisplayCacheSize ),
diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx
index f818bad6d96c..c452101e8929 100644
--- a/svtools/source/graphic/grfmgr.cxx
+++ b/svtools/source/graphic/grfmgr.cxx
@@ -400,7 +400,7 @@ void GraphicObject::SetSwapStreamHdl(const Link<const GraphicObject*, SvStream*>
{
if (!mxSwapOutTimer)
{
- mxSwapOutTimer.reset(new Timer("SwapOutTimer"));
+ mxSwapOutTimer.reset(new Timer("svtools::GraphicObject mpSwapOutTimer"));
mxSwapOutTimer->SetTimeoutHdl( LINK( this, GraphicObject, ImplAutoSwapOutHdl ) );
}
diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
index 6730074846ea..8aebaab5be36 100644
--- a/svx/source/form/fmshimp.cxx
+++ b/svx/source/form/fmshimp.cxx
@@ -639,6 +639,7 @@ FmXFormShell::FmXFormShell( FmFormShell& _rShell, SfxViewFrame* _pViewFrame )
{
m_aMarkTimer.SetTimeout(100);
m_aMarkTimer.SetTimeoutHdl(LINK(this,FmXFormShell,OnTimeOut));
+ m_aMarkTimer.SetDebugName("svx::FmXFormShell m_aMarkTimer");
m_xAttachedFrame = _pViewFrame->GetFrame().GetFrameInterface();
diff --git a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
index d0f1d192b20b..8ede68ce1708 100644
--- a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
+++ b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
@@ -385,6 +385,7 @@ namespace sdr
// Init timer
maBufferIdle.SetPriority( SchedulerPriority::POST_PAINT );
maBufferIdle.SetIdleHdl(LINK(this, OverlayManagerBuffered, ImpBufferTimerHandler));
+ maBufferIdle.SetDebugName( "sdr::overlay::OverlayManagerBuffered maBufferIdle" );
}
rtl::Reference<OverlayManager> OverlayManagerBuffered::create(
diff --git a/svx/source/sidebar/PanelLayout.cxx b/svx/source/sidebar/PanelLayout.cxx
index fd8e07538c93..097274a38ad1 100644
--- a/svx/source/sidebar/PanelLayout.cxx
+++ b/svx/source/sidebar/PanelLayout.cxx
@@ -27,6 +27,7 @@ PanelLayout::PanelLayout(vcl::Window* pParent, const OString& rID, const OUStrin
m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame));
m_aPanelLayoutIdle.SetPriority(SchedulerPriority::RESIZE);
m_aPanelLayoutIdle.SetIdleHdl( LINK( this, PanelLayout, ImplHandlePanelLayoutTimerHdl ) );
+ m_aPanelLayoutIdle.SetDebugName( "svx::PanelLayout m_aPanelLayoutIdle" );
if (GetSettings().GetStyleSettings().GetAutoMnemonic())
Accelerator::GenerateAutoMnemonicsOnHierarchy(this);
}
diff --git a/svx/source/svdraw/svdetc.cxx b/svx/source/svdraw/svdetc.cxx
index 83479041ed07..db57960d8363 100644
--- a/svx/source/svdraw/svdetc.cxx
+++ b/svx/source/svdraw/svdetc.cxx
@@ -110,13 +110,12 @@ OLEObjCache::OLEObjCache()
nSize = officecfg::Office::Common::Cache::DrawingEngine::OLE_Objects::get();
else
nSize = 100;
- pTimer = new AutoTimer();
+ pTimer = new AutoTimer( "svx OLEObjCache pTimer UnloadCheck" );
Link<Timer *, void> aLink = LINK(this, OLEObjCache, UnloadCheckHdl);
pTimer->SetTimeoutHdl(aLink);
pTimer->SetTimeout(20000);
pTimer->Start();
- pTimer->SetDebugName("OLEObjCache pTimer UnloadCheck");
aLink.Call(pTimer);
}
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 0642d39f5cee..33eef08d5b32 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -175,6 +175,7 @@ void SdrPaintView::ImpClearVars()
mnGraphicManagerDrawMode = GraphicManagerDrawFlags::STANDARD;
maComeBackIdle.SetPriority(SchedulerPriority::REPAINT);
maComeBackIdle.SetIdleHdl(LINK(this,SdrPaintView,ImpComeBackHdl));
+ maComeBackIdle.SetDebugName( "svx::SdrPaintView aComeBackIdle" );
if (mpModel)
SetDefaultStyleSheet(mpModel->GetDefaultStyleSheet(), true);
diff --git a/sw/source/core/doc/DocumentStatisticsManager.cxx b/sw/source/core/doc/DocumentStatisticsManager.cxx
index 46d4373bd3b7..d4741d39e66c 100644
--- a/sw/source/core/doc/DocumentStatisticsManager.cxx
+++ b/sw/source/core/doc/DocumentStatisticsManager.cxx
@@ -76,6 +76,7 @@ DocumentStatisticsManager::DocumentStatisticsManager( SwDoc& i_rSwdoc ) : m_rDoc
maStatsUpdateTimer.SetTimeout( 1 );
maStatsUpdateTimer.SetPriority( SchedulerPriority::LOWEST );
maStatsUpdateTimer.SetTimeoutHdl( LINK( this, DocumentStatisticsManager, DoIdleStatsUpdate ) );
+ maStatsUpdateTimer.SetDebugName( "sw::DocumentStatisticsManager maStatsUpdateTimer" );
}
void DocumentStatisticsManager::DocInfoChgd(bool const isEnableSetModified)
diff --git a/sw/source/core/doc/DocumentTimerManager.cxx b/sw/source/core/doc/DocumentTimerManager.cxx
index f53eab71f2d3..4a0176b2811d 100644
--- a/sw/source/core/doc/DocumentTimerManager.cxx
+++ b/sw/source/core/doc/DocumentTimerManager.cxx
@@ -44,6 +44,7 @@ DocumentTimerManager::DocumentTimerManager( SwDoc& i_rSwdoc ) : m_rDoc( i_rSwdoc
{
maIdle.SetPriority( SchedulerPriority::LOWEST );
maIdle.SetIdleHdl( LINK( this, DocumentTimerManager, DoIdleJobs) );
+ maIdle.SetDebugName( "sw::DocumentTimerManager maIdle" );
}
void DocumentTimerManager::StartIdling()
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index 84f6aafe2257..325f3833fd12 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -331,6 +331,7 @@ SwDoc::SwDoc()
maOLEModifiedIdle.SetPriority( SchedulerPriority::LOWEST );
maOLEModifiedIdle.SetIdleHdl( LINK( this, SwDoc, DoUpdateModifiedOLE ));
+ maOLEModifiedIdle.SetDebugName( "sw::SwDoc maOLEModifiedIdle" );
#if HAVE_FEATURE_DBCONNECTIVITY
// Create DBManager
diff --git a/sw/source/core/txtnode/SwGrammarContact.cxx b/sw/source/core/txtnode/SwGrammarContact.cxx
index cbf89b966b95..eadc16cfcd0d 100644
--- a/sw/source/core/txtnode/SwGrammarContact.cxx
+++ b/sw/source/core/txtnode/SwGrammarContact.cxx
@@ -63,6 +63,7 @@ SwGrammarContact::SwGrammarContact() : mpProxyList(nullptr), mbFinished( false )
{
aTimer.SetTimeout( 2000 ); // Repaint of grammar check after 'setChecked'
aTimer.SetTimeoutHdl( LINK(this, SwGrammarContact, TimerRepaint) );
+ aTimer.SetDebugName( "sw::SwGrammarContact TimerRepaint" );
}
IMPL_LINK( SwGrammarContact, TimerRepaint, Timer *, pTimer, void )
diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx
index 7d71e852fb85..8ae7d5bc8652 100644
--- a/sw/source/core/unocore/unochart.cxx
+++ b/sw/source/core/unocore/unochart.cxx
@@ -91,6 +91,7 @@ SwChartLockController_Helper::SwChartLockController_Helper( SwDoc *pDocument ) :
{
aUnlockTimer.SetTimeout( 1500 );
aUnlockTimer.SetTimeoutHdl( LINK( this, SwChartLockController_Helper, DoUnlockAllCharts ));
+ aUnlockTimer.SetDebugName( "sw::SwChartLockController_Helper aUnlockTimer" );
}
SwChartLockController_Helper::~SwChartLockController_Helper()
diff --git a/sw/source/uibase/misc/swruler.cxx b/sw/source/uibase/misc/swruler.cxx
index e84b6a04c90e..89c4b5142acb 100644
--- a/sw/source/uibase/misc/swruler.cxx
+++ b/sw/source/uibase/misc/swruler.cxx
@@ -77,6 +77,7 @@ SwCommentRuler::SwCommentRuler( SwViewShell* pViewSh, vcl::Window* pParent, SwEd
// Set fading timeout: 5 x 40ms = 200ms
maFadeTimer.SetTimeout(40);
maFadeTimer.SetTimeoutHdl( LINK( this, SwCommentRuler, FadeHandler ) );
+ maFadeTimer.SetDebugName( "sw::SwCommentRuler maFadeTimer" );
}
// Destructor
diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index 6de7d5b5995f..aec3bc012038 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -997,6 +997,7 @@ SwView::SwView( SfxViewFrame *_pFrame, SfxViewShell* pOldSh )
}
m_aTimer.SetTimeoutHdl(LINK(this, SwView, TimeoutHdl));
+ m_aTimer.SetDebugName( "sw::SwView m_aTimer" );
m_bAttrChgNotified = m_bAttrChgNotifiedWithRegistrations = false;
if (bOldModifyFlag)
rDocSh.EnableSetModified();
diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx
index 90f11d766732..153abc29e371 100644
--- a/vcl/source/app/help.cxx
+++ b/vcl/source/app/help.cxx
@@ -272,10 +272,14 @@ HelpTextWindow::HelpTextWindow( vcl::Window* pParent, const OUString& rText, sal
if ( pSVData->maHelpData.mbSetKeyboardHelp )
pSVData->maHelpData.mbKeyboardHelp = true;
- const HelpSettings& rHelpSettings = pParent->GetSettings().GetHelpSettings();
+
maShowTimer.SetTimeoutHdl( LINK( this, HelpTextWindow, TimerHdl ) );
- maHideTimer.SetTimeoutHdl( LINK( this, HelpTextWindow, TimerHdl ) );
+ maShowTimer.SetDebugName( "vcl::HelpTextWindow maShowTimer" );
+
+ const HelpSettings& rHelpSettings = pParent->GetSettings().GetHelpSettings();
maHideTimer.SetTimeout( rHelpSettings.GetTipTimeout() );
+ maHideTimer.SetTimeoutHdl( LINK( this, HelpTextWindow, TimerHdl ) );
+ maHideTimer.SetDebugName( "vcl::HelpTextWindow maHideTimer" );
}
void HelpTextWindow::StateChanged(StateChangedType nType)
diff --git a/vcl/source/app/timer.cxx b/vcl/source/app/timer.cxx
index 1766d7f0efe1..accd92734746 100644
--- a/vcl/source/app/timer.cxx
+++ b/vcl/source/app/timer.cxx
@@ -113,7 +113,8 @@ Timer& Timer::operator=( const Timer& rTimer )
return *this;
}
-AutoTimer::AutoTimer()
+AutoTimer::AutoTimer( const sal_Char *pDebugName )
+ : Timer( pDebugName )
{
mbAuto = true;
}
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index ade6d7b48b21..610e492ef56c 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -2390,6 +2390,7 @@ void Edit::EnableUpdateData( sal_uLong nTimeout )
{
mpUpdateDataTimer = new Timer("UpdateDataTimer");
mpUpdateDataTimer->SetTimeoutHdl( LINK( this, Edit, ImplUpdateDataHdl ) );
+ mpUpdateDataTimer->SetDebugName( "vcl::Edit mpUpdateDataTimer" );
}
mpUpdateDataTimer->SetTimeout( nTimeout );
diff --git a/vcl/source/control/quickselectionengine.cxx b/vcl/source/control/quickselectionengine.cxx
index 3bd15743cf01..b4612ea52349 100644
--- a/vcl/source/control/quickselectionengine.cxx
+++ b/vcl/source/control/quickselectionengine.cxx
@@ -44,6 +44,7 @@ namespace vcl
{
aSearchTimeout.SetTimeout( 2500 );
aSearchTimeout.SetTimeoutHdl( LINK( this, QuickSelectionEngine_Data, SearchStringTimeout ) );
+ aSearchTimeout.SetDebugName( "vcl::QuickSelectionEngine_Data aSearchTimeout" );
}
~QuickSelectionEngine_Data()
diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx
index 5ddc7dc25e4e..c1a462fffd47 100644
--- a/vcl/source/control/scrbar.cxx
+++ b/vcl/source/control/scrbar.cxx
@@ -94,6 +94,7 @@ void ScrollBar::ImplInit( vcl::Window* pParent, WinBits nStyle )
{
mpData = new ImplScrollBarData;
mpData->maTimer.SetTimeoutHdl( LINK( this, ScrollBar, ImplAutoTimerHdl ) );
+ mpData->maTimer.SetDebugName( "vcl::ScrollBar mpData->maTimer" );
mpData->mbHide = false;
}
diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx
index 1d043ac9efd0..008624b33b7d 100644
--- a/vcl/source/edit/texteng.cxx
+++ b/vcl/source/edit/texteng.cxx
@@ -92,6 +92,7 @@ TextEngine::TextEngine()
mpIdleFormatter = new IdleFormatter;
mpIdleFormatter->SetIdleHdl( LINK( this, TextEngine, IdleFormatHdl ) );
+ mpIdleFormatter->SetDebugName( "vcl::TextEngine mpIdleFormatter" );
mpRefDev = VclPtr<VirtualDevice>::Create();
diff --git a/vcl/source/window/cursor.cxx b/vcl/source/window/cursor.cxx
index 7d76f19dee9e..2133f1821bfb 100644
--- a/vcl/source/window/cursor.cxx
+++ b/vcl/source/window/cursor.cxx
@@ -185,6 +185,7 @@ void vcl::Cursor::ImplDoShow( bool bDrawDirect, bool bRestore )
mpData = new ImplCursorData;
mpData->mbCurVisible = false;
mpData->maTimer.SetTimeoutHdl( LINK( this, Cursor, ImplTimerHdl ) );
+ mpData->maTimer.SetDebugName( "vcl ImplCursorData maTimer" );
}
mpData->mpWindow = pWindow;
diff --git a/vcl/source/window/dockmgr.cxx b/vcl/source/window/dockmgr.cxx
index 12552d728e7a..127557058313 100644
--- a/vcl/source/window/dockmgr.cxx
+++ b/vcl/source/window/dockmgr.cxx
@@ -89,8 +89,11 @@ ImplDockFloatWin2::ImplDockFloatWin2( vcl::Window* pParent, WinBits nWinBits,
maDockIdle.SetIdleHdl( LINK( this, ImplDockFloatWin2, DockTimerHdl ) );
maDockIdle.SetPriority( SchedulerPriority::MEDIUM );
+ maDockIdle.SetDebugName( "vcl::ImplDockFloatWin2 maDockIdle" );
+
maEndDockIdle.SetIdleHdl( LINK( this, ImplDockFloatWin2, EndDockTimerHdl ) );
maEndDockIdle.SetPriority( SchedulerPriority::MEDIUM );
+ maEndDockIdle.SetDebugName( "vcl::ImplDockFloatWin2 maEndDockIdle" );
}
ImplDockFloatWin2::~ImplDockFloatWin2()
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index 4c854c00cefb..b5b543fc3851 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -104,6 +104,7 @@ ImplDockFloatWin::ImplDockFloatWin( vcl::Window* pParent, WinBits nWinBits,
maDockIdle.SetIdleHdl( LINK( this, ImplDockFloatWin, DockTimerHdl ) );
maDockIdle.SetPriority( SchedulerPriority::MEDIUM );
+ maDockIdle.SetDebugName( "vcl::ImplDockFloatWin maDockIdle" );
}
ImplDockFloatWin::~ImplDockFloatWin()
@@ -309,6 +310,7 @@ void DockingWindow::ImplInitDockingWindowData()
//To-Do, reuse maResizeTimer
maLayoutIdle.SetPriority(SchedulerPriority::RESIZE);
maLayoutIdle.SetIdleHdl( LINK( this, DockingWindow, ImplHandleLayoutTimerHdl ) );
+ maLayoutIdle.SetDebugName( "vcl::DockingWindow maLayoutIdle" );
}
void DockingWindow::ImplInit( vcl::Window* pParent, WinBits nStyle )
diff --git a/vcl/source/window/menufloatingwindow.cxx b/vcl/source/window/menufloatingwindow.cxx
index 79586c00c9cc..6ba76bfca6b4 100644
--- a/vcl/source/window/menufloatingwindow.cxx
+++ b/vcl/source/window/menufloatingwindow.cxx
@@ -51,9 +51,14 @@ MenuFloatingWindow::MenuFloatingWindow( Menu* pMen, vcl::Window* pParent, WinBit
aHighlightChangedTimer.SetTimeoutHdl( LINK( this, MenuFloatingWindow, HighlightChanged ) );
aHighlightChangedTimer.SetTimeout( GetSettings().GetMouseSettings().GetMenuDelay() );
+ aHighlightChangedTimer.SetDebugName( "vcl::MenuFloatingWindow aHighlightChangedTimer" );
+
aSubmenuCloseTimer.SetTimeout( GetSettings().GetMouseSettings().GetMenuDelay() );
aSubmenuCloseTimer.SetTimeoutHdl( LINK( this, MenuFloatingWindow, SubmenuClose ) );
+ aSubmenuCloseTimer.SetDebugName( "vcl::MenuFloatingWindow aSubmenuCloseTimer" );
+
aScrollTimer.SetTimeoutHdl( LINK( this, MenuFloatingWindow, AutoScroll ) );
+ aScrollTimer.SetDebugName( "vcl::MenuFloatingWindow aScrollTimer" );
AddEventListener( LINK( this, MenuFloatingWindow, ShowHideListener ) );
}
diff --git a/vcl/source/window/scrwnd.cxx b/vcl/source/window/scrwnd.cxx
index 6433a34fd09d..d3fbe982acb8 100644
--- a/vcl/source/window/scrwnd.cxx
+++ b/vcl/source/window/scrwnd.cxx
@@ -77,6 +77,7 @@ ImplWheelWindow::ImplWheelWindow( vcl::Window* pParent ) :
mpTimer = new Timer("WheelWindowTimer");
mpTimer->SetTimeoutHdl( LINK( this, ImplWheelWindow, ImplScrollHdl ) );
mpTimer->SetTimeout( mnTimeout );
+ mpTimer->SetDebugName( "vcl::ImplWheelWindow mpTimer" );
mpTimer->Start();
CaptureMouse();
diff --git a/vcl/source/window/seleng.cxx b/vcl/source/window/seleng.cxx
index 27075d431c3e..be1c909b91a1 100644
--- a/vcl/source/window/seleng.cxx
+++ b/vcl/source/window/seleng.cxx
@@ -44,6 +44,7 @@ SelectionEngine::SelectionEngine( vcl::Window* pWindow, FunctionSet* pFuncSet )
aWTimer.SetTimeoutHdl( LINK( this, SelectionEngine, ImpWatchDog ) );
aWTimer.SetTimeout( nUpdateInterval );
+ aWTimer.SetDebugName( "vcl::SelectionEngine aWTimer" );
}
SelectionEngine::~SelectionEngine()
diff --git a/vcl/source/window/splitwin.cxx b/vcl/source/window/splitwin.cxx
index 2105a60a6038..64b0ffe08e69 100644
--- a/vcl/source/window/splitwin.cxx
+++ b/vcl/source/window/splitwin.cxx
@@ -1378,6 +1378,7 @@ SplitWindow::SplitWindow( vcl::Window* pParent, WinBits nStyle ) :
DockingWindow( WINDOW_SPLITWINDOW )
{
ImplInit( pParent, nStyle );
+ DockingWindow::SetIdleDebugName( "vcl::SplitWindow maLayoutIdle" );
}
SplitWindow::~SplitWindow()
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 93ebb94f6347..5c03502b54dd 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -87,6 +87,7 @@ SystemWindow::SystemWindow(WindowType nType)
//To-Do, reuse maResizeTimer
maLayoutIdle.SetPriority(SchedulerPriority::RESIZE);
maLayoutIdle.SetIdleHdl( LINK( this, SystemWindow, ImplHandleLayoutTimerHdl ) );
+ maLayoutIdle.SetDebugName( "vcl::SystemWindow maLayoutIdle" );
}
void SystemWindow::loadUI(vcl::Window* pParent, const OString& rID, const OUString& rUIXMLDescription,
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 49ccf4893c96..dde50d482498 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -1407,13 +1407,14 @@ void ToolBox::ImplInitToolBoxData()
mnImagesRotationAngle = 0;
mpStatusListener = new VclStatusListener<ToolBox>(this, ".uno:ImageOrientation");
- mpIdle = new Idle("toolbox update");
+ mpIdle = new Idle("vcl::ToolBox maIdle update");
mpIdle->SetPriority( SchedulerPriority::RESIZE );
mpIdle->SetIdleHdl( LINK( this, ToolBox, ImplUpdateHdl ) );
// set timeout and handler for dropdown items
mpData->maDropdownTimer.SetTimeout( 250 );
mpData->maDropdownTimer.SetTimeoutHdl( LINK( this, ToolBox, ImplDropdownLongClickHdl ) );
+ mpData->maDropdownTimer.SetDebugName( "vcl::ToolBox mpData->maDropdownTimer" );
}
void ToolBox::ImplInit( vcl::Window* pParent, WinBits nStyle )
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 1c8be91f6946..953efb67ab17 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -320,6 +320,7 @@ void Window::StartTracking( StartTrackingFlags nFlags )
else
pSVData->maWinData.mpTrackTimer->SetTimeout( GetSettings().GetMouseSettings().GetButtonStartRepeat() );
pSVData->maWinData.mpTrackTimer->SetTimeoutHdl( LINK( this, Window, ImplTrackTimerHdl ) );
+ pSVData->maWinData.mpTrackTimer->SetDebugName( "vcl::Window pSVData->maWinData.mpTrackTimer" );
pSVData->maWinData.mpTrackTimer->Start();
}
diff --git a/vcl/source/window/wrkwin.cxx b/vcl/source/window/wrkwin.cxx
index cacdfa0857b4..9c51ba1a913b 100644
--- a/vcl/source/window/wrkwin.cxx
+++ b/vcl/source/window/wrkwin.cxx
@@ -41,6 +41,8 @@ void WorkWindow::ImplInitWorkWindowData()
mbPresentationVisible = false;
mbPresentationFull = false;
mbFullScreenMode = false;
+
+ maLayoutIdle.SetDebugName( "vcl::WorkWindow maLayoutIdle" );
}
void WorkWindow::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* pSystemParentData )
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index ffbccc75ef30..a2b6903ae067 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -809,6 +809,7 @@ X11SalFrame::X11SalFrame( SalFrame *pParent, SalFrameStyleFlags nSalFrameStyle,
maAlwaysOnTopRaiseTimer.SetTimeoutHdl( LINK( this, X11SalFrame, HandleAlwaysOnTopRaise ) );
maAlwaysOnTopRaiseTimer.SetTimeout( 100 );
+ maAlwaysOnTopRaiseTimer.SetDebugName( "vcl::X11SalFrame maAlwaysOnTopRaiseTimer" );
meWindowType = WMAdaptor::windowType_Normal;
mnDecorationFlags = WMAdaptor::decoration_All;