1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
5 #include "Menu/AbstractMenu.h"
6 #include <CryCore/Platform/platform_impl.inl>
7 #include <AssetSystem/Browser/AssetBrowser.h>
10 static CDependencyGraph
* g_pInstance
= nullptr;
12 REGISTER_PLUGIN(CDependencyGraph
);
14 CDependencyGraph::CDependencyGraph()
16 CRY_ASSERT(g_pInstance
== nullptr);
19 CAssetBrowser::s_signalContextMenuRequested
.Connect([](CAbstractMenu
& menu
, const std::vector
<CAsset
*>& assets
, const std::vector
<string
>& folders
, std::shared_ptr
<IUIContext
> context
)
21 if (assets
.size() == 1)
23 auto action
= menu
.CreateAction(QObject::tr("Show Dependency Graph"), menu
.FindSectionByName("Assets"));
24 QObject::connect(action
, &QAction::triggered
, [asset
= assets
.front()]()
26 GetIEditor()->ExecuteCommand("asset.show_dependency_graph '%s'", asset
->GetMetadataFile());
32 CDependencyGraph::~CDependencyGraph()
34 CAssetBrowser::s_signalContextMenuRequested
.DisconnectById((uintptr_t)this);
35 CRY_ASSERT(g_pInstance
== this);
36 g_pInstance
= nullptr;
39 CDependencyGraph
* CDependencyGraph::GetInstance()
44 void CDependencyGraph::SetPersonalizationProperty(const QString
& propName
, const QVariant
& value
)
46 GetIEditor()->GetPersonalizationManager()->SetProperty(GetPluginName(), propName
, value
);
49 const QVariant
& CDependencyGraph::GetPersonalizationProperty(const QString
& propName
)
51 return GetIEditor()->GetPersonalizationManager()->GetProperty(GetPluginName(), propName
);