[Libreoffice-commits] core.git: icon-themes/breeze icon-themes/galaxy icon-themes/sifr icon-themes/tango include/svx officecfg/registry svx/sdi sw/inc sw/Library_sw.mk sw/sdi sw/source sw/uiconfig sw/UIConfig_swriter.mk

Szymon Kłos eszkadev at gmail.com
Mon Sep 5 09:24:19 UTC 2016


 dev/null                                                            |binary
 icon-themes/breeze/cmd/lc_orientation.png                           |binary
 icon-themes/galaxy/cmd/lc_orientation.png                           |binary
 icon-themes/sifr/cmd/lc_orientation.png                             |binary
 icon-themes/tango/cmd/lc_orientation.png                            |binary
 include/svx/svxids.hrc                                              |    1 
 officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu |    8 
 svx/sdi/svx.sdi                                                     |   19 
 sw/Library_sw.mk                                                    |    1 
 sw/UIConfig_swriter.mk                                              |    1 
 sw/inc/PageOrientationPopup.hxx                                     |   41 ++
 sw/sdi/_viewsh.sdi                                                  |    4 
 sw/source/ui/sidebar/PagePropertyPanel.src                          |   42 --
 sw/source/uibase/app/swmodule.cxx                                   |    2 
 sw/source/uibase/sidebar/PageOrientationControl.cxx                 |  197 +++++++---
 sw/source/uibase/sidebar/PageOrientationControl.hxx                 |   35 -
 sw/source/uibase/sidebar/PageOrientationPopup.cxx                   |   46 ++
 sw/source/uibase/sidebar/PagePropertyPanel.cxx                      |  116 -----
 sw/source/uibase/sidebar/PagePropertyPanel.hrc                      |    7 
 sw/source/uibase/sidebar/PagePropertyPanel.hxx                      |    9 
 sw/source/uibase/sidebar/PropertyPanel.hrc                          |    1 
 sw/source/uibase/uiview/viewstat.cxx                                |    1 
 sw/uiconfig/swriter/ui/notebookbar.ui                               |  179 +++++----
 sw/uiconfig/swriter/ui/pageorientationcontrol.ui                    |   71 +++
 sw/uiconfig/swriter/ui/sidebarpage.ui                               |   26 -
 25 files changed, 476 insertions(+), 331 deletions(-)

New commits:
commit cbe43883e465336da55c96665f9bb7672ffa3bb0
Author: Szymon Kłos <eszkadev at gmail.com>
Date:   Fri Aug 26 14:00:03 2016 +0200

    Page orientation popup converted to use outside sidebar
    
    * popup converted to .ui file
    * added .uno:Orientation
    * label & icon for .uno:Orientation
    * control inserted to the notebookbar.ui (Page layout tab)
    
    Change-Id: I93f35a65c4461635d0cfd1afd4546a9d2a8c4d04
    Reviewed-on: https://gerrit.libreoffice.org/28405
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>

diff --git a/icon-themes/breeze/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png b/icon-themes/breeze/cmd/lc_orientation.png
similarity index 100%
rename from icon-themes/breeze/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png
rename to icon-themes/breeze/cmd/lc_orientation.png
diff --git a/icon-themes/galaxy/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png b/icon-themes/galaxy/cmd/lc_orientation.png
similarity index 100%
rename from icon-themes/galaxy/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png
rename to icon-themes/galaxy/cmd/lc_orientation.png
diff --git a/icon-themes/sifr/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png b/icon-themes/sifr/cmd/lc_orientation.png
similarity index 100%
rename from icon-themes/sifr/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png
rename to icon-themes/sifr/cmd/lc_orientation.png
diff --git a/icon-themes/tango/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png b/icon-themes/tango/cmd/lc_orientation.png
similarity index 100%
rename from icon-themes/tango/sw/res/sidebar/pageproppanel/portraitcopy_24x24.png
rename to icon-themes/tango/cmd/lc_orientation.png
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 81eb9f4..7157993 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -242,6 +242,7 @@
 #define SID_ATTR_PAGE                                   ( SID_SVX_START + 50 )
 #define SID_ATTR_PAGE_SIZE                              ( SID_SVX_START + 51 )
 #define SID_ATTR_PAGE_MAXSIZE                           ( SID_SVX_START + 52 )
+#define SID_ATTR_PAGE_ORIENTATION                       ( SID_SVX_START + 53 )
 #define SID_ATTR_PAGE_PAPERBIN                          ( SID_SVX_START + 54 )
 #define SID_ATTR_PAGE_EXT1                              ( SID_SVX_START + 56 )
 #define SID_ATTR_PAGE_EXT2                              ( SID_SVX_START + 57 )
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
index a5b7fcb..a8072e8 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
@@ -2817,6 +2817,14 @@
           <value>1</value>
         </prop>
       </node>
+      <node oor:name=".uno:Orientation" oor:op="replace">
+        <prop oor:name="Label" oor:type="xs:string">
+          <value xml:lang="en-US">Orientation</value>
+        </prop>
+        <prop oor:name="Properties" oor:type="xs:int">
+          <value>1</value>
+        </prop>
+      </node>
     </node>
   </node>
 </oor:component-data>
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 38082be..f5f83ae 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -6099,6 +6099,25 @@ SvxPageItem AttributePage SID_ATTR_PAGE
 ]
 
 
