diff --git a/modules/gui/pymod/export_scene_win.cc b/modules/gui/pymod/export_scene_win.cc index f9d344bf5fc51cce35df1734e8337f83975f4ddc..1ded4aea89ebdefd026b6a71db7cf15e540ce4b3 100644 --- a/modules/gui/pymod/export_scene_win.cc +++ b/modules/gui/pymod/export_scene_win.cc @@ -71,6 +71,7 @@ void export_SceneWin() .value("NOT_HIDDEN", NOT_HIDDEN) .value("NOT_SCENE", NOT_SCENE) .value("SINGLE", SINGLE) + .value("MULTI", MULTI) #if OST_IMG_ENABLED .value("MAP", MAP) #endif diff --git a/modules/gui/pymod/init_context_menu.py b/modules/gui/pymod/init_context_menu.py index b77fbe1421961bb2dca6c9470b024ddbee5f1705..652c456ffaf52fac8f01a2822a2534d84d216a91 100644 --- a/modules/gui/pymod/init_context_menu.py +++ b/modules/gui/pymod/init_context_menu.py @@ -12,7 +12,8 @@ class AlignmentContextMenu(QtCore.QObject): self.action = QtGui.QAction("Align", self) QtCore.QObject.connect(self.action,QtCore.SIGNAL("triggered()"), self.Align) - context_menu.AddAction(self.action, gui.ContextActionType.ENTITY) + print gui.ContextActionType.ENTITY | gui.ContextActionType.MULTI + context_menu.AddAction(self.action, gui.ContextActionType.ENTITY | gui.ContextActionType.MULTI) except FileNotFound: return diff --git a/modules/gui/src/scene_win/context_menu.cc b/modules/gui/src/scene_win/context_menu.cc index b1ea35b604f8daac98f2f3a9a9a5c94423c04cf5..d873c99f5ba58e3ed84404a49e177821bd3ce570 100644 --- a/modules/gui/src/scene_win/context_menu.cc +++ b/modules/gui/src/scene_win/context_menu.cc @@ -124,9 +124,11 @@ void ContextMenu::ShowMenu(const QPoint& pos) ContextActionTypes flags; flags = ~flags; + int cnt = 0; if(indexes.size()>0){ for(int i = 0; i < indexes.size(); i++){ if(indexes[i].column()==0){ + cnt++; GfxSceneNode* gfx_scene_node = qobject_cast<GfxSceneNode*>(model_->GetItem(indexes[i])); if(gfx_scene_node){ gfx::GfxNodeP gfx_node = gfx_scene_node->GetGfxNode(); @@ -164,6 +166,12 @@ void ContextMenu::ShowMenu(const QPoint& pos) } } + if(cnt==1){ + flags &= ~MULTI; + } + else{ + flags &= ~SINGLE; + } QMenu* menu = new QMenu(); QMapIterator<QAction*, ContextActionTypes> i(actions_); flags ^= NOT_VISIBLE; diff --git a/modules/gui/src/scene_win/context_menu.hh b/modules/gui/src/scene_win/context_menu.hh index 55c73e438537bd84a031525da2a20b4799436190..bc2f8e9d133215c7c66550e4b68c31e2ad575b77 100644 --- a/modules/gui/src/scene_win/context_menu.hh +++ b/modules/gui/src/scene_win/context_menu.hh @@ -42,9 +42,10 @@ enum ContextActionType NOT_VISIBLE=0x10, NOT_HIDDEN=0x20, NOT_SCENE=0x40, - SINGLE=0x80 + SINGLE=0x80, + MULTI=0x100 #if OST_IMG_ENABLED - ,MAP=0x100 + ,MAP=0x200 #endif }; Q_DECLARE_FLAGS(ContextActionTypes, ContextActionType)