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..7a41d18e 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)
{
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_aHeaderLst, &m_aFooterLst, &m_aGroupOnLst, &m_aKeepTogetherLst, &m_aOrderLst, &m_aGroupIntervalEd};
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);
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_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();
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;
ToolBox* m_pToolBox;
sal_uInt16 m_nMoveUpId;
sal_uInt16 m_nMoveDownId;
sal_uInt16 m_nDeleteId;
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;
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>