+SvxPageItem Orientation SID_ATTR_PAGE_ORIENTATION
+
+[
+    AutoUpdate = FALSE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = GID_FORMAT;
+]
+
+
 SvxAutoKernItem PairKerning SID_ATTR_CHAR_AUTOKERN
 
 [
diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk
index c563c9c..7288a85 100644
--- a/sw/Library_sw.mk
+++ b/sw/Library_sw.mk
@@ -677,6 +677,7 @@ $(eval $(call gb_Library_add_exception_objects,sw,\
     sw/source/uibase/shells/txtnum \
     sw/source/uibase/sidebar/StylePresetsPanel \
     sw/source/uibase/sidebar/PageOrientationControl \
+    sw/source/uibase/sidebar/PageOrientationPopup \
     sw/source/uibase/sidebar/PageMarginControl \
     sw/source/uibase/sidebar/PageSizeControl \
     sw/source/uibase/sidebar/PageColumnControl \
diff --git a/sw/UIConfig_swriter.mk b/sw/UIConfig_swriter.mk
index 397d3b3..ad698ec 100644
--- a/sw/UIConfig_swriter.mk
+++ b/sw/UIConfig_swriter.mk
@@ -206,6 +206,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/swriter,\
 	sw/uiconfig/swriter/ui/notebookbar \
 	sw/uiconfig/swriter/ui/notebookbar_groups \
 	sw/uiconfig/swriter/ui/notebookbar_single \
+	sw/uiconfig/swriter/ui/pageorientationcontrol \
 	sw/uiconfig/swriter/ui/paradialog \
 	sw/uiconfig/swriter/ui/picturedialog \
 	sw/uiconfig/swriter/ui/picturepage \
diff --git a/sw/inc/PageOrientationPopup.hxx b/sw/inc/PageOrientationPopup.hxx
new file mode 100644
index 0000000..7726104
--- /dev/null
+++ b/sw/inc/PageOrientationPopup.hxx
@@ -0,0 +1,41 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_SW_INC_PAGEORIENTATIONPOPUP_HXX
+#define INCLUDED_SW_INC_PAGEORIENTATIONPOPUP_HXX
+
+#include <sfx2/tbxctrl.hxx>
+#include <swdllapi.h>
+#include <vcl/vclenum.hxx>
+#include <functional>
+
+class SW_DLLPUBLIC PageOrientationPopup : public SfxToolBoxControl
+{
+public:
+    SFX_DECL_TOOLBOX_CONTROL();
+
+    PageOrientationPopup(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx);
+    virtual ~PageOrientationPopup();
+
+    virtual VclPtr<SfxPopupWindow> CreatePopupWindow() override;
+};
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi
index 2777943..99f3fb6 100644
--- a/sw/sdi/_viewsh.sdi
+++ b/sw/sdi/_viewsh.sdi
@@ -402,6 +402,10 @@ interface BaseTextEditView
         ExecMethod = Execute ;
         StateMethod = GetState ;
     ]
+    SID_ATTR_PAGE_ORIENTATION // status()
+    [
+        StateMethod = GetState ;
+    ]
     SID_ATTR_PAGE_SIZE // status(final|play)
     [
         ExecMethod = Execute ;
diff --git a/sw/source/ui/sidebar/PagePropertyPanel.src b/sw/source/ui/sidebar/PagePropertyPanel.src
index f38b73b..785861d 100644
--- a/sw/source/ui/sidebar/PagePropertyPanel.src
+++ b/sw/source/ui/sidebar/PagePropertyPanel.src
@@ -22,14 +22,6 @@
 #include "PagePropertyPanel.hrc"
 #include "helpid.h"
 
-Image IMG_PAGE_PORTRAIT
-{
-    ImageBitmap = Bitmap{File = "sidebar/pageproppanel/portraitcopy_24x24.png";};
-};
-Image IMG_PAGE_LANDSCAPE
-{
-    ImageBitmap = Bitmap{File = "sidebar/pageproppanel/Landscapecopy_24x24.png";};
-};
 Image IMG_PAGE_NARROW
 {
     ImageBitmap = Bitmap{File = "sidebar/pageproppanel/format_L_narrow_24x24.png";};
@@ -191,40 +183,6 @@ Image IMG_PAGE_COLUMN_NONE_L
     ImageBitmap = Bitmap{File = "sidebar/pageproppanel/columncopy_24x24.png";};
 };
 
-// popup for page orientation attribute
-Control RID_POPUP_SWPAGE_ORIENTATION
-{
-    OutputSize = TRUE;
-    DialogControl = TRUE;
-    Border = FALSE;
-    Size = MAP_APPFONT( POPUPPANEL_MARGIN_SMALL * 2 + POPUP_BORDER_WIDTH + VS_WIDTH, ITEM_HEIGHT*2 + POPUPPANEL_MARGIN_SMALL*2 );
-
-    Control VS_ORIENTATION
-    {
-        Pos = MAP_APPFONT(  POPUPPANEL_MARGIN_SMALL + OFFSET_X, POPUPPANEL_MARGIN_SMALL + OFFSET_Y);
-        Size = MAP_APPFONT ( VS_WIDTH  , ITEM_HEIGHT*2);
-        HelpID = HID_SWPAGE_VS_ORIENTATION;
-        TabStop = TRUE ;
-        Text = "Orientation";
-    };
-    Image IMG_PORTRAIT
-    {
-        ImageBitmap = Bitmap{File = "sidebar/pageproppanel/portraitcopy_24x24.png";};
-    };
-    Image IMG_LANDSCAPE
-    {
-        ImageBitmap = Bitmap{File = "sidebar/pageproppanel/Landscapecopy_24x24.png";};
-    };
-    String STR_PORTRAIT
-    {
-        Text [ en-US ] = "Portrait";
-    };
-    String STR_LANDSCAPE
-    {
-        Text [ en-US ] = "Landscape";
-    };
-};
-
 // popup for page style's margin attributes
 Control RID_POPUP_SWPAGE_MARGIN
 {
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 2b0b33c..e41b621 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -110,6 +110,7 @@
 #include <barcfg.hxx>
 #include <svx/rubydialog.hxx>
 #include <svtools/colorcfg.hxx>
+#include <PageOrientationPopup.hxx>
 
 #include <unotools/configmgr.hxx>
 #include <unotools/moduleoptions.hxx>
@@ -291,6 +292,7 @@ void SwDLL::RegisterControls()
     svx::TextUnderlinePopup::RegisterControl(SID_ATTR_CHAR_UNDERLINE, pMod);
     svx::ParaULSpacingControl::RegisterControl(SID_ATTR_PARA_ULSPACE, pMod);
     svx::ParaLRSpacingControl::RegisterControl(SID_ATTR_PARA_LRSPACE, pMod);
+    PageOrientationPopup::RegisterControl(SID_ATTR_PAGE_ORIENTATION, pMod);
 
     SvxColorToolBoxControl::RegisterControl( SID_EXTRUSION_3D_COLOR, pMod );
 
diff --git a/sw/source/uibase/sidebar/PageOrientationControl.cxx b/sw/source/uibase/sidebar/PageOrientationControl.cxx
index 6fecc46..20e3bb8 100644
--- a/sw/source/uibase/sidebar/PageOrientationControl.cxx
+++ b/sw/source/uibase/sidebar/PageOrientationControl.cxx
@@ -18,47 +18,50 @@
  */
 
 #include "PageOrientationControl.hxx"
-#include "PagePropertyPanel.hxx"
-#include "PagePropertyPanel.hrc"
+#include "PageMarginControl.hxx"
 
 #include <swtypes.hxx>
+#include <sfx2/viewsh.hxx>
+#include <sfx2/dispatch.hxx>
+#include <svx/svxids.hrc>
+#include <cmdid.h>
 
-#include <svx/sidebar/ValueSetWithTextControl.hxx>
-#include <vcl/settings.hxx>
+namespace {
+    const css::uno::Reference< css::document::XUndoManager > getUndoManager( const css::uno::Reference< css::frame::XFrame >& rxFrame )
+    {
+        const css::uno::Reference< css::frame::XController >& xController = rxFrame->getController();
+        if ( xController.is() )
+        {
+            const css::uno::Reference< css::frame::XModel >& xModel = xController->getModel();
+            if ( xModel.is() )
+            {
+                const css::uno::Reference< css::document::XUndoManagerSupplier > xSuppUndo( xModel, css::uno::UNO_QUERY_THROW );
+                if ( xSuppUndo.is() )
+                {
+                    const css::uno::Reference< css::document::XUndoManager > xUndoManager( xSuppUndo->getUndoManager(), css::uno::UNO_QUERY_THROW );
+                    return xUndoManager;
+                }
+            }
+        }
+
+        return css::uno::Reference< css::document::XUndoManager > ();
+    }
+}
 
 namespace sw { namespace sidebar {
 
-PageOrientationControl::PageOrientationControl(
-    vcl::Window* pParent,
-    PagePropertyPanel& rPanel,
-    const bool bLandscape )
-    : svx::sidebar::PopupControl( pParent, SW_RES(RID_POPUP_SWPAGE_ORIENTATION) )
-    , mpOrientationValueSet( VclPtr<svx::sidebar::ValueSetWithTextControl>::Create( svx::sidebar::ValueSetWithTextControl::ControlType::ImageText, this, SW_RES(VS_ORIENTATION) ) )
-    , mbLandscape( bLandscape )
-    , mrPagePropPanel(rPanel)
+PageOrientationControl::PageOrientationControl( sal_uInt16 nId )
+    : SfxPopupWindow( nId, "PageOrientationControl", "modules/swriter/ui/pageorientationcontrol.ui" )
+    , mpPageItem( new SvxPageItem(SID_ATTR_PAGE) )
+    , mpPageSizeItem( new SvxSizeItem(SID_ATTR_PAGE_SIZE) )
+    , mpPageLRMarginItem( new SvxLongLRSpaceItem( 0, 0, SID_ATTR_PAGE_LRSPACE ) )
+    , mpPageULMarginItem( new SvxLongULSpaceItem( 0, 0, SID_ATTR_PAGE_ULSPACE ) )
 {
-    mpOrientationValueSet->SetStyle( mpOrientationValueSet->GetStyle() | WB_3DLOOK | WB_NO_DIRECTSELECT );
-    mpOrientationValueSet->SetColor(GetSettings().GetStyleSettings().GetMenuColor());
+    get(m_pPortrait, "portrait");
+    get(m_pLandscape, "landscape");
 
-    // initialize <ValueSetWithText> control
-    {
-        mpOrientationValueSet->AddItem(Image(SW_RES(IMG_PORTRAIT)), nullptr,
-                SW_RES(STR_PORTRAIT), nullptr);
-        mpOrientationValueSet->AddItem(Image(SW_RES(IMG_LANDSCAPE)), nullptr,
-                    SW_RES(STR_LANDSCAPE), nullptr );
-    }
-
-    mpOrientationValueSet->SetSelectHdl(LINK(this, PageOrientationControl,ImplOrientationHdl ));
-    mpOrientationValueSet->SetNoSelection();
-    mpOrientationValueSet->StartSelection();
-    mpOrientationValueSet->Show();
-    mpOrientationValueSet->SelectItem( mbLandscape ? 2 : 1 );
-    mpOrientationValueSet->GrabFocus();
-    mpOrientationValueSet->SetFormat();
-    mpOrientationValueSet->Invalidate();
-    mpOrientationValueSet->StartSelection();
-
-    FreeResource();
+    m_pPortrait->SetClickHdl( LINK( this, PageOrientationControl,ImplOrientationHdl ) );
+    m_pLandscape->SetClickHdl( LINK( this, PageOrientationControl,ImplOrientationHdl ) );
 }
 
 PageOrientationControl::~PageOrientationControl()
@@ -68,26 +71,130 @@ PageOrientationControl::~PageOrientationControl()
 
 void PageOrientationControl::dispose()
 {
-    mpOrientationValueSet.disposeAndClear();
-    svx::sidebar::PopupControl::dispose();
+    m_pPortrait.disposeAndClear();
+    m_pLandscape.disposeAndClear();
+
+    mpPageItem.reset();
+    mpPageLRMarginItem.reset();
+    mpPageULMarginItem.reset();
+    mpPageSizeItem.reset();
+
+    SfxPopupWindow::dispose();
+}
+
+void PageOrientationControl::ExecuteMarginLRChange(
+    const long nPageLeftMargin,
+    const long nPageRightMargin )
+{
+    mpPageLRMarginItem->SetLeft( nPageLeftMargin );
+    mpPageLRMarginItem->SetRight( nPageRightMargin );
+    SfxViewShell::Current()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_LRSPACE,
+            SfxCallMode::RECORD, { mpPageLRMarginItem.get() });
+}
+
+void PageOrientationControl::ExecuteMarginULChange(
+    const long nPageTopMargin,
+    const long nPageBottomMargin )
+{
+    mpPageULMarginItem->SetUpper( nPageTopMargin );
+    mpPageULMarginItem->SetLower( nPageBottomMargin );
+    SfxViewShell::Current()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_ULSPACE,
+            SfxCallMode::RECORD, { mpPageULMarginItem.get() });
 }
 
-IMPL_LINK_TYPED(PageOrientationControl, ImplOrientationHdl, ValueSet*, pControl, void)
+void PageOrientationControl::ExecuteOrientationChange( const bool bLandscape )
 {
-    mpOrientationValueSet->SetNoSelection();
-    if ( pControl == mpOrientationValueSet )
+    css::uno::Reference< css::document::XUndoManager > mxUndoManager(
+                getUndoManager( SfxViewFrame::Current()->GetFrame().GetFrameInterface() ) );
+
+    if ( mxUndoManager.is() )
+        mxUndoManager->enterUndoContext( "" );
+
+    const SfxPoolItem* pItem;
+    SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_SIZE, pItem);
+    SvxSizeItem* pSizeItem = static_cast<SvxSizeItem*>(pItem->Clone());
+    if ( pSizeItem )
+        mpPageSizeItem.reset( pSizeItem );
+
+    SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_LRSPACE, pItem);
+    SvxLongLRSpaceItem* pLRItem = static_cast<SvxLongLRSpaceItem*>(pItem->Clone());
+    if ( pLRItem )
+        mpPageLRMarginItem.reset( pLRItem );
+
+    SfxViewFrame::Current()->GetBindings().GetDispatcher()->QueryState(SID_ATTR_PAGE_ULSPACE, pItem);
+    SvxLongULSpaceItem* pULItem = static_cast<SvxLongULSpaceItem*>(pItem->Clone());
+    if ( pULItem )
+        mpPageULMarginItem.reset( pULItem );
+
+    {
+        // set new page orientation
+        mpPageItem->SetLandscape( bLandscape );
+
+        // swap the width and height of the page size
+        const long nRotatedWidth = mpPageSizeItem->GetSize().Height();
+        const long nRotatedHeight = mpPageSizeItem->GetSize().Width();
+        mpPageSizeItem->SetSize(Size(nRotatedWidth, nRotatedHeight));
+
+        // apply changed attributes
+        if (SfxViewShell::Current())
+        {
+            SfxViewShell::Current()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_SIZE,
+                SfxCallMode::RECORD, { mpPageSizeItem.get(), mpPageItem.get() });
+        }
+    }
+
+    // check, if margin values still fit to the changed page size.
+    // if not, adjust margin values
     {
-        const sal_uInt32 iPos = mpOrientationValueSet->GetSelectItemId();
-        const bool bChanged = ( ( iPos == 1 ) && mbLandscape ) ||
-                              ( ( iPos == 2 ) && !mbLandscape );
-        if ( bChanged )
+        const long nML = mpPageLRMarginItem->GetLeft();
+        const long nMR = mpPageLRMarginItem->GetRight();
+        const long nTmpPW = nML + nMR + MINBODY;
+
+        const long nPW  = mpPageSizeItem->GetSize().Width();
+
+        if ( nTmpPW > nPW )
+        {
+            if ( nML <= nMR )
+            {
+                ExecuteMarginLRChange( mpPageLRMarginItem->GetLeft(), nMR - (nTmpPW - nPW ) );
+            }
+            else
+            {
+                ExecuteMarginLRChange( nML - (nTmpPW - nPW ), mpPageLRMarginItem->GetRight() );
+            }
+        }
+
+        const long nMT = mpPageULMarginItem->GetUpper();
+        const long nMB = mpPageULMarginItem->GetLower();
+        const long nTmpPH = nMT + nMB + MINBODY;
+
+        const long nPH  = mpPageSizeItem->GetSize().Height();
+
+        if ( nTmpPH > nPH )
         {
-            mbLandscape = !mbLandscape;
-            mrPagePropPanel.ExecuteOrientationChange( mbLandscape );
+            if ( nMT <= nMB )
+            {
+                ExecuteMarginULChange( mpPageULMarginItem->GetUpper(), nMB - ( nTmpPH - nPH ) );
+            }
+            else
+            {
+                ExecuteMarginULChange( nMT - ( nTmpPH - nPH ), mpPageULMarginItem->GetLower() );
+            }
         }
     }
 
-    mrPagePropPanel.ClosePageOrientationPopup();
+    if ( mxUndoManager.is() )
+        mxUndoManager->leaveUndoContext();
+}
+
+IMPL_LINK_TYPED(PageOrientationControl, ImplOrientationHdl, Button*, pControl, void)
+{
+    if ( pControl == m_pPortrait.get() )
+        ExecuteOrientationChange( false );
+    else
+        ExecuteOrientationChange( true );
+
+    EndPopupMode();
 }
 
 } } // end of namespace sw::sidebar
