LocationQuery: now able to handle perspective info properly
...which was deliberately represented in an asymmetric way, to verify the design's ability to cope with such implementation intricacies. So basically we have to kick in at LEVEL == 1 and access the implementation differently. This exercise just shows again, that treating tree structures recursively is the way to go, and we should do similar when coding up the query-API for the real GTK toolkit based window elements...
This commit is contained in:
parent
750b124f88
commit
4b6b4ad708
2 changed files with 14 additions and 9 deletions
|
|
@ -148,12 +148,12 @@ namespace interact {
|
||||||
throw error::State(_Fmt{"unable to drill down to depth %d: "
|
throw error::State(_Fmt{"unable to drill down to depth %d: "
|
||||||
"element %s at pos %d in path %s is in "
|
"element %s at pos %d in path %s is in "
|
||||||
"contradiction to actual UI structure"}
|
"contradiction to actual UI structure"}
|
||||||
% (pos+1)
|
% pos
|
||||||
% (depth<path.size()? path[depth] : Symbol::BOTTOM)
|
% (depth<path.size()? path[depth] : Symbol::BOTTOM)
|
||||||
% depth
|
% depth
|
||||||
% path
|
% path
|
||||||
);
|
);
|
||||||
return childSequence(node);
|
return childSequence(node, depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -177,14 +177,15 @@ namespace interact {
|
||||||
}
|
}
|
||||||
|
|
||||||
static ChildIter
|
static ChildIter
|
||||||
childSequence (Rec const& node)
|
childSequence (Rec const& node, size_t& depth)
|
||||||
{
|
{
|
||||||
auto internedString = [](string const& id) -> Literal
|
auto internedString = [](string const& id) -> Literal
|
||||||
{
|
{
|
||||||
return Symbol{id};
|
return Symbol{id};
|
||||||
};
|
};
|
||||||
///////////////////////////////////////////////////////////////TICKET #1113 : could just use lib::wrapIter when GenNode exposes Literal as ID
|
return depth==UIC_PERSP? lib::singleVal (internedString (node.getType()))
|
||||||
return lib::transform (node.keys(), internedString);
|
: lib::transform (node.keys(), internedString);
|
||||||
|
/////////////////////////////////////////////////////////////////////TICKET #1113 : could just use lib::wrapIter when GenNode exposes Literal as ID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4575,8 +4575,8 @@
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506984645745" ID="ID_244163155" MODIFIED="1506984665826" TEXT="verify_simpleUsage">
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506984645745" ID="ID_244163155" MODIFIED="1506984665826" TEXT="verify_simpleUsage">
|
||||||
<icon BUILTIN="flag-yellow"/>
|
<icon BUILTIN="flag-yellow"/>
|
||||||
</node>
|
</node>
|
||||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506984645747" ID="ID_517262443" MODIFIED="1508625810426" TEXT="verify_backingQuery">
|
<node COLOR="#338800" CREATED="1506984645747" ID="ID_517262443" MODIFIED="1509288984297" TEXT="verify_backingQuery">
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1508809610790" FOLDED="true" ID="ID_1860790851" MODIFIED="1509145537374" TEXT="Builder-Syntax war falsch">
|
<node CREATED="1508809610790" FOLDED="true" ID="ID_1860790851" MODIFIED="1509145537374" TEXT="Builder-Syntax war falsch">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1508809620762" ID="ID_236111511" MODIFIED="1508809630860" TEXT="muß die Attribute-Collection nutzen"/>
|
<node CREATED="1508809620762" ID="ID_236111511" MODIFIED="1508809630860" TEXT="muß die Attribute-Collection nutzen"/>
|
||||||
|
|
@ -4683,11 +4683,15 @@
|
||||||
<icon BUILTIN="ksmiletris"/>
|
<icon BUILTIN="ksmiletris"/>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
<node CREATED="1509151268071" ID="ID_38582779" MODIFIED="1509151422017" TEXT="getChildren aufbohren">
|
<node CREATED="1509151268071" ID="ID_38582779" MODIFIED="1509288960092" TEXT="getChildren aufbohren">
|
||||||
<icon BUILTIN="pencil"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1509151285749" ID="ID_1826645914" MODIFIED="1509287428715" TEXT="eigentlich einfach">
|
<node CREATED="1509151285749" ID="ID_1826645914" MODIFIED="1509287428715" TEXT="eigentlich einfach">
|
||||||
<icon BUILTIN="idea"/>
|
<icon BUILTIN="idea"/>
|
||||||
</node>
|
</node>
|
||||||
|
<node CREATED="1509287527705" ID="ID_1588631568" MODIFIED="1509287562960" TEXT="muß bloß in einem Fall explizit was anderes liefern..."/>
|
||||||
|
<node CREATED="1509287541919" ID="ID_58868223" MODIFIED="1509287552668" TEXT="Aua! Iterator ist im weg">
|
||||||
|
<icon BUILTIN="messagebox_warning"/>
|
||||||
|
</node>
|
||||||
<node COLOR="#338800" CREATED="1509151289637" FOLDED="true" ID="ID_892381116" MODIFIED="1509287431815" TEXT="brauche singletonIter">
|
<node COLOR="#338800" CREATED="1509151289637" FOLDED="true" ID="ID_892381116" MODIFIED="1509287431815" TEXT="brauche singletonIter">
|
||||||
<icon BUILTIN="button_ok"/>
|
<icon BUILTIN="button_ok"/>
|
||||||
<node CREATED="1509151296292" ID="ID_1050274308" MODIFIED="1509151411655" TEXT="liefert ein einziges Element"/>
|
<node CREATED="1509151296292" ID="ID_1050274308" MODIFIED="1509151411655" TEXT="liefert ein einziges Element"/>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue