diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/caf.qrc b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/caf.qrc
index 5675d88a0c..75c375085f 100644
--- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/caf.qrc
+++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/caf.qrc
@@ -2,5 +2,6 @@
Down16x16.png
Up16x16.png
+ duplicate.svg
diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/duplicate.svg b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/duplicate.svg
new file mode 100644
index 0000000000..8dd77938c6
--- /dev/null
+++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/Resources/duplicate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.cpp
index 23b28ad6f2..4f601bc12c 100644
--- a/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.cpp
+++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.cpp
@@ -46,6 +46,7 @@
#include "cafQShortenedLabel.h"
#include
+#include
#include
#include
#include
@@ -69,7 +70,7 @@ void PdmUiFilePathEditor::configureAndUpdateUi( const QString& uiConfigName )
PdmUiLineEditor::updateLineEditFromReadOnlyState( m_lineEdit, uiField()->isUiReadOnly( uiConfigName ) );
m_lineEdit->setToolTip( uiField()->uiToolTip( uiConfigName ) );
- m_button->setEnabled( !uiField()->isUiReadOnly( uiConfigName ) );
+ m_button->setHidden( uiField()->isUiReadOnly( uiConfigName ) );
caf::PdmUiObjectHandle* uiObject = uiObj( uiField()->fieldHandle()->ownerObject() );
if ( uiObject )
@@ -102,10 +103,17 @@ QWidget* PdmUiFilePathEditor::createEditorWidget( QWidget* parent )
m_button->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred ) );
m_button->setText( QLatin1String( "..." ) );
+ m_copyToClipboardButton = new QToolButton( parent );
+ m_copyToClipboardButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred ) );
+ m_copyToClipboardButton->setToolTip( QLatin1String( "Copy to Clipboard" ) );
+ m_copyToClipboardButton->setIcon( QIcon( ":/caf/duplicate.svg" ) );
+
layout->addWidget( m_lineEdit );
layout->addWidget( m_button );
+ layout->addWidget( m_copyToClipboardButton );
connect( m_button, SIGNAL( clicked() ), this, SLOT( fileSelectionClicked() ) );
+ connect( m_copyToClipboardButton, SIGNAL( clicked() ), this, SLOT( copyToClipboard() ) );
connect( m_lineEdit, SIGNAL( editingFinished() ), this, SLOT( slotEditingFinished() ) );
return placeholder;
@@ -217,4 +225,16 @@ void PdmUiFilePathEditor::fileSelectionClicked()
}
}
+//--------------------------------------------------------------------------------------------------
+///
+//--------------------------------------------------------------------------------------------------
+void PdmUiFilePathEditor::copyToClipboard()
+{
+ QClipboard* clipboard = QApplication::clipboard();
+ if ( clipboard )
+ {
+ clipboard->setText( m_lineEdit->text() );
+ }
+}
+
} // end namespace caf
diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.h b/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.h
index 9049ec8d2b..8871258010 100644
--- a/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.h
+++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiFilePathEditor.h
@@ -95,11 +95,13 @@ protected:
protected slots:
void slotEditingFinished();
void fileSelectionClicked();
+ void copyToClipboard();
private:
QPointer m_lineEdit;
QPointer m_label;
QPointer m_button;
+ QPointer m_copyToClipboardButton;
PdmUiFilePathEditorAttribute m_attributes;
};