diff options
author | mhofmann <borim7@web.de> | 2013-03-24 15:10:51 +0100 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2013-03-25 00:16:16 +0000 |
commit | 97107b997a456fc2e471ac64679e1c8a2a12ab09 (patch) | |
tree | 0c1e5746de1a569f86c4a0f124de35ba3d772f71 /sd | |
parent | 4d05ee2411e4baf13eb9639ffdfd9ce896665396 (diff) |
The tooltips of the slide sorter in impress should behave like the toolbar.
When hovering the mouse over a slide its name is displayed in a tooltip.
If you jump with the mouse from slide to slide the new tooltip is displayed
immediately.
Also remove unused member variables and make tooltip delay configurable.
Change-Id: Ia2347d81620f0ced437beaaeb49d8ad7f41e9333
Reviewed-on: https://gerrit.libreoffice.org/2969
Reviewed-by: Thorsten Behrens <tbehrens@suse.com>
Tested-by: Thorsten Behrens <tbehrens@suse.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/ui/slidesorter/inc/view/SlsTheme.hxx | 1 | ||||
-rw-r--r-- | sd/source/ui/slidesorter/inc/view/SlsToolTip.hxx | 4 | ||||
-rw-r--r-- | sd/source/ui/slidesorter/view/SlsToolTip.cxx | 34 |
3 files changed, 22 insertions, 17 deletions
diff --git a/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx b/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx index 99b089dcbdd7..a4e03da21b25 100644 --- a/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx +++ b/sd/source/ui/slidesorter/inc/view/SlsTheme.hxx @@ -37,7 +37,6 @@ class Properties; namespace sd { namespace slidesorter { namespace view { -const int Theme_ToolTipDelay = 1000; const int Theme_FocusIndicatorWidth = 3; /** Collection of colors and styles that are used to paint the slide sorter diff --git a/sd/source/ui/slidesorter/inc/view/SlsToolTip.hxx b/sd/source/ui/slidesorter/inc/view/SlsToolTip.hxx index 01bc50ef851e..bc26e73bc5d9 100644 --- a/sd/source/ui/slidesorter/inc/view/SlsToolTip.hxx +++ b/sd/source/ui/slidesorter/inc/view/SlsToolTip.hxx @@ -55,10 +55,10 @@ public: private: SlideSorter& mrSlideSorter; model::SharedPageDescriptor mpDescriptor; - ::rtl::OUString msDefaultHelpText; ::rtl::OUString msCurrentHelpText; sal_uLong mnHelpWindowHandle; - Timer maTimer; + Timer maShowTimer; + Timer maHiddenTimer; /** Request to show the tool tip. @param bForce diff --git a/sd/source/ui/slidesorter/view/SlsToolTip.cxx b/sd/source/ui/slidesorter/view/SlsToolTip.cxx index f28aa53b26a0..c0babd796165 100644 --- a/sd/source/ui/slidesorter/view/SlsToolTip.cxx +++ b/sd/source/ui/slidesorter/view/SlsToolTip.cxx @@ -33,13 +33,16 @@ namespace sd { namespace slidesorter { namespace view { ToolTip::ToolTip (SlideSorter& rSlideSorter) : mrSlideSorter(rSlideSorter), - msDefaultHelpText(), msCurrentHelpText(), mnHelpWindowHandle(0), - maTimer() + maShowTimer(), + maHiddenTimer() { - maTimer.SetTimeout(Theme_ToolTipDelay); - maTimer.SetTimeoutHdl(LINK(this, ToolTip, DelayTrigger)); + SharedSdWindow window = rSlideSorter.GetContentWindow(); + const HelpSettings& rHelpSettings = window->GetSettings().GetHelpSettings(); + maShowTimer.SetTimeout(rHelpSettings.GetTipDelay()); + maShowTimer.SetTimeoutHdl(LINK(this, ToolTip, DelayTrigger)); + maHiddenTimer.SetTimeout(rHelpSettings.GetTipDelay()); } @@ -47,19 +50,23 @@ ToolTip::ToolTip (SlideSorter& rSlideSorter) ToolTip::~ToolTip (void) { - maTimer.Stop(); + maShowTimer.Stop(); + maHiddenTimer.Stop(); Hide(); } - - void ToolTip::SetPage (const model::SharedPageDescriptor& rpDescriptor) { if (mpDescriptor != rpDescriptor) { - maTimer.Stop(); - Hide(); + maShowTimer.Stop(); + bool bWasVisible = Hide(); + + if (bWasVisible) + { + maHiddenTimer.Start(); + } mpDescriptor = rpDescriptor; @@ -79,13 +86,12 @@ void ToolTip::SetPage (const model::SharedPageDescriptor& rpDescriptor) sHelpText += OUString::number(mpDescriptor->GetPageIndex()+1); } - msDefaultHelpText = sHelpText; msCurrentHelpText = sHelpText; - Show(false); + // show new tooltip immediately, if last one was recently hidden + Show(maHiddenTimer.IsActive()); } else { - msDefaultHelpText = OUString(); msCurrentHelpText = OUString(); } } @@ -98,7 +104,7 @@ void ToolTip::Show (const bool bNoDelay) if (bNoDelay) DoShow(); else - maTimer.Start(); + maShowTimer.Start(); } @@ -106,7 +112,7 @@ void ToolTip::Show (const bool bNoDelay) void ToolTip::DoShow (void) { - if (maTimer.IsActive()) + if (maShowTimer.IsActive()) { // The delay timer is active. Wait for it to trigger the showing of // the tool tip. |