icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png    
 |binary
 icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png       
 |binary
 
icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg 
|    1 
 icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg   
 |    1 
 officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu              
 |   59 ++++++++++
 sd/inc/bitmaps.hlst                                                            
 |    2 
 sd/source/ui/presenter/PresenterHelper.cxx                                     
 |    4 
 sdext/source/presenter/PresenterController.cxx                                 
 |   14 ++
 sdext/source/presenter/PresenterController.hxx                                 
 |    1 
 sdext/source/presenter/PresenterProtocolHandler.cxx                            
 |   26 ++++
 10 files changed, 108 insertions(+)

New commits:
commit e13ba48c7ff428ee0da29ee3bbb29ee3a1063540
Author:     Srijan Bhatia <srijanbhatia...@gmail.com>
AuthorDate: Wed Jun 24 20:35:00 2020 +0530
Commit:     Heiko Tietze <heiko.tie...@documentfoundation.org>
CommitDate: Sat Jun 27 12:01:23 2020 +0200

    tdf#90978 add exit button to impress presenter console
    
    Change-Id: If8a5226d700eb7a4137218191b5abc85bbb36b4d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97041
    Tested-by: Jenkins
    Tested-by: Heiko Tietze <heiko.tie...@documentfoundation.org>
    Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org>

diff --git 
a/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png 
b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png
new file mode 100644
index 000000000000..8abf67288d8a
Binary files /dev/null and 
b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png 
differ
diff --git 
a/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png 
b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png
new file mode 100644
index 000000000000..bccf5e20b4ea
Binary files /dev/null and 
b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png 
differ
diff --git 
a/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg
 
b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg
new file mode 100644
index 000000000000..97f1804fc32f
--- /dev/null
+++ 
b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg
@@ -0,0 +1 @@
+<svg height="33" viewBox="0 0 8.2020832 8.7312502" width="31" 
xmlns="http://www.w3.org/2000/svg";><path d="m15 3c-7.7319866 0-14 6.2680138-14 
14 0 7.731986 6.2680134 14 14 14 7.731986 0 14-6.268014 14-14 
0-7.7319862-6.268014-14-14-14zm0 2c6.627417 0 12 5.372583 12 12s-5.372583 12-12 
12-12-5.372583-12-12 5.372583-12 12-12zm-6.5449219 4-1.4550781 1.455078 
6.544922 6.544922-6.544922 6.544922 1.4550781 1.455078 6.5449219-6.544922 
6.544922 6.544922 1.455078-1.455078-6.544922-6.544922 
6.544922-6.544922-1.455078-1.455078-6.544922 6.544922z" fill="#fff" 
stroke-width=".999999" transform="scale(.26458333)"/></svg>
\ No newline at end of file
diff --git 
a/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg 
b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg
new file mode 100644
index 000000000000..33321a959164
--- /dev/null
+++ 
b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg
@@ -0,0 +1 @@
+<svg height="33" viewBox="0 0 8.2020832 8.7312502" width="31" 
xmlns="http://www.w3.org/2000/svg";><path d="m15 3c-7.7319866 0-14 6.2680138-14 
14 0 7.731986 6.2680134 14 14 14 7.731986 0 14-6.268014 14-14 
0-7.7319862-6.268014-14-14-14zm0 2c6.627417 0 12 5.372583 12 12s-5.372583 12-12 
12-12-5.372583-12-12 5.372583-12 12-12zm-6.5449219 4-1.4550781 1.455078 
6.544922 6.544922-6.544922 6.544922 1.4550781 1.455078 6.5449219-6.544922 
6.544922 6.544922 1.455078-1.455078-6.544922-6.544922 
6.544922-6.544922-1.455078-1.455078-6.544922 6.544922z" fill="#b3b7bc" 
stroke-width=".999999" transform="scale(.26458333)"/></svg>
\ No newline at end of file
diff --git a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu 
b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
index d5d3bc2e10eb..c60645af20d3 100644
--- a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
@@ -618,6 +618,65 @@
               </node>
             </node>
           </node>
