AppFwk : Allow copy of text from a file path line edit when read only

This commit is contained in:
Magne Sjaastad 2020-08-12 19:39:28 +02:00
parent beef70a791
commit bd8afb1f69
3 changed files with 27 additions and 15 deletions

View File

@ -41,6 +41,7 @@
#include "cafPdmObject.h"
#include "cafPdmUiDefaultObjectEditor.h"
#include "cafPdmUiFieldEditorHandle.h"
#include "cafPdmUiLineEditor.h"
#include "cafPdmUiOrdering.h"
#include "cafQShortenedLabel.h"
@ -65,7 +66,8 @@ void PdmUiFilePathEditor::configureAndUpdateUi( const QString& uiConfigName )
PdmUiFieldEditorHandle::updateLabelFromField( m_label, uiConfigName );
m_lineEdit->setEnabled( !uiField()->isUiReadOnly( uiConfigName ) );
PdmUiLineEditor::updateLineEditFromReadOnlyState( m_lineEdit, uiField()->isUiReadOnly( uiConfigName ) );
m_lineEdit->setToolTip( uiField()->uiToolTip( uiConfigName ) );
m_button->setEnabled( !uiField()->isUiReadOnly( uiConfigName ) );

View File

@ -63,6 +63,27 @@
namespace caf
{
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiLineEditor::updateLineEditFromReadOnlyState( QLineEdit* lineEdit, bool isReadOnly )
{
if ( !lineEdit ) return;
if ( isReadOnly )
{
lineEdit->setReadOnly( true );
lineEdit->setStyleSheet( "QLineEdit {"
"color: #808080;"
"background-color: #F0F0F0;}" );
}
else
{
lineEdit->setReadOnly( false );
lineEdit->setStyleSheet( "" );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -96,20 +117,7 @@ void PdmUiLineEditor::configureAndUpdateUi( const QString& uiConfigName )
if ( !m_lineEdit.isNull() )
{
bool isReadOnly = uiField()->isUiReadOnly( uiConfigName );
if ( isReadOnly )
{
m_lineEdit->setReadOnly( true );
m_lineEdit->setStyleSheet( "QLineEdit {"
"color: #808080;"
"background-color: #F0F0F0;}" );
}
else
{
m_lineEdit->setReadOnly( false );
m_lineEdit->setStyleSheet( "" );
}
updateLineEditFromReadOnlyState( m_lineEdit, uiField()->isUiReadOnly( uiConfigName ) );
m_lineEdit->setToolTip( uiField()->uiToolTip( uiConfigName ) );

View File

@ -123,6 +123,8 @@ public:
}
~PdmUiLineEditor() override {}
static void updateLineEditFromReadOnlyState( QLineEdit* lineEdit, bool isReadOnly );
protected:
QWidget* createEditorWidget( QWidget* parent ) override;
QWidget* createLabelWidget( QWidget* parent ) override;