Files
ResInsight/Fwk/AppFwk/cafProjectDataModel/cafPdmCore/cafTristate.h

54 lines
1.3 KiB
C
Raw Normal View History

#pragma once
#include <QMetaType>
class QTextStream;
namespace caf
{
//==================================================================================================
//==================================================================================================
2020-06-19 07:53:59 +02:00
class Tristate
{
public:
2020-06-19 07:53:59 +02:00
enum class State
{
False,
PartiallyTrue,
True
};
public:
Tristate();
2020-06-19 07:53:59 +02:00
void operator=( const State& state );
bool operator==( const Tristate& other ) const;
bool operator==( State state ) const;
bool operator!=( const Tristate& other ) const;
2020-06-19 07:53:59 +02:00
State state() const;
bool isTrue() const;
bool isPartiallyTrue() const;
bool isFalse() const;
QString text() const;
2020-06-19 07:53:59 +02:00
void setFromText( const QString& valueText );
protected:
State m_state;
};
} // end namespace caf
//==================================================================================================
// Overload of QTextStream for caf::Triplet
//==================================================================================================
2020-06-19 07:53:59 +02:00
QTextStream& operator>>( QTextStream& str, caf::Tristate& triplet );
QTextStream& operator<<( QTextStream& str, const caf::Tristate& triplet );
2020-06-19 07:53:59 +02:00
Q_DECLARE_METATYPE( caf::Tristate );