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 icon =
YQUI::ui()->loadIcon( item->iconName() );
97 if ( item->hasChildren() )
102 subMenu = parentMenu->addMenu( fromUTF8( item->label() ));
104 subMenu = parentMenu->addMenu( QIcon( icon ), fromUTF8( item->label() ));
106 connect( subMenu, &pclass(subMenu)::triggered,
109 rebuildMenuTree( subMenu, item->childrenBegin(), item->childrenEnd() );
120 act = parentMenu->addAction( fromUTF8( item->label() ) );
122 act = parentMenu->addAction( QIcon( icon ), fromUTF8( item->label() ) );
124 _serials[act] = item->index();
141 if ( ! _suppressCancelEvent )
144 _suppressCancelEvent =
false;
152 if ( _serials.contains( action ) )
153 serialNo = _serials[action];
156 _selectedItem = findMenuItem( serialNo );
171 _suppressCancelEvent =
true;
172 QTimer::singleShot( 100,
this, SLOT(
returnNow() ) );
176 yuiError() <<
"No menu item with serial no. " << serialNo << std::endl;
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.