Commit 8a3b6e56 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Masahiro Yamada
Browse files

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: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent cc1c08ed
Loading
Loading
Loading
Loading
+7 −18
Original line number Diff line number Diff line
@@ -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);
		}
	}
}