[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/koffice/1.6/koffice/kchart
From: Karl-Heinz Zimmer <khz () klaralvdalens-datakonsult ! se>
Date: 2006-10-31 22:37:50
Message-ID: 1162334270.358253.24966.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 600814 by khz:
fixing KDE Bug #124601: Working around a bug in the KChartWizardLabelsLegendPage: \
The wizard does not have a checkbox [x] relative for the font sizes, so we now \
assume that font sizes are relative in all cases. We also have inclreased the \
default values for minimal font sizes, so that small, embedded charts will show small \
axis labels rather than 10 point size labels ...
M +14 -8 kchartWizardLabelsLegendPage.cc
M +7 -5 kchart_params.cc
M +2 -0 kdchart/KDChartAxesPainter.cpp
M +2 -2 kdchart/KDChartAxisParams.cpp
M +17 -12 kdchart/KDChartPainter.cpp
M +1 -0 kdchart/KDChartPainter.h
M +4 -4 kdchart/KDChartParams.cpp
--- branches/koffice/1.6/koffice/kchart/kchartWizardLabelsLegendPage.cc \
#600813:600814 @@ -301,16 +301,18 @@
// _chart->params()->YTitle2Color=y_color2;
// _chart->params()->ytitle2=_ylabel2ED->text();
- _chart->params()->setHeaderFooterColor( \
KDChartParams::HdFtPosHeader,title_color);
- _chart->params()->setHeader1Font(title);
+ _chart->params()->setHeaderFooterColor( KDChartParams::HdFtPosHeader, \
title_color ); + _chart->params()->setHeaderFooterFont( \
KDChartParams::HdFtPosHeader, title, true, title.pointSize()*4 );
_chart->params()->setAxisTitle( KDChartAxisParams::AxisPosBottom, \
_xlabelED->text() );
_chart->params()->setAxisTitle( KDChartAxisParams::AxisPosLeft, \
_ylabelED->text() );
_chart->params()->setLegendTitleText(_legendTitleText->text());
_chart->params()->setLegendTitleTextColor(_legendTitleColor);
- _chart->params()->setLegendTitleFont(_legendTitleFont,true);
+ _chart->params()->setLegendTitleFont( _legendTitleFont,false);
+ _chart->params()->setLegendTitleFontRelSize( _legendTitleFont.pointSize()*4 );
_chart->params()->setLegendTextColor(_legendTextColor);
- _chart->params()->setLegendFont( _legendTextFont,true);
+ _chart->params()->setLegendFont( _legendTextFont,false);
+ _chart->params()->setLegendFontRelSize( _legendTextFont.pointSize()*4 );
KDChartAxisParams leftparams;
leftparams = _chart->params()->axisParams( KDChartAxisParams::AxisPosLeft );
@@ -320,10 +322,14 @@
bottomparams.setAxisLineColor( x_color );
if( y_color.isValid() )
leftparams.setAxisLineColor( y_color );
- if(bottomparams.axisLabelsFont()!=xlabel)
- bottomparams.setAxisLabelsFont(xlabel,false);
- if(leftparams.axisLabelsFont()!=ylabel)
- leftparams.setAxisLabelsFont(ylabel,true);
+ if(bottomparams.axisLabelsFont()!=xlabel){
+ bottomparams.setAxisLabelsFont( xlabel,false );
+ bottomparams.setAxisLabelsFontRelSize( xlabel.pointSize()*4 );
+ }
+ if(leftparams.axisLabelsFont()!=ylabel){
+ leftparams.setAxisLabelsFont( ylabel,false );
+ leftparams.setAxisLabelsFontRelSize( ylabel.pointSize()*4 );
+ }
_chart->params()->setAxisParams( KDChartAxisParams::AxisPosBottom, bottomparams \
);
_chart->params()->setAxisParams( KDChartAxisParams::AxisPosLeft, leftparams );
--- branches/koffice/1.6/koffice/kchart/kchart_params.cc #600813:600814
@@ -266,7 +266,7 @@
QFont font;
QColor color;
loadOasisFont( loadingContext, font, color );
- setHeaderFooterFont( KDChartParams::HdFtPosHeader, font, true, \
font.pointSize() ); + setHeaderFooterFont( KDChartParams::HdFtPosHeader, font, \
true, font.pointSize()*4 ); setHeaderFooterColor( KDChartParams::HdFtPosHeader, \
color ); loadingContext.styleStack().restore();
@@ -284,7 +284,7 @@
QFont font;
QColor color;
loadOasisFont( loadingContext, font, color );
- setHeaderFooterFont( KDChartParams::HdFtPosHeader2, font, true, \
font.pointSize() ); + setHeaderFooterFont( KDChartParams::HdFtPosHeader2, \
font, true, font.pointSize()*4 ); setHeaderFooterColor( \
KDChartParams::HdFtPosHeader2, color ); loadingContext.styleStack().restore();
@@ -302,7 +302,7 @@
QFont font;
QColor color;
loadOasisFont( loadingContext, font, color );
- setHeaderFooterFont( KDChartParams::HdFtPosFooter, font, true, \
font.pointSize() ); + setHeaderFooterFont( KDChartParams::HdFtPosFooter, font, \
true, font.pointSize()*4 ); setHeaderFooterColor( KDChartParams::HdFtPosFooter, \
color ); loadingContext.styleStack().restore();
@@ -322,8 +322,10 @@
QColor color;
loadOasisFont( loadingContext, font, color );
//tz I didn't find that Oasis support seperate font/colors for the title and \
the rest of the legent
- setLegendFont( font, true );
- setLegendTitleFont( font, true );
+ setLegendFont( font, false );
+ setLegendFontRelSize( font.pointSize()*4 );
+ setLegendTitleFont( font, false);
+ setLegendTitleFontRelSize( font.pointSize()*4 );
setLegendTextColor( color );
setLegendTitleTextColor( color );
loadingContext.styleStack().restore();
--- branches/koffice/1.6/koffice/kchart/kdchart/KDChartAxesPainter.cpp #600813:600814
@@ -174,6 +174,7 @@
{
uint iAxis;
double averageValueP1000 = QMIN(areaWidthP1000, areaHeightP1000);//( \
areaWidthP1000 + areaHeightP1000 ) / 2.0; + \
//qDebug("KChart::KDChartAxesPainter::calculateAllAxesLabelTextsAndCalcValues() \
averageValueP1000: %f", averageValueP1000); // length of little delimiter-marks \
indicating axis scaling delimLen = 20.0 * averageValueP1000; // per mille of area
@@ -538,6 +539,7 @@
// calculate font size
const double minTextHeight = para.axisLabelsFontMinSize();
+ //qDebug("KChart::KDChartAxesPainter::paintAxes() cv.nTxtHeight: %f \
minTextHeight: %f", cv.nTxtHeight, minTextHeight); if ( minTextHeight > \
cv.nTxtHeight ) cv.nTxtHeight = minTextHeight;
QFont actFont( para.axisLabelsFont() );
--- branches/koffice/1.6/koffice/kchart/kdchart/KDChartAxisParams.cpp #600813:600814
@@ -171,8 +171,8 @@
_axisLabelsFont = QFont( "helvetica", 12,
QFont::Normal, false );
_axisLabelsFontUseRelSize = true;
- _axisLabelsFontRelSize = 17;
- _axisLabelsFontMinSize = 10;
+ _axisLabelsFontRelSize = 32;
+ _axisLabelsFontMinSize = 6;
_axisLabelsDontShrinkFont = false;
_axisLabelsDontAutoRotate = false;
_axisLabelsRotation = 0;
--- branches/koffice/1.6/koffice/kchart/kdchart/KDChartPainter.cpp #600813:600814
@@ -1349,6 +1349,19 @@
params()->legendPosition() == KDChartParams::LegendBottomRightRight;
}
+QFont KDChartPainter::trueLegendTitleFont() const
+{
+ const double averageValueP1000 = QMIN(_areaWidthP1000, _areaHeightP1000);//( \
_areaWidthP1000 + _areaHeightP1000 ) / 2.0; + QFont font( \
params()->legendTitleFont() ); + if ( params()->legendTitleFontUseRelSize() ) {
+ int nTxtHeight =
+ static_cast < int > ( params()->legendTitleFontRelSize()
+ * averageValueP1000 );
+ font.setPixelSize( nTxtHeight );
+ // qDebug("l-t-height %i",nTxtHeight);
+ }
+ return font;
+}
/**
Paints the legend for the chart. The implementation in KDChartPainter
@@ -1399,7 +1412,7 @@
// first paint the title, if any
if( _legendTitle ) {
- painter->setFont( params()->legendTitleFont() );
+ painter->setFont( trueLegendTitleFont() );
_legendTitle->draw( painter,
xpos,
ypos,
@@ -2225,22 +2238,14 @@
delete _legendTitle;
_legendTitle = 0;
if ( hasLegendTitle ) {
- QFont actLegendTitleFont = params()->legendTitleFont();
- if ( params()->legendTitleFontUseRelSize() ) {
- int nTxtHeight =
- static_cast < int > ( params()->legendTitleFontRelSize()
- * averageValueP1000 );
- actLegendTitleFont.setPixelSize( nTxtHeight );
- // qDebug("l-t-height %i",nTxtHeight);
- const_cast < KDChartParams* > ( params() )->setLegendTitleFont( \
actLegendTitleFont, false );
- }
- painter->setFont( actLegendTitleFont );
+ const QFont font( trueLegendTitleFont() );
+ painter->setFont( font );
QFontMetrics legendTitleMetrics( painter->fontMetrics() );
_legendTitleMetricsHeight = legendTitleMetrics.height();
_legendTitle = new KDChartTextPiece( painter,
params()->legendTitleText(),
- actLegendTitleFont );
+ font );
_legendTitleWidth = _legendTitle->width();
_legendTitleHeight = _legendTitle->height();
// qDebug("1. _legendTitleHeight %i",_legendTitleHeight);
--- branches/koffice/1.6/koffice/kchart/kdchart/KDChartPainter.h #600813:600814
@@ -271,6 +271,7 @@
const KDChartParams::KDChartFrameSettings* settings ) \
const;
int legendTitleVertGap() const;
+ QFont trueLegendTitleFont() const;
QFont trueLegendFont() const;
void calculateHorizontalLegendSize( QPainter* painter,
QSize& size,
--- branches/koffice/1.6/koffice/kchart/kdchart/KDChartParams.cpp #600813:600814
@@ -351,9 +351,9 @@
// legend font size is calculated dynamically, but ignore the font size
setLegendFont( QFont( "helvetica", 10, QFont::Normal, false ), false );
// legend font size is calculated dynamically:
- // 20 / 1000 of the average value of
+ // 40 / 1000 of the minimal value of
// the printable area height and width
- setLegendFontRelSize( 16 );
+ setLegendFontRelSize( 40 );
// the default legend title is "Legend"
setLegendTitleText( tr( "Legend" ) );
// legend title is drawn in black by default
@@ -362,9 +362,9 @@
// the font size
setLegendTitleFont( QFont( "helvetica", 12, QFont::Normal, false ), false );
// legend title font size is calculated dynamically:
- // 25 / 1000 of the average value of
+ // 50 / 1000 of the minimal value of
// the printable area height and width
- setLegendTitleFontRelSize( 20 );
+ setLegendTitleFontRelSize( 50 );
// END LEGEND
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic