Index: src/plugins/scale_bar/plugin.cpp =================================================================== --- src/plugins/scale_bar/plugin.cpp (revisão 7706) +++ src/plugins/scale_bar/plugin.cpp (cópia de trabalho) @@ -162,7 +162,7 @@ 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; }; @@ -237,42 +237,61 @@ 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