diff --git a/sw/source/uibase/sidebar/PageOrientationControl.hxx b/sw/source/uibase/sidebar/PageOrientationControl.hxx
index 7d44d7b..53b7270 100644
--- a/sw/source/uibase/sidebar/PageOrientationControl.hxx
+++ b/sw/source/uibase/sidebar/PageOrientationControl.hxx
@@ -19,37 +19,40 @@
 #ifndef INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_PAGEORIENTATIONCONTROL_HXX
 #define INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_PAGEORIENTATIONCONTROL_HXX
 
-#include <svx/sidebar/PopupControl.hxx>
-
-namespace svx { namespace sidebar {
-    class ValueSetWithTextControl;
-} }
-class ValueSet;
+#include <svx/tbxctl.hxx>
+#include <svx/pageitem.hxx>
+#include <svx/rulritem.hxx>
+#include <editeng/sizeitem.hxx>
+#include <com/sun/star/document/XUndoManager.hpp>
+#include <com/sun/star/document/XUndoManagerSupplier.hpp>
 
+class Button;
 
 namespace sw { namespace sidebar {
 
 class PagePropertyPanel;
 
-class PageOrientationControl
-    : public svx::sidebar::PopupControl
+class PageOrientationControl : public SfxPopupWindow
 {
 public:
-    PageOrientationControl(
-        vcl::Window* pParent,
-        PagePropertyPanel& rPanel,
-        const bool bLandscape );
+    PageOrientationControl(sal_uInt16 nId);
     virtual ~PageOrientationControl();
     virtual void dispose() override;
 
 private:
-    VclPtr< svx::sidebar::ValueSetWithTextControl> mpOrientationValueSet;
+    VclPtr<PushButton> m_pPortrait;
+    VclPtr<PushButton> m_pLandscape;
 
-    bool mbLandscape;
+    std::unique_ptr<SvxPageItem> mpPageItem;
+    std::unique_ptr<SvxSizeItem> mpPageSizeItem;
+    std::unique_ptr<SvxLongLRSpaceItem> mpPageLRMarginItem;
+    std::unique_ptr<SvxLongULSpaceItem> mpPageULMarginItem;
 
-    PagePropertyPanel& mrPagePropPanel;
+    void ExecuteMarginULChange(const long nPageTopMargin, const long nPageBottomMargin);
+    void ExecuteMarginLRChange(const long nPageLeftMargin, const long nPageRightMargin);
+    void ExecuteOrientationChange(const bool bLandscape);
 
-    DECL_LINK_TYPED(ImplOrientationHdl, ValueSet*, void);
+    DECL_LINK_TYPED(ImplOrientationHdl, Button*, void);
 };
 
 } } // end of namespace sw::sidebar
