28 #define YUILogComponent "qt-ui"
29 #include <yui/YUILog.h>
33 #include "YQContextMenu.h"
34 #include <yui/YEvent.h>
40 , _suppressCancelEvent(false )
43 yuiWarning() <<
"YQContextMenu";
50 , _position ( position )
66 QMenu * menu =
new QMenu( _parent );
67 YUI_CHECK_NEW( menu );
68 menu->setProperty(
"class",
"ycontextmenu QMenu" );
70 connect( menu, &pclass(menu)::triggered,
73 connect( menu, &pclass(menu)::aboutToHide,
80 menu->popup( _position );
87 for ( YItemIterator it = begin; it != end; ++it )
92 if ( item->hasIconName() )
94 std::string iconName = iconFullPath( item );
95 icon = QPixmap( iconName.c_str() );
98 yuiWarning() <<
"Can't load icon " << iconName << std::endl;
101 if ( item->hasChildren() )
106 subMenu = parentMenu->addMenu( fromUTF8( item->label() ));
108 subMenu = parentMenu->addMenu( QIcon( icon ), fromUTF8( item->label() ));
110 connect( subMenu, &pclass(subMenu)::triggered,
113 rebuildMenuTree( subMenu, item->childrenBegin(), item->childrenEnd() );
124 act = parentMenu->addAction( fromUTF8( item->label() ) );
126 act = parentMenu->addAction( QIcon( icon ), fromUTF8( item->label() ) );
128 _serials[act] = item->index();
145 if ( ! _suppressCancelEvent )
148 _suppressCancelEvent =
false;
156 if ( _serials.contains( action ) )
157 serialNo = _serials[action];
160 _selectedItem = findMenuItem( serialNo );
175 _suppressCancelEvent =
true;
176 QTimer::singleShot( 100,
this, SLOT(
returnNow() ) );
180 yuiError() <<
"No menu item with serial no. " << serialNo << std::endl;
215 #include "YQContextMenu.moc"
void sendEvent(YEvent *event)
Widget event handlers (slots) call this when an event occured that should be the answer to a UserInpu...
static YQUI * ui()
Access the global Qt-UI.