本文整理汇总了C++中UserCommand::isChat方法的典型用法代码示例。如果您正苦于以下问题:C++ UserCommand::isChat方法的具体用法?C++ UserCommand::isChat怎么用?C++ UserCommand::isChat使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserCommand
的用法示例。
在下文中一共展示了UserCommand::isChat方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QMenu
QMenu *WulforUtil::buildUserCmdMenu(const StringList& hub_list, int ctx, QWidget* parent) {
UserCommand::List userCommands = FavoriteManager::getInstance()->getUserCommands(ctx, hub_list);
if (userCommands.empty())
return nullptr;
QMenu *ucMenu = new QMenu(tr("User commands"), parent);
QMenu *menuPtr = ucMenu;
for (size_t n = 0; n < userCommands.size(); ++n) {
UserCommand *uc = &userCommands[n];
if (uc->getType() == UserCommand::TYPE_SEPARATOR) {
// Avoid double separators...
if (!menuPtr->actions().isEmpty() &&
!menuPtr->actions().last()->isSeparator())
{
menuPtr->addSeparator();
}
} else if (uc->isRaw() || uc->isChat()) {
menuPtr = ucMenu;
auto _begin = uc->getDisplayName().begin();
auto _end = uc->getDisplayName().end();
for(; _begin != _end; ++_begin) {
const QString name = _q(*_begin);
if (_begin + 1 == _end) {
menuPtr->addAction(name)->setData(uc->getId());
} else {
bool found = false;
QListIterator<QAction*> iter(menuPtr->actions());
while(iter.hasNext()) {
QAction *item = iter.next();
if (item->menu() && item->text() == name) {
found = true;
menuPtr = item->menu();
break;
}
}
if (!found)
menuPtr = menuPtr->addMenu(name);
}
}
}
}
return ucMenu;
}