diff --git a/sw/source/uibase/sidebar/PageOrientationPopup.cxx b/sw/source/uibase/sidebar/PageOrientationPopup.cxx
new file mode 100644
index 0000000..b11a191
--- /dev/null
+++ b/sw/source/uibase/sidebar/PageOrientationPopup.cxx
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#include <PageOrientationPopup.hxx>
+#include "PageOrientationControl.hxx"
+#include <svx/pageitem.hxx>
+#include <vcl/toolbox.hxx>
+
+SFX_IMPL_TOOLBOX_CONTROL(PageOrientationPopup, SvxPageItem);
+
+PageOrientationPopup::PageOrientationPopup(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx)
+    : SfxToolBoxControl(nSlotId, nId, rTbx)
+{
+    rTbx.SetItemBits(nId, ToolBoxItemBits::DROPDOWN | rTbx.GetItemBits(nId));
+}
+
+PageOrientationPopup::~PageOrientationPopup()
+{
+}
+
+VclPtr<SfxPopupWindow> PageOrientationPopup::CreatePopupWindow()
+{
+    VclPtr<sw::sidebar::PageOrientationControl> pControl = VclPtr<sw::sidebar::PageOrientationControl>::Create(GetSlotId());
+    pControl->StartPopupMode(&GetToolBox(), FloatWinPopupFlags::GrabFocus|FloatWinPopupFlags::NoAppFocusClose);
+    SetPopupWindow(pControl);
+
+    return pControl;
+}
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/sidebar/PagePropertyPanel.cxx b/sw/source/uibase/sidebar/PagePropertyPanel.cxx
index f4a594d..fa6d711 100644
--- a/sw/source/uibase/sidebar/PagePropertyPanel.cxx
+++ b/sw/source/uibase/sidebar/PagePropertyPanel.cxx
@@ -27,7 +27,6 @@
 #include "PropertyPanel.hrc"
 
 #include <svx/sidebar/PopupContainer.hxx>
