!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / DependencyGraph / Plugin.cpp
blobd829e436ead883ceb2ac804ff189e70e989877ff
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "StdAfx.h"
4 #include "Plugin.h"
5 #include "Menu/AbstractMenu.h"
6 #include <CryCore/Platform/platform_impl.inl>
7 #include <AssetSystem/Browser/AssetBrowser.h>
9 // Plugin instance
10 static CDependencyGraph* g_pInstance = nullptr;
12 REGISTER_PLUGIN(CDependencyGraph);
14 CDependencyGraph::CDependencyGraph()
16 CRY_ASSERT(g_pInstance == nullptr);
17 g_pInstance = this;
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());
27 });
29 }, (uintptr_t)this);
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()
41 return g_pInstance;
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);