| Summary: | Interpret axis as time doesn't display all of the time info | ||
|---|---|---|---|
| Product: | [Applications] kst | Reporter: | Matthew Truch <matt> |
| Component: | general | Assignee: | Netterfield <netterfield> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | kst |
| Priority: | HI | ||
| Version First Reported In: | 1.x | ||
| Target Milestone: | --- | ||
| Platform: | Fedora RPMs | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Screen shot showing problem | ||
|
Description
Matthew Truch
2005-10-21 18:46:43 UTC
This is fixed, right? Created attachment 13165 [details]
Screen shot showing problem
No, it's still not fixed (as of svn 474555 which is 2 hours ago today). Barth
indicated he is still working on it. I have attached a plot showing exactly
what I'm talking about (the x axis is in C time and I have it set to display as
YYYY-MM-DD HH:SS).
I know that it is not fixed, and it is next on my list. SVN commit 475402 by netterfield:
CCBUG: 114826
Make offset tick label mode work again...
M +19 -19 kst2dplot.cpp
M +1 -1 kst2dplot.h
--- trunk/extragear/graphics/kst/kst/kst2dplot.cpp #475401:475402
@@ -1968,10 +1968,10 @@
// calculate offsets if we are using delta values
if (tpx.delta && tpxLabelCount > 0 && tpy.delta && tpyLabelCount > 0) {
_fullTickLabel->setRotation(270);
- yFullTickLabelWidth = _fullTickLabel->size().width();
+// yFullTickLabelWidth = _fullTickLabel->size().width();
_fullTickLabel->setRotation(0);
int xLabelWidth = _xLabel->size().width();
- int yLabelWidth = _yLabel->size().width();
+ int yLabelHeight = _yLabel->size().height();
if (xFullTickLabelWidth + xleft_bdr_px + _fullTickLabel->lineSpacing() >= (x_px - xLabelWidth)/2.0) {
ybot_bdr_px += _fullTickLabel->lineSpacing();
@@ -1979,7 +1979,7 @@
} else if (_fullTickLabel->lineSpacing() > _xLabel->lineSpacing()) {
ybot_bdr_px += _fullTickLabel->lineSpacing() - _xLabel->lineSpacing();
}
- if (yFullTickLabelWidth + ybot_bdr_px >= (y_px - yLabelWidth)/2.0) {
+ if (yFullTickLabelWidth + ybot_bdr_px >= (y_px - yLabelHeight)/2.0) {
xleft_bdr_px += _fullTickLabel->lineSpacing();
bOffsetY = true;
} else if (_fullTickLabel->lineSpacing() > _yLabel->lineSpacing()) {
@@ -1994,8 +1994,8 @@
ybot_bdr_px += _fullTickLabel->lineSpacing() - _xLabel->lineSpacing();
}
} else if (tpy.delta && tpyLabelCount > 0) {
- int yLabelWidth = _yLabel->size().width();
- if (yFullTickLabelWidth + ybot_bdr_px >= (y_px - yLabelWidth)/2.0) {
+ int yLabelHeight = _yLabel->size().height();
+ if (yFullTickLabelWidth + ybot_bdr_px >= (y_px - yLabelHeight)/2.0) {
xleft_bdr_px += _fullTickLabel->lineSpacing();
bOffsetY = true;
} else if (_fullTickLabel->lineSpacing() > _yLabel->lineSpacing()) {
@@ -2464,7 +2464,7 @@
plotAxes(p, RelPlotRegion,
tpx, xleft_bdr_px, xright_bdr_px, x_orig_px, xtick_px, xtick_len_px, x_px,
tpy, ytop_bdr_px, ybot_bdr_px, y_orig_px, ytick_px, ytick_len_px, y_px,
- offsetX, offsetY);
+ offsetY);
#ifdef BENCHMARK
bt_label[i_bt] = "Plot Axes";
bt[i_bt++] = benchTime.elapsed();
@@ -5455,7 +5455,7 @@
double ytop_bdr_px, double ybot_bdr_px,
double y_orig_px, double ytick_px,
double ytick_len_px, int y_px,
- bool offsetX, bool offsetY) {
+ bool offsetY) {
QString TmpStr, TmpStrOld;
double X1, Y1;
double X2, Y2;
@@ -5610,29 +5610,27 @@
// x axis numbers
if (!_suppressBottom) {
+ int yTickPos = d2i(y_px - ybot_bdr_px + _xTickLabel->lineSpacing()*0.15);
+ if (xTicksOutPlot()) {
+ yTickPos += d2i(2.0 * xtick_len_px);
+ }
+
if (tpx.delta && !tpx.labels.isEmpty()) {
_fullTickLabel->setText(tpx.labels[0]);
p.save();
- if (offsetX && !_xLabel->text().isEmpty()) {
- p.translate(d2i(xleft_bdr_px) - _fullTickLabel->size().width() / 2, d2i(y_px) - _xLabel->lineSpacing());
- } else {
- p.translate(d2i(xleft_bdr_px) - _fullTickLabel->size().width() / 2, d2i(y_px));
- }
+ p.translate(d2i(xleft_bdr_px), yTickPos+_xTickLabel->size().height());
_fullTickLabel->paint(p);
p.restore();
tpx.labels.pop_front();
}
- int yTickPos = d2i(y_px - ybot_bdr_px + _xTickLabel->lineSpacing()*0.15);
- if (xTicksOutPlot()) {
- yTickPos += d2i(2.0 * xtick_len_px);
- }
+
// FIXME: inefficient. We keep reparsing and re-rendering tpx.labels[.]
for (i = tpx.iLo; i < tpx.iHi; i++) {
double xTickPos = x_orig_px + (double)i * xtick_px;
if (_xReversed) {
xTickPos = x_px - xright_bdr_px - (xTickPos - xleft_bdr_px);
}
-
+
_xTickLabel->setText(tpx.labels[i - tpx.iLo]);
if (_xTickLabel->rotation() == 0) {
p.save();
@@ -5678,11 +5676,13 @@
if (!_suppressLeft) {
if (tpy.delta && !tpy.labels.isEmpty()) {
_fullTickLabel->setText(tpy.labels[0]);
+ _fullTickLabel->setRotation(270);
p.save();
if (offsetY && !_yLabel->text().isEmpty()) {
- p.translate(_fullTickLabel->lineSpacing(), d2i(y_px - ybot_bdr_px) + _fullTickLabel->size().height());
+ printf("offsetY\n");
+ p.translate(_yLabel->lineSpacing(), d2i(y_px - ybot_bdr_px) - _fullTickLabel->size().height());
} else {
- p.translate(0, d2i(y_px - ybot_bdr_px) + _fullTickLabel->size().height() / 2);
+ p.translate(0, d2i(y_px-ybot_bdr_px)-_fullTickLabel->size().height());
}
_fullTickLabel->paint(p);
p.restore();
--- trunk/extragear/graphics/kst/kst/kst2dplot.h #475401:475402
@@ -583,7 +583,7 @@
double ytop_bdr_px, double ybot_bdr_px,
double y_orig_px, double ytick_px,
double ytick_len_px, int y_px,
- bool offsetX, bool offsetY);
+ bool offsetY);
void plotGridLines(QPainter& p,
double XTick, double xleft_bdr_px, double xright_bdr_px,
double x_orig_px, double xtick_px, double xtick_len_px, int x_px,
I meant to close this last night... |