kconfig: qconf: navigate menus on hyperlinks
Instead of just changing the helper window to show a dependency, also navigate to it at the config and menu widgets. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
cc1c08edcc
commit
8a3b6e5687
@ -1233,7 +1233,6 @@ void ConfigInfoView::clicked(const QUrl &url)
|
||||
char *data = new char[count + 1];
|
||||
struct symbol **result;
|
||||
struct menu *m = NULL;
|
||||
char type;
|
||||
|
||||
if (count < 1) {
|
||||
qInfo() << "Clicked link is empty";
|
||||
@ -1243,7 +1242,6 @@ void ConfigInfoView::clicked(const QUrl &url)
|
||||
|
||||
memcpy(data, str.constData(), count);
|
||||
data[count] = '\0';
|
||||
type = data[0];
|
||||
|
||||
/* Seek for exact match */
|
||||
data[0] = '^';
|
||||
@ -1256,15 +1254,8 @@ void ConfigInfoView::clicked(const QUrl &url)
|
||||
}
|
||||
|
||||
sym = *result;
|
||||
if (type == 's') {
|
||||
symbolInfo();
|
||||
emit showDebugChanged(true);
|
||||
free(result);
|
||||
delete data;
|
||||
return;
|
||||
}
|
||||
|
||||
/* URL is a menu */
|
||||
/* Seek for the menu which holds the symbol */
|
||||
for (struct property *prop = sym->prop; prop; prop = prop->next) {
|
||||
if (prop->type != P_PROMPT && prop->type != P_MENU)
|
||||
continue;
|
||||
@ -1273,16 +1264,13 @@ void ConfigInfoView::clicked(const QUrl &url)
|
||||
}
|
||||
|
||||
if (!m) {
|
||||
qInfo() << "Clicked menu is invalid:" << data;
|
||||
free(result);
|
||||
delete data;
|
||||
return;
|
||||
/* Symbol is not visible as a menu */
|
||||
symbolInfo();
|
||||
emit showDebugChanged(true);
|
||||
} else {
|
||||
emit menuSelected(m);
|
||||
}
|
||||
|
||||
_menu = m;
|
||||
menuInfo();
|
||||
|
||||
emit showDebugChanged(true);
|
||||
free(result);
|
||||
delete data;
|
||||
}
|
||||
@ -1731,6 +1719,7 @@ void ConfigMainWindow::setMenuLink(struct menu *menu)
|
||||
list->setSelected(item, true);
|
||||
list->scrollToItem(item);
|
||||
list->setFocus();
|
||||
helpText->setInfo(menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user