コード例 #1
0
QVariant QgsGraduatedSymbolRendererV2Model::data( const QModelIndex &index, int role ) const
{
  if ( !index.isValid() || !mRenderer ) return QVariant();

  const QgsRendererRangeV2 range = mRenderer->ranges().value( index.row() );

  if ( role == Qt::CheckStateRole && index.column() == 0 )
  {
    return range.renderState() ? Qt::Checked : Qt::Unchecked;
  }
  else if ( role == Qt::DisplayRole || role == Qt::ToolTipRole )
  {
    switch ( index.column() )
    {
      case 1:
      {
        int decimalPlaces = mRenderer->labelFormat().precision() + 2;
        if ( decimalPlaces < 0 ) decimalPlaces = 0;
        return QString::number( range.lowerValue(), 'f', decimalPlaces ) + " - " + QString::number( range.upperValue(), 'f', decimalPlaces );
      }
      case 2:
        return range.label();
      default:
        return QVariant();
    }
  }
  else if ( role == Qt::DecorationRole && index.column() == 0 && range.symbol() )
  {
    return QgsSymbolLayerV2Utils::symbolPreviewIcon( range.symbol(), QSize( 16, 16 ) );
  }
  else if ( role == Qt::TextAlignmentRole )
  {
    return ( index.column() == 0 ) ? Qt::AlignHCenter : Qt::AlignLeft;
  }
  else if ( role == Qt::EditRole )
  {
    switch ( index.column() )
    {
        // case 1: return rangeStr;
      case 2:
        return range.label();
      default:
        return QVariant();
    }
  }

  return QVariant();
}
コード例 #2
0
QVariant QgsGraduatedSymbolRendererV2Model::data( const QModelIndex &index, int role ) const
{
    if ( !index.isValid() || !mRenderer ) return QVariant();

    const QgsRendererRangeV2 range = mRenderer->ranges().value( index.row() );
    QString rangeStr = QString::number( range.lowerValue(), 'f', 4 ) + " - " + QString::number( range.upperValue(), 'f', 4 );

    if ( role == Qt::DisplayRole || role == Qt::ToolTipRole )
    {
        switch ( index.column() )
        {
        case 1:
            return rangeStr;
        case 2:
            return range.label();
        default:
            return QVariant();
        }
    }
    else if ( role == Qt::DecorationRole && index.column() == 0 && range.symbol() )
    {
        return QgsSymbolLayerV2Utils::symbolPreviewIcon( range.symbol(), QSize( 16, 16 ) );
    }
    else if ( role == Qt::TextAlignmentRole )
    {
        return ( index.column() == 0 ) ? Qt::AlignHCenter : Qt::AlignLeft;
    }
    else if ( role == Qt::EditRole )
    {
        switch ( index.column() )
        {
        case 1:
            return rangeStr;
        case 2:
            return range.label();
        default:
            return QVariant();
        }
    }

    return QVariant();
}
コード例 #3
0
bool QgsRendererRangeV2::operator<( const QgsRendererRangeV2 &other ) const
{
  return
    lowerValue() < other.lowerValue() ||
    ( lowerValue() == other.lowerValue() && upperValue() < other.upperValue() );
}
コード例 #4
0
QString QgsRendererRangeV2LabelFormat::labelForRange( const QgsRendererRangeV2 &range ) const
{
  return labelForRange( range.lowerValue(), range.upperValue() );
}
コード例 #5
0
static bool _rangesByLower( const QgsRendererRangeV2& a, const QgsRendererRangeV2& b )
{
  return a.lowerValue() < b.lowerValue() ? -1 : 0;
}