[PATCH libreoffice-4-0] fdo#51828 - UI: Sort: can use more than 3 criteria once only...

2013-05-06 Thread Albert Thuswaldner (via Code Review)
Hi,

I have submitted a patch for review:

https://gerrit.libreoffice.org/3801

To pull it, you can do:

git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/01/3801/1

fdo#51828 - UI: Sort: can use more than 3 criteria once only - additional fix

Change-Id: I220b3755d3ea30bd9aa25b175f7f3eea7590ebdb
---
M sc/source/ui/dbgui/tpsort.cxx
M sc/source/ui/inc/tpsort.hxx
2 files changed, 25 insertions(+), 16 deletions(-)



diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index 6731e71..fd62073 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -184,7 +184,6 @@
 {
 maSortKeyItems[i].m_pLbSort-SelectEntryPos( GetFieldSelPos(
 aSortData.maKeyState[i].nField ) );
-
 (aSortData.maKeyState[i].bAscending)
 ? maSortKeyItems[i].m_pBtnUp-Check()
 : maSortKeyItems[i].m_pBtnDown-Check();
@@ -234,6 +233,10 @@
 pDlg-SetByRows ( bSortByRows );
 pDlg-SetHeaders( bHasHeader );
 }
+
+// Make sure that there is always a last undefined sort key
+if ( maSortKeyItems[nSortKeyCount - 1].m_pLbSort-GetSelectEntryPos()  0 )
+SetLastSortKey( nSortKeyCount );
 }
 
 // ---
@@ -443,6 +446,25 @@
 return nFieldPos;
 }
 
+void ScTabPageSortFields::SetLastSortKey( sal_uInt16 nItem )
+{
+// Extend local SortParam copy
+const ScSortKeyState atempKeyState = { false, 0, true };
+aSortData.maKeyState.push_back( atempKeyState );
+
+// Add Sort Key Item
+++nSortKeyCount;
+maSortKeyCtrl.AddSortKey( nSortKeyCount );
+maSortKeyItems[nItem].m_pLbSort-SetSelectHdl(
+ LINK( this, ScTabPageSortFields, SelectHdl ) );
+
+FillFieldLists( nItem );
+
+// Set Status
+maSortKeyItems[nItem].m_pBtnUp-Check();
+maSortKeyItems[nItem].m_pLbSort-SelectEntryPos( 0 );
+}
+
 // ---
 // Handler:
 //-
@@ -451,26 +473,12 @@
 {
 OUString aSelEntry = pLb-GetSelectEntry();
 ScSortKeyItems::iterator pIter;
-sal_uInt16 nSortKeyIndex = nSortKeyCount;
 
 // If last listbox is enabled add one item
 if ( maSortKeyItems.back().m_pLbSort == pLb )
 if ( aSelEntry != aStrUndefined )
 {
-// Extend local SortParam copy
-const ScSortKeyState atempKeyState = { false, 0, true };
-aSortData.maKeyState.push_back( atempKeyState );
-
-// Add Sort Key Item
-++nSortKeyCount;
-maSortKeyCtrl.AddSortKey( nSortKeyCount );
-maSortKeyItems[nSortKeyIndex].m_pLbSort-SetSelectHdl( LINK( this, 
ScTabPageSortFields, SelectHdl ) );
-
-FillFieldLists( nSortKeyIndex );
-
-// Set Status
-maSortKeyItems[nSortKeyIndex].m_pBtnUp-Check();
-maSortKeyItems[nSortKeyIndex].m_pLbSort-SelectEntryPos( 0 );
+SetLastSortKey( nSortKeyCount );
 return 0;
 }
 
diff --git a/sc/source/ui/inc/tpsort.hxx b/sc/source/ui/inc/tpsort.hxx
index 8ce4a42..b230581 100644
--- a/sc/source/ui/inc/tpsort.hxx
+++ b/sc/source/ui/inc/tpsort.hxx
@@ -95,6 +95,7 @@
 voidInit();
 voidFillFieldLists  ( sal_uInt16 nStartField );
 sal_uInt16  GetFieldSelPos  ( SCCOLROW nField );
+voidSetLastSortKey( sal_uInt16 nItem );
 
 // Handler 
 DECL_LINK( SelectHdl, ListBox * );

-- 
To view, visit https://gerrit.libreoffice.org/3801
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I220b3755d3ea30bd9aa25b175f7f3eea7590ebdb
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Albert Thuswaldner albert.thuswald...@gmail.com

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[PATCH libreoffice-4-0] fdo#51828 - UI: Sort: can use more than 3 criteria once only

2013-04-11 Thread Albert Thuswaldner (via Code Review)
Hi,

I have submitted a patch for review:

https://gerrit.libreoffice.org/3350

To pull it, you can do:

git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/50/3350/1

fdo#51828 - UI: Sort: can use more than 3 criteria once only

Change-Id: I7480e8d606e1eafde45635e36dfafa4232f529cb
Reviewed-on: https://gerrit.libreoffice.org/3217
Reviewed-by: Caolán McNamara caol...@redhat.com
Tested-by: Caolán McNamara caol...@redhat.com
---
M sc/source/ui/dbgui/tpsort.cxx
1 file changed, 11 insertions(+), 2 deletions(-)



diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index 4c56058..6731e71 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -168,9 +168,19 @@
 // ListBox selection:
 if ( aSortData.maKeyState[0].bDoSort )
 {
+// Make sure that the all sort keys are reset
+for ( sal_uInt16 i=nSortKeyCount; iaSortData.maKeyState.size(); i++ )
+{
+maSortKeyCtrl.AddSortKey(i+1);
+maSortKeyItems[i].m_pLbSort-SetSelectHdl( LINK( this,
+ ScTabPageSortFields, SelectHdl ) );
+}
+nSortKeyCount = aSortData.maKeyState.size();
+FillFieldLists(0);
+
 for ( sal_uInt16 i=0; inSortKeyCount; i++ )
 {
-if ( i  aSortData.maKeyState.size()  
aSortData.maKeyState[i].bDoSort )
+if (aSortData.maKeyState[i].bDoSort )
 {
 maSortKeyItems[i].m_pLbSort-SelectEntryPos( GetFieldSelPos(
 aSortData.maKeyState[i].nField ) );
@@ -193,7 +203,6 @@
 maSortKeyItems[i].DisableField();
 else
 maSortKeyItems[i].EnableField();
-
 }
 else
 {

-- 
To view, visit https://gerrit.libreoffice.org/3350
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7480e8d606e1eafde45635e36dfafa4232f529cb
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Albert Thuswaldner albert.thuswald...@gmail.com
Gerrit-Reviewer: Caolán McNamara caol...@redhat.com

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice