Skip to content

Commit

Permalink
Fix for #846 - No miles / inches display in scale bar
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.osgeo.org/qgis/trunk@7741 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
timlinux committed Dec 7, 2007
1 parent 7c0a653 commit a3be3c2
Showing 1 changed file with 56 additions and 37 deletions.
93 changes: 56 additions & 37 deletions src/plugins/scale_bar/plugin.cpp
Expand Up @@ -162,7 +162,7 @@ void QgsScaleBarPlugin::run()
switch (myUnits)
{
case 0: myPluginGui->getSpinSize()->setSuffix(tr(" metres/km")); break;
case 1: myPluginGui->getSpinSize()->setSuffix(tr(" feet")); break;
case 1: myPluginGui->getSpinSize()->setSuffix(tr(" feet/miles")); break;
case 2: myPluginGui->getSpinSize()->setSuffix(tr(" degrees")); break;
default: std::cout << "Error: not picked up map units - actual value = " << myUnits << std::endl;
};
Expand Down Expand Up @@ -237,42 +237,61 @@ void QgsScaleBarPlugin::renderScaleBar(QPainter * theQPainter)
QString myScaleBarUnitLabel;
switch (myMapUnits)
{
case QGis::METERS:
if (myActualSize > 1000.0)
{
myScaleBarUnitLabel=tr(" km");
myActualSize = myActualSize/1000;
}
else if (myActualSize < 0.01)
{
myScaleBarUnitLabel=tr(" mm");
myActualSize = myActualSize*1000;
}
else if (myActualSize < 0.1)
{
myScaleBarUnitLabel=tr(" cm");
myActualSize = myActualSize*100;
}
else
myScaleBarUnitLabel=tr(" m");
break;
case QGis::FEET:
if (myActualSize == 1.0)
myScaleBarUnitLabel=tr(" foot");
else
myScaleBarUnitLabel=tr(" feet");
break;
case QGis::DEGREES:
if (myActualSize == 1.0)
myScaleBarUnitLabel=tr(" degree");
else
myScaleBarUnitLabel=tr(" degrees");
break;
case QGis::UNKNOWN:
myScaleBarUnitLabel=tr(" unknown");
default:
std::cout << "Error: not picked up map units - actual value = "
<< myMapUnits << std::endl;
case QGis::METERS:
if (myActualSize > 1000.0)
{
myScaleBarUnitLabel=tr(" km");
myActualSize = myActualSize/1000;
}
else if (myActualSize < 0.01)
{
myScaleBarUnitLabel=tr(" mm");
myActualSize = myActualSize*1000;
}
else if (myActualSize < 0.1)
{
myScaleBarUnitLabel=tr(" cm");
myActualSize = myActualSize*100;
}
else
myScaleBarUnitLabel=tr(" m");
break;
case QGis::FEET:
if (myActualSize > 5280.0) //5280 feet to the mile
{
myScaleBarUnitLabel=tr(" miles");
myActualSize = myActualSize/5280;
}
else if (myActualSize == 5280.0) //5280 feet to the mile
{
myScaleBarUnitLabel=tr(" mile");
myActualSize = myActualSize/5280;
}
else if (myActualSize < 1)
{
myScaleBarUnitLabel=tr(" inches");
myActualSize = myActualSize*12;
}
else if (myActualSize == 1.0)
{
myScaleBarUnitLabel=tr(" foot");
}
else
{
myScaleBarUnitLabel=tr(" feet");
}
break;
case QGis::DEGREES:
if (myActualSize == 1.0)
myScaleBarUnitLabel=tr(" degree");
else
myScaleBarUnitLabel=tr(" degrees");
break;
case QGis::UNKNOWN:
myScaleBarUnitLabel=tr(" unknown");
default:
std::cout << "Error: not picked up map units - actual value = "
<< myMapUnits << std::endl;
};

//Set font and calculate width of unit label
Expand Down

0 comments on commit a3be3c2

Please sign in to comment.