Esempio n. 1
0
void QgsComposerUtils::readDataDefinedProperty( const QgsComposerObject::DataDefinedProperty property, const QDomElement &ddElem, QMap<QgsComposerObject::DataDefinedProperty, QgsDataDefined *> *dataDefinedProperties )
{
  if ( property == QgsComposerObject::AllProperties || property == QgsComposerObject::NoProperty )
  {
    //invalid property
    return;
  }

  QMap< QgsComposerObject::DataDefinedProperty, QgsDataDefined* >::const_iterator it = dataDefinedProperties->constFind( property );

  QgsDataDefined* dd = 0;
  if ( it != dataDefinedProperties->constEnd() )
  {
    dd = it.value();
  }
  else
  {
    //QgsDataDefined for property doesn't currently exist, need to add new
    dd = new QgsDataDefined();
    dataDefinedProperties->insert( property, dd );
  }

  //set values for QgsDataDefined
  QString active = ddElem.attribute( "active" );
  if ( active.compare( "true", Qt::CaseInsensitive ) == 0 )
  {
    dd->setActive( true );
  }
  else
  {
    dd->setActive( false );
  }
  dd->setField( ddElem.attribute( "field" ) );
  dd->setExpressionString( ddElem.attribute( "expr" ) );
  QString useExpr = ddElem.attribute( "useExpr" );
  if ( useExpr.compare( "true", Qt::CaseInsensitive ) == 0 )
  {
    dd->setUseExpression( true );
  }
  else
  {
    dd->setUseExpression( false );
  }
}
Esempio n. 2
0
void TestQgsDataDefined::gettersSetters()
{
  QgsDataDefined dd;
  dd.setActive( false );
  QVERIFY( !dd.isActive() );
  dd.setActive( true );
  QVERIFY( dd.isActive() );

  dd.setUseExpression( false );
  QVERIFY( !dd.useExpression() );
  dd.setUseExpression( true );
  QVERIFY( dd.useExpression() );

  dd.setExpressionString( QString( "expression" ) );
  QCOMPARE( dd.expressionString(), QString( "expression" ) );

  dd.setField( QString( "field" ) );
  QCOMPARE( dd.field(), QString( "field" ) );
}
Esempio n. 3
0
void TestQgsDataDefined::assignment()
{
  QgsDataDefined original( true, true, QString( "sqrt(2)" ), QString( "field" ) );
  QgsDataDefined copy;
  copy = original;
  QVERIFY( copy == original );

  copy.setActive( false );
  QVERIFY( original.isActive() );
  QVERIFY( copy != original );
}
Esempio n. 4
0
void TestQgsDataDefined::expressionOrString()
{
  QgsDataDefined dd;
  dd.setActive( true );
  dd.setField( "field" );
  dd.setExpressionString( "1+col1+col2" );
  dd.setUseExpression( true );
  QCOMPARE( dd.expressionOrField(), QString( "1+col1+col2" ) );

  dd.setUseExpression( false );
  QCOMPARE( dd.expressionOrField(), QString( "\"field\"" ) );
}
Esempio n. 5
0
void TestQgsDataDefined::referencedColumns()
{
  QgsDataDefined dd;
  dd.setActive( true );
  dd.setUseExpression( true );

  QStringList cols = dd.referencedColumns();
  QVERIFY( cols.isEmpty() );

  //set as expression
  dd.setExpressionString( "1+col1+col2" );
  cols = dd.referencedColumns();
  QCOMPARE( cols.length(), 2 );
  QVERIFY( cols.contains( QString( "col1" ) ) );
  QVERIFY( cols.contains( QString( "col2" ) ) );

  //alter expression and check that referenced columns is updated
  dd.setExpressionString( "1+col1+col2+col3" );
  cols = dd.referencedColumns();
  QCOMPARE( cols.length(), 3 );
  QVERIFY( cols.contains( QString( "col1" ) ) );
  QVERIFY( cols.contains( QString( "col2" ) ) );
  QVERIFY( cols.contains( QString( "col3" ) ) );

  //switch to field
  dd.setUseExpression( false );
  cols = dd.referencedColumns();
  QVERIFY( cols.isEmpty() );

  dd.setField( "field" );
  cols = dd.referencedColumns();
  QCOMPARE( cols.length(), 1 );
  QVERIFY( cols.contains( QString( "field" ) ) );

  //switch back to expression
  dd.setUseExpression( true );
  cols = dd.referencedColumns();
  QCOMPARE( cols.length(), 3 );
  QVERIFY( cols.contains( QString( "col1" ) ) );
  QVERIFY( cols.contains( QString( "col2" ) ) );
  QVERIFY( cols.contains( QString( "col3" ) ) );
}
Esempio n. 6
0
void TestQgsDataDefined::defaultValues()
{
  QgsDataDefined* dd = new QgsDataDefined();
  QVERIFY( dd->hasDefaultValues() );
  dd->setActive( true );
  QVERIFY( !dd->hasDefaultValues() );
  delete dd;
  dd = new QgsDataDefined();
  dd->setUseExpression( true );
  QVERIFY( !dd->hasDefaultValues() );
  delete dd;
  dd = new QgsDataDefined();
  dd->setExpressionString( QString( "expression" ) );
  QVERIFY( !dd->hasDefaultValues() );
  delete dd;
  dd = new QgsDataDefined();
  dd->setField( QString( "field" ) );
  QVERIFY( !dd->hasDefaultValues() );
  delete dd;
}