-#include "PageOrientationControl.hxx"
 #include "PageMarginControl.hxx"
 #include "PageSizeControl.hxx"
 #include "PageColumnControl.hxx"
@@ -52,7 +51,6 @@
 #include <com/sun/star/frame/XModel.hpp>
 #include <com/sun/star/document/XUndoManagerSupplier.hpp>
 
-const char UNO_ORIENTATION[] = ".uno:Orientation";
 const char UNO_MARGIN[]      = ".uno:Margin";
 const char UNO_SIZE[]        = ".uno:Size";
 const char UNO_COLUMN[]      = ".uno:Column";
@@ -108,8 +106,6 @@ PagePropertyPanel::PagePropertyPanel(
     // image resources
     , maImgSize                 (nullptr)
     , maImgSize_L                   (nullptr)
-    , mImgPortrait              (SW_RES(IMG_PAGE_PORTRAIT))
-    , mImgLandscape             (SW_RES(IMG_PAGE_LANDSCAPE))
     , mImgNarrow                    (SW_RES(IMG_PAGE_NARROW))
     , mImgNormal                    (SW_RES(IMG_PAGE_NORMAL))
     , mImgWide                  (SW_RES(IMG_PAGE_WIDE))
@@ -168,9 +164,6 @@ PagePropertyPanel::PagePropertyPanel(
     , m_aSwPageColControl(SID_ATTR_PAGE_COLUMN, *pBindings, *this)
     , m_aSwPagePgMetricControl(SID_ATTR_METRIC, *pBindings, *this)
 
-    , maOrientationPopup( this,
-            [this] (svx::sidebar::PopupContainer *parent)  { return this->CreatePageOrientationControl(parent); },
-                          OUString("Page orientation") )
     , maMarginPopup( this,
             [this] (svx::sidebar::PopupContainer *parent) { return this->CreatePageMarginControl(parent); },
                      OUString("Page margins") )
@@ -186,7 +179,6 @@ PagePropertyPanel::PagePropertyPanel(
     , mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify( false )
 {
     // visible controls
-    get(mpToolBoxOrientation, "selectorientation");
     get(mpToolBoxMargin, "selectmargin");
     get(mpToolBoxSize, "selectsize");
     get(mpToolBoxColumn, "selectcolumn");
@@ -212,7 +204,6 @@ void PagePropertyPanel::dispose()
     mpPageULMarginItem.reset();
     mpPageSizeItem.reset();
 
-    mpToolBoxOrientation.clear();
     mpToolBoxMargin.clear();
     mpToolBoxSize.clear();
     mpToolBoxColumn.clear();
@@ -227,24 +218,15 @@ void PagePropertyPanel::dispose()
     maColumnPopup.dispose();
     maSizePopup.dispose();
     maMarginPopup.dispose();
-    maOrientationPopup.dispose();
 
     PanelLayout::dispose();
 }
 
 void PagePropertyPanel::Initialize()
 {
-    // popup for page orientation
-    const sal_uInt16 nIdOrientation = mpToolBoxOrientation->GetItemId(UNO_ORIENTATION);
-    Link<ToolBox *, void> aLink = LINK( this, PagePropertyPanel, ClickOrientationHdl );
-    mpToolBoxOrientation->SetDropdownClickHdl( aLink );
-    mpToolBoxOrientation->SetSelectHdl( aLink );
-    mpToolBoxOrientation->SetItemImage( nIdOrientation, mImgPortrait);
-    mpToolBoxOrientation->SetItemBits( nIdOrientation, mpToolBoxOrientation->GetItemBits( nIdOrientation ) | ToolBoxItemBits::DROPDOWNONLY );
-
     // popup for page margins
     const sal_uInt16 nIdMargin = mpToolBoxMargin->GetItemId(UNO_MARGIN);
-    aLink = LINK( this, PagePropertyPanel, ClickMarginHdl );
+    Link<ToolBox *, void> aLink = LINK( this, PagePropertyPanel, ClickMarginHdl );
     mpToolBoxMargin->SetDropdownClickHdl( aLink );
     mpToolBoxMargin->SetSelectHdl( aLink );
     mpToolBoxMargin->SetItemImage(nIdMargin, mImgNormal);
@@ -294,82 +276,6 @@ void PagePropertyPanel::Initialize()
     mpBindings->Update( SID_ATTR_PAGE_SIZE );
 }
 
-VclPtr< svx::sidebar::PopupControl> PagePropertyPanel::CreatePageOrientationControl( svx::sidebar::PopupContainer* pParent )
-{
-    return VclPtr<PageOrientationControl>::Create( pParent, *this , mpPageItem->IsLandscape() );
-}
-
-IMPL_LINK_TYPED( PagePropertyPanel, ClickOrientationHdl, ToolBox*, pToolBox, void )
-{
-    maOrientationPopup.Show( *pToolBox );
-}
-
-void PagePropertyPanel::ExecuteOrientationChange( const bool bLandscape )
-{
-    StartUndo();
-
-    {
-        // set new page orientation
-        mpPageItem->SetLandscape( bLandscape );
-
-        // swap the width and height of the page size
-        const long nRotatedWidth = mpPageSizeItem->GetSize().Height();
-        const long nRotatedHeight = mpPageSizeItem->GetSize().Width();
-        mpPageSizeItem->SetSize(Size(nRotatedWidth, nRotatedHeight));
-
-        // apply changed attributes
-        GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_SIZE,
-            SfxCallMode::RECORD, { mpPageSizeItem.get(), mpPageItem.get() });
-    }
-
-    // check, if margin values still fit to the changed page size.
-    // if not, adjust margin values
-    {
-        const long nML = mpPageLRMarginItem->GetLeft();
-        const long nMR = mpPageLRMarginItem->GetRight();
-        const long nTmpPW = nML + nMR + MINBODY;
-
-        const long nPW  = mpPageSizeItem->GetSize().Width();
-
-        if ( nTmpPW > nPW )
-        {
-            if ( nML <= nMR )
-            {
-                ExecuteMarginLRChange( mpPageLRMarginItem->GetLeft(), nMR - (nTmpPW - nPW ) );
-            }
-            else
-            {
-                ExecuteMarginLRChange( nML - (nTmpPW - nPW ), mpPageLRMarginItem->GetRight() );
-            }
-        }
-
-        const long nMT = mpPageULMarginItem->GetUpper();
-        const long nMB = mpPageULMarginItem->GetLower();
-        const long nTmpPH = nMT + nMB + MINBODY;
-
-        const long nPH  = mpPageSizeItem->GetSize().Height();
-
-        if ( nTmpPH > nPH )
-        {
-            if ( nMT <= nMB )
-            {
-                ExecuteMarginULChange( mpPageULMarginItem->GetUpper(), nMB - ( nTmpPH - nPH ) );
-            }
-            else
-            {
-                ExecuteMarginULChange( nMT - ( nTmpPH - nPH ), mpPageULMarginItem->GetLower() );
-            }
-        }
-    }
-
-    EndUndo();
-}
-
-void PagePropertyPanel::ClosePageOrientationPopup()
-{
-    maOrientationPopup.Hide();
-}
-
 VclPtr< svx::sidebar::PopupControl> PagePropertyPanel::CreatePageMarginControl( svx::sidebar::PopupContainer* pParent )
 {
     return VclPtr<PageMarginControl>::Create(
@@ -524,26 +430,6 @@ void PagePropertyPanel::NotifyItemUpdate(
         }
         break;
 
-    case SID_ATTR_PAGE:
-        if ( eState >= SfxItemState::DEFAULT &&
-             pState && dynamic_cast< const SvxPageItem *>( pState ) !=  nullptr )
-        {
-            const sal_uInt16 nIdOrientation = mpToolBoxOrientation->GetItemId(UNO_ORIENTATION);
-            mpPageItem.reset( static_cast<SvxPageItem*>(pState->Clone()) );
-            if ( mpPageItem->IsLandscape() )
-            {
-                mpToolBoxOrientation->SetItemImage(nIdOrientation, mImgLandscape);
-            }
-            else
-            {
-                mpToolBoxOrientation->SetItemImage(nIdOrientation, mImgPortrait);
-            }
-            ChangeMarginImage();
-            ChangeSizeImage();
-            ChangeColumnImage( mpPageColumnTypeItem->GetValue() );
-        }
-        break;
-
     case SID_ATTR_PAGE_SIZE:
         if ( mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify )
         {
diff --git a/sw/source/uibase/sidebar/PagePropertyPanel.hrc b/sw/source/uibase/sidebar/PagePropertyPanel.hrc
index fe850ca..01d4df9 100644
--- a/sw/source/uibase/sidebar/PagePropertyPanel.hrc
+++ b/sw/source/uibase/sidebar/PagePropertyPanel.hrc
@@ -21,8 +21,6 @@
 #include "PropertyPanel.hrc"
 
 // global definitions
-#define IMG_PAGE_PORTRAIT       (RC_SIDEBAR_BEGIN +  0)
-#define IMG_PAGE_LANDSCAPE      (RC_SIDEBAR_BEGIN +  1)
 #define IMG_PAGE_NARROW         (RC_SIDEBAR_BEGIN +  2)
 #define IMG_PAGE_NORMAL         (RC_SIDEBAR_BEGIN +  3)
 #define IMG_PAGE_WIDE           (RC_SIDEBAR_BEGIN +  4)
@@ -65,10 +63,6 @@
 #define IMG_PAGE_COLUMN_NONE_L  (RC_SIDEBAR_BEGIN + 41)
 
 // local
-#define IMG_PORTRAIT            10
-#define IMG_LANDSCAPE           11
-#define STR_PORTRAIT            12
-#define STR_LANDSCAPE           13
 
 #define MF_SWLEFT_MARGIN        18
 #define MF_SWRIGHT_MARGIN       19
@@ -79,7 +73,6 @@
 #define FT_CUSTOM               25
 #define FLD_WIDTH_HEIGHT        26
 
-#define VS_ORIENTATION          29
 #define IMG_NARROW              32
 #define IMG_NORMAL              33
 #define IMG_WIDE                34
diff --git a/sw/source/uibase/sidebar/PagePropertyPanel.hxx b/sw/source/uibase/sidebar/PagePropertyPanel.hxx
index 22452c8..4c71d44 100644
--- a/sw/source/uibase/sidebar/PagePropertyPanel.hxx
+++ b/sw/source/uibase/sidebar/PagePropertyPanel.hxx
@@ -71,10 +71,6 @@ namespace sw { namespace sidebar {
             return mpBindings;
         }
 
-        VclPtr< svx::sidebar::PopupControl> CreatePageOrientationControl( svx::sidebar::PopupContainer* pParent );
-        void ExecuteOrientationChange( const bool bLandscape );
-        void ClosePageOrientationPopup();
-
         VclPtr< svx::sidebar::PopupControl> CreatePageMarginControl( svx::sidebar::PopupContainer* pParent );
         void ExecuteMarginLRChange(
             const long nPageLeftMargin,
@@ -107,15 +103,12 @@ namespace sw { namespace sidebar {
         SfxBindings* mpBindings;
 
         // toolboxes - on click open corresponding popup
-        VclPtr<ToolBox>                mpToolBoxOrientation;
         VclPtr<ToolBox>                mpToolBoxMargin;
         VclPtr<ToolBox>                mpToolBoxSize;
         VclPtr<ToolBox>                mpToolBoxColumn;
 
         Image*                  maImgSize;
         Image*                  maImgSize_L;
-        Image                   mImgPortrait;
-        Image                   mImgLandscape;
         Image                   mImgNarrow;
         Image                   mImgNormal;
         Image                   mImgWide;
@@ -189,7 +182,6 @@ namespace sw { namespace sidebar {
         ::sfx2::sidebar::ControllerItem m_aSwPagePgMetricControl;
 
         // popups
-        svx::sidebar::Popup maOrientationPopup;
         svx::sidebar::Popup maMarginPopup;
         svx::sidebar::Popup maSizePopup;
         svx::sidebar::Popup maColumnPopup;
@@ -199,7 +191,6 @@ namespace sw { namespace sidebar {
         bool mbInvalidateSIDAttrPageOnSIDAttrPageSizeNotify;
 
         // handler for popup toolboxes to show the popups
-        DECL_LINK_TYPED(ClickOrientationHdl, ToolBox*, void);
         DECL_LINK_TYPED(ClickMarginHdl, ToolBox*, void);
         DECL_LINK_TYPED(ClickSizeHdl, ToolBox*, void);
         DECL_LINK_TYPED(ClickColumnHdl, ToolBox*, void);
diff --git a/sw/source/uibase/sidebar/PropertyPanel.hrc b/sw/source/uibase/sidebar/PropertyPanel.hrc
index ef8c5b0..7b36710 100644
--- a/sw/source/uibase/sidebar/PropertyPanel.hrc
+++ b/sw/source/uibase/sidebar/PropertyPanel.hrc
@@ -22,7 +22,6 @@
 #include "rcid.hrc"
 
 #define RID_POPUP_SWPAGE_MARGIN             (RC_PROPERTYPANEL_BEGIN + 3)
-#define RID_POPUP_SWPAGE_ORIENTATION        (RC_PROPERTYPANEL_BEGIN + 4)
 #define RID_POPUP_SWPAGE_COLUMN             (RC_PROPERTYPANEL_BEGIN + 5)
 #define RID_POPUP_SWPAGE_SIZE               (RC_PROPERTYPANEL_BEGIN + 6)
 
diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx
index 31d6b03..b14e3f2 100644
--- a/sw/source/uibase/uiview/viewstat.cxx
+++ b/sw/source/uibase/uiview/viewstat.cxx
@@ -147,6 +147,7 @@ void SwView::GetState(SfxItemSet &rSet)
             case SID_PRINTDOCDIRECT:
                 GetSlotState( nWhich, SfxViewShell::GetInterface(), &rSet );
             break;
+            case SID_ATTR_PAGE_ORIENTATION:
             case SID_ATTR_PAGE:
             case SID_ATTR_PAGE_SIZE:
             case SID_ATTR_PAGE_PAPERBIN:
diff --git a/sw/uiconfig/swriter/ui/notebookbar.ui b/sw/uiconfig/swriter/ui/notebookbar.ui
index 9b911d4..c92ee28 100644
--- a/sw/uiconfig/swriter/ui/notebookbar.ui
+++ b/sw/uiconfig/swriter/ui/notebookbar.ui
@@ -2651,6 +2651,80 @@
                 <property name="can_focus">False</property>
                 <property name="spacing">6</property>
                 <child>
+                  <object class="sfxlo-DropdownBox" id="ParaSpacingSection">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="sfxlo-NotebookbarToolBox" id="ulspacing">
+                        <property name="width_request">210</property>
+                        <property name="height_request">72</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="has_tooltip">True</property>
+                        <property name="tooltip_text" translatable="yes">Indent</property>
+                        <child>
+                          <object class="GtkToolButton" id="ULSpacing">
+                            <property name="use_action_appearance">False</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">start</property>
+                            <property name="is_important">True</property>
+                            <property name="action_name">.uno:ULSpacing</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="homogeneous">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="sfxlo-NotebookbarToolBox" id="lrspacing">
+                        <property name="width_request">200</property>
+                        <property name="height_request">72</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="has_tooltip">True</property>
+                        <property name="tooltip_text" translatable="yes">Indent</property>
+                        <child>
+                          <object class="GtkToolButton" id="LeftRightParaMargin">
+                            <property name="use_action_appearance">False</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">start</property>
+                            <property name="is_important">True</property>
+                            <property name="action_name">.uno:LeftRightParaMargin</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="homogeneous">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <style>
+                      <class name="priority-3"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
                   <object class="sfxlo-DropdownBox" id="box15">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
@@ -2727,6 +2801,33 @@
                   </packing>
                 </child>
                 <child>
+                  <object class="sfxlo-BigToolBox" id="orientationbox">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="valign">center</property>
+                    <property name="show_arrow">False</property>
+                    <child>
+                      <object class="GtkMenuToolButton" id="Orientation">
+                        <property name="use_action_appearance">False</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="is_important">True</property>
+                        <property name="action_name">.uno:Orientation</property>
+                        <property name="use_underline">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="homogeneous">True</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+                <child>
                   <object class="GtkSeparator" id="separator21">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
@@ -2735,7 +2836,7 @@
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">3</property>
+                    <property name="position">4</property>
                   </packing>
                 </child>
                 <child>
@@ -2752,81 +2853,7 @@
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">5</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="sfxlo-DropdownBox" id="ParaSpacingSection">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="sfxlo-NotebookbarToolBox" id="ulspacing">
-                        <property name="width_request">210</property>
-                        <property name="height_request">72</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="has_tooltip">True</property>
-                        <property name="tooltip_text" translatable="yes">Indent</property>
-                        <child>
-                          <object class="GtkToolButton" id="ULSpacing">
-                            <property name="use_action_appearance">False</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="halign">start</property>
-                            <property name="is_important">True</property>
-                            <property name="action_name">.uno:ULSpacing</property>
-                            <property name="use_underline">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="homogeneous">True</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="sfxlo-NotebookbarToolBox" id="lrspacing">
-                        <property name="width_request">200</property>
-                        <property name="height_request">72</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="has_tooltip">True</property>
-                        <property name="tooltip_text" translatable="yes">Indent</property>
-                        <child>
-                          <object class="GtkToolButton" id="LeftRightParaMargin">
-                            <property name="use_action_appearance">False</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="halign">start</property>
-                            <property name="is_important">True</property>
-                            <property name="action_name">.uno:LeftRightParaMargin</property>
-                            <property name="use_underline">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="homogeneous">True</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <style>
-                      <class name="priority-3"/>
-                    </style>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">5</property>
+                    <property name="position">6</property>
                   </packing>
                 </child>
               </object>
diff --git a/sw/uiconfig/swriter/ui/pageorientationcontrol.ui b/sw/uiconfig/swriter/ui/pageorientationcontrol.ui
new file mode 100644
index 0000000..d03aee7
--- /dev/null
+++ b/sw/uiconfig/swriter/ui/pageorientationcontrol.ui
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+  <requires lib="gtk+" version="3.10"/>
+  <object class="GtkImage" id="image_landscape">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="pixbuf">sw/res/sidebar/pageproppanel/Landscapecopy_24x24.png</property>
+  </object>
+  <object class="GtkImage" id="image_portrait">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="pixbuf">cmd/lc_orientation.png</property>
+  </object>
+  <object class="GtkWindow" id="PageOrientationControl">
+    <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
+    <property name="border_width">4</property>
+    <property name="resizable">False</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">popup-menu</property>
+    <property name="skip_pager_hint">True</property>
+    <property name="deletable">False</property>
+    <child>
+      <object class="GtkBox" id="box">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_right">6</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">6</property>
+        <child>
+          <object class="GtkButton" id="portrait">
+            <property name="label" translatable="yes">Portrait</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="image">image_portrait</property>
+            <property name="relief">none</property>
+            <property name="xalign">0</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="landscape">
+            <property name="label" translatable="yes">Landscape</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="tooltip_text" translatable="yes">Single</property>
+            <property name="image">image_landscape</property>
+            <property name="relief">none</property>
+            <property name="xalign">0</property>
+            <property name="always_show_image">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/sw/uiconfig/swriter/ui/sidebarpage.ui b/sw/uiconfig/swriter/ui/sidebarpage.ui
index 9c53099..a9f8893 100644
--- a/sw/uiconfig/swriter/ui/sidebarpage.ui
+++ b/sw/uiconfig/swriter/ui/sidebarpage.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <object class="GtkGrid" id="PagePropertyPanel">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -16,7 +17,7 @@
         <property name="column_spacing">6</property>
         <property name="column_homogeneous">True</property>
         <child>
-          <object class="GtkToolbar" id="selectorientation">
+          <object class="sfxlo-SidebarToolBox" id="selectorientation">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="halign">center</property>
@@ -27,9 +28,7 @@
                 <property name="can_focus">False</property>
                 <property name="has_tooltip">True</property>
                 <property name="tooltip_text" translatable="yes">Orientation</property>
-                <property name="use_action_appearance">False</property>
                 <property name="action_name">.uno:Orientation</property>
-                <property name="label" translatable="no">toolbutton1</property>
                 <property name="use_underline">True</property>
               </object>
               <packing>
@@ -41,8 +40,6 @@
           <packing>
             <property name="left_attach">1</property>
             <property name="top_attach">0</property>
-            <property name="width">1</property>
-            <property name="height">1</property>
           </packing>
         </child>
         <child>
@@ -57,9 +54,8 @@
                 <property name="can_focus">False</property>
                 <property name="has_tooltip">True</property>
                 <property name="tooltip_text" translatable="yes">Size</property>
-                <property name="use_action_appearance">False</property>
                 <property name="action_name">.uno:Size</property>
-                <property name="label" translatable="no">toolbutton3</property>
+                <property name="label">toolbutton3</property>
                 <property name="use_underline">True</property>
               </object>
               <packing>
@@ -71,8 +67,6 @@
           <packing>
             <property name="left_attach">0</property>
             <property name="top_attach">0</property>
-            <property name="width">1</property>
-            <property name="height">1</property>
           </packing>
         </child>
         <child>
@@ -88,9 +82,8 @@
                 <property name="can_focus">False</property>
                 <property name="has_tooltip">True</property>
                 <property name="tooltip_text" translatable="yes">Columns</property>
-                <property name="use_action_appearance">False</property>
                 <property name="action_name">.uno:Column</property>
-                <property name="label" translatable="no">toolbutton4</property>
+                <property name="label">toolbutton4</property>
                 <property name="use_underline">True</property>
               </object>
               <packing>
@@ -102,8 +95,6 @@
           <packing>
             <property name="left_attach">3</property>
             <property name="top_attach">0</property>
-            <property name="width">1</property>
-            <property name="height">1</property>
           </packing>
         </child>
         <child>
@@ -118,9 +109,8 @@
                 <property name="can_focus">False</property>
                 <property name="has_tooltip">True</property>
                 <property name="tooltip_text" translatable="yes">Margin</property>
-                <property name="use_action_appearance">False</property>
                 <property name="action_name">.uno:Margin</property>
-                <property name="label" translatable="no">toolbutton2</property>
+                <property name="label">toolbutton2</property>
                 <property name="use_underline">True</property>
               </object>
               <packing>
@@ -132,16 +122,12 @@
           <packing>
             <property name="left_attach">2</property>
             <property name="top_attach">0</property>
-            <property name="width">1</property>
-            <property name="height">1</property>
           </packing>
         </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
         <property name="top_attach">0</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
       </packing>
     </child>
   </object>


More information about the Libreoffice-commits mailing list