PMVariant PMRuleProperty::evaluate( const PMObject* o ) { PMVariant v = o->property( m_property ); if( v.isNull( ) ) kdError( PMArea ) << "RuleSystem: Invalid property name: " << m_property << endl; return v; }
bool PMRuleGreater::compare( const PMVariant& v1, const PMVariant& v2 ) { bool c = false; switch( v1.dataType( ) ) { case PMVariant::Integer: c = v1.intData( ) > v2.intData( ); break; case PMVariant::Unsigned: c = v1.unsignedData( ) > v2.unsignedData( ); break; case PMVariant::Double: c = v1.doubleData( ) > v2.doubleData( ); break; case PMVariant::String: c = v1.stringData( ) > v2.stringData( ); break; case PMVariant::Bool: kdError( PMArea ) << "RuleSystem: Greater: Can't compare booleans" << endl; break; case PMVariant::ThreeState: kdError( PMArea ) << "RuleSystem: Greater: Can't compare ThreeStates" << endl; break; case PMVariant::Vector: kdError( PMArea ) << "RuleSystem: Greater: Can't compare vectors" << endl; break; case PMVariant::Color: kdError( PMArea ) << "RuleSystem: Greater: Can't compare colors" << endl; break; case PMVariant::ObjectPointer: kdError( PMArea ) << "RuleSystem: Greater: Can't compare object pointers" << endl; break; case PMVariant::None: kdError( PMArea ) << "RuleSystem: Greater: Value has type none" << endl; break; } return c; }
virtual bool setProtected( PMObject* obj, const PMVariant& var ) { PMTextureMapBase* m = ( PMTextureMapBase* ) obj; QValueList<double> list = m->mapValues( ); QValueList<double>::Iterator it = list.at( m_index ); if( it == list.end( ) ) { kdError( PMArea ) << "Range error in PMTextureMapBase::ValueProperty::set" << endl; return false; } *it = var.doubleData( ); m->setMapValues( list ); return true; }