use Markus's sort page
Change-Id: I7be1c78b01258831e1a313bc57dc6e20ec4af0ed
diff --git a/sc/UI_scalc.mk b/sc/UI_scalc.mk
index 628752b..4dd79cd 100644
--- a/sc/UI_scalc.mk
+++ b/sc/UI_scalc.mk
@@ -11,6 +11,7 @@ $(eval $(call gb_UI_UI,modules/scalc))
$(eval $(call gb_UI_add_uifiles,modules/scalc,\
sc/uiconfig/scalc/ui/printeroptions \
sc/uiconfig/scalc/ui/sortpage \
sc/uiconfig/scalc/ui/textimportoptions \
))
diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h
index 8695891..3913e55 100644
--- a/sc/inc/helpids.h
+++ b/sc/inc/helpids.h
@@ -81,7 +81,6 @@
#define HID_SC_INPORTOPT "SC_HID_SC_INPORTOPT"
#define HID_SC_PIVOTSUBT "SC_HID_SC_PIVOTSUBT"
#define HID_SCPAGE_SORT_FIELDS "SC_HID_SCPAGE_SORT_FIELDS"
#define HID_SCPAGE_SORT_OPTIONS "SC_HID_SCPAGE_SORT_OPTIONS"
#define HID_SCPAGE_SUBT_OPTIONS "SC_HID_SCPAGE_SUBT_OPTIONS"
#define HID_SCPAGE_SUBT_GROUP "SC_HID_SCPAGE_SUBT_GROUP"
#define HID_SCPAGE_PROTECTION "SC_HID_SCPAGE_PROTECTION"
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 807a023..1bb2b8c 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -787,6 +787,9 @@
#define SCSTR_GRFILTER_TOOBIG (STR_START + 82)
#define SCSTR_UNDO_GRAFFILTER (STR_START + 83)
#define SCSTR_COL_LABEL (STR_START + 84)
#define SCSTR_ROW_LABEL (STR_START + 85)
#define SCSTR_CHG_PROTECT (STR_START + 86)
#define SCSTR_CHG_UNPROTECT (STR_START + 87)
@@ -945,7 +948,7 @@
#define RID_SCPAGE_PROTECTION (SC_DIALOGS_START + 3)
#define RID_SCDLG_SORT (SC_DIALOGS_START + 5)
#define RID_SCPAGE_SORT_FIELDS (SC_DIALOGS_START + 6)
#define RID_SCPAGE_SORT_OPTIONS (SC_DIALOGS_START + 7)
#define RID_SCDLG_FILTER (SC_DIALOGS_START + 8)
#define RID_SCDLG_SPEC_FILTER (SC_DIALOGS_START + 9)
#define RID_SCDLG_DELCELL (SC_DIALOGS_START + 11)
diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index 6c075bb..31e5b9b 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -491,61 +491,51 @@ IMPL_LINK( ScTabPageSortFields, SelectHdl, ListBox *, pLb )
ScTabPageSortOptions::ScTabPageSortOptions( Window* pParent,
const SfxItemSet& rArgSet )
: SfxTabPage ( pParent,
ScResId( RID_SCPAGE_SORT_OPTIONS ),
rArgSet ),
//
aBtnCase ( this, ScResId( BTN_CASESENSITIVE ) ),
aBtnHeader ( this, ScResId( BTN_LABEL ) ),
aBtnFormats ( this, ScResId( BTN_FORMATS ) ),
aBtnNaturalSort ( this, ScResId( BTN_NATURALSORT ) ),
aBtnCopyResult ( this, ScResId( BTN_COPYRESULT ) ),
aLbOutPos ( this, ScResId( LB_OUTAREA ) ),
aEdOutPos ( this, ScResId( ED_OUTAREA ) ),
aBtnSortUser ( this, ScResId( BTN_SORT_USER ) ),
aLbSortUser ( this, ScResId( LB_SORT_USER ) ),
aFtLanguage ( this, ScResId( FT_LANGUAGE ) ),
aLbLanguage ( this, ScResId( LB_LANGUAGE ) ),
aFtAlgorithm ( this, ScResId( FT_ALGORITHM ) ),
aLbAlgorithm ( this, ScResId( LB_ALGORITHM ) ),
aLineDirection ( this, ScResId( FL_DIRECTION ) ),
aBtnTopDown ( this, ScResId( BTN_TOP_DOWN ) ),
aBtnLeftRight ( this, ScResId( BTN_LEFT_RIGHT ) ),
//
aStrRowLabel ( SC_RESSTR( STR_ROW_LABEL ) ),
aStrColLabel ( SC_RESSTR( STR_COL_LABEL ) ),
aStrUndefined ( SC_RESSTR( SCSTR_UNDEFINED ) ),
//
nWhichSort ( rArgSet.GetPool()->GetWhich( SID_SORT ) ),
aSortData ( ((const ScSortItem&)
rArgSet.Get( nWhichSort )).GetSortData() ),
pViewData ( NULL ),
pDoc ( NULL ),
pDlg ( (ScSortDlg*)(GetParentDialog()) ),
pColRes ( NULL ),
pColWrap ( NULL )
: SfxTabPage(pParent, "SortPage", "modules/scalc/ui/sortpage.ui", rArgSet)
, aStrRowLabel(SC_RESSTR(SCSTR_ROW_LABEL))
, aStrColLabel(SC_RESSTR(SCSTR_COL_LABEL))
, aStrUndefined(SC_RESSTR(SCSTR_UNDEFINED))
, nWhichSort(rArgSet.GetPool()->GetWhich(SID_SORT))
, aSortData(((const ScSortItem&)rArgSet.Get(nWhichSort)).GetSortData())
, pViewData(NULL)
, pDoc(NULL)
, pDlg((ScSortDlg*)(GetParentDialog()))
, pColRes( NULL )
, pColWrap( NULL )
{
get(m_pBtnCase, "case");
get(m_pBtnHeader, "header");
get(m_pBtnFormats, "formats");
get(m_pBtnNaturalSort, "naturalsort");
get(m_pBtnCopyResult, "copyresult");
get(m_pLbOutPos, "outarealb");
get(m_pEdOutPos, "outareaed");
get(m_pBtnSortUser, "sortuser");
get(m_pLbSortUser, "sortuserlb");
get(m_pFtAlgorithm, "algorithmft");
get(m_pLbAlgorithm, "algorithmlb");
get(m_pBtnTopDown, "topdown");
get(m_pBtnLeftRight, "leftright");
get(m_pLbLanguage, "language");
Init();
FreeResource();
SetExchangeSupport();
aLbOutPos.SetAccessibleRelationLabeledBy(&aBtnCopyResult);
aLbOutPos.SetAccessibleName(aBtnCopyResult.GetText());
aEdOutPos.SetAccessibleRelationLabeledBy(&aBtnCopyResult);
aEdOutPos.SetAccessibleName(aBtnCopyResult.GetText());
aLbSortUser.SetAccessibleRelationLabeledBy(&aBtnSortUser);
aLbSortUser.SetAccessibleName(aBtnSortUser.GetText());
m_pLbOutPos->SetAccessibleRelationLabeledBy(m_pBtnCopyResult);
m_pLbOutPos->SetAccessibleName(m_pBtnCopyResult->GetText());
m_pEdOutPos->SetAccessibleRelationLabeledBy(m_pBtnCopyResult);
m_pEdOutPos->SetAccessibleName(m_pBtnCopyResult->GetText());
m_pLbSortUser->SetAccessibleRelationLabeledBy(m_pBtnSortUser);
m_pLbSortUser->SetAccessibleName(m_pBtnSortUser->GetText());
}
// -----------------------------------------------------------------------
ScTabPageSortOptions::~ScTabPageSortOptions()
{
sal_uInt16 nEntries = aLbOutPos.GetEntryCount();
sal_uInt16 nEntries = m_pLbOutPos->GetEntryCount();
for ( sal_uInt16 i=1; i<nEntries; i++ )
delete (rtl::OUString*)aLbOutPos.GetEntryData( i );
delete (rtl::OUString*)m_pLbOutPos->GetEntryData( i );
delete pColRes;
delete pColWrap; //! not if from document
@@ -564,12 +554,12 @@ void ScTabPageSortOptions::Init()
const ScSortItem& rSortItem = (const ScSortItem&)
GetItemSet().Get( nWhichSort );
aLbOutPos.SetSelectHdl ( LINK( this, ScTabPageSortOptions, SelOutPosHdl ) );
aBtnCopyResult.SetClickHdl( LINK( this, ScTabPageSortOptions, EnableHdl ) );
aBtnSortUser.SetClickHdl ( LINK( this, ScTabPageSortOptions, EnableHdl ) );
aBtnTopDown.SetClickHdl ( LINK( this, ScTabPageSortOptions, SortDirHdl ) );
aBtnLeftRight.SetClickHdl ( LINK( this, ScTabPageSortOptions, SortDirHdl ) );
aLbLanguage.SetSelectHdl ( LINK( this, ScTabPageSortOptions, FillAlgorHdl ) );
m_pLbOutPos->SetSelectHdl ( LINK( this, ScTabPageSortOptions, SelOutPosHdl ) );
m_pBtnCopyResult->SetClickHdl( LINK( this, ScTabPageSortOptions, EnableHdl ) );
m_pBtnSortUser->SetClickHdl ( LINK( this, ScTabPageSortOptions, EnableHdl ) );
m_pBtnTopDown->SetClickHdl ( LINK( this, ScTabPageSortOptions, SortDirHdl ) );
m_pBtnLeftRight->SetClickHdl ( LINK( this, ScTabPageSortOptions, SortDirHdl ) );
m_pLbLanguage->SetSelectHdl ( LINK( this, ScTabPageSortOptions, FillAlgorHdl ) );
pViewData = rSortItem.GetViewData();
pDoc = pViewData ? pViewData->GetDocument() : NULL;
@@ -586,9 +576,9 @@ void ScTabPageSortOptions::Init()
rtl::OUString theDbName = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(STR_DB_LOCAL_NONAME));
const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
aLbOutPos.Clear();
aLbOutPos.InsertEntry( aStrUndefined, 0 );
aLbOutPos.Disable();
m_pLbOutPos->Clear();
m_pLbOutPos->InsertEntry( aStrUndefined, 0 );
m_pLbOutPos->Disable();
ScAreaNameIterator aIter( pDoc );
rtl::OUString aName;
@@ -596,14 +586,14 @@ void ScTabPageSortOptions::Init()
rtl::OUString aRefStr;
while ( aIter.Next( aName, aRange ) )
{
sal_uInt16 nInsert = aLbOutPos.InsertEntry( aName );
sal_uInt16 nInsert = m_pLbOutPos->InsertEntry( aName );
aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc, eConv );
aLbOutPos.SetEntryData( nInsert, new rtl::OUString( aRefStr ) );
m_pLbOutPos->SetEntryData( nInsert, new rtl::OUString( aRefStr ) );
}
aLbOutPos.SelectEntryPos( 0 );
aEdOutPos.SetText( EMPTY_STRING );
m_pLbOutPos->SelectEntryPos( 0 );
m_pEdOutPos->SetText( EMPTY_STRING );
// Check whether the field that is passed on is a database field:
@@ -621,7 +611,7 @@ void ScTabPageSortOptions::Init()
if ( pDBData )
{
theDbName = pDBData->GetName();
aBtnHeader.Check( pDBData->HasHeader() );
m_pBtnHeader->Check( pDBData->HasHeader() );
}
}
@@ -629,15 +619,15 @@ void ScTabPageSortOptions::Init()
theArea += theDbName;
theArea += ')';
aBtnHeader.SetText( aStrColLabel );
m_pBtnHeader->SetText( aStrColLabel );
}
FillUserSortListBox();
// get available languages
aLbLanguage.SetLanguageList( LANG_LIST_ALL | LANG_LIST_ONLY_KNOWN, false );
aLbLanguage.InsertLanguage( LANGUAGE_SYSTEM );
m_pLbLanguage->SetLanguageList( LANG_LIST_ALL | LANG_LIST_ONLY_KNOWN, false );
m_pLbLanguage->InsertLanguage( LANGUAGE_SYSTEM );
}
// -----------------------------------------------------------------------
@@ -655,40 +645,40 @@ void ScTabPageSortOptions::Reset( const SfxItemSet& /* rArgSet */ )
{
if ( aSortData.bUserDef )
{
aBtnSortUser.Check( sal_True );
aLbSortUser.Enable();
aLbSortUser.SelectEntryPos( aSortData.nUserIndex );
m_pBtnSortUser->Check( sal_True );
m_pLbSortUser->Enable();
m_pLbSortUser->SelectEntryPos( aSortData.nUserIndex );
}
else
{
aBtnSortUser.Check( false );
aLbSortUser.Disable();
aLbSortUser.SelectEntryPos( 0 );
m_pBtnSortUser->Check( false );
m_pLbSortUser->Disable();
m_pLbSortUser->SelectEntryPos( 0 );
}
aBtnCase.Check ( aSortData.bCaseSens );
aBtnFormats.Check ( aSortData.bIncludePattern );
aBtnHeader.Check ( aSortData.bHasHeader );
aBtnNaturalSort.Check ( aSortData.bNaturalSort );
m_pBtnCase->Check ( aSortData.bCaseSens );
m_pBtnFormats->Check ( aSortData.bIncludePattern );
m_pBtnHeader->Check ( aSortData.bHasHeader );
m_pBtnNaturalSort->Check ( aSortData.bNaturalSort );
if ( aSortData.bByRow )
{
aBtnTopDown.Check();
aBtnHeader.SetText( aStrColLabel );
m_pBtnTopDown->Check();
m_pBtnHeader->SetText( aStrColLabel );
}
else
{
aBtnLeftRight.Check();
aBtnHeader.SetText( aStrRowLabel );
m_pBtnLeftRight->Check();
m_pBtnHeader->SetText( aStrRowLabel );
}
LanguageType eLang = LanguageTag( aSortData.aCollatorLocale ).getLanguageType( false);
if ( eLang == LANGUAGE_DONTKNOW )
eLang = LANGUAGE_SYSTEM;
aLbLanguage.SelectLanguage( eLang );
FillAlgorHdl( &aLbLanguage ); // get algorithms, select default
m_pLbLanguage->SelectLanguage( eLang );
FillAlgorHdl(m_pLbLanguage); // get algorithms, select default
if ( !aSortData.aCollatorAlgorithm.isEmpty() )
aLbAlgorithm.SelectEntry( pColRes->GetTranslation( aSortData.aCollatorAlgorithm ) );
m_pLbAlgorithm->SelectEntry( pColRes->GetTranslation( aSortData.aCollatorAlgorithm ) );
if ( pDoc && !aSortData.bInplace )
{
@@ -702,20 +692,20 @@ void ScTabPageSortOptions::Reset( const SfxItemSet& /* rArgSet */ )
aSortData.nDestTab );
theOutPos.Format( aStr, nFormat, pDoc, pDoc->GetAddressConvention() );
aBtnCopyResult.Check();
aLbOutPos.Enable();
aEdOutPos.Enable();
aEdOutPos.SetText( aStr );
EdOutPosModHdl( &aEdOutPos );
aEdOutPos.GrabFocus();
aEdOutPos.SetSelection( Selection( 0, SELECTION_MAX ) );
m_pBtnCopyResult->Check();
m_pLbOutPos->Enable();
m_pEdOutPos->Enable();
m_pEdOutPos->SetText( aStr );
EdOutPosModHdl(m_pEdOutPos);
m_pEdOutPos->GrabFocus();
m_pEdOutPos->SetSelection( Selection( 0, SELECTION_MAX ) );
}
else
{
aBtnCopyResult.Check( false );
aLbOutPos.Disable();
aEdOutPos.Disable();
aEdOutPos.SetText( EMPTY_STRING );
m_pBtnCopyResult->Check( false );
m_pLbOutPos->Disable();
m_pEdOutPos->Disable();
m_pEdOutPos->SetText( EMPTY_STRING );
}
}
@@ -733,22 +723,22 @@ sal_Bool ScTabPageSortOptions::FillItemSet( SfxItemSet& rArgSet )
if ( pExample && pExample->GetItemState( nWhichSort, sal_True, &pItem ) == SFX_ITEM_SET )
aNewSortData = static_cast<const ScSortItem*>(pItem)->GetSortData();
}
aNewSortData.bByRow = aBtnTopDown.IsChecked();
aNewSortData.bHasHeader = aBtnHeader.IsChecked();
aNewSortData.bCaseSens = aBtnCase.IsChecked();
aNewSortData.bNaturalSort = aBtnNaturalSort.IsChecked();
aNewSortData.bIncludePattern = aBtnFormats.IsChecked();
aNewSortData.bInplace = !aBtnCopyResult.IsChecked();
aNewSortData.bByRow = m_pBtnTopDown->IsChecked();
aNewSortData.bHasHeader = m_pBtnHeader->IsChecked();
aNewSortData.bCaseSens = m_pBtnCase->IsChecked();
aNewSortData.bNaturalSort = m_pBtnNaturalSort->IsChecked();
aNewSortData.bIncludePattern = m_pBtnFormats->IsChecked();
aNewSortData.bInplace = !m_pBtnCopyResult->IsChecked();
aNewSortData.nDestCol = theOutPos.Col();
aNewSortData.nDestRow = theOutPos.Row();
aNewSortData.nDestTab = theOutPos.Tab();
aNewSortData.bUserDef = aBtnSortUser.IsChecked();
aNewSortData.nUserIndex = (aBtnSortUser.IsChecked())
? aLbSortUser.GetSelectEntryPos()
aNewSortData.bUserDef = m_pBtnSortUser->IsChecked();
aNewSortData.nUserIndex = (m_pBtnSortUser->IsChecked())
? m_pLbSortUser->GetSelectEntryPos()
: 0;
// get locale
LanguageType eLang = aLbLanguage.GetSelectLanguage();
LanguageType eLang = m_pLbLanguage->GetSelectLanguage();
aNewSortData.aCollatorLocale = LanguageTag( eLang ).getLocale( false );
// get algorithm
@@ -757,7 +747,7 @@ sal_Bool ScTabPageSortOptions::FillItemSet( SfxItemSet& rArgSet )
{
uno::Sequence<rtl::OUString> aAlgos = pColWrap->listCollatorAlgorithms(
aNewSortData.aCollatorLocale );
sal_uInt16 nSel = aLbAlgorithm.GetSelectEntryPos();
sal_uInt16 nSel = m_pLbAlgorithm->GetSelectEntryPos();
if ( nSel < aAlgos.getLength() )
sAlg = aAlgos[nSel];
}
@@ -777,18 +767,18 @@ void ScTabPageSortOptions::ActivatePage( const SfxItemSet& rSet )
aSortData = static_cast<const ScSortItem&>(rSet.Get( SCITEM_SORTDATA )).GetSortData();
if ( pDlg )
{
if ( aBtnHeader.IsChecked() != pDlg->GetHeaders() )
if ( m_pBtnHeader->IsChecked() != pDlg->GetHeaders() )
{
aBtnHeader.Check( pDlg->GetHeaders() );
m_pBtnHeader->Check( pDlg->GetHeaders() );
}
if ( aBtnTopDown.IsChecked() != pDlg->GetByRows() )
if ( m_pBtnTopDown->IsChecked() != pDlg->GetByRows() )
{
aBtnTopDown.Check( pDlg->GetByRows() );
aBtnLeftRight.Check( !pDlg->GetByRows() );
m_pBtnTopDown->Check( pDlg->GetByRows() );
m_pBtnLeftRight->Check( !pDlg->GetByRows() );
}
aBtnHeader.SetText( (pDlg->GetByRows())
m_pBtnHeader->SetText( (pDlg->GetByRows())
? aStrColLabel
: aStrRowLabel );
}
@@ -800,9 +790,9 @@ int ScTabPageSortOptions::DeactivatePage( SfxItemSet* pSetP )
{
sal_Bool bPosInputOk = sal_True;
if ( aBtnCopyResult.IsChecked() )
if ( m_pBtnCopyResult->IsChecked() )
{
String thePosStr = aEdOutPos.GetText();
String thePosStr = m_pEdOutPos->GetText();
ScAddress thePos;
xub_StrLen nColonPos = thePosStr.Search( ':' );
@@ -825,21 +815,21 @@ int ScTabPageSortOptions::DeactivatePage( SfxItemSet* pSetP )
ErrorBox( this, WinBits( WB_OK | WB_DEF_OK ),
ScGlobal::GetRscString( STR_INVALID_TABREF )
).Execute();
aEdOutPos.GrabFocus();
aEdOutPos.SetSelection( Selection( 0, SELECTION_MAX ) );
m_pEdOutPos->GrabFocus();
m_pEdOutPos->SetSelection( Selection( 0, SELECTION_MAX ) );
theOutPos.Set(0,0,0);
}
else
{
aEdOutPos.SetText( thePosStr );
m_pEdOutPos->SetText( thePosStr );
theOutPos = thePos;
}
}
if ( pDlg && bPosInputOk )
{
pDlg->SetHeaders( aBtnHeader.IsChecked() );
pDlg->SetByRows ( aBtnTopDown.IsChecked() );
pDlg->SetHeaders( m_pBtnHeader->IsChecked() );
pDlg->SetByRows ( m_pBtnTopDown->IsChecked() );
}
if ( pSetP && bPosInputOk )
@@ -854,13 +844,13 @@ void ScTabPageSortOptions::FillUserSortListBox()
{
ScUserList* pUserLists = ScGlobal::GetUserList();
aLbSortUser.Clear();
m_pLbSortUser->Clear();
if ( pUserLists )
{
size_t nCount = pUserLists->size();
if ( nCount > 0 )
for ( size_t i=0; i<nCount; ++i )
aLbSortUser.InsertEntry( (*pUserLists)[i]->GetString() );
m_pLbSortUser->InsertEntry( (*pUserLists)[i]->GetString() );
}
}
@@ -869,29 +859,29 @@ void ScTabPageSortOptions::FillUserSortListBox()
IMPL_LINK( ScTabPageSortOptions, EnableHdl, CheckBox *, pBox )
{
if ( pBox == &aBtnCopyResult )
if (pBox == m_pBtnCopyResult)
{
if ( pBox->IsChecked() )
{
aLbOutPos.Enable();
aEdOutPos.Enable();
aEdOutPos.GrabFocus();
m_pLbOutPos->Enable();
m_pEdOutPos->Enable();
m_pEdOutPos->GrabFocus();
}
else
{
aLbOutPos.Disable();
aEdOutPos.Disable();
m_pLbOutPos->Disable();
m_pEdOutPos->Disable();
}
}
else if ( pBox == &aBtnSortUser )
else if (pBox == m_pBtnSortUser)
{
if ( pBox->IsChecked() )
{
aLbSortUser.Enable();
aLbSortUser.GrabFocus();
m_pLbSortUser->Enable();
m_pLbSortUser->GrabFocus();
}
else
aLbSortUser.Disable();
m_pLbSortUser->Disable();
}
return 0;
}
@@ -900,15 +890,15 @@ IMPL_LINK( ScTabPageSortOptions, EnableHdl, CheckBox *, pBox )
IMPL_LINK( ScTabPageSortOptions, SelOutPosHdl, ListBox *, pLb )
{
if ( pLb == &aLbOutPos )
if (pLb == m_pLbOutPos)
{
rtl::OUString aString;
sal_uInt16 nSelPos = aLbOutPos.GetSelectEntryPos();
sal_uInt16 nSelPos = m_pLbOutPos->GetSelectEntryPos();
if ( nSelPos > 0 )
aString = *(String*)aLbOutPos.GetEntryData( nSelPos );
aString = *(String*)m_pLbOutPos->GetEntryData( nSelPos );
aEdOutPos.SetText( aString );
m_pEdOutPos->SetText( aString );
}
return 0;
}
@@ -917,13 +907,13 @@ IMPL_LINK( ScTabPageSortOptions, SelOutPosHdl, ListBox *, pLb )
IMPL_LINK( ScTabPageSortOptions, SortDirHdl, RadioButton *, pBtn )
{
if ( pBtn == &aBtnTopDown )
if (pBtn == m_pBtnTopDown)
{
aBtnHeader.SetText( aStrColLabel );
m_pBtnHeader->SetText( aStrColLabel );
}
else if ( pBtn == &aBtnLeftRight )
else if (pBtn == m_pBtnLeftRight)
{
aBtnHeader.SetText( aStrRowLabel );
m_pBtnHeader->SetText( aStrRowLabel );
}
return 0;
}
@@ -932,9 +922,9 @@ IMPL_LINK( ScTabPageSortOptions, SortDirHdl, RadioButton *, pBtn )
void ScTabPageSortOptions::EdOutPosModHdl( Edit* pEd )
{
if ( pEd == &aEdOutPos )
if (pEd == m_pEdOutPos)
{
String theCurPosStr = aEdOutPos.GetText();
String theCurPosStr = m_pEdOutPos->GetText();
sal_uInt16 nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
if ( SCA_VALID == (nResult & SCA_VALID) )
@@ -942,18 +932,18 @@ void ScTabPageSortOptions::EdOutPosModHdl( Edit* pEd )
String* pStr = NULL;
sal_Bool bFound = false;
sal_uInt16 i = 0;
sal_uInt16 nCount = aLbOutPos.GetEntryCount();
sal_uInt16 nCount = m_pLbOutPos->GetEntryCount();
for ( i=2; i<nCount && !bFound; i++ )
{
pStr = (String*)aLbOutPos.GetEntryData( i );
pStr = (String*)m_pLbOutPos->GetEntryData( i );
bFound = (theCurPosStr == *pStr);
}
if ( bFound )
aLbOutPos.SelectEntryPos( --i );
m_pLbOutPos->SelectEntryPos( --i );
else
aLbOutPos.SelectEntryPos( 0 );
m_pLbOutPos->SelectEntryPos( 0 );
}
}
}
@@ -962,17 +952,17 @@ void ScTabPageSortOptions::EdOutPosModHdl( Edit* pEd )
IMPL_LINK_NOARG(ScTabPageSortOptions, FillAlgorHdl)
{
aLbAlgorithm.SetUpdateMode( false );
aLbAlgorithm.Clear();
m_pLbAlgorithm->SetUpdateMode( false );
m_pLbAlgorithm->Clear();
LanguageType eLang = aLbLanguage.GetSelectLanguage();
LanguageType eLang = m_pLbLanguage->GetSelectLanguage();
if ( eLang == LANGUAGE_SYSTEM )
{
// for LANGUAGE_SYSTEM no algorithm can be selected because
// it wouldn't necessarily exist for other languages
// -> leave list box empty if LANGUAGE_SYSTEM is selected
aFtAlgorithm.Enable( false ); // nothing to select
aLbAlgorithm.Enable( false ); // nothing to select
m_pFtAlgorithm->Enable( false ); // nothing to select
m_pLbAlgorithm->Enable( false ); // nothing to select
}
else
{
@@ -985,14 +975,14 @@ IMPL_LINK_NOARG(ScTabPageSortOptions, FillAlgorHdl)
{
String sAlg = pArray[i];
String sUser = pColRes->GetTranslation( sAlg );
aLbAlgorithm.InsertEntry( sUser, LISTBOX_APPEND );
m_pLbAlgorithm->InsertEntry( sUser, LISTBOX_APPEND );
}
aLbAlgorithm.SelectEntryPos( 0 ); // first entry is default
aFtAlgorithm.Enable( nCount > 1 ); // enable only if there is a choice
aLbAlgorithm.Enable( nCount > 1 ); // enable only if there is a choice
m_pLbAlgorithm->SelectEntryPos( 0 ); // first entry is default
m_pFtAlgorithm->Enable( nCount > 1 ); // enable only if there is a choice
m_pLbAlgorithm->Enable( nCount > 1 ); // enable only if there is a choice
}
aLbAlgorithm.SetUpdateMode( sal_True );
m_pLbAlgorithm->SetUpdateMode( sal_True );
return 0;
}
diff --git a/sc/source/ui/inc/sortdlg.hrc b/sc/source/ui/inc/sortdlg.hrc
index 6885a8f..09409be 100644
--- a/sc/source/ui/inc/sortdlg.hrc
+++ b/sc/source/ui/inc/sortdlg.hrc
@@ -19,7 +19,6 @@
#include "sc.hrc" // -> RID_SCDLG_SORT
// -> RID_SCPAGE_SORT_FIELDS
// -> RID_SCPAGE_SORT_OPTIONS
// -> RID_SCDLG_SORT_WARNING
// -> SCSTR_NONAME
// -> SCSTR_UNDEFINED
@@ -39,26 +38,6 @@
#define BTN_UP 280
#define BTN_DOWN 281
// TP_SORT_OPTIONS:
#define FL_DIRECTION 1
#define LB_SORT_USER 2
#define LB_OUTAREA 3
#define ED_OUTAREA 4
#define BTN_SORT_USER 7
#define BTN_CASESENSITIVE 8
#define BTN_LABEL 9
#define BTN_FORMATS 10
#define BTN_COPYRESULT 11
#define BTN_TOP_DOWN 12
#define BTN_LEFT_RIGHT 13
#define STR_COL_LABEL 14
#define STR_ROW_LABEL 15
#define FT_LANGUAGE 16
#define LB_LANGUAGE 17
#define FT_ALGORITHM 18
#define LB_ALGORITHM 19
#define BTN_NATURALSORT 20
#define FT_TEXT 1
#define FT_TIP 2
#define BTN_EXTSORT 3
diff --git a/sc/source/ui/inc/tpsort.hxx b/sc/source/ui/inc/tpsort.hxx
index b6fb493..2183ec2 100644
--- a/sc/source/ui/inc/tpsort.hxx
+++ b/sc/source/ui/inc/tpsort.hxx
@@ -75,9 +75,9 @@ protected:
virtual int DeactivatePage ( SfxItemSet* pSet = 0);
private:
rtl::OUString aStrUndefined;
rtl::OUString aStrColumn;
rtl::OUString aStrRow;
OUString aStrUndefined;
OUString aStrColumn;
OUString aStrRow;
const sal_uInt16 nWhichSort;
ScSortDlg* pDlg;
@@ -135,31 +135,29 @@ protected:
private:
CheckBox aBtnCase;
CheckBox aBtnHeader;
CheckBox aBtnFormats;
CheckBox aBtnNaturalSort;
CheckBox* m_pBtnCase;
CheckBox* m_pBtnHeader;
CheckBox* m_pBtnFormats;
CheckBox* m_pBtnNaturalSort;
CheckBox aBtnCopyResult;
ListBox aLbOutPos;
Edit aEdOutPos;
CheckBox* m_pBtnCopyResult;
ListBox* m_pLbOutPos;
Edit* m_pEdOutPos;
CheckBox aBtnSortUser;
ListBox aLbSortUser;
CheckBox* m_pBtnSortUser;
ListBox* m_pLbSortUser;
FixedText aFtLanguage;
SvxLanguageBox aLbLanguage;
FixedText aFtAlgorithm;
ListBox aLbAlgorithm;
SvxLanguageBox* m_pLbLanguage;
FixedText* m_pFtAlgorithm;
ListBox* m_pLbAlgorithm;
FixedLine aLineDirection;
RadioButton aBtnTopDown;
RadioButton aBtnLeftRight;
RadioButton* m_pBtnTopDown;
RadioButton* m_pBtnLeftRight;
rtl::OUString aStrRowLabel;
rtl::OUString aStrColLabel;
rtl::OUString aStrUndefined;
rtl::OUString aStrAreaLabel;
OUString aStrRowLabel;
OUString aStrColLabel;
OUString aStrUndefined;
OUString aStrAreaLabel;
const sal_uInt16 nWhichSort;
ScSortParam aSortData;
diff --git a/sc/source/ui/src/scstring.src b/sc/source/ui/src/scstring.src
index 59c8a83..140bafb 100644
--- a/sc/source/ui/src/scstring.src
+++ b/sc/source/ui/src/scstring.src
@@ -841,3 +841,13 @@ String SCSTR_FORMULA_SYNTAX_XL_R1C1
{
Text [ en-US ] = "Excel R1C1";
};
String SCSTR_COL_LABEL
{
Text [ en-US ] = "Range contains column la~bels" ;
};
String SCSTR_ROW_LABEL
{
Text [ en-US ] = "Range contains ~row labels" ;
};
diff --git a/sc/source/ui/src/sortdlg.src b/sc/source/ui/src/sortdlg.src
index 0134da8..cbedeb1 100644
--- a/sc/source/ui/src/sortdlg.src
+++ b/sc/source/ui/src/sortdlg.src
@@ -83,150 +83,6 @@ FixedLine FL_SORT
Text [ en-US ] = "Sort ~key " ;
};
TabPage RID_SCPAGE_SORT_OPTIONS
{
Hide = TRUE ;
SVLook = TRUE ;
HelpId = HID_SCPAGE_SORT_OPTIONS ;
Pos = MAP_APPFONT ( 0 , 0 ) ;
Size = MAP_APPFONT ( TP_WIDTH , TP_HEIGHT ) ;
CheckBox BTN_CASESENSITIVE
{
HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_CASESENSITIVE";
Pos = MAP_APPFONT ( 12 , 6 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Case ~sensitive" ;
TabStop = TRUE ;
};
CheckBox BTN_LABEL
{
HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_LABEL";
Pos = MAP_APPFONT ( 12 , 20 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
TabStop = TRUE ;
};
String STR_COL_LABEL
{
Text [ en-US ] = "Range contains column la~bels" ;
};
String STR_ROW_LABEL
{
Text [ en-US ] = "Range contains ~row labels" ;
};
CheckBox BTN_FORMATS
{
HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_FORMATS";
Pos = MAP_APPFONT ( 12 , 34 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Include ~formats" ;
TabStop = TRUE ;
};
CheckBox BTN_NATURALSORT
{
HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_COPYRESULT";
Pos = MAP_APPFONT ( 12 , 48 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Enable ~natural sort" ;
TabStop = TRUE ;
};
CheckBox BTN_COPYRESULT
{
Pos = MAP_APPFONT ( 12 , 62 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "~Copy sort results to:" ;
TabStop = TRUE ;
};
ListBox LB_OUTAREA
{
HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_OUTAREA";
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 73 ) ;
Size = MAP_APPFONT ( 93 , 90 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
};
Edit ED_OUTAREA
{
HelpID = "sc:Edit:RID_SCPAGE_SORT_OPTIONS:ED_OUTAREA";
Disable = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 119 , 73 ) ;
Size = MAP_APPFONT ( 132 , 12 ) ;
TabStop = TRUE ;
};
CheckBox BTN_SORT_USER
{
HelpID = "sc:CheckBox:RID_SCPAGE_SORT_OPTIONS:BTN_SORT_USER";
Pos = MAP_APPFONT ( 12 , 89 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "Custom sort ~order" ;
TabStop = TRUE ;
};
ListBox LB_SORT_USER
{
HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_SORT_USER";
Disable = TRUE ;
Border = TRUE ;
Pos = MAP_APPFONT ( 20 , 100 ) ;
Size = MAP_APPFONT ( 231 , 90 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
};
FixedText FT_LANGUAGE
{
Pos = MAP_APPFONT ( 12 , 118 ) ;
Size = MAP_APPFONT ( 101 , 8 ) ;
Text [ en-US ] = "~Language";
};
ListBox LB_LANGUAGE
{
HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_LANGUAGE";
Border = TRUE ;
Pos = MAP_APPFONT ( 12 , 129 ) ;
Size = MAP_APPFONT ( 101 , 90 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = TRUE ;
};
FixedText FT_ALGORITHM
{
Pos = MAP_APPFONT ( 119 , 118 ) ;
Size = MAP_APPFONT ( 132 , 8 ) ;
Text [ en-US ] = "O~ptions";
};
ListBox LB_ALGORITHM
{
HelpID = "sc:ListBox:RID_SCPAGE_SORT_OPTIONS:LB_ALGORITHM";
Border = TRUE ;
Pos = MAP_APPFONT ( 119 , 129 ) ;
Size = MAP_APPFONT ( 132 , 90 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
};
FixedLine FL_DIRECTION
{
Pos = MAP_APPFONT ( 6 , 147 ) ;
Size = MAP_APPFONT ( 248 , 8 ) ;
Text [ en-US ] = "Direction" ;
};
RadioButton BTN_TOP_DOWN
{
HelpID = "sc:RadioButton:RID_SCPAGE_SORT_OPTIONS:BTN_TOP_DOWN";
Pos = MAP_APPFONT ( 12 , 158 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "~Top to bottom (sort rows)" ;
TabStop = TRUE ;
};
RadioButton BTN_LEFT_RIGHT
{
HelpID = "sc:RadioButton:RID_SCPAGE_SORT_OPTIONS:BTN_LEFT_RIGHT";
Pos = MAP_APPFONT ( 12 , 172 ) ;
Size = MAP_APPFONT ( 242 , 10 ) ;
Text [ en-US ] = "L~eft to right (sort columns)" ;
TabStop = TRUE ;
};
};
TabDialog RID_SCDLG_SORT
{
OutputSize = TRUE ;
diff --git a/sc/uiconfig/scalc/ui/sortpage.ui b/sc/uiconfig/scalc/ui/sortpage.ui
index 972c693..84daedd 100644
--- a/sc/uiconfig/scalc/ui/sortpage.ui
+++ b/sc/uiconfig/scalc/ui/sortpage.ui
@@ -5,17 +5,240 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="checkbutton1">
<property name="label" translatable="yes">Case _sensitive</property>
<property name="use_action_appearance">False</property>
<object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="can_focus">False</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="row_spacing">6</property>
<property name="column_spacing">6</property>
<child>
<object class="GtkCheckButton" id="case">
<property name="label" translatable="yes">Case _sensitive</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</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="GtkCheckButton" id="header">
<property name="label">Range contains...</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">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="GtkCheckButton" id="formats">
<property name="label" translatable="yes">Include formats</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</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="GtkCheckButton" id="naturalsort">
<property name="label" translatable="yes">Enable natural sort</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</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="GtkCheckButton" id="copyresult">
<property name="label" translatable="yes">Copy sort results to:</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</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="GtkComboBox" id="outarealb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">20</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="GtkEntry" id="outareaed">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="invisible_char">•</property>
<property name="invisible_char_set">True</property>
</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="GtkCheckButton" id="sortuser">
<property name="label" translatable="yes">Custom sort order</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">6</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="sortuserlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">20</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">7</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Language</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">8</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="algorithmft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Options</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">8</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="svxcorelo:SvxLanguageBox" id="language">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">9</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="algorithmlb">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">9</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -24,220 +247,75 @@
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbutton2">
<property name="label" translatable="yes">Range contains culumn labels</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbutton3">
<property name="label" translatable="yes">Include formats</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbutton4">
<property name="label" translatable="yes">Enable natural sort</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbutton5">
<property name="label" translatable="yes">Copy sort results to:</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkComboBox" id="combobox4">
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">20</property>
<property name="left_padding">12</property>
<child>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkRadioButton" id="topdown">
<property name="label" translatable="yes">_Top to bottom (sort rows)</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">leftright</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="GtkRadioButton" id="leftright">
<property name="label" translatable="yes">L_eft to right (sort columns)</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="group">topdown</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>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="entry1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">20</property>
<property name="invisible_char">•</property>
<property name="invisible_char_set">True</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">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbutton6">
<property name="label" translatable="yes">Custom sort order</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="combobox5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">20</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkLabel" id="label6">
<child type="label">
<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">Language</property>
<property name="label" translatable="yes">Direction</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="margin_left">20</property>
<property name="label" translatable="yes">Options</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">8</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box16">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkComboBox" id="combobox6">
<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">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="combobox7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">20</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">9</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Direction</property>
</object>
<packing>
<property name="expand">False</property>
@@ -245,43 +323,5 @@
<property name="position">10</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobutton7">
<property name="label" translatable="yes">_Top to bottom (sort rows)</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="group">radiobutton8</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">11</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobutton8">
<property name="label" translatable="yes">L_eft to right (sort columns)</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="group">radiobutton7</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">12</property>
</packing>
</child>
</object>
</interface>