mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1000 System : Prepare for handling of copy/paste actions
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "RimIdenticalGridCaseGroup.h"
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "cafCmdFeature.h"
|
||||
#include "cafCmdFeatureManager.h"
|
||||
#include "cafPdmUiTreeView.h"
|
||||
#include "cafSelectionManager.h"
|
||||
@@ -54,51 +55,34 @@ bool RiuTreeViewEventFilter::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
QKeyEvent* keyEvent = static_cast<QKeyEvent *>(event);
|
||||
|
||||
QString featureToActivate;
|
||||
|
||||
caf::PdmUiItem* uiItem = caf::SelectionManager::instance()->selectedItem();
|
||||
if (uiItem)
|
||||
{
|
||||
if (dynamic_cast<RimEclipseCase*>(uiItem)
|
||||
|| dynamic_cast<RimEclipseView*>(uiItem)
|
||||
|| dynamic_cast<RimGeoMechCase*>(uiItem)
|
||||
|| dynamic_cast<RimGeoMechView*>(uiItem))
|
||||
if (keyEvent->matches(QKeySequence::Copy))
|
||||
{
|
||||
if (keyEvent->matches(QKeySequence::Copy))
|
||||
QAction* actionToTrigger = caf::CmdFeatureManager::instance()->action("RicCopyReferencesToClipboardFeature");
|
||||
assert(actionToTrigger);
|
||||
|
||||
actionToTrigger->trigger();
|
||||
|
||||
keyEvent->setAccepted(true);
|
||||
return true;
|
||||
}
|
||||
else if (keyEvent->matches(QKeySequence::Paste))
|
||||
{
|
||||
std::vector<caf::CmdFeature*> matches = caf::CmdFeatureManager::instance()->commandFeaturesMatchingSubString("Paste");
|
||||
|
||||
for (caf::CmdFeature* feature : matches)
|
||||
{
|
||||
featureToActivate = "RicCopyReferencesToClipboardFeature";
|
||||
if (feature->canFeatureBeExecuted())
|
||||
{
|
||||
feature->actionTriggered(false);
|
||||
|
||||
keyEvent->setAccepted(true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (keyEvent->matches(QKeySequence::Paste))
|
||||
{
|
||||
if (dynamic_cast<RimIdenticalGridCaseGroup*>(uiItem)
|
||||
|| dynamic_cast<RimCaseCollection*>(uiItem))
|
||||
{
|
||||
featureToActivate = "RicPasteEclipseCasesFeature";
|
||||
}
|
||||
else if (dynamic_cast<RimEclipseCase*>(uiItem)
|
||||
|| dynamic_cast<RimEclipseView*>(uiItem))
|
||||
{
|
||||
featureToActivate = "RicPasteEclipseViewsFeature";
|
||||
}
|
||||
else if (dynamic_cast<RimGeoMechCase*>(uiItem)
|
||||
|| dynamic_cast<RimGeoMechView*>(uiItem))
|
||||
{
|
||||
featureToActivate = "RicPasteGeoMechViewsFeature";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!featureToActivate.isEmpty())
|
||||
{
|
||||
QAction* actionToTrigger = caf::CmdFeatureManager::instance()->action(featureToActivate);
|
||||
assert(actionToTrigger);
|
||||
|
||||
actionToTrigger->trigger();
|
||||
|
||||
keyEvent->setAccepted(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!RiuMainWindow::instance()->projectTreeView()->isTreeItemEditWidgetActive())
|
||||
|
||||
Reference in New Issue
Block a user