Warning: session_start(): open(/var/lib/php/sessions/sess_32drjg7048oktf44uvsndcohng, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
abstract !include #1016674 // Module List
module LoadedModuleSearch > ModuleList {
transient S query;
transient new RestartableCountdown autoHide;
transient int yesPopupOffsetY = -13;
start {
calculateWhenHidden = true;
dm_onTopInput_q(voidfunc(S s) { doSearch(s) });
dm_onTopInputChanged_q(voidfunc(S s) { if (neq(s, query)) doSearch(s) });
dm_vmBus_onMessage('hideQuickSearchModules, rEnter dm_hideModule);
}
visualize {
JComponent c = super.visualize();
onDoubleClickOrEnter(list, r dm_hideQuickSearchModules);
ret c;
}
void doSearch(S s) enter {
if "yes" {
if (dm_hasYesPopupForComponent(list))
ret with jlist_doubleClickOnItem(list, 0);
}
if (dm_osLoading() || dm_dontQuickSearch(s)) ret;
query = s;
super.update();
if (nempty(query) && nempty(results)) {
if (dm_placeModuleUnderAIBar(this, query)) {
dm_showYesToAcceptPopupWithParams(list,
imageID := #1101462,
height := 247/2,
mover := voidfunc(Component c, Component popup) enter {
JList list = cast c;
Rect r = boundsInParent(c, dm_desktopPane());
if (r == null) ret;
Rect item = jlist_itemBounds(list, 0);
setLocation(popup, r.x+item.x-popup.getWidth(), r.y+item.y+yesPopupOffsetY);
});
}
dm_autoHide(autoHide);
} else
dm_hideModule();
}
L modulesToList() {
if (empty(query)) ret emptyList();
L modules = super.modulesToList();
L results = scoredSearch_eachTerm(dm_getInterestingString(),
map(modules, func(fO m) -> S {
"[" + dm_moduleID(m) + "] "
+ pcallF(func -> S { dm_moduleName(m) })
+ " / " + shortClassName(m)
+ " / " + getProgramID(m) }));
ret map(results, func(S s) -> O { dm_getModule(leadingSquareBracketStuff(s)) });
}
void selectFirstEntry() { selectRow(list, 0); }
void enhanceFrame(Container f) {
super.enhanceFrame(f);
setClosable(f, false);
}
}