sc/UIConfig_scalc.mk | 1 sc/source/ui/dbgui/tpsubt.cxx | 129 +++++++++++------------ sc/source/ui/inc/tpsubt.hxx | 11 -- sc/source/ui/src/subtdlg.src | 83 --------------- sc/uiconfig/scalc/ui/subtotalgrppage.ui | 175 ++++++++++++++++++++++++++++++++ 5 files changed, 242 insertions(+), 157 deletions(-)
New commits: commit 151cc01f6afb389ab4d98131ba918dbf6e06e749 Author: Katarina Behrens <bu...@bubli.org> Date: Wed Dec 18 18:59:19 2013 +0100 Converted subtotals group tab page to .ui + translated some German comments :P Change-Id: I2e3aa8bbdb1fc39c963ed5c59ef4511dce0044f9 diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk index 033238b..fb8b696 100644 --- a/sc/UIConfig_scalc.mk +++ b/sc/UIConfig_scalc.mk @@ -133,6 +133,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\ sc/uiconfig/scalc/ui/sortoptionspage \ sc/uiconfig/scalc/ui/sortwarning \ sc/uiconfig/scalc/ui/subtotaloptionspage \ + sc/uiconfig/scalc/ui/subtotalgrppage \ sc/uiconfig/scalc/ui/statisticsinfopage \ sc/uiconfig/scalc/ui/textimportoptions \ sc/uiconfig/scalc/ui/textimportcsv \ diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx index 48b12e9..94be603 100644 --- a/sc/source/ui/dbgui/tpsubt.cxx +++ b/sc/source/ui/dbgui/tpsubt.cxx @@ -33,19 +33,13 @@ #include "tpsubt.hxx" //======================================================================== -// Zwischenergebnisgruppen-Tabpage: +// Subtotals group tabpage: -ScTpSubTotalGroup::ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId, +ScTpSubTotalGroup::ScTpSubTotalGroup( Window* pParent, const SfxItemSet& rArgSet ) : SfxTabPage ( pParent, - ScResId( nResId ), + "SubTotalGrpPage", "modules/scalc/ui/subtotalgrppage.ui", rArgSet ), - aFtGroup ( this, ScResId( FT_GROUP ) ), - aLbGroup ( this, ScResId( LB_GROUP ) ), - aFtColumns ( this, ScResId( FT_COLUMNS ) ), - aLbColumns ( this, ScResId( WND_COLUMNS ) ), - aFtFunctions ( this, ScResId( FT_FUNCTIONS ) ), - aLbFunctions ( this, ScResId( LB_FUNCTIONS ) ), aStrNone ( SC_RESSTR( SCSTR_NONE ) ), aStrColumn ( SC_RESSTR( SCSTR_COLUMN ) ), pViewData ( NULL ), @@ -56,21 +50,22 @@ ScTpSubTotalGroup::ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId, GetSubTotalData() ), nFieldCount ( 0 ) { + get( mpLbGroup, "group_by"); + get( mpLbColumns, "columns"); + get( mpLbFunctions, "functions"); // Font is correctly initialized by SvTreeListBox ctor - aLbColumns.SetSelectionMode( SINGLE_SELECTION ); - aLbColumns.SetDragDropMode( SV_DRAGDROP_NONE ); - aLbColumns.SetSpaceBetweenEntries( 0 ); - aLbColumns.Show(); + mpLbColumns->SetSelectionMode( SINGLE_SELECTION ); + mpLbColumns->SetDragDropMode( SV_DRAGDROP_NONE ); + mpLbColumns->SetSpaceBetweenEntries( 0 ); Init (); - FreeResource(); } // ----------------------------------------------------------------------- ScTpSubTotalGroup::~ScTpSubTotalGroup() { - sal_uInt16 nCount = (sal_uInt16)aLbColumns.GetEntryCount(); + sal_uInt16 nCount = (sal_uInt16)mpLbColumns->GetEntryCount(); if ( nCount > 0 ) { @@ -78,7 +73,7 @@ ScTpSubTotalGroup::~ScTpSubTotalGroup() for ( sal_uInt16 i=0; i<nCount; i++ ) { - pData = (sal_uInt16*)(aLbColumns.GetEntryData( i )); + pData = (sal_uInt16*)(mpLbColumns->GetEntryData( i )); OSL_ENSURE( pData, "EntryData not found" ); delete pData; @@ -98,10 +93,10 @@ void ScTpSubTotalGroup::Init() OSL_ENSURE( pViewData && pDoc, "ViewData or Document not found :-(" ); - aLbGroup.SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) ); - aLbColumns.SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) ); - aLbColumns.SetCheckButtonHdl ( LINK( this, ScTpSubTotalGroup, CheckHdl ) ); - aLbFunctions.SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) ); + mpLbGroup->SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) ); + mpLbColumns->SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) ); + mpLbColumns->SetCheckButtonHdl ( LINK( this, ScTpSubTotalGroup, CheckHdl ) ); + mpLbFunctions->SetSelectHdl ( LINK( this, ScTpSubTotalGroup, SelectHdl ) ); nFieldArr[0] = 0; FillListBoxes(); @@ -124,12 +119,12 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo, //---------------------------------------------------------- // first we have to clear the listboxes... - for ( sal_uInt16 nLbEntry = 0; nLbEntry < aLbColumns.GetEntryCount(); ++nLbEntry ) + for ( sal_uInt16 nLbEntry = 0; nLbEntry < mpLbColumns->GetEntryCount(); ++nLbEntry ) { - aLbColumns.CheckEntryPos( nLbEntry, false ); - *((sal_uInt16*)aLbColumns.GetEntryData( nLbEntry )) = 0; + mpLbColumns->CheckEntryPos( nLbEntry, false ); + *((sal_uInt16*)mpLbColumns->GetEntryData( nLbEntry )) = 0; } - aLbFunctions.SelectEntryPos( 0 ); + mpLbFunctions->SelectEntryPos( 0 ); ScSubTotalParam theSubTotalData( ((const ScSubTotalItem&) rArgSet.Get( nWhichSubTotals )). @@ -142,28 +137,28 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo, SCCOL* pSubTotals = theSubTotalData.pSubTotals[nGroupIdx]; ScSubTotalFunc* pFunctions = theSubTotalData.pFunctions[nGroupIdx]; - aLbGroup.SelectEntryPos( GetFieldSelPos( nField )+1 ); + mpLbGroup->SelectEntryPos( GetFieldSelPos( nField )+1 ); sal_uInt16 nFirstChecked = 0; for ( sal_uInt16 i=0; i<nSubTotals; i++ ) { sal_uInt16 nCheckPos = GetFieldSelPos( pSubTotals[i] ); - sal_uInt16* pFunction = (sal_uInt16*)aLbColumns.GetEntryData( nCheckPos ); + sal_uInt16* pFunction = (sal_uInt16*)mpLbColumns->GetEntryData( nCheckPos ); - aLbColumns.CheckEntryPos( nCheckPos ); + mpLbColumns->CheckEntryPos( nCheckPos ); *pFunction = FuncToLbPos( pFunctions[i] ); if (i == 0 || (i > 0 && nCheckPos < nFirstChecked)) nFirstChecked = nCheckPos; } // Select the first checked field from the top. - aLbColumns.SelectEntryPos(nFirstChecked); + mpLbColumns->SelectEntryPos(nFirstChecked); } else { - aLbGroup.SelectEntryPos( (nGroupNo == 1) ? 1 : 0 ); - aLbColumns.SelectEntryPos( 0 ); - aLbFunctions.SelectEntryPos( 0 ); + mpLbGroup->SelectEntryPos( (nGroupNo == 1) ? 1 : 0 ); + mpLbColumns->SelectEntryPos( 0 ); + mpLbFunctions->SelectEntryPos( 0 ); } return true; @@ -177,16 +172,16 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo, sal_uInt16 nGroupIdx = 0; OSL_ENSURE( (nGroupNo<=3) && (nGroupNo>0), "Invalid group" ); - OSL_ENSURE( (aLbGroup.GetEntryCount() > 0) - && (aLbColumns.GetEntryCount() > 0) - && (aLbFunctions.GetEntryCount() > 0), + OSL_ENSURE( (mpLbGroup->GetEntryCount() > 0) + && (mpLbColumns->GetEntryCount() > 0) + && (mpLbFunctions->GetEntryCount() > 0), "Non-initialized Lists" ); if ( (nGroupNo > 3) || (nGroupNo == 0) - || (aLbGroup.GetEntryCount() == 0) - || (aLbColumns.GetEntryCount() == 0) - || (aLbFunctions.GetEntryCount() == 0) + || (mpLbGroup->GetEntryCount() == 0) + || (mpLbColumns->GetEntryCount() == 0) + || (mpLbFunctions->GetEntryCount() == 0) ) return false; else @@ -206,9 +201,9 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo, ScSubTotalFunc* pFunctions = NULL; SCCOL* pSubTotals = NULL; - sal_uInt16 nGroup = aLbGroup.GetSelectEntryPos(); - sal_uInt16 nEntryCount = (sal_uInt16)aLbColumns.GetEntryCount(); - sal_uInt16 nCheckCount = aLbColumns.GetCheckedEntryCount(); + sal_uInt16 nGroup = mpLbGroup->GetSelectEntryPos(); + sal_uInt16 nEntryCount = (sal_uInt16)mpLbColumns->GetEntryCount(); + sal_uInt16 nCheckCount = mpLbColumns->GetCheckedEntryCount(); theSubTotalData.nCol1 = rSubTotalData.nCol1; theSubTotalData.nRow1 = rSubTotalData.nRow1; @@ -228,11 +223,11 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo, for ( sal_uInt16 i=0, nCheck=0; i<nEntryCount; i++ ) { - if ( aLbColumns.IsChecked( i ) ) + if ( mpLbColumns->IsChecked( i ) ) { OSL_ENSURE( nCheck <= nCheckCount, "Range error :-(" ); - nFunction = *((sal_uInt16*)aLbColumns.GetEntryData( i )); + nFunction = *((sal_uInt16*)mpLbColumns->GetEntryData( i )); pSubTotals[nCheck] = nFieldArr[i]; pFunctions[nCheck] = LbPosToFunc( nFunction ); nCheck++; @@ -268,9 +263,9 @@ void ScTpSubTotalGroup::FillListBoxes() SCCOL col; OUString aFieldName; - aLbGroup.Clear(); - aLbColumns.Clear(); - aLbGroup.InsertEntry( aStrNone, 0 ); + mpLbGroup->Clear(); + mpLbColumns->Clear(); + mpLbGroup->InsertEntry( aStrNone, 0 ); sal_uInt16 i=0; for ( col=nFirstCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ ) @@ -281,12 +276,12 @@ void ScTpSubTotalGroup::FillListBoxes() aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col )); } nFieldArr[i] = col; - aLbGroup.InsertEntry( aFieldName, i+1 ); - aLbColumns.InsertEntry( aFieldName, i ); - aLbColumns.SetEntryData( i, new sal_uInt16(0) ); + mpLbGroup->InsertEntry( aFieldName, i+1 ); + mpLbColumns->InsertEntry( aFieldName, i ); + mpLbColumns->SetEntryData( i, new sal_uInt16(0) ); i++; } - // Nachtraegliche "Konstanteninitialisierung": + // subsequent initialization of the constant: (sal_uInt16&)nFieldCount = i; } } @@ -364,25 +359,25 @@ sal_uInt16 ScTpSubTotalGroup::FuncToLbPos( ScSubTotalFunc eFunc ) IMPL_LINK( ScTpSubTotalGroup, SelectHdl, ListBox *, pLb ) { - if ( (aLbColumns.GetEntryCount() > 0) - && (aLbColumns.GetSelectionCount() > 0) ) + if ( (mpLbColumns->GetEntryCount() > 0) + && (mpLbColumns->GetSelectionCount() > 0) ) { - sal_uInt16 nFunction = aLbFunctions.GetSelectEntryPos(); - sal_uInt16 nColumn = aLbColumns.GetSelectEntryPos(); - sal_uInt16* pFunction = (sal_uInt16*)aLbColumns.GetEntryData( nColumn ); + sal_uInt16 nFunction = mpLbFunctions->GetSelectEntryPos(); + sal_uInt16 nColumn = mpLbColumns->GetSelectEntryPos(); + sal_uInt16* pFunction = (sal_uInt16*)mpLbColumns->GetEntryData( nColumn ); - OSL_ENSURE( pFunction, "EntryData nicht gefunden!" ); + OSL_ENSURE( pFunction, "EntryData not found!" ); if ( !pFunction ) return 0; - if ( ((SvxCheckListBox*)pLb) == &aLbColumns ) + if ( ((SvxCheckListBox*)pLb) == mpLbColumns ) { - aLbFunctions.SelectEntryPos( *pFunction ); + mpLbFunctions->SelectEntryPos( *pFunction ); } - else if ( pLb == &aLbFunctions ) + else if ( pLb == mpLbFunctions ) { *pFunction = nFunction; - aLbColumns.CheckEntryPos( nColumn, true ); + mpLbColumns->CheckEntryPos( nColumn, true ); } } return 0; @@ -392,13 +387,13 @@ IMPL_LINK( ScTpSubTotalGroup, SelectHdl, ListBox *, pLb ) IMPL_LINK( ScTpSubTotalGroup, CheckHdl, ListBox *, pLb ) { - if ( ((SvxCheckListBox*)pLb) == &aLbColumns ) + if ( ((SvxCheckListBox*)pLb) == mpLbColumns ) { - SvTreeListEntry* pEntry = aLbColumns.GetHdlEntry(); + SvTreeListEntry* pEntry = mpLbColumns->GetHdlEntry(); if ( pEntry ) { - aLbColumns.SelectEntryPos( (sal_uInt16)aLbColumns.GetModel()->GetAbsPos( pEntry ) ); + mpLbColumns->SelectEntryPos( (sal_uInt16)mpLbColumns->GetModel()->GetAbsPos( pEntry ) ); SelectHdl( pLb ); } } @@ -406,7 +401,7 @@ IMPL_LINK( ScTpSubTotalGroup, CheckHdl, ListBox *, pLb ) } //======================================================================== -// Abgeleitete Gruppen-TabPages: +// Derived Group TabPages: SfxTabPage* ScTpSubTotalGroup1::Create( Window* pParent, const SfxItemSet& rArgSet ) @@ -427,15 +422,15 @@ SfxTabPage* ScTpSubTotalGroup3::Create( Window* pParent, // ----------------------------------------------------------------------- ScTpSubTotalGroup1::ScTpSubTotalGroup1( Window* pParent, const SfxItemSet& rArgSet ) : - ScTpSubTotalGroup( pParent, RID_SCPAGE_SUBT_GROUP1, rArgSet ) + ScTpSubTotalGroup( pParent, rArgSet ) {} ScTpSubTotalGroup2::ScTpSubTotalGroup2( Window* pParent, const SfxItemSet& rArgSet ) : - ScTpSubTotalGroup( pParent, RID_SCPAGE_SUBT_GROUP2, rArgSet ) + ScTpSubTotalGroup( pParent, rArgSet ) {} ScTpSubTotalGroup3::ScTpSubTotalGroup3( Window* pParent, const SfxItemSet& rArgSet ) : - ScTpSubTotalGroup( pParent, RID_SCPAGE_SUBT_GROUP3, rArgSet ) + ScTpSubTotalGroup( pParent, rArgSet ) {} // ----------------------------------------------------------------------- @@ -500,7 +495,7 @@ void ScTpSubTotalOptions::Init() pViewData = rSubTotalItem.GetViewData(); pDoc = ( pViewData ) ? pViewData->GetDocument() : NULL; - OSL_ENSURE( pViewData && pDoc, "ViewData oder Document nicht gefunden!" ); + OSL_ENSURE( pViewData && pDoc, "ViewData or Document not found!" ); pBtnSort->SetClickHdl ( LINK( this, ScTpSubTotalOptions, CheckHdl ) ); pBtnUserDef->SetClickHdl ( LINK( this, ScTpSubTotalOptions, CheckHdl ) ); diff --git a/sc/source/ui/inc/tpsubt.hxx b/sc/source/ui/inc/tpsubt.hxx index 4b6b1f2..a7ebe1f 100644 --- a/sc/source/ui/inc/tpsubt.hxx +++ b/sc/source/ui/inc/tpsubt.hxx @@ -39,7 +39,7 @@ struct ScSubTotalParam; class ScTpSubTotalGroup : public SfxTabPage { protected: - ScTpSubTotalGroup( Window* pParent, sal_uInt16 nResId, + ScTpSubTotalGroup( Window* pParent, const SfxItemSet& rArgSet ); public: @@ -50,12 +50,9 @@ public: bool DoFillItemSet ( sal_uInt16 nGroupNo, SfxItemSet& rArgSet ); protected: - FixedText aFtGroup; - ListBox aLbGroup; - FixedText aFtColumns; - SvxCheckListBox aLbColumns; - FixedText aFtFunctions; - ListBox aLbFunctions; + ListBox* mpLbGroup; + SvxCheckListBox* mpLbColumns; + ListBox* mpLbFunctions; const OUString aStrNone; const OUString aStrColumn; diff --git a/sc/source/ui/src/subtdlg.src b/sc/source/ui/src/subtdlg.src index 4fa023f..22769088 100644 --- a/sc/source/ui/src/subtdlg.src +++ b/sc/source/ui/src/subtdlg.src @@ -18,89 +18,6 @@ */ #include "subtdlg.hrc" -TabPage RID_SUBTBASE -{ - // Die Elemente haben hart vergebene Hilfe-IDs, weil automatisch generierte - // aus den Ableitungen nicht in der HID-Liste auftauchen wuerden - HelpId = HID_SCPAGE_SUBT_GROUP ; - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ; - Hide = TRUE ; - FixedText FT_GROUP - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 121 , 8 ) ; - Text [ en-US ] = "~Group by" ; - }; - ListBox LB_GROUP - { - HelpId = HID_SC_SUBT_GROUP ; - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 14 ) ; - Size = MAP_APPFONT ( 121 , 90 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - FixedText FT_COLUMNS - { - Pos = MAP_APPFONT ( 6 , 32 ) ; - Size = MAP_APPFONT ( 121 , 8 ) ; - Text [ en-US ] = "~Calculate subtotals for" ; - }; - Control WND_COLUMNS - { - HelpId = HID_SC_SUBT_COLS ; - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 43 ) ; - Size = MAP_APPFONT ( 121 , 136 ) ; - TabStop = TRUE ; - }; - FixedText FT_FUNCTIONS - { - Pos = MAP_APPFONT ( 133 , 32 ) ; - Size = MAP_APPFONT ( 121 , 8 ) ; - Text [ en-US ] = "Use ~function" ; - }; - ListBox LB_FUNCTIONS - { - HelpId = HID_SC_SUBT_FUNC ; - Border = TRUE ; - Pos = MAP_APPFONT ( 133 , 43 ) ; - Size = MAP_APPFONT ( 121 , 136 ) ; - TabStop = TRUE ; - StringList [ en-US ] = - { - < "Sum" ; Default ; > ; - < "Count" ; Default ; > ; - < "Average" ; Default ; > ; - < "Max" ; Default ; > ; - < "Min" ; Default ; > ; - < "Product" ; Default ; > ; - < "Count (numbers only)" ; Default ; > ; - < "StDev (Sample)" ; Default ; > ; - < "StDevP (Population)" ; Default ; > ; - < "Var (Sample)" ; Default ; > ; - < "VarP (Population)" ; Default ; > ; - }; - }; -}; - - // "Control" braucht immer eigene HelpId - ansonsten aus RID_SUBTBASE kopiert - -TabPage RID_SCPAGE_SUBT_GROUP1 < RID_SUBTBASE -{ - HelpId = HID_SCPAGE_SUBT_GROUP1 ; -}; - -TabPage RID_SCPAGE_SUBT_GROUP2 < RID_SUBTBASE -{ - HelpId = HID_SCPAGE_SUBT_GROUP2 ; -}; - -TabPage RID_SCPAGE_SUBT_GROUP3 < RID_SUBTBASE -{ - HelpId = HID_SCPAGE_SUBT_GROUP3 ; -}; TabDialog RID_SCDLG_SUBTOTALS { diff --git a/sc/uiconfig/scalc/ui/subtotalgrppage.ui b/sc/uiconfig/scalc/ui/subtotalgrppage.ui new file mode 100644 index 0000000..b0aeaf1 --- /dev/null +++ b/sc/uiconfig/scalc/ui/subtotalgrppage.ui @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkListStore" id="liststore1"> + <columns> + <!-- column-name gchararray1 --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">Sum</col> + </row> + <row> + <col id="0" translatable="yes">Count</col> + </row> + <row> + <col id="0" translatable="yes">Average</col> + </row> + <row> + <col id="0" translatable="yes">Max</col> + </row> + <row> + <col id="0" translatable="yes">Min</col> + </row> + <row> + <col id="0" translatable="yes">Count (numbers only)</col> + </row> + <row> + <col id="0" translatable="yes">StDev (Sample)</col> + </row> + <row> + <col id="0" translatable="yes">StDevP (Population)</col> + </row> + <row> + <col id="0" translatable="yes">Var (Sample)</col> + </row> + <row> + <col id="0" translatable="yes">VarP (Sample)</col> + </row> + </data> + </object> + <object class="GtkBox" id="SubTotalGrpPage"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="border_width">6</property> + <property name="spacing">12</property> + <child> + <object class="GtkBox" id="box2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Group by:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="group_by"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="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">6</property> + <property name="column_spacing">6</property> + <child> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Calculate subtotals for:</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="label3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Use function:</property> + </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="svxcorelo-SvxCheckListBox" id="columns"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</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="GtkTreeView" id="functions"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">liststore1</property> + <property name="search_column">0</property> + <items> + <item translatable="yes">Sum</item> + <item translatable="yes">Count</item> + <item translatable="yes">Average</item> + <item translatable="yes">Max</item> + <item translatable="yes">Min</item> + <item translatable="yes">Product</item> + <item translatable="yes">Count (numbers only)</item> + <item translatable="yes">StDev (Sample)</item> + <item translatable="yes">StDevP (Population)</item> + <item translatable="yes">Var (Sample)</item> + <item translatable="yes">VarP (Population)</item> + </items> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection2"/> + </child> + </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> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> +</interface> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits