From 5543233e5613e917d5f8a4594ca385e2de2f983f Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 16 Mar 2019 02:57:23 +0300 Subject: [PATCH] notes and cleanup, still buggy... Signed-off-by: Alex A. Naanou --- ui (gen4)/lib/widget/browse2.html | 3 ++- ui (gen4)/lib/widget/browse2.js | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ui (gen4)/lib/widget/browse2.html b/ui (gen4)/lib/widget/browse2.html index 528d61e9..3298e6da 100755 --- a/ui (gen4)/lib/widget/browse2.html +++ b/ui (gen4)/lib/widget/browse2.html @@ -113,7 +113,7 @@ requirejs([ //make('---') // XXX not yet visible... //make('...') - make('e') + //make('e') // embeded browser... make(browser.Browser(function(make){ make(1) @@ -139,6 +139,7 @@ requirejs([ make('b') })) make('bbb') + make('bbb') })) }), { //collapsed: true, diff --git a/ui (gen4)/lib/widget/browse2.js b/ui (gen4)/lib/widget/browse2.js index bc1a47c4..d778340d 100755 --- a/ui (gen4)/lib/widget/browse2.js +++ b/ui (gen4)/lib/widget/browse2.js @@ -736,7 +736,7 @@ var BaseBrowserPrototype = { // XXX add literal item support (???) // XXX do not get .subtree elements of a .collapsed item... // XXX skip .noniterable items... - get: function(key, _){ + get: function(key, options){ key = key == null ? 0 : key // index... @@ -758,6 +758,7 @@ var BaseBrowserPrototype = { do { var x = key - offset + nested // direct match... + // XXX skip .noniterable... if(sublists.length == 0 || x < sublists[0][1]){ return items[x] } @@ -768,14 +769,15 @@ var BaseBrowserPrototype = { // inlined... if(sublist.value instanceof Browser){ - var res = sublist.value.get(x - i, true) + var res = sublist.value.get(x - i, options) // nested... + // XXX support .collapsed... } else { var res = x - i == 0 ? sublist : sublist.sublist instanceof Browser ? - sublist.sublist.get(x - i - 1, true) + sublist.sublist.get(x - i - 1, options) : sublist.sublist[x - i - 1] // account for the header... offset += 1 @@ -787,9 +789,10 @@ var BaseBrowserPrototype = { offset += (sublist.sublist || sublist.value).length - } while(x >= items.length) - - return undefined + // NOTE: we do not need an explicit exit here as the first + // test will bail us out as soon as sublists are + // depleted... + } while(true) // XXX this needs to return as soon as we find an item and