mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7636 Native CheckBox : Simplify use of native checkbox
This commit is contained in:
parent
e36420163a
commit
fa0ca687cd
@ -58,8 +58,8 @@ void PdmUiCheckBoxEditor::configureAndUpdateUi( const QString& uiConfigName )
|
|||||||
CAF_ASSERT( !m_checkBox.isNull() );
|
CAF_ASSERT( !m_checkBox.isNull() );
|
||||||
CAF_ASSERT( !m_label.isNull() );
|
CAF_ASSERT( !m_label.isNull() );
|
||||||
|
|
||||||
PdmUiCheckBoxEditorAttribute attributes;
|
PdmUiCheckBoxEditorAttribute attributes = defaultAttributes();
|
||||||
caf::PdmUiObjectHandle* uiObject = uiObj( uiField()->fieldHandle()->ownerObject() );
|
caf::PdmUiObjectHandle* uiObject = uiObj( uiField()->fieldHandle()->ownerObject() );
|
||||||
if ( uiObject )
|
if ( uiObject )
|
||||||
{
|
{
|
||||||
uiObject->editorAttribute( uiField()->fieldHandle(), uiConfigName, &attributes );
|
uiObject->editorAttribute( uiField()->fieldHandle(), uiConfigName, &attributes );
|
||||||
@ -112,4 +112,50 @@ void PdmUiCheckBoxEditor::slotClicked( bool checked )
|
|||||||
this->setValueToField( v );
|
this->setValueToField( v );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
PdmUiCheckBoxEditorAttribute PdmUiCheckBoxEditor::defaultAttributes() const
|
||||||
|
{
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// PdmUiNativeCheckBoxEditor
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==================================================================================================
|
||||||
|
|
||||||
|
CAF_PDM_UI_FIELD_EDITOR_SOURCE_INIT( PdmUiNativeCheckBoxEditor );
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void PdmUiNativeCheckBoxEditor::configureFieldForEditor( caf::PdmFieldHandle* fieldHandle )
|
||||||
|
{
|
||||||
|
if ( !fieldHandle ) return;
|
||||||
|
|
||||||
|
if ( auto uiCap = fieldHandle->uiCapability() )
|
||||||
|
{
|
||||||
|
uiCap->setUiEditorTypeName( caf::PdmUiNativeCheckBoxEditor::uiEditorTypeName() );
|
||||||
|
|
||||||
|
// Hide the editor label, as the label is managed by the native checkbox
|
||||||
|
uiCap->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
PdmUiCheckBoxEditorAttribute PdmUiNativeCheckBoxEditor::defaultAttributes() const
|
||||||
|
{
|
||||||
|
PdmUiCheckBoxEditorAttribute attributes;
|
||||||
|
|
||||||
|
attributes.m_useNativeCheckBoxLabel = true;
|
||||||
|
|
||||||
|
return attributes;
|
||||||
|
}
|
||||||
|
|
||||||
} // end namespace caf
|
} // end namespace caf
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
//##################################################################################################
|
//##################################################################################################
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "cafPdmUiFieldEditorHandle.h"
|
#include "cafPdmUiFieldEditorHandle.h"
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
@ -45,9 +46,8 @@
|
|||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
/// The default editor for several PdmFields.
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
|
|
||||||
class PdmUiCheckBoxEditorAttribute : public PdmUiEditorAttribute
|
class PdmUiCheckBoxEditorAttribute : public PdmUiEditorAttribute
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -57,6 +57,14 @@ public:
|
|||||||
bool m_useNativeCheckBoxLabel;
|
bool m_useNativeCheckBoxLabel;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
//
|
||||||
|
// Checkbox editor used to display default Qt checkbox
|
||||||
|
// On Windows, the default behavior is like this
|
||||||
|
//
|
||||||
|
// "some text as label" [x]
|
||||||
|
//
|
||||||
|
//==================================================================================================
|
||||||
class PdmUiCheckBoxEditor : public PdmUiFieldEditorHandle
|
class PdmUiCheckBoxEditor : public PdmUiFieldEditorHandle
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -74,9 +82,34 @@ protected:
|
|||||||
protected slots:
|
protected slots:
|
||||||
void slotClicked( bool checked );
|
void slotClicked( bool checked );
|
||||||
|
|
||||||
|
virtual PdmUiCheckBoxEditorAttribute defaultAttributes() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPointer<QCheckBox> m_checkBox;
|
QPointer<QCheckBox> m_checkBox;
|
||||||
QPointer<QShortenedLabel> m_label;
|
QPointer<QShortenedLabel> m_label;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
//
|
||||||
|
// Check box editor used to display native checkbox
|
||||||
|
// On Windows, the default behavior to show the checkbox to the left of the label text
|
||||||
|
//
|
||||||
|
// [x] "some text as label"
|
||||||
|
//
|
||||||
|
//==================================================================================================
|
||||||
|
class PdmUiNativeCheckBoxEditor : public PdmUiCheckBoxEditor
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
CAF_PDM_UI_FIELD_EDITOR_HEADER_INIT;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PdmUiNativeCheckBoxEditor() = default;
|
||||||
|
~PdmUiNativeCheckBoxEditor() override = default;
|
||||||
|
|
||||||
|
static void configureFieldForEditor( caf::PdmFieldHandle* fieldHandle );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
PdmUiCheckBoxEditorAttribute defaultAttributes() const override;
|
||||||
|
};
|
||||||
|
|
||||||
} // end namespace caf
|
} // end namespace caf
|
||||||
|
Loading…
Reference in New Issue
Block a user