+          <node oor:name="q" oor:op="replace">
+            <prop oor:name="Type">
+              <value>VerticalSeparator</value>
+            </prop>
+            <node oor:name="Normal">
+              <node oor:name="Font">
+                <prop oor:name="Color">
+                  <value>76797C</value>
+                </prop>
+              </node>
+            </node>
+          </node>
+          <node oor:name="r" oor:op="replace">
+            <prop oor:name="Name">
+              <value>ExitPresenter</value>
+            </prop>
+            <prop oor:name="Type">
+              <value>Button</value>
+            </prop>
+            <node oor:name="Normal">
+              <prop oor:name="Text">
+                <value xml:lang="en-US">Exit</value>
+              </prop>
+              <node oor:name="Icon">
+                <prop oor:name="NormalFileName">
+                  <value>bitmaps/ButtonExitPresenterNormal.png</value>
+                </prop>
+              </node>
+              <prop oor:name="Action">
+                
<value>vnd.org.libreoffice.presenterscreen:ExitPresenter</value>
+              </prop>
+              <node oor:name="Font">
+                <prop oor:name="Size">
+                  <value>12</value>
+                </prop>
+                <prop oor:name="Style">
+                  <value>Bold</value>
+                </prop>
+                <prop oor:name="Color">
+                  <value>B3B7BC</value>
+                </prop>
+                <prop oor:name="Anchor">
+                  <value>Center</value>
+                </prop>
+              </node>
+            </node>
+            <node oor:name="MouseOver">
+              <node oor:name="Icon">
+                <prop oor:name="NormalFileName">
+                  <value>bitmaps/ButtonExitPresenterMouseOver.png</value>
+                </prop>
+              </node>
+              <node oor:name="Font">
+                <prop oor:name="Color">
+                  <value>FFFFFF</value>
+                </prop>
+              </node>
+            </node>
+          </node>
         </node>
       </node>
       <node oor:name="NotesToolBar" oor:op="replace">
diff --git a/sd/inc/bitmaps.hlst b/sd/inc/bitmaps.hlst
index 69248b4759ba..748ea562efa1 100644
--- a/sd/inc/bitmaps.hlst
+++ b/sd/inc/bitmaps.hlst
@@ -103,6 +103,7 @@
 #define BMP_PRESENTERSCREEN_BORDER_TOOLBAR_TOP                  
"sd/res/presenterscreen-BorderToolbarTop.png"
 #define BMP_PRESENTERSCREEN_BORDER_ACTIVE_LEFT                  
"sd/res/presenterscreen-BorderActiveLeft.png"
 #define BMP_PRESENTERSCREEN_BUTTON_HELP_NORMAL                  
"sd/res/presenterscreen-ButtonHelpNormal.png"
+#define BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_NORMAL        
"sd/res/presenterscreen-ButtonExitPresenterNormal.png"
 #define BMP_PRESENTERSCREEN_BORDER_ACTIVE_BOTTOM_CALLOUT        
"sd/res/presenterscreen-BorderActiveBottomCallout.png"
 #define BMP_PRESENTERSCREEN_BORDER_TOOLBAR_LEFT                 
"sd/res/presenterscreen-BorderToolbarLeft.png"
 #define BMP_PRESENTERSCREEN_BUTTON_SLIDE_SORTER_NORMAL          
"sd/res/presenterscreen-ButtonSlideSorterNormal.png"
@@ -164,6 +165,7 @@
 #define BMP_PRESENTERSCREEN_BORDER_CURRENT_SLIDE_BOTTOM_LEFT    
"sd/res/presenterscreen-BorderCurrentSlideBottomLeft.png"
 #define BMP_PRESENTERSCREEN_BORDER_TOP_RIGHT                    
"sd/res/presenterscreen-BorderTopRight.png"
 #define BMP_PRESENTERSCREEN_BUTTON_HELP_MOUSE_OVER              
"sd/res/presenterscreen-ButtonHelpMouseOver.png"
+#define BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_MOUSE_OVER    
"sd/res/presenterscreen-ButtonExitPresenterMouseOver.png"
 #define BMP_PRESENTERSCREEN_SCROLLBAR_THUMB_TOP_NORMAL          
"sd/res/presenterscreen-ScrollbarThumbTopNormal.png"
 #define BMP_PRESENTERSCREEN_SCROLLBAR_ARROW_UP_SELECTED         
"sd/res/presenterscreen-ScrollbarArrowUpSelected.png"
 #define BMP_PRESENTERSCREEN_SCROLLBAR_ARROW_UP_DISABLED         
