mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-29 05:22:25 -04:00
Scale engine: fixed tick text size calculation
This commit is contained in:
parent
c786e3f6f9
commit
8102d0ed08
@ -281,7 +281,7 @@ double ScaleEngine::calcMajorTickUnits(double distance, int* retDecimalPlaces)
|
|||||||
return sign * base * pow(10.0, exponent);
|
return sign * base * pow(10.0, exponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScaleEngine::calcTickTextSize()
|
int ScaleEngine::calcTickTextSize(double distance)
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
int tickLen;
|
int tickLen;
|
||||||
@ -295,7 +295,7 @@ int ScaleEngine::calcTickTextSize()
|
|||||||
if(tmp > tickLen)
|
if(tmp > tickLen)
|
||||||
tickLen = tmp;
|
tickLen = tmp;
|
||||||
|
|
||||||
calcMajorTickUnits((m_rangeMax - m_rangeMin) / m_scale, &decimalPlaces);
|
calcMajorTickUnits(distance, &decimalPlaces);
|
||||||
|
|
||||||
return tickLen + decimalPlaces + 1;
|
return tickLen + decimalPlaces + 1;
|
||||||
}
|
}
|
||||||
@ -356,21 +356,24 @@ void ScaleEngine::reCalc()
|
|||||||
rangeMinScaled = m_rangeMin / m_scale;
|
rangeMinScaled = m_rangeMin / m_scale;
|
||||||
rangeMaxScaled = m_rangeMax / m_scale;
|
rangeMaxScaled = m_rangeMax / m_scale;
|
||||||
|
|
||||||
if(m_orientation == Qt::Vertical) {
|
if(m_orientation == Qt::Vertical)
|
||||||
|
{
|
||||||
maxNumMajorTicks = (int)(m_size / (fontMetrics.lineSpacing() * 1.3f));
|
maxNumMajorTicks = (int)(m_size / (fontMetrics.lineSpacing() * 1.3f));
|
||||||
|
m_majorTickValueDistance = calcMajorTickUnits((rangeMaxScaled - rangeMinScaled) / maxNumMajorTicks, &m_decimalPlaces);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
majorTickSize = (calcTickTextSize() + 2) * m_charSize * 1.2f;
|
majorTickSize = (calcTickTextSize((rangeMaxScaled - rangeMinScaled) / 20) + 2) * m_charSize;
|
||||||
|
|
||||||
if(majorTickSize != 0.0) {
|
if(majorTickSize != 0.0) {
|
||||||
maxNumMajorTicks = (int)(m_size / majorTickSize);
|
maxNumMajorTicks = (int)(m_size / majorTickSize);
|
||||||
} else {
|
} else {
|
||||||
maxNumMajorTicks = 20;
|
maxNumMajorTicks = 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_majorTickValueDistance = calcMajorTickUnits((rangeMaxScaled - rangeMinScaled) / maxNumMajorTicks, &m_decimalPlaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_majorTickValueDistance = calcMajorTickUnits((rangeMaxScaled - rangeMinScaled) / maxNumMajorTicks, &m_decimalPlaces);
|
|
||||||
numMajorTicks = (int)((rangeMaxScaled - rangeMinScaled) / m_majorTickValueDistance);
|
numMajorTicks = (int)((rangeMaxScaled - rangeMinScaled) / m_majorTickValueDistance);
|
||||||
|
|
||||||
if(numMajorTicks == 0) {
|
if(numMajorTicks == 0) {
|
||||||
|
@ -62,7 +62,7 @@ private:
|
|||||||
void calcCharSize();
|
void calcCharSize();
|
||||||
void calcScaleFactor();
|
void calcScaleFactor();
|
||||||
double calcMajorTickUnits(double distance, int* retDecimalPlaces);
|
double calcMajorTickUnits(double distance, int* retDecimalPlaces);
|
||||||
int calcTickTextSize();
|
int calcTickTextSize(double distance);
|
||||||
void forceTwoTicks();
|
void forceTwoTicks();
|
||||||
void reCalc();
|
void reCalc();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user