#include <QObject>
#include <QShortcut>
+#include <QMenu>
class SUIT_DataBrowser;
class LightApp_DataObject;
}
-HYDROGUI_DataBrowser::HYDROGUI_DataBrowser( HYDROGUI_Module* theModule, SUIT_DataObject* theRoot, QWidget* theParent )
+HYDROGUI_DataBrowser::HYDROGUI_DataBrowser( HYDROGUI_Module* theModule,
+ SUIT_DataObject* theRoot,
+ QWidget* theParent,
+ bool theLandCover/* = false*/)
: SUIT_DataBrowser( theRoot, theParent ), myModule( theModule )
{
SUIT_ResourceMgr* resMgr = theModule->getApp()->resourceMgr();
QString EntryCol = QObject::tr( "ENTRY_COLUMN" );
QString RefObjCol = tr( "REF_OBJECT_COLUMN" );
- QString AltitudeCol = tr( "ALTITUDE_COLUMN" );
+ QString AltitudeCol;
+ if ( theLandCover )
+ AltitudeCol = tr( "LAND_COVER_COLUMN" );
+ else
+ AltitudeCol = tr( "ALTITUDE_COLUMN" );
SUIT_AbstractModel* treeModel = dynamic_cast<SUIT_AbstractModel*>( model() );
//RKV: treeModel->setSearcher( theModule->getApp() );
treeView()->setColumnWidth(SUIT_DataObject::VisibilityId, VISIBILITY_COLUMN_WIDTH);
treeView()->hideColumn( SUIT_DataObject::VisibilityId );
treeView()->hideColumn( LightApp_DataObject::EntryId );
- //RKV: connectPopupRequest( theModule->getApp(), SLOT( onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* ) ) );
+ connectPopupRequest( theModule->getApp(), SLOT( onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* ) ) );
}
HYDROGUI_DataBrowser::~HYDROGUI_DataBrowser()
aShortcut->setEnabled( !theIsReadOnly );
}
}
-}
\ No newline at end of file
+}
+
+void HYDROGUI_DataBrowser::createPopupMenu( QMenu* theMenu )
+{
+ theMenu->clear();
+ DataObjectList aSelection = getSelected();
+ bool isOnlyZones = aSelection.size() > 0;
+ foreach( SUIT_DataObject* anObj, aSelection )
+ {
+ HYDROGUI_DataObject* aHydroObj = dynamic_cast<HYDROGUI_DataObject*>( anObj );
+ if( aHydroObj )
+ {
+ Handle(HYDROData_Entity) aModelObj = aHydroObj->modelObject();
+ if( !aModelObj.IsNull() )
+ {
+ isOnlyZones = aModelObj->GetKind()==KIND_ZONE;
+ if( !isOnlyZones )
+ break;
+
+ SUIT_DataObject* aParentObj = aHydroObj->parent();
+ if ( aParentObj )
+ {
+ isOnlyZones = aParentObj->childCount() > 1;
+ if( !isOnlyZones )
+ break;
+ }
+ }
+ else
+ {
+ isOnlyZones = false;
+ break;
+ }
+ }
+ else
+ {
+ isOnlyZones = false;
+ break;
+ }
+ }
+
+ if( isOnlyZones )
+ theMenu->addAction( tr( "ZONE_TO_NEW_REGION" ), this, SIGNAL( newRegion() ) );
+}