"sd/res/presenterscreen-ScrollbarArrowUpDisabled.png"
diff --git a/sd/source/ui/presenter/PresenterHelper.cxx 
b/sd/source/ui/presenter/PresenterHelper.cxx
index 0ce0a02f424f..ec1d63e7029c 100644
--- a/sd/source/ui/presenter/PresenterHelper.cxx
+++ b/sd/source/ui/presenter/PresenterHelper.cxx
@@ -276,6 +276,10 @@ Reference<rendering::XBitmap> SAL_CALL 
PresenterHelper::loadBitmap (
           BMP_PRESENTERSCREEN_BUTTON_HELP_NORMAL },
         { "bitmaps/ButtonHelpSelected.png",
           BMP_PRESENTERSCREEN_BUTTON_HELP_SELECTED },
+        { "bitmaps/ButtonExitPresenterMouseOver.png",
+          BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_MOUSE_OVER },
+        { "bitmaps/ButtonExitPresenterNormal.png",
+          BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_NORMAL },
         { "bitmaps/ButtonMinusDisabled.png",
           BMP_PRESENTERSCREEN_BUTTON_MINUS_DISABLED },
         { "bitmaps/ButtonMinusMouseOver.png",
diff --git a/sdext/source/presenter/PresenterController.cxx 
b/sdext/source/presenter/PresenterController.cxx
index c37ee6f8b097..281f77e59d5e 100644
--- a/sdext/source/presenter/PresenterController.cxx
+++ b/sdext/source/presenter/PresenterController.cxx
@@ -1157,6 +1157,20 @@ void PresenterController::SwitchMonitors()
     pScreen->SwitchMonitors();
 }
 
+void PresenterController::ExitPresenter()
+{
+    if( mxController.is() )
+        {
+            Reference< XPresentationSupplier > xPS( mxController->getModel(), 
UNO_QUERY );
+            if( xPS.is() )
+            {
+                Reference< XPresentation > xP( xPS->getPresentation() );
+                if( xP.is() )
+                    xP->end();
+            }
+        }
+}
+
 } // end of namespace ::sdext::presenter
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/presenter/PresenterController.hxx 
b/sdext/source/presenter/PresenterController.hxx
index 400fb9174f11..1a9d8a1aaa04 100644
--- a/sdext/source/presenter/PresenterController.hxx
+++ b/sdext/source/presenter/PresenterController.hxx
@@ -110,6 +110,7 @@ public:
     void ShowView (const OUString& rsViewURL);
     void HideView (const OUString& rsViewURL);
     void SwitchMonitors();
+    void ExitPresenter();
     void DispatchUnoCommand (const OUString& rsCommand) const;
     css::uno::Reference<css::frame::XDispatch> GetDispatch (
         const css::util::URL& rURL) const;
diff --git a/sdext/source/presenter/PresenterProtocolHandler.cxx 
b/sdext/source/presenter/PresenterProtocolHandler.cxx
index 029365e3b21d..64b00fd36f67 100644
--- a/sdext/source/presenter/PresenterProtocolHandler.cxx
+++ b/sdext/source/presenter/PresenterProtocolHandler.cxx
@@ -164,6 +164,15 @@ namespace {
         const sal_Int32 mnSizeChange;
     };
 
+    class ExitPresenterCommand : public Command
+    {
+    public:
+        explicit ExitPresenterCommand(const 
rtl::Reference<PresenterController>& rpPresenterController);
+        virtual void Execute() override;
+    private:
+        rtl::Reference<PresenterController> mpPresenterController;
+    };
+
 } // end of anonymous namespace
 
 namespace {
@@ -398,6 +407,8 @@ Command* PresenterProtocolHandler::Dispatch::CreateCommand (
         return new SetHelpViewCommand(true, rpPresenterController);
     if (rsURLPath == "ShrinkNotesFont")
         return new NotesFontSizeCommand(rpPresenterController, -1);
+    if (rsURLPath == "ExitPresenter")
+        return new ExitPresenterCommand(rpPresenterController);
 
     return nullptr;
 }
@@ -805,6 +816,21 @@ Any NotesFontSizeCommand::GetState() const
     return Any();
 }
 
+//===== ExitPresenterCommand ==================================================
+
+ExitPresenterCommand::ExitPresenterCommand (const 
rtl::Reference<PresenterController>& rpPresenterController)
+: mpPresenterController(rpPresenterController)
+{
+}
+
+void ExitPresenterCommand::Execute()
+{
+    if ( ! mpPresenterController.is())
+        return;
+
+    mpPresenterController->ExitPresenter();
+}
+
 } // end of namespace ::sdext::presenter
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to