Klaas Pieter Annema
71f8d1db74
call selectionWill and didChange when setting selection indexes
2010-09-23 10:35:41 +02:00
Klaas Pieter Annema
098131e252
coding guideline improvements for CPArrayController
2010-09-23 10:35:41 +02:00
Alexander Ljungberg
e704d42adb
Fixed: if CPArrayController setPreserveSelection was off and a selected item disappeared, an invalid selection state could occur. The error was caused by a slightly overeager early-out optimisation in __setSelectionIndexes.
2010-09-04 22:12:08 -04:00
Klaas Pieter Annema
86ee790ea1
implement missing __setSelectionIndex:
2010-08-25 15:57:35 +02:00
Alexander Ljungberg
febdf4092e
New implementation of change notifications from CPArrayController.
...
It is crucial that we send notification only before and after complete changes. In the middle notifications might cause observers to see or react to inconsistent data (e.g. selection indexes pointing to rows no longer present). Added some unit tests - more might be needed in the future. Fixed: before and after values when observing array controller key paths during content changes or rearranges were wrong. Fixed: the array controller sent out multiple redundant change notifications.
2010-08-23 18:53:29 -04:00
Alexander Ljungberg
4c0057e66a
Undoing this change since it is no longer necessary due to an alternative solution implemented by Ross Boucher. Revert "Merge commit 'c17a3533ecae63d479b285b23ac3a490ebe8bd3c'"
...
This reverts commit 039f2ce449 , reversing
changes made to 494f39dd86 .
2010-08-13 14:39:27 -04:00
Alexander Ljungberg
61ccc39f81
Merge remote branch 'klaaspieter/fix/794-cparraycontroller-preserveselection'
...
Conflicts:
Tests/AppKit/CPArrayControllerTest.j
2010-08-13 14:06:35 -04:00
Alexander Ljungberg
533e1a1846
Merge remote branch 'klaaspieter/fix/786-cparraycontroller-removeobject'
2010-08-13 14:01:47 -04:00
Alexander Ljungberg
6afe22f351
Merge remote branch 'klaaspieter/fix/784-cparraycontroller-selection'
2010-08-13 14:00:27 -04:00
Alexander Ljungberg
039f2ce449
Merge commit 'c17a3533ecae63d479b285b23ac3a490ebe8bd3c'
2010-08-13 13:56:21 -04:00
Alexander Ljungberg
271bb00147
Marginally faster filter and sort in CPArrayController's arrangeObjects (4% in the performance tester.) Reduced memory usage when both a filter and a sort order are applied. Cleanup of the tester and a filter only test run.
2010-08-09 17:31:36 -04:00
Klaas Pieter Annema
ff98a9be5a
fix preserve selection in removeObjects and added unit test
2010-07-28 15:02:48 +02:00
Klaas Pieter Annema
71fffb6b68
Merge branch 'master' of git://github.com/280north/cappuccino into cparraycontroller-removeobject
2010-07-27 09:47:28 +02:00
Klaas Pieter Annema
48a5d55af7
fix CPArrayController selectPrevious: and selectNext:
...
Also added unit-tests for canSelectPrevious, canSelectNext, selectPrevious: and selectNext:
2010-07-27 09:10:41 +02:00
Klaas Pieter Annema
24f72c0b73
Merge branch 'master' of git://github.com/280north/cappuccino into arraycontroller-fixes
2010-07-27 08:47:14 +02:00
Klaas Pieter Annema and Ross Boucher
0306c35b54
don't copy the selection indexes in setContent:
2010-07-26 22:48:39 -07:00
Klaas Pieter Annema
4f946f267e
fix CPArrayController removeObject:
...
removeObject: only shifted the selection, it never actually removes the object
2010-07-26 18:44:00 +02:00
Klaas Pieter Annema
138888e620
implement CPArrayController insertObject:atArrangedObjectIndex:
2010-07-26 14:04:05 +02:00
Klaas Pieter Annema
c17a3533ec
fix #764
...
Array controller inserts object in wrong arranged object position if there are no sort descriptors defined
2010-07-20 14:59:18 +02:00
Nicholas Small
e385321f95
CPArrayController -selectedObjects returns a CPObservableArray.
2010-06-30 22:28:02 -04:00
Alexander Ljungberg
3c995fe17b
Fixed: the array controller remove method mapped selection indexes to the content array instead of the arranged objects, leading to the wrong objects being removed as filters and sort descriptors were effectively ignored.
2010-05-26 19:45:13 -04:00
Alexander Ljungberg
15be647c16
Fixed: the CPArrayController code to remove out of bounds selections failed to remove the last selected item if the new arrangedObjects array was empty.
2010-05-26 19:42:40 -04:00
Alexander Ljungberg
8a8af0e4a9
Fixed: CPArrayController could get out of bounds selections if a call to rearrangeObjects caused objects to disappear from the arranged set.
2010-05-26 19:41:34 -04:00
Alexander Ljungberg
4ff89eab04
Fixed: CPArrayController would throw out of bounds exceptions when its content array was shortened and items at the end were selected.
...
Extended avoid empty selection support so that when the last item is selected and deleted, the (previously) second to last item is selected instead. Works as expected with multiple selections.
2010-05-26 19:40:55 -04:00
Alexander Ljungberg
ec032cb739
Performance fix: willChange and didChange for CPArrayController's selectionIndexes were sent doubly.
2010-05-26 19:40:24 -04:00
Alexander Ljungberg
2b287a85e5
CPArrayController now pushes new selections to the bound model for selectionIndexes. Using this, support for selectsInsertedObjects was added.
...
This commit also fixes a performance problem where calling setSelectionIndexes with a selection equal to the one already active caused a selection update.
2010-05-26 19:39:42 -04:00
Alexander Ljungberg
6ea2b4e0e2
Fixed: the CPArrayController addObject: optimization for fast index updates would never fire with a nil _filterPredicate, causing rearrangeObjects to be called needlessly.
2010-05-26 19:39:09 -04:00
Alexander Ljungberg
396d4218f0
Fixed: CPArrayController keys ContentArray, ArrangedObjects, Selection, SelectionIndex, SelectedObjects, CanRemove and CanSelectNext could not be observed properly because their dependency declarations had a repeated typo.
2010-05-26 19:30:06 -04:00
Alexander Ljungberg and Ross Boucher
3cb3bfc008
Fixed: CPArrayController selectionIndexes returned nil initially rather than an empty index set.
2010-01-08 09:58:54 -08:00
Francisco Ryan Tolmasky I
08ed16c493
Made CPObjectController's contentObject binding bidirectional.
...
Reviewed by me.
2009-07-22 23:54:38 -07:00
Ross Boucher
9bbe51fa64
CPArrayController works simply with bindings and arrangedObjects
2009-02-19 01:29:39 -08:00
Ross Boucher
4de3a34a3e
CPObjectController now works, as do bindings and CPControls.
2009-02-16 00:37:50 -08:00