В общем, делаю я к своему парсеру IDE потому что пытаться победить qговнокреатор я прекратил. Там такой кромешный звездец внутри, что буквально каждый шаг сравним с выгребанием таксофона в который насрал легион особо говнистых туристов.
Так вот, я там делаю интерфейс для плагинов чтоб уширять потом этот IDE и встал вопрос: само API ПРОСТО_ДОБАВЛЕНИЯ оно выражаясь на английски straightforward. Есть набор действий, которые должны стать активны или видимы только когда активна определенная вьюшка. То есть мы даем инфу по какому критерию их врубать, в какое меню их напихать и как их в меню сортировать.
/*
* add menuitems which are specific only to this view
*/
void addActions(IView * owner, QList<QAction*> actions,
const QString& menuname,
int menu_priority);
/*
* add menuitems which are specific to a feature
*/
void addActions(const QString& feature_name,
QList<QAction*> actions,
const QString& menuname,
int menu_priority);
Но одно и то же меню может использоваться в разных плагинах и может оказаться так, что в зависимости от порядка инициализации этим менюхи будут добавляться в случайном порядке, а хотелось бы как-то их упорядочить.
Например плагин foo создает меню «build» и «debug» а плагин bla - «analyze» и «debug» и в зависимости от порядка их старта будет либо analyze-debug-build или build-debug-analyze.
menu_priority это пока костыль страшный, хотелось бы что-то покрасивее.
Пока есть идея ввести категории менюшек. В креаторе это реализуется примерно так: помимо имени назначается строка -название категории вида «10.что-то-важное» «20.что-по-посередине» «50.бугага» «90.всамуюдальзасунуть»
Но возможно есть идея покрасивее. киньте совет.

