mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Disable paste if no available clipboard data
p4#: 21025
This commit is contained in:
parent
359964092d
commit
1e8d5236d1
@ -43,6 +43,9 @@ RimUiTreeView::RimUiTreeView(QWidget *parent /*= 0*/)
|
|||||||
: QTreeView(parent)
|
: QTreeView(parent)
|
||||||
{
|
{
|
||||||
setHeaderHidden(true);
|
setHeaderHidden(true);
|
||||||
|
|
||||||
|
m_pasteAction = new QAction(QString("Paste"), this);
|
||||||
|
connect(m_pasteAction, SIGNAL(triggered()), SLOT(slotPastePdmObjects()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -57,12 +60,15 @@ RimUiTreeView::~RimUiTreeView()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event)
|
void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event)
|
||||||
{
|
{
|
||||||
|
m_pasteAction->setEnabled(hasClipboardValidData());
|
||||||
|
|
||||||
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
||||||
if (myModel)
|
if (myModel)
|
||||||
{
|
{
|
||||||
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
||||||
if (uiItem && uiItem->dataObject())
|
if (uiItem && uiItem->dataObject())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Range filters
|
// Range filters
|
||||||
if (dynamic_cast<RimReservoirView*>(uiItem->dataObject().p()))
|
if (dynamic_cast<RimReservoirView*>(uiItem->dataObject().p()))
|
||||||
{
|
{
|
||||||
@ -172,7 +178,7 @@ void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event)
|
|||||||
{
|
{
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
menu.addAction(QString("Copy"), this, SLOT(slotCopyPdmObjectToClipboard()));
|
menu.addAction(QString("Copy"), this, SLOT(slotCopyPdmObjectToClipboard()));
|
||||||
menu.addAction(QString("Paste"), this, SLOT(slotPastePdmObjects()));
|
menu.addAction(m_pasteAction);
|
||||||
menu.addAction(QString("Close"), this, SLOT(slotCloseCase()));
|
menu.addAction(QString("Close"), this, SLOT(slotCloseCase()));
|
||||||
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
||||||
menu.addAction(QString("New Grid Case Group"), this, SLOT(slotAddCaseGroup()));
|
menu.addAction(QString("New Grid Case Group"), this, SLOT(slotAddCaseGroup()));
|
||||||
@ -182,14 +188,14 @@ void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event)
|
|||||||
{
|
{
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
menu.addAction(QString("New Grid Case Group"), this, SLOT(slotAddCaseGroup()));
|
menu.addAction(QString("New Grid Case Group"), this, SLOT(slotAddCaseGroup()));
|
||||||
menu.addAction(QString("Paste"), this, SLOT(slotPastePdmObjects()));
|
menu.addAction(m_pasteAction);
|
||||||
menu.addAction(QString("Close"), this, SLOT(slotDeleteObjectFromPdmPointersField()));
|
menu.addAction(QString("Close"), this, SLOT(slotDeleteObjectFromPdmPointersField()));
|
||||||
menu.exec(event->globalPos());
|
menu.exec(event->globalPos());
|
||||||
}
|
}
|
||||||
else if (dynamic_cast<RimCaseCollection*>(uiItem->dataObject().p()))
|
else if (dynamic_cast<RimCaseCollection*>(uiItem->dataObject().p()))
|
||||||
{
|
{
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
menu.addAction(QString("Paste"), this, SLOT(slotPastePdmObjects()));
|
menu.addAction(m_pasteAction);
|
||||||
menu.exec(event->globalPos());
|
menu.exec(event->globalPos());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -968,3 +974,20 @@ void RimUiTreeView::keyPressEvent(QKeyEvent* keyEvent)
|
|||||||
QTreeView::keyPressEvent(keyEvent);
|
QTreeView::keyPressEvent(keyEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimUiTreeView::hasClipboardValidData()
|
||||||
|
{
|
||||||
|
QClipboard* clipboard = QApplication::clipboard();
|
||||||
|
if (clipboard)
|
||||||
|
{
|
||||||
|
if (dynamic_cast<const MimeDataWithIndexes*>(clipboard->mimeData()))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -89,10 +89,13 @@ signals:
|
|||||||
void selectedObjectChanged( caf::PdmObject* pdmObject );
|
void selectedObjectChanged( caf::PdmObject* pdmObject );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void createPdmObjectsFromClipboard(caf::PdmObjectGroup* objectGroup);
|
void createPdmObjectsFromClipboard(caf::PdmObjectGroup* objectGroup);
|
||||||
|
bool hasClipboardValidData();
|
||||||
|
|
||||||
virtual void keyPressEvent(QKeyEvent* keyEvent);
|
virtual void keyPressEvent(QKeyEvent* keyEvent);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QAction* m_pasteAction;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user