mirror of
https://github.com/jketterl/openwebrx.git
synced 2025-12-06 07:12:09 +01:00
implement filter translation
This commit is contained in:
parent
1fb3ed4066
commit
1e30e55669
|
|
@ -161,8 +161,18 @@ class ActiveListFilterListener(ActiveListListener):
|
|||
for i in range(idx, len(self.keyMap)):
|
||||
self.keyMap[i] -= 1
|
||||
elif isinstance(change, ActiveListIndexMoved):
|
||||
idx = self.keyMap.index(change.old_index)
|
||||
#TODO update keymap, fire change event
|
||||
start_idx = len([x for x in self.keyMap if x < change.old_index])
|
||||
end_idx = len([x for x in self.keyMap if x < change.new_index])
|
||||
offset = 0
|
||||
if change.old_index in self.keyMap:
|
||||
self.target.move(start_idx, end_idx)
|
||||
offset = 1
|
||||
if end_idx > start_idx:
|
||||
for i in reversed(range(start_idx, end_idx + 1)):
|
||||
self.keyMap[i] = self.keyMap[i + offset] - 1
|
||||
else:
|
||||
for i in range(end_idx + 1, start_idx):
|
||||
self.keyMap[i] = self.keyMap[i - offset] + 1
|
||||
|
||||
def _onMonitor(self, value):
|
||||
idx = self.source.index(value)
|
||||
|
|
|
|||
|
|
@ -382,13 +382,28 @@ class ActiveListTest(TestCase):
|
|||
self.assertEqual(changes[0].old_index, 1)
|
||||
self.assertEqual(changes[0].new_index, 4)
|
||||
|
||||
#def testActiveFilterMove(self):
|
||||
# list = ActiveList([1, 2, 3, 4, 5])
|
||||
# filteredList = list.filter(lambda x: x != 3)
|
||||
# list.move(1, 4)
|
||||
# self.assertEqual(len(filteredList), 4)
|
||||
# self.assertEqual(filteredList[1], 4)
|
||||
# self.assertEqual(filteredList[3], 2)
|
||||
def testActiveFilterMove(self):
|
||||
list = ActiveList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
filteredList = list.filter(lambda x: x != 3)
|
||||
list.move(1, 4)
|
||||
self.assertEqual(len(filteredList), 9)
|
||||
self.assertEqual(filteredList[1], 4)
|
||||
self.assertEqual(filteredList[3], 2)
|
||||
|
||||
def testActiveFilterMoveReverse(self):
|
||||
list = ActiveList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
filteredList = list.filter(lambda x: x != 3)
|
||||
list.move(4, 1)
|
||||
self.assertEqual(len(filteredList), 9)
|
||||
self.assertEqual(filteredList[1], 5)
|
||||
self.assertEqual(filteredList[3], 4)
|
||||
|
||||
def testActiveFilterMoveFilteredItem(self):
|
||||
list = ActiveList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
||||
filteredList = list.filter(lambda x: x != 3)
|
||||
list.move(2, 4)
|
||||
self.assertEqual(len(filteredList), 9)
|
||||
self.assertEqual(filteredList[2], 4)
|
||||
|
||||
def testActiveListFlattenMove(self):
|
||||
firstMember = ActiveList([1, 2, 3, 4, 5])
|
||||
|
|
|
|||
Loading…
Reference in a new issue