LCOV - code coverage report
Current view: top level - core/layout - qgslayoutmeasurementconverter.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 0 92 0.0 %
Date: 2021-03-26 12:19:53 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /***************************************************************************
       2                 :            :                          qgslayoutmeasurementconverter.cpp
       3                 :            :                          ---------------------------------
       4                 :            :     begin                : June 2017
       5                 :            :     copyright            : (C) 2017 by Nyall Dawson
       6                 :            :     email                : nyall dot dawson at gmail dot com
       7                 :            :  ***************************************************************************/
       8                 :            : 
       9                 :            : /***************************************************************************
      10                 :            :  *                                                                         *
      11                 :            :  *   This program is free software; you can redistribute it and/or modify  *
      12                 :            :  *   it under the terms of the GNU General Public License as published by  *
      13                 :            :  *   the Free Software Foundation; either version 2 of the License, or     *
      14                 :            :  *   (at your option) any later version.                                   *
      15                 :            :  *                                                                         *
      16                 :            :  ***************************************************************************/
      17                 :            : 
      18                 :            : #include "qgslayoutmeasurementconverter.h"
      19                 :            : 
      20                 :            : 
      21                 :          0 : QgsLayoutMeasurement QgsLayoutMeasurementConverter::convert( const QgsLayoutMeasurement measurement, const QgsUnitTypes::LayoutUnit targetUnits ) const
      22                 :            : {
      23                 :          0 :   if ( measurement.units() == targetUnits )
      24                 :            :   {
      25                 :          0 :     return measurement;
      26                 :            :   }
      27                 :            : 
      28                 :          0 :   switch ( targetUnits )
      29                 :            :   {
      30                 :            :     case QgsUnitTypes::LayoutMillimeters:
      31                 :          0 :       return QgsLayoutMeasurement( convertToMillimeters( measurement ), QgsUnitTypes::LayoutMillimeters );
      32                 :            :     case QgsUnitTypes::LayoutCentimeters:
      33                 :          0 :       return QgsLayoutMeasurement( convertToCentimeters( measurement ), QgsUnitTypes::LayoutCentimeters );
      34                 :            :     case QgsUnitTypes::LayoutMeters:
      35                 :          0 :       return QgsLayoutMeasurement( convertToMeters( measurement ), QgsUnitTypes::LayoutMeters );
      36                 :            :     case QgsUnitTypes::LayoutInches:
      37                 :          0 :       return QgsLayoutMeasurement( convertToInches( measurement ), QgsUnitTypes::LayoutInches );
      38                 :            :     case QgsUnitTypes::LayoutFeet:
      39                 :          0 :       return QgsLayoutMeasurement( convertToFeet( measurement ), QgsUnitTypes::LayoutFeet );
      40                 :            :     case QgsUnitTypes::LayoutPoints:
      41                 :          0 :       return QgsLayoutMeasurement( convertToPoints( measurement ), QgsUnitTypes::LayoutPoints );
      42                 :            :     case QgsUnitTypes::LayoutPicas:
      43                 :          0 :       return QgsLayoutMeasurement( convertToPicas( measurement ), QgsUnitTypes::LayoutPicas );
      44                 :            :     case QgsUnitTypes::LayoutPixels:
      45                 :          0 :       return QgsLayoutMeasurement( convertToPixels( measurement ), QgsUnitTypes::LayoutPixels );
      46                 :            :   }
      47                 :            : 
      48                 :            :   //will never be reached, but required to prevent warnings
      49                 :          0 :   return QgsLayoutMeasurement( convertToMillimeters( measurement ), QgsUnitTypes::LayoutMillimeters );
      50                 :          0 : }
      51                 :            : 
      52                 :          0 : QgsLayoutSize QgsLayoutMeasurementConverter::convert( const QgsLayoutSize &size, const QgsUnitTypes::LayoutUnit targetUnits ) const
      53                 :            : {
      54                 :          0 :   if ( size.units() == targetUnits )
      55                 :            :   {
      56                 :          0 :     return size;
      57                 :            :   }
      58                 :            : 
      59                 :          0 :   QgsLayoutSize result( size );
      60                 :          0 :   result.setUnits( targetUnits );
      61                 :          0 :   QgsLayoutMeasurement width = QgsLayoutMeasurement( size.width(), size.units() );
      62                 :          0 :   QgsLayoutMeasurement height = QgsLayoutMeasurement( size.height(), size.units() );
      63                 :          0 :   switch ( targetUnits )
      64                 :            :   {
      65                 :            :     case QgsUnitTypes::LayoutMillimeters:
      66                 :          0 :       result.setSize( convertToMillimeters( width ), convertToMillimeters( height ) );
      67                 :          0 :       break;
      68                 :            :     case QgsUnitTypes::LayoutCentimeters:
      69                 :          0 :       result.setSize( convertToCentimeters( width ), convertToCentimeters( height ) );
      70                 :          0 :       break;
      71                 :            :     case QgsUnitTypes::LayoutMeters:
      72                 :          0 :       result.setSize( convertToMeters( width ), convertToMeters( height ) );
      73                 :          0 :       break;
      74                 :            :     case QgsUnitTypes::LayoutInches:
      75                 :          0 :       result.setSize( convertToInches( width ), convertToInches( height ) );
      76                 :          0 :       break;
      77                 :            :     case QgsUnitTypes::LayoutFeet:
      78                 :          0 :       result.setSize( convertToFeet( width ), convertToFeet( height ) );
      79                 :          0 :       break;
      80                 :            :     case QgsUnitTypes::LayoutPoints:
      81                 :          0 :       result.setSize( convertToPoints( width ), convertToPoints( height ) );
      82                 :          0 :       break;
      83                 :            :     case QgsUnitTypes::LayoutPicas:
      84                 :          0 :       result.setSize( convertToPicas( width ), convertToPicas( height ) );
      85                 :          0 :       break;
      86                 :            :     case QgsUnitTypes::LayoutPixels:
      87                 :          0 :       result.setSize( convertToPixels( width ), convertToPixels( height ) );
      88                 :          0 :       break;
      89                 :            :   }
      90                 :          0 :   return result;
      91                 :          0 : }
      92                 :            : 
      93                 :          0 : QgsLayoutPoint QgsLayoutMeasurementConverter::convert( const QgsLayoutPoint &point, const QgsUnitTypes::LayoutUnit targetUnits ) const
      94                 :            : {
      95                 :          0 :   if ( point.units() == targetUnits )
      96                 :            :   {
      97                 :          0 :     return point;
      98                 :            :   }
      99                 :            : 
     100                 :          0 :   QgsLayoutPoint result( point );
     101                 :          0 :   result.setUnits( targetUnits );
     102                 :          0 :   QgsLayoutMeasurement x = QgsLayoutMeasurement( point.x(), point.units() );
     103                 :          0 :   QgsLayoutMeasurement y = QgsLayoutMeasurement( point.y(), point.units() );
     104                 :          0 :   switch ( targetUnits )
     105                 :            :   {
     106                 :            :     case QgsUnitTypes::LayoutMillimeters:
     107                 :          0 :       result.setPoint( convertToMillimeters( x ), convertToMillimeters( y ) );
     108                 :          0 :       break;
     109                 :            :     case QgsUnitTypes::LayoutCentimeters:
     110                 :          0 :       result.setPoint( convertToCentimeters( x ), convertToCentimeters( y ) );
     111                 :          0 :       break;
     112                 :            :     case QgsUnitTypes::LayoutMeters:
     113                 :          0 :       result.setPoint( convertToMeters( x ), convertToMeters( y ) );
     114                 :          0 :       break;
     115                 :            :     case QgsUnitTypes::LayoutInches:
     116                 :          0 :       result.setPoint( convertToInches( x ), convertToInches( y ) );
     117                 :          0 :       break;
     118                 :            :     case QgsUnitTypes::LayoutFeet:
     119                 :          0 :       result.setPoint( convertToFeet( x ), convertToFeet( y ) );
     120                 :          0 :       break;
     121                 :            :     case QgsUnitTypes::LayoutPoints:
     122                 :          0 :       result.setPoint( convertToPoints( x ), convertToPoints( y ) );
     123                 :          0 :       break;
     124                 :            :     case QgsUnitTypes::LayoutPicas:
     125                 :          0 :       result.setPoint( convertToPicas( x ), convertToPicas( y ) );
     126                 :          0 :       break;
     127                 :            :     case QgsUnitTypes::LayoutPixels:
     128                 :          0 :       result.setPoint( convertToPixels( x ), convertToPixels( y ) );
     129                 :          0 :       break;
     130                 :            :   }
     131                 :          0 :   return result;
     132                 :          0 : }
     133                 :            : 
     134                 :          0 : double QgsLayoutMeasurementConverter::convertToMillimeters( const QgsLayoutMeasurement measurement ) const
     135                 :            : {
     136                 :          0 :   switch ( measurement.units() )
     137                 :            :   {
     138                 :            :     case QgsUnitTypes::LayoutMillimeters:
     139                 :          0 :       return measurement.length();
     140                 :            :     case QgsUnitTypes::LayoutCentimeters:
     141                 :          0 :       return measurement.length() * 10.0;
     142                 :            :     case QgsUnitTypes::LayoutMeters:
     143                 :          0 :       return measurement.length() * 1000.0;
     144                 :            :     case QgsUnitTypes::LayoutInches:
     145                 :          0 :       return measurement.length() * 25.4;
     146                 :            :     case QgsUnitTypes::LayoutFeet:
     147                 :          0 :       return measurement.length() * 304.8;
     148                 :            :     case QgsUnitTypes::LayoutPoints:
     149                 :          0 :       return measurement.length() * 0.352777778;
     150                 :            :     case QgsUnitTypes::LayoutPicas:
     151                 :          0 :       return measurement.length() * 4.23333333;
     152                 :            :     case QgsUnitTypes::LayoutPixels:
     153                 :          0 :       return measurement.length() * 25.4 / mDpi;
     154                 :            :   }
     155                 :            : 
     156                 :            :   //will never be reached, but required to prevent warnings
     157                 :          0 :   return measurement.length();
     158                 :          0 : }
     159                 :            : 
     160                 :          0 : double QgsLayoutMeasurementConverter::convertToCentimeters( const QgsLayoutMeasurement measurement ) const
     161                 :            : {
     162                 :          0 :   return convertToMillimeters( measurement ) / 10.0;
     163                 :            : }
     164                 :            : 
     165                 :          0 : double QgsLayoutMeasurementConverter::convertToMeters( const QgsLayoutMeasurement measurement ) const
     166                 :            : {
     167                 :          0 :   return convertToMillimeters( measurement ) / 1000.0;
     168                 :            : }
     169                 :            : 
     170                 :          0 : double QgsLayoutMeasurementConverter::convertToInches( const QgsLayoutMeasurement measurement ) const
     171                 :            : {
     172                 :          0 :   return convertToMillimeters( measurement ) / 25.4;
     173                 :            : }
     174                 :            : 
     175                 :          0 : double QgsLayoutMeasurementConverter::convertToFeet( const QgsLayoutMeasurement measurement ) const
     176                 :            : {
     177                 :          0 :   return convertToMillimeters( measurement ) / 304.8;
     178                 :            : }
     179                 :            : 
     180                 :          0 : double QgsLayoutMeasurementConverter::convertToPoints( const QgsLayoutMeasurement measurement ) const
     181                 :            : {
     182                 :          0 :   return convertToMillimeters( measurement ) * 2.83464567;
     183                 :            : }
     184                 :            : 
     185                 :          0 : double QgsLayoutMeasurementConverter::convertToPicas( const QgsLayoutMeasurement measurement ) const
     186                 :            : {
     187                 :          0 :   return convertToMillimeters( measurement ) * 0.236220472;
     188                 :            : }
     189                 :            : 
     190                 :          0 : double QgsLayoutMeasurementConverter::convertToPixels( const QgsLayoutMeasurement measurement ) const
     191                 :            : {
     192                 :          0 :   return convertToMillimeters( measurement ) * mDpi / 25.4;
     193                 :            : }

Generated by: LCOV version 1.14