clipboard singleton
This commit is contained in:
@@ -13,4 +13,11 @@ namespace VISEQ::APP {
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<Clipboard> Clipboard::get() {
|
||||
if(!Clipboard::instance){
|
||||
Clipboard::instance.reset(new Clipboard());
|
||||
}
|
||||
return Clipboard::instance;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,5 +14,8 @@ namespace VISEQ::APP {
|
||||
|
||||
void copyNodes(GRAPH::NODES::VEC_SPTR_Node selected_nodes);
|
||||
|
||||
inline static std::shared_ptr<Clipboard> instance;
|
||||
static std::shared_ptr<Clipboard> get();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,11 +13,11 @@ namespace VISEQ::INTERACTION{
|
||||
void InteractionManager::update(){
|
||||
if(KEYS_DOWN.ctrl && IsKeyPressed(KEY_C)){
|
||||
VEC_SPTR_Node selected_nodes = gm->getCopiesOfSelectedNodes();
|
||||
if(!selected_nodes.empty()) cb.copyNodes(selected_nodes);
|
||||
if(!selected_nodes.empty()) cb->copyNodes(selected_nodes);
|
||||
}
|
||||
|
||||
if(KEYS_DOWN.ctrl && IsKeyPressed(KEY_V)){
|
||||
VEC_SPTR_Node paste_nodes = cb.pasteNodes();
|
||||
VEC_SPTR_Node paste_nodes = cb->pasteNodes();
|
||||
if(!paste_nodes.empty()) gm->pasteNodesAndEdges(paste_nodes, MOD_MOUSE);
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace VISEQ::INTERACTION{
|
||||
Vec2Df scale_start;
|
||||
std::shared_ptr<ScaleHandle> scale_handle = std::make_shared<ScaleHandle>();
|
||||
|
||||
VISEQ::APP::Clipboard cb;
|
||||
std::shared_ptr<APP::Clipboard> cb = APP::Clipboard::get();
|
||||
|
||||
void update();
|
||||
void draw();
|
||||
|
||||
Reference in New Issue
Block a user