bool PMRuleEqual::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: c = v1.boolData( ) == v2.boolData( ); break; case PMVariant::ThreeState: c = v1.threeStateData( ) == v2.threeStateData( ); break; case PMVariant::Vector: kdError( PMArea ) << "RuleSystem: Equal: Can't compare vectors" << endl; break; case PMVariant::Color: kdError( PMArea ) << "RuleSystem: Equal: Can't compare colors" << endl; break; case PMVariant::ObjectPointer: kdError( PMArea ) << "RuleSystem: Equal: Can't compare object pointers" << endl; break; case PMVariant::None: kdError( PMArea ) << "RuleSystem: Equal: Value has type none" << endl; break; } return c; }