]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
cvarlist dialog: get apropos-like behaviour
authorRudolf Polzer <divverent@xonotic.org>
Mon, 10 Mar 2014 10:20:00 +0000 (11:20 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Mon, 10 Mar 2014 10:20:00 +0000 (11:20 +0100)
qcsrc/menu/xonotic/cvarlist.c

index 913a03eaf460aae082aa5d73bcda2241c615f4a4..15cd9175832e96b8c6ad9d8489caadfa695b4016 100644 (file)
@@ -132,9 +132,20 @@ void XonoticCvarList_setSelected(entity me, float i)
 }
 void CvarList_Filter_Change(entity box, entity me)
 {
-       buf_cvarlist(me.handle, box.text, "_");
-       me.nItems = buf_getsize(me.handle);
-
+       string filter = box.text;
+       buf_cvarlist(me.handle, "", "_");
+       float n = buf_getsize(me.handle);
+       float i;
+       float o;
+       for (i = 0, o = 0; i < n; ++i) {
+               string n = bufstr_get(me.handle, i);
+               if (strstrofs(n, filter, 0) < 0)
+               if (strstrofs(cvar_description(n), filter, 0) < 0)
+                       continue;
+               bufstr_set(me.handle, o, bufstr_get(me.handle, i));
+               ++o;
+       }
+       me.nItems = o;
        me.setSelected(me, 0);
 }
 void XonoticCvarList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)