[Libreoffice-commits] core.git: 2 commits - reportdesign/inc reportdesign/source reportdesign/uiconfig reportdesign/UIConfig_dbreport.mk vcl/source

Caolán McNamara caolanm at redhat.com
Wed Sep 3 14:49:54 PDT 2014


 reportdesign/UIConfig_dbreport.mk                  |    1 
 reportdesign/inc/RptResId.hrc                      |   12 
 reportdesign/inc/helpids.hrc                       |    6 
 reportdesign/source/ui/dlg/CondFormat.src          |   29 -
 reportdesign/source/ui/dlg/Condition.cxx           |   13 
 reportdesign/source/ui/dlg/GroupsSorting.cxx       |  301 ++++---------
 reportdesign/source/ui/dlg/GroupsSorting.hrc       |   56 --
 reportdesign/source/ui/dlg/GroupsSorting.src       |  255 -----------
 reportdesign/source/ui/inc/GroupsSorting.hxx       |   53 --
 reportdesign/source/ui/report/ReportController.cxx |    4 
 reportdesign/uiconfig/dbreport/ui/floatingsort.ui  |  453 +++++++++++++++++++++
 vcl/source/window/dialog.cxx                       |    3 
 vcl/source/window/syswin.cxx                       |    6 
 13 files changed, 571 insertions(+), 621 deletions(-)

New commits:
commit e12b6b789e3980b1aac5c02f893edae1979adfe5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Sep 3 19:20:01 2014 +0100

    convert RID_GROUPS_SORTING floating window to .ui
    
    (recovers icons for up/down/delete in the process)
    
    Change-Id: I85a8de2ebe1321f972000a680a9f4308c26ae4c3

diff --git a/reportdesign/UIConfig_dbreport.mk b/reportdesign/UIConfig_dbreport.mk
index 95fc0fa..ffad8f3 100644
--- a/reportdesign/UIConfig_dbreport.mk
+++ b/reportdesign/UIConfig_dbreport.mk
@@ -41,6 +41,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/dbreport,\
 	reportdesign/uiconfig/dbreport/ui/conditionwin \
 	reportdesign/uiconfig/dbreport/ui/datetimedialog \
 	reportdesign/uiconfig/dbreport/ui/floatingnavigator \
+	reportdesign/uiconfig/dbreport/ui/floatingsort \
 	reportdesign/uiconfig/dbreport/ui/pagedialog \
 	reportdesign/uiconfig/dbreport/ui/pagenumberdialog \
 ))
diff --git a/reportdesign/inc/RptResId.hrc b/reportdesign/inc/RptResId.hrc
index c60e14a..60a318a 100644
--- a/reportdesign/inc/RptResId.hrc
+++ b/reportdesign/inc/RptResId.hrc
@@ -38,7 +38,6 @@
 #define RID_MISC_START                  RID_RPT_START
 
 // Dialog Control Id's -----------------------------------------------------------
-#define RID_GROUPS_SORTING              ( RID_DIALOG_START + 0 )
 #define RID_DATETIME_DLG                ( RID_DIALOG_START + 2 )
 #define WIN_CONDITION                   ( RID_DIALOG_START + 4 )
 
@@ -225,13 +224,8 @@
 #define RID_MENU_NAVIGATOR                  ( RID_MENU_START + 2 )
 #define RID_TB_SORTING                      ( RID_MENU_START + 3 )
 
-// image lists -----------------------------------------------------------------------
-#define IMG_CONDFORMAT_DLG_SC               (RID_IMAGELIST_START + 0)
-// free
-#define IMG_CONDFORMAT_DLG_LC               (RID_IMAGELIST_START + 2)
 // free
 #define RID_SVXIMGLIST_RPTEXPL              (RID_IMAGELIST_START + 4)
-#define IMGLST_GROUPSORT_DLG_SC             (RID_IMAGELIST_START + 6)
 // free
 #define IMG_ADDFIELD_DLG_SC                 (RID_IMAGELIST_START + 8)
 // free
@@ -252,12 +246,6 @@
 #define RID_STR_VERTICAL_ALIGN_CONST        (RID_UNTYPED_START +  7)
 #define RID_STR_PARAADJUST_CONST            (RID_UNTYPED_START +  8)
 
-// toolbox lists ---------------------------------------------------------------------
-
-#define SID_RPT_GROUPSORT_MOVE_UP                    ( RID_TOOLBOX_START + 0 )
-#define SID_RPT_GROUPSORT_MOVE_DOWN                  ( RID_TOOLBOX_START + 1 )
-#define SID_RPT_GROUPSORT_DELETE                     ( RID_TOOLBOX_START + 2 )
-
 #endif          // _RPTUI_DLGRESID_HRC
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/inc/helpids.hrc b/reportdesign/inc/helpids.hrc
index 9753490..7a41d18 100644
--- a/reportdesign/inc/helpids.hrc
+++ b/reportdesign/inc/helpids.hrc
@@ -39,8 +39,6 @@
 #define HID_RPT_STARTMARKER                           "REPORTDESIGN_HID_RPT_STARTMARKER"
 #define HID_RPT_FIELDEXPRESSION                       "REPORTDESIGN_HID_RPT_FIELDEXPRESSION"
 #define HID_RPT_SORTORDER                             "REPORTDESIGN_HID_RPT_SORTORDER"
-#define HID_RPT_GROUPSBRW                             "REPORTDESIGN_HID_RPT_GROUPSBRW"
-#define HID_RPT_GROUPSSORTING_DLG                     "REPORTDESIGN_HID_RPT_GROUPSSORTING_DLG"
 #define HID_RPT_POPUP_COLOR_CTRL                      "REPORTDESIGN_HID_RPT_POPUP_COLOR_CTRL"
 #define HID_RPT_POPUP_COLOR                           "REPORTDESIGN_HID_RPT_POPUP_COLOR"
 #define HID_RPT_FIELD_SEL                             "REPORTDESIGN_HID_RPT_FIELD_SEL"
@@ -99,10 +97,6 @@
 #define HID_RPT_PROP_BACKTRANSPARENT                  "REPORTDESIGN_HID_RPT_PROP_BACKTRANSPARENT"
 #define HID_RPT_PROP_CONTROLBACKGROUNDTRANSPARENT     "REPORTDESIGN_HID_RPT_PROP_CONTROLBACKGROUNDTRANSPARENT"
 
-#define HID_RPT_GROUPSORT_MOVE_UP                     "REPORTDESIGN_HID_RPT_GROUPSORT_MOVE_UP"
-#define HID_RPT_GROUPSORT_MOVE_DOWN                   "REPORTDESIGN_HID_RPT_GROUPSORT_MOVE_DOWN"
-#define HID_RPT_GROUPSORT_DELETE                      "REPORTDESIGN_HID_RPT_GROUPSORT_DELETE"
-
 #endif //RTPUI_REPORTDESIGN_HELPID_HRC
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/source/ui/dlg/CondFormat.src b/reportdesign/source/ui/dlg/CondFormat.src
index 5f933a8..b45a7f81 100644
--- a/reportdesign/source/ui/dlg/CondFormat.src
+++ b/reportdesign/source/ui/dlg/CondFormat.src
@@ -47,41 +47,12 @@ String STR_TRANSPARENT
 
 #define MASKCOLOR MaskColor = Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; }
 
-ImageList IMG_CONDFORMAT_DLG_SC
-{
-    MASKCOLOR;
-    FileList =
-    {
-        < "cmd/sc_bold.png" ;              SID_ATTR_CHAR_WEIGHT ; > ;
-        < "cmd/sc_italic.png" ;            SID_ATTR_CHAR_POSTURE ; > ;
-        < "cmd/sc_underline.png" ;         SID_ATTR_CHAR_UNDERLINE ; > ;
-        < "cmd/sc_backgroundcolor.png" ;   SID_BACKGROUND_COLOR ; > ;
-        < "cmd/sc_fontcolor.png" ;         SID_ATTR_CHAR_COLOR2 ; > ;
-        < "cmd/sc_fontdialog.png" ;        SID_CHAR_DLG ; > ;
-    };
-};
-
-ImageList IMG_CONDFORMAT_DLG_LC
-{
-    MASKCOLOR;
-    FileList =
-    {
-        < "cmd/lc_bold.png" ;              SID_ATTR_CHAR_WEIGHT ; > ;
-        < "cmd/lc_italic.png" ;            SID_ATTR_CHAR_POSTURE ; > ;
-        < "cmd/lc_underline.png" ;         SID_ATTR_CHAR_UNDERLINE ; > ;
-        < "cmd/lc_backgroundcolor.png" ;   SID_BACKGROUND_COLOR ; > ;
-        < "cmd/lc_fontcolor.png" ;         SID_ATTR_CHAR_COLOR2 ; > ;
-        < "cmd/lc_fontdialog.png" ;        SID_CHAR_DLG ; > ;
-    };
-};
-
 ImageList 31000
 {
     MASKCOLOR;
     prefix = "sc";
     IdList = {05500;};
     IdCount = 1;
-
 };
 
 ToolBox RID_TB_SORTING
diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx
index c7d64a7..016b88f 100644
--- a/reportdesign/source/ui/dlg/Condition.cxx
+++ b/reportdesign/source/ui/dlg/Condition.cxx
@@ -361,23 +361,10 @@ void Condition::ApplyCommand( sal_uInt16 _nCommandId, const ::Color& _rColor)
 
 void Condition::setImageList(sal_Int16 /*_eBitmapSet*/)
 {
-#if 0
-    sal_Int16 nN = IMG_CONDFORMAT_DLG_SC;
-    if ( _eBitmapSet == SFX_SYMBOLS_SIZE_LARGE )
-        nN = IMG_CONDFORMAT_DLG_LC;
-    m_pActions->SetImageList(ImageList(ModuleRes(nN)));
-#endif
 }
 
 void Condition::resizeControls(const Size& /*_rDiff*/)
 {
-#if 0
-    // we use large images so we must change them
-    if ( _rDiff.Width() || _rDiff.Height() )
-    {
-        Invalidate();
-    }
-#endif
 }
 
 void Condition::GetFocus()
diff --git a/reportdesign/source/ui/dlg/GroupsSorting.cxx b/reportdesign/source/ui/dlg/GroupsSorting.cxx
index 9557309..ea4ad8d 100644
--- a/reportdesign/source/ui/dlg/GroupsSorting.cxx
+++ b/reportdesign/source/ui/dlg/GroupsSorting.cxx
@@ -17,7 +17,6 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 #include "GroupsSorting.hxx"
-#include "GroupsSorting.hrc"
 #include <connectivity/dbtools.hxx>
 #include <svtools/editbrowsebox.hxx>
 #include <svtools/imgdef.hxx>
@@ -40,7 +39,6 @@
 
 #include <cppuhelper/implbase1.hxx>
 #include <comphelper/property.hxx>
-#include <vcl/mnemonic.hxx>
 #include <vcl/msgbox.hxx>
 #include <vcl/settings.hxx>
 
@@ -97,7 +95,7 @@ class OFieldExpressionControl : public TContainerListenerBase
     bool SaveModified(bool _bAppend);
 
 public:
-    OFieldExpressionControl( OGroupsSortingDialog* _pParent,const ResId& _rResId);
+    OFieldExpressionControl(OGroupsSortingDialog* _pParentDialog, Window *_pParent);
     virtual ~OFieldExpressionControl();
 
     // XEventListener
@@ -107,6 +105,8 @@ public:
     virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
+    virtual Size GetOptimalSize() const SAL_OVERRIDE;
+
     void        fillColumns(const uno::Reference< container::XNameAccess>& _xColumns);
     void        lateInit();
     bool    IsDeleteAllowed( );
@@ -164,18 +164,16 @@ public:
 };
 
 // class OFieldExpressionControl
-
-
-OFieldExpressionControl::OFieldExpressionControl( OGroupsSortingDialog* _pParent,const ResId& _rResId )
-    :EditBrowseBox( _pParent, _rResId,EBBF_NONE, WB_TABSTOP | BROWSER_COLUMNSELECTION | BROWSER_MULTISELECTION | BROWSER_AUTOSIZE_LASTCOL |
-                                  BROWSER_KEEPSELECTION | BROWSER_HLINESFULL | BROWSER_VLINESFULL)
+OFieldExpressionControl::OFieldExpressionControl(OGroupsSortingDialog* _pParentDialog, Window *_pParent)
+    :EditBrowseBox( _pParent, EBBF_NONE, WB_TABSTOP | BROWSER_COLUMNSELECTION | BROWSER_MULTISELECTION | BROWSER_AUTOSIZE_LASTCOL |
+                              BROWSER_KEEPSELECTION | BROWSER_HLINESFULL | BROWSER_VLINESFULL)
     ,m_aGroupPositions(GROUPS_START_LEN,-1)
     ,m_pComboCell(NULL)
     ,m_nDataPos(-1)
     ,m_nCurrentPos(-1)
     ,m_nPasteEvent(0)
     ,m_nDeleteEvent(0)
-    ,m_pParent(_pParent)
+    ,m_pParent(_pParentDialog)
     ,m_bIgnoreEvent(false)
 {
     SetBorderStyle(WINDOW_BORDER_MONO);
@@ -909,42 +907,39 @@ void OFieldExpressionControl::InsertRows( long nRow )
     RowInserted( nRow, nSize, true );
 }
 
-
+Size OFieldExpressionControl::GetOptimalSize() const
+{
+    return LogicToPixel(Size(106, 75), MAP_APPFONT);
+}
 
 // class OGroupsSortingDialog
-
-OGroupsSortingDialog::OGroupsSortingDialog( Window* _pParent
-                                           ,bool _bReadOnly
-                                           ,OReportController* _pController)
-    : FloatingWindow( _pParent, ModuleRes(RID_GROUPS_SORTING) )
-    ,OPropertyChangeListener(m_aMutex)
-    ,m_aFL2(this, ModuleRes(FL_SEPARATOR2) )
-    ,m_aMove(this, ModuleRes(FT_MOVELABEL) )
-    ,m_aToolBox(this, ModuleRes(TB_TOOLBOX) )
-
-    ,m_aFL3(this, ModuleRes(FL_SEPARATOR3) )
-    ,m_aOrder(this, ModuleRes(FT_ORDER) )
-    ,m_aOrderLst(this, ModuleRes(LST_ORDER) )
-    ,m_aHeader(this, ModuleRes(FT_HEADER) )
-    ,m_aHeaderLst(this, ModuleRes(LST_HEADERLST) )
-    ,m_aFooter(this, ModuleRes(FT_FOOTER) )
-    ,m_aFooterLst(this, ModuleRes(LST_FOOTERLST) )
-    ,m_aGroupOn(this, ModuleRes(FT_GROUPON) )
-    ,m_aGroupOnLst(this, ModuleRes(LST_GROUPONLST) )
-    ,m_aGroupInterval(this, ModuleRes(FT_GROUPINTERVAL) )
-    ,m_aGroupIntervalEd(this, ModuleRes(ED_GROUPINTERVALLST) )
-    ,m_aKeepTogether(this, ModuleRes(FT_KEEPTOGETHER) )
-    ,m_aKeepTogetherLst(this, ModuleRes(LST_KEEPTOGETHERLST) )
-    ,m_aFL(this, ModuleRes(FL_SEPARATOR1) )
-    ,m_aHelpWindow(this, ModuleRes(HELP_FIELD) )
-    ,m_pFieldExpression( new OFieldExpressionControl(this,ModuleRes(WND_CONTROL)))
-    ,m_pController(_pController)
-    ,m_pCurrentGroupListener(NULL)
-    ,m_xGroups(m_pController->getReportDefinition()->getGroups())
-    ,m_bReadOnly(_bReadOnly)
+OGroupsSortingDialog::OGroupsSortingDialog(Window* _pParent, bool _bReadOnly,
+                                           OReportController* _pController)
+    : FloatingWindow(_pParent, "FloatingSort", "modules/dbreport/ui/floatingsort.ui")
+    , OPropertyChangeListener(m_aMutex)
+    , m_pController(_pController)
+    , m_pCurrentGroupListener(NULL)
+    , m_xGroups(m_pController->getReportDefinition()->getGroups())
+    , m_bReadOnly(_bReadOnly)
 {
-
-    Control* pControlsLst[] = { &m_aHeaderLst, &m_aFooterLst, &m_aGroupOnLst, &m_aKeepTogetherLst, &m_aOrderLst, &m_aGroupIntervalEd};
+    get(m_pToolBox, "toolbox");
+    m_nMoveUpId = m_pToolBox->GetItemId(0);
+    m_nMoveDownId = m_pToolBox->GetItemId(1);
+    m_nDeleteId = m_pToolBox->GetItemId(2);
+    get(m_pOrderLst, "sorting");
+    get(m_pHeaderLst, "header");
+    get(m_pFooterLst, "footer");
+    get(m_pGroupOnLst, "group");
+    get(m_pGroupIntervalEd, "interval");
+    get(m_pKeepTogetherLst, "keep");
+    get(m_pHelpWindow, "helptext");
+    m_pHelpWindow->set_height_request(GetTextHeight() * 4);
+    get(m_pProperties, "properties");
+    m_pFieldExpression = new OFieldExpressionControl(this, get<Window>("box"));
+    m_pFieldExpression->set_hexpand(true);
+    m_pFieldExpression->set_vexpand(true);
+
+    Control* pControlsLst[] = { m_pHeaderLst, m_pFooterLst, m_pGroupOnLst, m_pKeepTogetherLst, m_pOrderLst, m_pGroupIntervalEd};
     for (size_t i = 0; i < sizeof (pControlsLst) / sizeof (pControlsLst[0]); ++i)
     {
         pControlsLst[i]->SetGetFocusHdl(LINK(this, OGroupsSortingDialog, OnControlFocusGot));
@@ -955,30 +950,6 @@ OGroupsSortingDialog::OGroupsSortingDialog( Window* _pParent
     for (size_t i = 0; i < (sizeof (pControlsLst) / sizeof (pControlsLst[0])) - 1; ++i)
         static_cast<ListBox*>(pControlsLst[i])->SetSelectHdl(LINK(this,OGroupsSortingDialog,LBChangeHdl));
 
-    Control* pControls[]    = { &m_aHeader, &m_aFooter, &m_aGroupOn, &m_aGroupInterval, &m_aKeepTogether, &m_aOrder
-                                , &m_aMove,&m_aFL2};
-    sal_Int32 nMaxTextWidth = 0;
-    MnemonicGenerator aMnemonicGenerator;
-    for (size_t i = 0; i < sizeof (pControlsLst) / sizeof (pControlsLst[0]); ++i)
-        aMnemonicGenerator.RegisterMnemonic( pControls[i]->GetText() );
-
-    for (size_t i = 0; i < sizeof (pControlsLst) / sizeof (pControlsLst[0]); ++i)
-    {
-        pControls[i]->Show(true);
-        OUString sText = pControls[i]->GetText();
-        OUString sNewText = aMnemonicGenerator.CreateMnemonic(sText);
-        if ( sText != sNewText )
-            pControls[i]->SetText(sNewText);
-        sal_Int32 nTextWidth = GetTextWidth(sNewText);
-        nMaxTextWidth = ::std::max<sal_Int32>(nTextWidth,nMaxTextWidth);
-    }
-
-    Size aSize(UNRELATED_CONTROLS, PAGE_HEIGHT);
-    Size aSpace = LogicToPixel( aSize, MAP_APPFONT );
-    Size aOutSize(nMaxTextWidth + m_aHeader.GetSizePixel().Width() + 3*aSpace.Width(),aSpace.Height());
-    SetMinOutputSizePixel(aOutSize);
-    SetOutputSizePixel(aOutSize);
-
     m_pReportListener = new OPropertyChangeMultiplexer(this,m_pController->getReportDefinition().get());
     m_pReportListener->addProperty(PROPERTY_COMMAND);
     m_pReportListener->addProperty(PROPERTY_COMMANDTYPE);
@@ -987,23 +958,16 @@ OGroupsSortingDialog::OGroupsSortingDialog( Window* _pParent
     fillColumns();
     m_pFieldExpression->Show();
 
-    m_aHelpWindow.SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
+    m_pHelpWindow->SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
 
-    m_pFieldExpression->SetZOrder(&m_aFL2, WINDOW_ZORDER_BEHIND);
-
-    m_aMove.SetZOrder(m_pFieldExpression, WINDOW_ZORDER_BEHIND);
-    m_aToolBox.SetStyle(m_aToolBox.GetStyle()|WB_LINESPACING);
-    m_aToolBox.SetSelectHdl(LINK(this, OGroupsSortingDialog, OnFormatAction));
-    m_aToolBox.SetImageListProvider(this);
-    setToolBox(&m_aToolBox);
+    m_pToolBox->SetStyle(m_pToolBox->GetStyle()|WB_LINESPACING);
+    m_pToolBox->SetSelectHdl(LINK(this, OGroupsSortingDialog, OnFormatAction));
 
     checkButtons(0);
-    Resize();
 
-    FreeResource();
+    Show();
 }
 
-
 OGroupsSortingDialog::~OGroupsSortingDialog()
 {
     delete m_pFieldExpression;
@@ -1013,7 +977,6 @@ OGroupsSortingDialog::~OGroupsSortingDialog()
         m_pCurrentGroupListener->dispose();
 }
 
-
 void OGroupsSortingDialog::UpdateData( )
 {
     m_pFieldExpression->Invalidate();
@@ -1027,20 +990,7 @@ void OGroupsSortingDialog::DisplayData( sal_Int32 _nRow )
 {
     sal_Int32 nGroupPos = m_pFieldExpression->getGroupPosition(_nRow);
     bool bEmpty = nGroupPos == NO_GROUP;
-    m_aHeaderLst.Enable(!bEmpty);
-    m_aFooterLst.Enable(!bEmpty);
-    m_aGroupOnLst.Enable(!bEmpty);
-    m_aGroupIntervalEd.Enable(!bEmpty);
-    m_aKeepTogetherLst.Enable(!bEmpty);
-    m_aOrderLst.Enable(!bEmpty);
-
-    m_aFL3.Enable(!bEmpty);
-    m_aHeader.Enable(!bEmpty);
-    m_aFooter.Enable(!bEmpty);
-    m_aGroupOn.Enable(!bEmpty);
-    m_aGroupInterval.Enable(!bEmpty);
-    m_aKeepTogether.Enable(!bEmpty);
-    m_aOrder.Enable(!bEmpty);
+    m_pProperties->Enable(!bEmpty);
 
     checkButtons(_nRow);
 
@@ -1066,26 +1016,26 @@ void OGroupsSortingDialog::SaveData( sal_Int32 _nRow)
         return;
 
     uno::Reference< report::XGroup> xGroup = getGroup(nGroupPos);
-    if ( m_aHeaderLst.IsValueChangedFromSaved() )
-        xGroup->setHeaderOn( m_aHeaderLst.GetSelectEntryPos() == 0 );
-    if ( m_aFooterLst.IsValueChangedFromSaved() )
-        xGroup->setFooterOn( m_aFooterLst.GetSelectEntryPos() == 0 );
-    if ( m_aKeepTogetherLst.IsValueChangedFromSaved() )
-        xGroup->setKeepTogether( m_aKeepTogetherLst.GetSelectEntryPos() );
-    if ( m_aGroupOnLst.IsValueChangedFromSaved() )
+    if ( m_pHeaderLst->IsValueChangedFromSaved() )
+        xGroup->setHeaderOn( m_pHeaderLst->GetSelectEntryPos() == 0 );
+    if ( m_pFooterLst->IsValueChangedFromSaved() )
+        xGroup->setFooterOn( m_pFooterLst->GetSelectEntryPos() == 0 );
+    if ( m_pKeepTogetherLst->IsValueChangedFromSaved() )
+        xGroup->setKeepTogether( m_pKeepTogetherLst->GetSelectEntryPos() );
+    if ( m_pGroupOnLst->IsValueChangedFromSaved() )
     {
-        sal_Int16 nGroupOn = static_cast<sal_Int16>(reinterpret_cast<sal_IntPtr>(m_aGroupOnLst.GetEntryData(m_aGroupOnLst.GetSelectEntryPos())));
+        sal_Int16 nGroupOn = static_cast<sal_Int16>(reinterpret_cast<sal_IntPtr>(m_pGroupOnLst->GetEntryData(m_pGroupOnLst->GetSelectEntryPos())));
         xGroup->setGroupOn( nGroupOn );
     }
-    if ( m_aGroupIntervalEd.IsValueChangedFromSaved() )
+    if ( m_pGroupIntervalEd->IsValueChangedFromSaved() )
     {
-        xGroup->setGroupInterval( static_cast<sal_Int32>(m_aGroupIntervalEd.GetValue()) );
-        m_aGroupIntervalEd.SaveValue();
+        xGroup->setGroupInterval( static_cast<sal_Int32>(m_pGroupIntervalEd->GetValue()) );
+        m_pGroupIntervalEd->SaveValue();
     }
-    if ( m_aOrderLst.IsValueChangedFromSaved() )
-        xGroup->setSortAscending( m_aOrderLst.GetSelectEntryPos() == 0 );
+    if ( m_pOrderLst->IsValueChangedFromSaved() )
+        xGroup->setSortAscending( m_pOrderLst->GetSelectEntryPos() == 0 );
 
-    ListBox* pControls[] = { &m_aHeaderLst,&m_aFooterLst,&m_aGroupOnLst,&m_aKeepTogetherLst,&m_aOrderLst};
+    ListBox* pControls[] = { m_pHeaderLst, m_pFooterLst, m_pGroupOnLst, m_pKeepTogetherLst, m_pOrderLst};
     for (size_t i = 0; i < sizeof(pControls)/sizeof(pControls[0]); ++i)
         pControls[i]->SaveValue();
 }
@@ -1117,7 +1067,7 @@ IMPL_LINK(OGroupsSortingDialog, OnControlFocusGot, Control*, pControl )
 {
     if ( m_pFieldExpression && m_pFieldExpression->getExpressionControl() )
     {
-        Control* pControls[] = { m_pFieldExpression->getExpressionControl(),&m_aHeaderLst,&m_aFooterLst,&m_aGroupOnLst,&m_aGroupIntervalEd,&m_aKeepTogetherLst,&m_aOrderLst};
+        Control* pControls[] = { m_pFieldExpression->getExpressionControl(), m_pHeaderLst, m_pFooterLst, m_pGroupOnLst, m_pGroupIntervalEd, m_pKeepTogetherLst, m_pOrderLst};
         for (size_t i = 0; i < sizeof(pControls)/sizeof(pControls[0]); ++i)
         {
             if ( pControl == pControls[i] )
@@ -1138,9 +1088,9 @@ IMPL_LINK(OGroupsSortingDialog, OnControlFocusGot, Control*, pControl )
 
 IMPL_LINK(OGroupsSortingDialog, OnControlFocusLost, Control*, pControl )
 {
-    if ( m_pFieldExpression && pControl == &m_aGroupIntervalEd )
+    if (m_pFieldExpression && pControl == m_pGroupIntervalEd)
     {
-        if ( m_aGroupIntervalEd.IsModified() )
+        if ( m_pGroupIntervalEd->IsModified() )
             SaveData(m_pFieldExpression->GetCurRow());
     }
     return 0L;
@@ -1149,7 +1099,7 @@ IMPL_LINK(OGroupsSortingDialog, OnControlFocusLost, Control*, pControl )
 IMPL_LINK( OGroupsSortingDialog, OnFormatAction, ToolBox*, /*NOTINTERESTEDIN*/ )
 {
 
-    sal_uInt16 nCommand = m_aToolBox.GetCurItemId();
+    sal_uInt16 nCommand = m_pToolBox->GetCurItemId();
 
     if ( m_pFieldExpression )
     {
@@ -1161,15 +1111,15 @@ IMPL_LINK( OGroupsSortingDialog, OnFormatAction, ToolBox*, /*NOTINTERESTEDIN*/ )
             aClipboardList.realloc(1);
             aClipboardList[0] = m_xGroups->getByIndex(nGroupPos);
         }
-        if ( nCommand == SID_RPT_GROUPSORT_MOVE_UP )
+        if ( nCommand == m_nMoveUpId )
         {
             --nIndex;
         }
-        if ( nCommand == SID_RPT_GROUPSORT_MOVE_DOWN )
+        if ( nCommand == m_nMoveDownId )
         {
             ++nIndex;
         }
-        if ( nCommand == SID_RPT_GROUPSORT_DELETE )
+        if ( nCommand == m_nDeleteId )
         {
             Application::PostUserEvent( LINK(m_pFieldExpression, OFieldExpressionControl, DelayedDelete) );
         }
@@ -1195,12 +1145,12 @@ IMPL_LINK( OGroupsSortingDialog, LBChangeHdl, ListBox*, pListBox )
     {
         sal_Int32 nRow = m_pFieldExpression->GetCurRow();
         sal_Int32 nGroupPos = m_pFieldExpression->getGroupPosition(nRow);
-        if ( pListBox != &m_aHeaderLst && pListBox != &m_aFooterLst)
+        if (pListBox != m_pHeaderLst && pListBox != m_pFooterLst)
         {
             if ( pListBox->IsValueChangedFromSaved() )
                 SaveData(nRow);
-            if ( pListBox == &m_aGroupOnLst )
-                m_aGroupIntervalEd.Enable( pListBox->GetSelectEntryPos() != 0 );
+            if ( pListBox == m_pGroupOnLst )
+                m_pGroupIntervalEd->Enable( pListBox->GetSelectEntryPos() != 0 );
         }
         else if ( nGroupPos != NO_GROUP )
         {
@@ -1209,13 +1159,13 @@ IMPL_LINK( OGroupsSortingDialog, LBChangeHdl, ListBox*, pListBox )
             aArgs[1].Name = PROPERTY_GROUP;
             aArgs[1].Value <<= xGroup;
 
-            if ( &m_aHeaderLst  == pListBox )
+            if ( m_pHeaderLst  == pListBox )
                 aArgs[0].Name = PROPERTY_HEADERON;
             else
                 aArgs[0].Name = PROPERTY_FOOTERON;
 
             aArgs[0].Value <<= pListBox->GetSelectEntryPos() == 0;
-            m_pController->executeChecked(&m_aHeaderLst  == pListBox ? SID_GROUPHEADER : SID_GROUPFOOTER,aArgs);
+            m_pController->executeChecked(m_pHeaderLst  == pListBox ? SID_GROUPHEADER : SID_GROUPFOOTER,aArgs);
             m_pFieldExpression->InvalidateHandleColumn();
         }
     }
@@ -1224,7 +1174,7 @@ IMPL_LINK( OGroupsSortingDialog, LBChangeHdl, ListBox*, pListBox )
 
 void OGroupsSortingDialog::showHelpText(sal_uInt16 _nResId)
 {
-    m_aHelpWindow.SetText(OUString(ModuleRes(_nResId)));
+    m_pHelpWindow->SetText(OUString(ModuleRes(_nResId)));
 }
 
 void OGroupsSortingDialog::_propertyChanged(const beans::PropertyChangeEvent& _rEvent) throw( uno::RuntimeException)
@@ -1244,14 +1194,14 @@ void OGroupsSortingDialog::fillColumns()
 
 void OGroupsSortingDialog::displayGroup(const uno::Reference<report::XGroup>& _xGroup)
 {
-    m_aHeaderLst.SelectEntryPos(_xGroup->getHeaderOn() ? 0 : 1 );
-    m_aFooterLst.SelectEntryPos(_xGroup->getFooterOn() ? 0 : 1 );
+    m_pHeaderLst->SelectEntryPos(_xGroup->getHeaderOn() ? 0 : 1 );
+    m_pFooterLst->SelectEntryPos(_xGroup->getFooterOn() ? 0 : 1 );
     sal_Int32 nDataType = getColumnDataType(_xGroup->getExpression());
 
     // first clear whole group on list
-    while(m_aGroupOnLst.GetEntryCount() > 1 )
+    while(m_pGroupOnLst->GetEntryCount() > 1 )
     {
-        m_aGroupOnLst.RemoveEntry(1);
+        m_pGroupOnLst->RemoveEntry(1);
     }
 
     switch(nDataType)
@@ -1259,8 +1209,8 @@ void OGroupsSortingDialog::displayGroup(const uno::Reference<report::XGroup>& _x
         case sdbc::DataType::LONGVARCHAR:
         case sdbc::DataType::VARCHAR:
         case sdbc::DataType::CHAR:
-            m_aGroupOnLst.InsertEntry(OUString(ModuleRes(STR_RPT_PREFIXCHARS)));
-            m_aGroupOnLst.SetEntryData(1,reinterpret_cast<void*>(report::GroupOn::PREFIX_CHARACTERS));
+            m_pGroupOnLst->InsertEntry(OUString(ModuleRes(STR_RPT_PREFIXCHARS)));
+            m_pGroupOnLst->SetEntryData(1,reinterpret_cast<void*>(report::GroupOn::PREFIX_CHARACTERS));
             break;
         case sdbc::DataType::DATE:
         case sdbc::DataType::TIME:
@@ -1269,14 +1219,14 @@ void OGroupsSortingDialog::displayGroup(const uno::Reference<report::XGroup>& _x
                 sal_uInt16 nIds[] = { STR_RPT_YEAR, STR_RPT_QUARTER,STR_RPT_MONTH,STR_RPT_WEEK,STR_RPT_DAY,STR_RPT_HOUR,STR_RPT_MINUTE };
                 for (sal_uInt16 i = 0; i < sizeof (nIds) / sizeof (nIds[0]); ++i)
                 {
-                    m_aGroupOnLst.InsertEntry(OUString(ModuleRes(nIds[i])));
-                    m_aGroupOnLst.SetEntryData(i+1,reinterpret_cast<void*>(i+2));
+                    m_pGroupOnLst->InsertEntry(OUString(ModuleRes(nIds[i])));
+                    m_pGroupOnLst->SetEntryData(i+1,reinterpret_cast<void*>(i+2));
                 }
             }
             break;
         default:
-            m_aGroupOnLst.InsertEntry(OUString(ModuleRes(STR_RPT_INTERVAL)));
-            m_aGroupOnLst.SetEntryData(1,reinterpret_cast<void*>(report::GroupOn::INTERVAL));
+            m_pGroupOnLst->InsertEntry(OUString(ModuleRes(STR_RPT_INTERVAL)));
+            m_pGroupOnLst->SetEntryData(1,reinterpret_cast<void*>(report::GroupOn::INTERVAL));
             break;
     }
     sal_Int32 nPos = 0;
@@ -1315,57 +1265,22 @@ void OGroupsSortingDialog::displayGroup(const uno::Reference<report::XGroup>& _x
         default:
             nPos = 0;
     }
-    m_aGroupOnLst.SelectEntryPos(nPos);
-    m_aGroupIntervalEd.SetText(OUString::number(_xGroup->getGroupInterval()));
-    m_aGroupIntervalEd.SaveValue();
-    m_aGroupIntervalEd.Enable( nPos != 0 );
-    m_aKeepTogetherLst.SelectEntryPos(_xGroup->getKeepTogether());
-    m_aOrderLst.SelectEntryPos(_xGroup->getSortAscending() ? 0 : 1);
-
-    ListBox* pControls[] = { &m_aHeaderLst,&m_aFooterLst,&m_aGroupOnLst,&m_aKeepTogetherLst,&m_aOrderLst};
+    m_pGroupOnLst->SelectEntryPos(nPos);
+    m_pGroupIntervalEd->SetText(OUString::number(_xGroup->getGroupInterval()));
+    m_pGroupIntervalEd->SaveValue();
+    m_pGroupIntervalEd->Enable( nPos != 0 );
+    m_pKeepTogetherLst->SelectEntryPos(_xGroup->getKeepTogether());
+    m_pOrderLst->SelectEntryPos(_xGroup->getSortAscending() ? 0 : 1);
+
+    ListBox* pControls[] = { m_pHeaderLst, m_pFooterLst, m_pGroupOnLst, m_pKeepTogetherLst, m_pOrderLst};
     for (size_t i = 0; i < sizeof(pControls)/sizeof(pControls[0]); ++i)
         pControls[i]->SaveValue();
 
-    ListBox* pControlsLst2[] = { &m_aHeaderLst, &m_aFooterLst,  &m_aGroupOnLst, &m_aKeepTogetherLst,&m_aOrderLst};
+    ListBox* pControlsLst2[] = { m_pHeaderLst, m_pFooterLst, m_pGroupOnLst, m_pKeepTogetherLst, m_pOrderLst};
     bool bReadOnly = !m_pController->isEditable();
     for (size_t i = 0; i < sizeof(pControlsLst2)/sizeof(pControlsLst2[0]); ++i)
         pControlsLst2[i]->SetReadOnly(bReadOnly);
-    m_aGroupIntervalEd.SetReadOnly(bReadOnly);
-}
-
-void OGroupsSortingDialog::Resize()
-{
-    Window::Resize();
-    Size aTotalOutputSize = GetOutputSizePixel();
-    Size aSpace = LogicToPixel( Size( UNRELATED_CONTROLS, UNRELATED_CONTROLS ), MAP_APPFONT );
-    m_pFieldExpression->SetSizePixel(Size(aTotalOutputSize.Width() - 2*aSpace.Width(),m_pFieldExpression->GetSizePixel().Height()));
-
-    Control* pControlsLst[] = { &m_aHeaderLst,  &m_aFooterLst,  &m_aGroupOnLst, &m_aGroupIntervalEd,&m_aKeepTogetherLst,&m_aOrderLst};
-    Control* pControls[]    = { &m_aHeader,     &m_aFooter,     &m_aGroupOn,    &m_aGroupInterval,  &m_aKeepTogether,   &m_aOrder};
-    sal_Int32 nMaxTextWidth = 0;
-    for (size_t i = 0; i < sizeof (pControlsLst) / sizeof (pControlsLst[0]); ++i)
-    {
-        nMaxTextWidth = ::std::max<sal_Int32>(static_cast<sal_Int32>(GetTextWidth(pControls[i]->GetText())),nMaxTextWidth);
-    }
-
-    for (size_t i = 0; i < sizeof (pControlsLst) / sizeof (pControlsLst[0]); ++i)
-    {
-        pControls[i]->SetSizePixel(Size(nMaxTextWidth,pControls[i]->GetSizePixel().Height()));
-        Point aPos = pControls[i]->GetPosPixel();
-        aPos.X() += nMaxTextWidth + aSpace.Width();
-        aPos.Y() = pControlsLst[i]->GetPosPixel().Y();
-
-        pControlsLst[i]->SetPosSizePixel(aPos,Size(aTotalOutputSize.Width() - aPos.X() - aSpace.Width(),pControlsLst[i]->GetSizePixel().Height()));
-    }
-
-    m_aFL.SetSizePixel(Size(aTotalOutputSize.Width() - aSpace.Width(),m_aFL.GetSizePixel().Height()));
-    m_aFL2.SetSizePixel(Size(aTotalOutputSize.Width() - aSpace.Width(),m_aFL2.GetSizePixel().Height()));
-    m_aFL3.SetSizePixel(Size(aTotalOutputSize.Width() - aSpace.Width(),m_aFL3.GetSizePixel().Height()));
-    sal_Int32 nPos = aTotalOutputSize.Width() - aSpace.Width() - m_aToolBox.GetSizePixel().Width();
-    m_aToolBox.SetPosPixel(Point(nPos,m_aToolBox.GetPosPixel().Y()));
-
-    Point aHelpPos = m_aHelpWindow.GetPosPixel();
-    m_aHelpWindow.SetSizePixel(Size(aTotalOutputSize.Width() - aHelpPos.X(),aTotalOutputSize.Height() - aHelpPos.Y()));
+    m_pGroupIntervalEd->SetReadOnly(bReadOnly);
 }
 
 void OGroupsSortingDialog::checkButtons(sal_Int32 _nRow)
@@ -1376,59 +1291,33 @@ void OGroupsSortingDialog::checkButtons(sal_Int32 _nRow)
 
     if (bEnabled && _nRow > 0 )
     {
-        m_aToolBox.EnableItem(SID_RPT_GROUPSORT_MOVE_UP, true);
+        m_pToolBox->EnableItem(m_nMoveUpId, true);
     }
     else
     {
-        m_aToolBox.EnableItem(SID_RPT_GROUPSORT_MOVE_UP, false);
+        m_pToolBox->EnableItem(m_nMoveUpId, false);
     }
     if (bEnabled && _nRow < (nRowCount - 1) )
     {
-        m_aToolBox.EnableItem(SID_RPT_GROUPSORT_MOVE_DOWN, true);
+        m_pToolBox->EnableItem(m_nMoveDownId, true);
     }
     else
     {
-        m_aToolBox.EnableItem(SID_RPT_GROUPSORT_MOVE_DOWN, false);
+        m_pToolBox->EnableItem(m_nMoveDownId, false);
     }
 
     sal_Int32 nGroupPos = m_pFieldExpression->getGroupPosition(_nRow);
     if ( nGroupPos != NO_GROUP )
     {
         bool bEnableDelete = nGroupCount > 0;
-        m_aToolBox.EnableItem(SID_RPT_GROUPSORT_DELETE, bEnableDelete);
+        m_pToolBox->EnableItem(m_nDeleteId, bEnableDelete);
     }
     else
     {
-        m_aToolBox.EnableItem(SID_RPT_GROUPSORT_DELETE, false);
+        m_pToolBox->EnableItem(m_nDeleteId, false);
     }
 }
 
-void OGroupsSortingDialog::setImageList(sal_Int16 _eBitmapSet)
-{
-    sal_Int16 nN = IMG_CONDFORMAT_DLG_SC;
-    if ( _eBitmapSet == SFX_SYMBOLS_SIZE_LARGE )
-        nN = IMG_CONDFORMAT_DLG_LC;
-    m_aToolBox.SetImageList(ImageList(ModuleRes(nN)));
-}
-
-void OGroupsSortingDialog::resizeControls(const Size& _rDiff)
-{
-    // we use large images so we must change them
-    if ( _rDiff.Width() || _rDiff.Height() )
-    {
-        Invalidate();
-    }
-}
-
-
-// load the images
-ImageList OGroupsSortingDialog::getImageList(vcl::ImageListType)
-{
-    return ImageList(ModuleRes(IMGLST_GROUPSORT_DLG_SC));
-}
-
-
 } // rptui
 
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/source/ui/dlg/GroupsSorting.hrc b/reportdesign/source/ui/dlg/GroupsSorting.hrc
deleted file mode 100644
index 296ff61..0000000
--- a/reportdesign/source/ui/dlg/GroupsSorting.hrc
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- 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 RPTUI_GROUPSSORTING_HRC
-#define RPTUI_GROUPSSORTING_HRC
-
-#define FT_HEADER           (1)
-#define LST_HEADERLST       (2)
-#define FT_FOOTER           (3)
-#define LST_FOOTERLST       (4)
-#define FT_GROUPON          (5)
-#define LST_GROUPONLST      (6)
-#define FT_GROUPINTERVAL    (7)
-#define ED_GROUPINTERVALLST (8)
-#define FT_KEEPTOGETHER     (9)
-#define LST_KEEPTOGETHERLST (10)
-#define WND_CONTROL         (14)
-#define HELP_FIELD          (15)
-#define FT_ORDER            (16)
-#define LST_ORDER           (17)
-#define FL_SEPARATOR1       (18)
-#define FT_MOVELABEL        (19)
-#define FL_SEPARATOR2       (22)
-#define FL_SEPARATOR3       (23)
-#define TB_TOOLBOX                      (27)
-
-#define FIXEDTEXT_HEIGHT     8
-#define FIXEDTEXT_WIDTH     60
-#define RELATED_CONTROLS     4
-#define UNRELATED_CONTROLS   7
-#define EDIT_HEIGHT         12
-#define BUTTON_HEIGHT       14
-#define BUTTON_WIDTH        50
-#define BROWSER_HEIGHT      75
-#define PAGE_WIDTH          120
-#define PAGE_HEIGHT         ( 13*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 11*FIXEDTEXT_HEIGHT )
-#define LISTBOX_WIDTH       PAGE_WIDTH - 4*UNRELATED_CONTROLS - FIXEDTEXT_WIDTH
-
-#endif // RPTUI_GROUPSSORTING_HRC
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/source/ui/dlg/GroupsSorting.src b/reportdesign/source/ui/dlg/GroupsSorting.src
index 63f4086..25ead95 100644
--- a/reportdesign/source/ui/dlg/GroupsSorting.src
+++ b/reportdesign/source/ui/dlg/GroupsSorting.src
@@ -16,246 +16,11 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
-#include "GroupsSorting.hrc"
 #include "RptResId.hrc"
 #include "helpids.hrc"
 #include <svx/globlmn.hrc>
 #include <svx/svxids.hrc>
 
-FloatingWindow RID_GROUPS_SORTING
-{
-    OutputSize = TRUE ;
-    SVLook = TRUE ;
-    Size = MAP_APPFONT ( PAGE_WIDTH , PAGE_HEIGHT ) ;
-    Text [ en-US ] = "Sorting and Grouping" ;
-    HelpId = HID_RPT_GROUPSSORTING_DLG;
-    Moveable = TRUE ;
-    Closeable = TRUE ;
-    Sizeable = TRUE;
-
-    FixedLine FL_SEPARATOR2
-    {
-        Pos = MAP_APPFONT ( RELATED_CONTROLS , RELATED_CONTROLS ) ;
-        Size = MAP_APPFONT ( PAGE_WIDTH - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Groups";
-    };
-
-    Control WND_CONTROL
-    {
-        Pos = MAP_APPFONT( UNRELATED_CONTROLS, 2*UNRELATED_CONTROLS );
-        Size = MAP_APPFONT( PAGE_WIDTH - 2*UNRELATED_CONTROLS, BROWSER_HEIGHT );
-        HelpId = HID_RPT_GROUPSBRW ;
-        Border = TRUE;
-        TabStop = TRUE;
-    };
-
-    FixedText FT_MOVELABEL
-    {
-        Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 3*UNRELATED_CONTROLS + BROWSER_HEIGHT ) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Group actions" ;
-    };
-
-    ToolBox TB_TOOLBOX
-    {
-        Pos = MAP_APPFONT ( PAGE_WIDTH - 4*14 - UNRELATED_CONTROLS, 3*UNRELATED_CONTROLS + BROWSER_HEIGHT - 1 ) ;
-        ButtonType = BUTTON_SYMBOL;
-        Customize = FALSE;
-        ItemList =
-        {
-            ToolBoxItem
-            {
-                Identifier = SID_RPT_GROUPSORT_MOVE_UP ;
-                HelpID = HID_RPT_GROUPSORT_MOVE_UP ;
-                Text [ en-US ] = "Move up" ;
-                Checkable = TRUE;
-            };
-            ToolBoxItem
-            {
-                Identifier = SID_RPT_GROUPSORT_MOVE_DOWN ;
-                HelpID = HID_RPT_GROUPSORT_MOVE_DOWN ;
-                Text [ en-US ] = "Move down" ;
-                Checkable = TRUE;
-            };
-            ToolBoxItem
-            {
-                Identifier = SID_RPT_GROUPSORT_DELETE ;
-                HelpID = HID_RPT_GROUPSORT_DELETE ;
-                Text [ en-US ] = "~Delete" ;
-                Checkable = TRUE;
-            };
-        };
-    };
-
-    FixedLine FL_SEPARATOR3
-    {
-        Pos = MAP_APPFONT ( RELATED_CONTROLS , 3*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT) ;
-        Size = MAP_APPFONT ( PAGE_WIDTH - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Properties";
-    };
-
-    FixedText FT_ORDER
-    {
-        Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 4*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + FIXEDTEXT_HEIGHT ) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Sorting" ;
-    };
-
-    ListBox LST_ORDER
-    {
-        HelpID = "reportdesign:ListBox:RID_GROUPS_SORTING:LST_ORDER";
-        Border = TRUE;
-        Pos = MAP_APPFONT(2*UNRELATED_CONTROLS + FIXEDTEXT_WIDTH, 4*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + FIXEDTEXT_HEIGHT - 1 );
-        Size = MAP_APPFONT( LISTBOX_WIDTH, 60 );
-        DropDown = TRUE;
-        TabStop = TRUE;
-        Hide = TRUE;
-        CurPos = 0 ;
-        StringList [ en-US ] =
-        {
-            < "Ascending" ; 0 ; > ;
-            < "Descending" ; 1 ; > ;
-        };
-
-    };
-
-    FixedText FT_HEADER
-    {
-        Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 5*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 2*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Group Header" ;
-
-    };
-
-    ListBox LST_HEADERLST
-    {
-        HelpID = "reportdesign:ListBox:RID_GROUPS_SORTING:LST_HEADERLST";
-        Border = TRUE;
-        Hide = TRUE;
-        Pos = MAP_APPFONT( 2*UNRELATED_CONTROLS + FIXEDTEXT_WIDTH, 5*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 2*FIXEDTEXT_HEIGHT -1);
-        Size = MAP_APPFONT( LISTBOX_WIDTH, 60 );
-        DropDown = TRUE;
-        TabStop = TRUE;
-        CurPos = 1 ;
-        StringList [ en-US ] =
-        {
-            < "Present" ; Default ; > ;
-            < "Not present" ; Default ; > ;
-        };
-    };
-
-    FixedText FT_FOOTER
-    {
-        Pos = MAP_APPFONT (  UNRELATED_CONTROLS, 6*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 3*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Group Footer" ;
-
-    };
-
-    ListBox LST_FOOTERLST
-    {
-        HelpID = "reportdesign:ListBox:RID_GROUPS_SORTING:LST_FOOTERLST";
-        Border = TRUE;
-        Hide = TRUE;
-        Pos = MAP_APPFONT( 2*UNRELATED_CONTROLS + FIXEDTEXT_WIDTH, 6*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 3*FIXEDTEXT_HEIGHT -1);
-        Size = MAP_APPFONT( LISTBOX_WIDTH, 60 );
-        DropDown = TRUE;
-        TabStop = TRUE;
-        CurPos = 1 ;
-        StringList [ en-US ] =
-        {
-            < "Present" ; Default ; > ;
-            < "Not present" ; Default ; > ;
-        };
-    };
-
-    FixedText FT_GROUPON
-    {
-        Pos = MAP_APPFONT (  UNRELATED_CONTROLS, 7*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 4*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Group On" ;
-
-    };
-
-    ListBox LST_GROUPONLST
-    {
-        HelpID = "reportdesign:ListBox:RID_GROUPS_SORTING:LST_GROUPONLST";
-        Border = TRUE;
-        Hide = TRUE;
-        Pos = MAP_APPFONT( 2*UNRELATED_CONTROLS + FIXEDTEXT_WIDTH, 7*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 4*FIXEDTEXT_HEIGHT -1);
-        Size = MAP_APPFONT( LISTBOX_WIDTH, 60 );
-        DropDown = TRUE;
-        TabStop = TRUE;
-        CurPos = 0 ;
-        StringList [ en-US ] =
-        {
-            < "Each Value" ; Default ; > ;
-        };
-    };
-
-    FixedText FT_GROUPINTERVAL
-    {
-        Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 8*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 5*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Group Interval" ;
-    };
-
-    NumericField ED_GROUPINTERVALLST
-    {
-        HelpID = "reportdesign:NumericField:RID_GROUPS_SORTING:ED_GROUPINTERVALLST";
-        Border = TRUE;
-        Hide = TRUE;
-        Pos = MAP_APPFONT(2*UNRELATED_CONTROLS + FIXEDTEXT_WIDTH , 8*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 5*FIXEDTEXT_HEIGHT -1);
-        Size = MAP_APPFONT( LISTBOX_WIDTH, EDIT_HEIGHT );
-        TabStop = TRUE;
-    };
-
-    FixedText FT_KEEPTOGETHER
-    {
-        Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 9*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 6*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT ( FIXEDTEXT_WIDTH , FIXEDTEXT_HEIGHT ) ;
-        Hide = TRUE;
-        Text [ en-US ] = "Keep Together" ;
-    };
-    ListBox LST_KEEPTOGETHERLST
-    {
-        HelpID = "reportdesign:ListBox:RID_GROUPS_SORTING:LST_KEEPTOGETHERLST";
-        Border = TRUE;
-        Hide = TRUE;
-        Pos = MAP_APPFONT(2*UNRELATED_CONTROLS + FIXEDTEXT_WIDTH , 9*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 6*FIXEDTEXT_HEIGHT -1);
-        Size = MAP_APPFONT( LISTBOX_WIDTH, 60 );
-        DropDown = TRUE;
-        TabStop = TRUE;
-        CurPos = 0 ;
-        StringList [ en-US ] =
-        {
-            < "No" ; 0 ; > ;
-            < "Whole Group" ; 1 ; > ;
-            < "With First Detail" ; 2 ; > ;
-        };
-    };
-
-    FixedLine FL_SEPARATOR1
-    {
-        Pos = MAP_APPFONT ( RELATED_CONTROLS , 10*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 7*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT ( PAGE_WIDTH - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ;
-        Text [ en-US ] = "Help";
-    };
-
-    FixedText HELP_FIELD
-    {
-        Pos = MAP_APPFONT ( UNRELATED_CONTROLS , 12*UNRELATED_CONTROLS + BROWSER_HEIGHT + BUTTON_HEIGHT + 7*FIXEDTEXT_HEIGHT) ;
-        Size = MAP_APPFONT( PAGE_WIDTH - 2*UNRELATED_CONTROLS, 4*FIXEDTEXT_HEIGHT);
-        WordBreak = TRUE;
-    };
-
-};
-
 String STR_RPT_EXPRESSION
 {
     Text [ en-US ] = "Field/Expression" ;
@@ -357,24 +122,4 @@ Menu RID_GROUPSROWPOPUPMENU
     };
 };
 
-#define DEF_MASKCOLOR MaskColor = Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; }
-
-#define DEF_IL_GROUPSORT \
-\
-    IdList = {\
-        SID_RPT_GROUPSORT_MOVE_UP;\
-        SID_RPT_GROUPSORT_MOVE_DOWN;\
-        SID_RPT_GROUPSORT_DELETE;\
-        };\
-    IdCount = {\
-    3;\
-    }
-
-ImageList IMGLST_GROUPSORT_DLG_SC
-{
-    DEF_MASKCOLOR;
-    prefix = "sc";
-    DEF_IL_GROUPSORT ;
-};
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/source/ui/inc/GroupsSorting.hxx b/reportdesign/source/ui/inc/GroupsSorting.hxx
index feb4d4d..4b9be4c 100644
--- a/reportdesign/source/ui/inc/GroupsSorting.hxx
+++ b/reportdesign/source/ui/inc/GroupsSorting.hxx
@@ -21,6 +21,7 @@
 
 #include <vcl/floatwin.hxx>
 #include <vcl/fixed.hxx>
+#include <vcl/layout.hxx>
 #include <vcl/lstbox.hxx>
 #include <vcl/edit.hxx>
 #include <vcl/field.hxx>
@@ -58,30 +59,22 @@ class OReportController;
 class OGroupsSortingDialog :    public FloatingWindow
                            ,    public ::cppu::BaseMutex
                            ,    public ::comphelper::OPropertyChangeListener
-                           ,    public dbaui::OToolBoxHelper
-                           ,    public vcl::IImageListProvider
 {
     friend class OFieldExpressionControl;
 
-    FixedLine                               m_aFL2;
-    FixedText                               m_aMove;
-    ToolBox                                 m_aToolBox;
-
-    FixedLine                               m_aFL3;
-    FixedText                               m_aOrder;
-    ListBox                                 m_aOrderLst;
-    FixedText                               m_aHeader;
-    ListBox                                 m_aHeaderLst;
-    FixedText                               m_aFooter;
-    ListBox                                 m_aFooterLst;
-    FixedText                               m_aGroupOn;
-    ListBox                                 m_aGroupOnLst;
-    FixedText                               m_aGroupInterval;
-    NumericField                            m_aGroupIntervalEd;
-    FixedText                               m_aKeepTogether;
-    ListBox                                 m_aKeepTogetherLst;
-    FixedLine                               m_aFL;
-    FixedText                               m_aHelpWindow;
+    ToolBox*                                m_pToolBox;
+    sal_uInt16                              m_nMoveUpId;
+    sal_uInt16                              m_nMoveDownId;
+    sal_uInt16                              m_nDeleteId;
+
+    VclContainer*                           m_pProperties;
+    ListBox*                                m_pOrderLst;
+    ListBox*                                m_pHeaderLst;
+    ListBox*                                m_pFooterLst;
+    ListBox*                                m_pGroupOnLst;
+    NumericField*                           m_pGroupIntervalEd;
+    ListBox*                                m_pKeepTogetherLst;
+    FixedText*                              m_pHelpWindow;
 
     OFieldExpressionControl*                m_pFieldExpression;
     ::rptui::OReportController*             m_pController;
@@ -147,8 +140,6 @@ private:
     OGroupsSortingDialog(OGroupsSortingDialog&);
     void operator =(OGroupsSortingDialog&);
 protected:
-    // window
-    virtual void    Resize() SAL_OVERRIDE;
     // OPropertyChangeListener
     virtual void    _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& _rEvent) throw( ::com::sun::star::uno::RuntimeException) SAL_OVERRIDE;
 public:
@@ -165,22 +156,6 @@ public:
     /* updates the current view
     */
     void UpdateData( );
-
-        /** will be called when the controls need to be resized.
-            @param  _rDiff
-                Contains the difference of the old and new toolbox size.
-        */
-        virtual void resizeControls(const Size& _rDiff) SAL_OVERRIDE;
-
-        /** will be called when the image list needs to change
-            @param  _eSymbolsSize
-                <svtools/imgdef.hxx>
-        */
-    virtual void setImageList(sal_Int16 _eSymbolsSize) SAL_OVERRIDE;
-
-    // ImageListProvider interface
-    virtual ImageList getImageList(vcl::ImageListType) SAL_OVERRIDE;
-
 };
 
 } // namespace rptui
diff --git a/reportdesign/source/ui/report/ReportController.cxx b/reportdesign/source/ui/report/ReportController.cxx
index c442fd8..51b031f 100644
--- a/reportdesign/source/ui/report/ReportController.cxx
+++ b/reportdesign/source/ui/report/ReportController.cxx
@@ -327,7 +327,7 @@ void OReportController::disposing()
     }
     if ( m_pGroupsFloater )
     {
-        SvtViewOptions aDlgOpt( E_WINDOW, OUString::number( RID_GROUPS_SORTING ) );
+        SvtViewOptions aDlgOpt(E_WINDOW, OStringToOUString(m_pGroupsFloater->GetHelpId(), RTL_TEXTENCODING_UTF8));
         aDlgOpt.SetWindowState(OStringToOUString(m_pGroupsFloater->GetWindowState(WINDOWSTATE_MASK_ALL), RTL_TEXTENCODING_ASCII_US));
         SAL_WNODEPRECATED_DECLARATIONS_PUSH
         ::std::auto_ptr<FloatingWindow> aTemp(m_pGroupsFloater);
@@ -2539,7 +2539,7 @@ void OReportController::openSortingAndGroupingDialog()
     if ( !m_pGroupsFloater )
     {
         m_pGroupsFloater = new OGroupsSortingDialog(getView(),!isEditable(),this);
-        SvtViewOptions aDlgOpt( E_WINDOW, OUString::number( RID_GROUPS_SORTING) );
+        SvtViewOptions aDlgOpt(E_WINDOW, OStringToOUString(m_pGroupsFloater->GetHelpId(), RTL_TEXTENCODING_UTF8));
         if ( aDlgOpt.Exists() )
             m_pGroupsFloater->SetWindowState(OUStringToOString(aDlgOpt.GetWindowState(), RTL_TEXTENCODING_ASCII_US));
         m_pGroupsFloater->AddEventListener(LINK(this,OReportController,EventLstHdl));
diff --git a/reportdesign/uiconfig/dbreport/ui/floatingsort.ui b/reportdesign/uiconfig/dbreport/ui/floatingsort.ui
new file mode 100644
index 0000000..d29f7b1
--- /dev/null
+++ b/reportdesign/uiconfig/dbreport/ui/floatingsort.ui
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <object class="GtkWindow" id="FloatingSort">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Sorting and Grouping</property>
+    <property name="type_hint">utility</property>
+    <child>
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
+        <property name="row_spacing">12</property>
+        <child>
+          <object class="GtkFrame" id="frame1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <child>
+              <object class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
+                <child>
+                  <object class="GtkGrid" id="grid2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                    <property name="row_spacing">6</property>
+                    <child>
+                      <object class="GtkGrid" id="grid3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="column_spacing">12</property>
+                        <child>
+                          <object class="GtkLabel" id="label5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Group actions</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">toolbox</property>
+                          </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>
+                        <child>
+                          <object class="GtkToolbar" id="toolbox">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">end</property>
+                            <property name="hexpand">True</property>
+                            <property name="toolbar_style">icons</property>
+                            <child>
+                              <object class="GtkToolButton" id="up">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Move up</property>
+                                <property name="use_underline">True</property>
+                                <property name="icon_name">cmd/sc_moveup.png</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="homogeneous">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkToolButton" id="down">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Move down</property>
+                                <property name="use_underline">True</property>
+                                <property name="icon_name">cmd/sc_movedown.png</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="homogeneous">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkToolButton" id="delete">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Delete</property>
+                                <property name="use_underline">True</property>
+                                <property name="icon_name">cmd/sc_deleterows.png</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="homogeneous">True</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <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>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="box">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <placeholder/>
+                        </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>
+                </child>
+              </object>
+            </child>
+            <child type="label">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Groups</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </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>
+        <child>
+          <object class="GtkFrame" id="properties">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <child>
+              <object class="GtkAlignment" id="alignment2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
+                <child>
+                  <object class="GtkGrid" id="grid4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">12</property>
+                    <child>
+                      <object class="GtkLabel" id="label6">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Sorting</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">sorting</property>
+                      </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>
+                    <child>
+                      <object class="GtkLabel" id="label7">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Group Header</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">header</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label8">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Group Footer</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">footer</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label9">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Group On</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">group</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">3</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label10">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Group Interval</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">interval</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">4</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label11">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Keep Together</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">keep</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">5</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="sorting">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="active">0</property>
+                        <items>
+                          <item translatable="yes">Ascending</item>
+                          <item translatable="yes">Descending</item>
+                        </items>
+                      </object>
+                      <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>
+                      <object class="GtkComboBoxText" id="header">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="active">0</property>
+                        <items>
+                          <item translatable="yes">Present</item>
+                          <item translatable="yes">Not present</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">1</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="keep">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="active">0</property>
+                        <items>
+                          <item translatable="yes">No</item>
+                          <item translatable="yes">Whole Group</item>
+                          <item translatable="yes">With First Detail</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">5</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="footer">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="active">1</property>
+                        <items>
+                          <item translatable="yes">Present</item>
+                          <item translatable="yes">Not present</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">2</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="group">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="active">0</property>
+                        <items>
+                          <item translatable="yes">Each Value</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">3</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="interval">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">4</property>
+                        <property name="width">1</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label">
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Properties</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="frame3">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">none</property>
+            <child>
+              <object class="GtkAlignment" id="alignment3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">6</property>
+                <property name="left_padding">12</property>
+                <child>
+                  <object class="GtkLabel" id="helptext">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0</property>
+                    <property name="wrap">True</property>
+                    <property name="max_width_chars">52</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label">
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Help</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">2</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
commit 1bacc1771007a3b0a28454e371aaa28dafcc5eb3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Sep 3 19:46:14 2014 +0100

    move ImplWindowAutoMnemonic into DoInitialLayout
    
    so Floating windows get automnemonics as well, e.g.
    the Floating Sort floating window of reportdesign
    
    Change-Id: I0805840f7b0b2329e210c77e32c5eabfdac387fb

diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index ff6ab0c..9ec2a2f 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -618,9 +618,6 @@ void Dialog::StateChanged( StateChangedType nType )
 {
     if (nType == STATE_CHANGE_INITSHOW)
     {
-        if ( GetSettings().GetStyleSettings().GetAutoMnemonic() )
-            ImplWindowAutoMnemonic( this );
-
         DoInitialLayout();
 
         if ( !HasChildPathFocus() || HasFocus() )
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 6a21d22..39cf665 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -24,6 +24,7 @@
 #include <tools/debug.hxx>
 
 #include <vcl/layout.hxx>
+#include <vcl/settings.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/menu.hxx>
 #include <vcl/event.hxx>
@@ -1089,8 +1090,13 @@ void SystemWindow::setOptimalLayoutSize()
     setPosSizeOnContainee(aSize, *pBox);
 }
 
+extern void ImplWindowAutoMnemonic(Window* pWindow);
+
 void SystemWindow::DoInitialLayout()
 {
+    if ( GetSettings().GetStyleSettings().GetAutoMnemonic() )
+       ImplWindowAutoMnemonic( this );
+
     if (isLayoutEnabled())
     {
         mbIsCalculatingInitialLayoutSize = true;


More information about the Libreoffice-commits mailing list