tdf#134281 [API-CHANGE] Add keyboard shortcut for UsePen and EraseInk
As suggested by UX meeting:
- Remove P and N keys from previous/next slide
- Assign them to Pen (on=off) and erase ink commands
Do this for presenter console as well.
Modify help text of the presenter console to reflect these changes.
Change-Id: I28d2178f7391739d4f8f5e8f63ab54714fcc97c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109108
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
diff --git a/offapi/com/sun/star/presentation/XSlideShowController.idl b/offapi/com/sun/star/presentation/XSlideShowController.idl
index 3d8528d..2d93e33 100644
--- a/offapi/com/sun/star/presentation/XSlideShowController.idl
+++ b/offapi/com/sun/star/presentation/XSlideShowController.idl
@@ -245,6 +245,12 @@ interface XSlideShowController
[attribute] double PenWidth;
/** This method clears ink drawing from the slideshow being played
@since LibreOffice 7.2
*/
void setEraseAllInk( [in] boolean EraseAllInk );
/** returns the actual XSlideShow instance that runs the
slide show.
<br>Normally all navigation should be done using this controller and
diff --git a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
index c60645a..4f99dae 100644
--- a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
@@ -973,7 +973,7 @@
<node oor:name="HelpStrings">
<node oor:name="a" oor:op="replace">
<prop oor:name="Left">
<value xml:lang="en-US">Left click, right or down arrow, spacebar, page down, enter, return, 'N'</value>
<value xml:lang="en-US">Left click, right or down arrow, spacebar, page down, enter, return</value>
</prop>
<prop oor:name="Right">
<value xml:lang="en-US">Next slide, or next effect</value>
@@ -981,7 +981,7 @@
</node>
<node oor:name="b" oor:op="replace">
<prop oor:name="Left">
<value xml:lang="en-US">Right click, left or up arrow, page up, backspace, 'P'</value>
<value xml:lang="en-US">Right click, left or up arrow, page up, backspace</value>
</prop>
<prop oor:name="Right">
<value xml:lang="en-US">Previous slide, or previous effect</value>
@@ -989,10 +989,10 @@
</node>
<node oor:name="c" oor:op="replace">
<prop oor:name="Left">
<value xml:lang="x-no-translate"> </value>
<value xml:lang="en-US">'P'</value>
</prop>
<prop oor:name="Right">
<value xml:lang="x-no-translate"> </value>
<value xml:lang="en-US">Use mouse pointer as pen</value>
</prop>
</node>
<node oor:name="d" oor:op="replace">
@@ -1013,10 +1013,10 @@
</node>
<node oor:name="f" oor:op="replace">
<prop oor:name="Left">
<value xml:lang="x-no-translate"> </value>
<value xml:lang="en-US">'E'</value>
</prop>
<prop oor:name="Right">
<value xml:lang="x-no-translate"> </value>
<value xml:lang="en-US">Erase all ink on slide</value>
</prop>
</node>
<node oor:name="g" oor:op="replace">
diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx
index b10d116..41c3316 100644
--- a/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -1756,7 +1756,6 @@ bool SlideshowImpl::keyInput(const KeyEvent& rKEvt)
case KEY_SPACE:
case KEY_RIGHT:
case KEY_DOWN:
case KEY_N:
gotoNextEffect();
break;
@@ -1801,11 +1800,19 @@ bool SlideshowImpl::keyInput(const KeyEvent& rKEvt)
[[fallthrough]];
case KEY_LEFT:
case KEY_UP:
case KEY_P:
case KEY_BACKSPACE:
gotoPreviousEffect();
break;
case KEY_P:
setUsePen( !mbUsePen );
break;
case KEY_E:
setEraseAllInk( true );
updateSlideShow();
break;
case KEY_HOME:
gotoFirstSlide();
break;
@@ -2685,7 +2692,7 @@ void SAL_CALL SlideshowImpl::setPenColor( sal_Int32 nColor )
setUsePen( true ); // enable pen mode, update color
}
void SlideshowImpl::setEraseAllInk(bool bEraseAllInk)
void SAL_CALL SlideshowImpl::setEraseAllInk(sal_Bool bEraseAllInk)
{
if( !bEraseAllInk )
return;
diff --git a/sd/source/ui/slideshow/slideshowimpl.hxx b/sd/source/ui/slideshow/slideshowimpl.hxx
index 8f848a4..5fbd564 100644
--- a/sd/source/ui/slideshow/slideshowimpl.hxx
+++ b/sd/source/ui/slideshow/slideshowimpl.hxx
@@ -146,7 +146,7 @@ public:
virtual double SAL_CALL getPenWidth() override;
virtual void SAL_CALL setPenWidth( double dStrokeWidth ) override;
/// @throws css::uno::RuntimeException
void setEraseAllInk( bool bEraseAllInk );
virtual void SAL_CALL setEraseAllInk( sal_Bool bEraseAllInk ) override;
virtual sal_Bool SAL_CALL isRunning( ) override;
virtual ::sal_Int32 SAL_CALL getSlideCount( ) override;
virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL getSlideByIndex( ::sal_Int32 Index ) override;
diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx
index 050109f..58f423d 100644
--- a/sdext/source/presenter/PresenterController.cxx
+++ b/sdext/source/presenter/PresenterController.cxx
@@ -859,7 +859,6 @@ void SAL_CALL PresenterController::keyReleased (const awt::KeyEvent& rEvent)
case awt::Key::RIGHT:
case awt::Key::SPACE:
case awt::Key::DOWN:
case awt::Key::N:
if (mxSlideShowController.is())
{
mxSlideShowController->gotoNextEffect();
@@ -878,7 +877,6 @@ void SAL_CALL PresenterController::keyReleased (const awt::KeyEvent& rEvent)
case awt::Key::LEFT:
case awt::Key::UP:
case awt::Key::P:
case awt::Key::BACKSPACE:
if (mxSlideShowController.is())
{
@@ -886,6 +884,21 @@ void SAL_CALL PresenterController::keyReleased (const awt::KeyEvent& rEvent)
}
break;
case awt::Key::P:
if (mxSlideShowController.is())
{
bool bPenEnabled = mxSlideShowController->getUsePen();
mxSlideShowController->setUsePen( !bPenEnabled );
}
break;
case awt::Key::E:
if (mxSlideShowController.is())
{
mxSlideShowController->setEraseAllInk( true );
}
break;
case awt::Key::HOME:
if (mxSlideShowController.is())
{