|
Zbigniew Jędrzejewski-Szmek |
930e1b |
From 319b9f00eb3d84744453ae70bf9c89c37131124b Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Date: Fri, 1 Nov 2013 22:57:47 +0100
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Subject: [PATCH] analyze: plot: place the text on the side with most space
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Set the width of the svg to always fit the longest string
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
while taking its starting position into consideration.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Place the text on the right while the starting point is
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
in the first half of the screen. After that we put it on
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
the left to save the svg from being wider that it has to.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
---
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/analyze/systemd-analyze.c | 29 +++++++++++++++++------------
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
1 file changed, 17 insertions(+), 12 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 9a69795..f4c7f68 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/analyze/systemd-analyze.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/analyze/systemd-analyze.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -462,7 +462,7 @@ static int analyze_plot(DBusConnection *bus) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
m++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
for (u = times; u < times + n; u++) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- double len;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ double text_start, text_width;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (u->ixt < boot->userspace_time ||
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
u->ixt > boot->finish_time) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -470,10 +470,14 @@ static int analyze_plot(DBusConnection *bus) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
u->name = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- len = ((boot->firmware_time + u->ixt) * SCALE_X)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- + (10.0 * strlen(u->name));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (len > width)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- width = len;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ /* If the text cannot fit on the left side then
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ * increase the svg width so it fits on the right.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ * TODO: calculate the text width more accurately */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ text_width = 8.0 * strlen(u->name);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ text_start = (boot->firmware_time + u->ixt) * SCALE_X;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (text_width > text_start && text_width + text_start > width)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ width = text_width + text_start;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (u->iet > u->ixt && u->iet <= boot->finish_time
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
&& u->aet == 0 && u->axt == 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -561,7 +565,7 @@ static int analyze_plot(DBusConnection *bus) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("active", boot->userspace_time, boot->finish_time, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("generators", boot->generators_start_time, boot->generators_finish_time, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("unitsload", boot->unitsload_start_time, boot->unitsload_finish_time, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- svg_text("left", boot->userspace_time, y, "systemd");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ svg_text(true, boot->userspace_time, y, "systemd");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
for (u = times; u < times + n; u++) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -575,7 +579,8 @@ static int analyze_plot(DBusConnection *bus) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("active", u->aet, u->axt, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("deactivating", u->axt, u->iet, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- b = u->ixt * SCALE_X > width * 2 / 3;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ /* place the text on the left if we have passed the half of the svg width */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ b = u->ixt * SCALE_X < width / 2;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (u->time)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_text(b, u->ixt, y, "%s (%s)",
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
u->name, format_timespan(ts, sizeof(ts), u->time, USEC_PER_MSEC));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -587,19 +592,19 @@ static int analyze_plot(DBusConnection *bus) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
/* Legend */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("activating", 0, 300000, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- svg_text("right", 400000, y, "Activating");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ svg_text(true, 400000, y, "Activating");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("active", 0, 300000, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- svg_text("right", 400000, y, "Active");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ svg_text(true, 400000, y, "Active");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("deactivating", 0, 300000, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- svg_text("right", 400000, y, "Deactivating");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ svg_text(true, 400000, y, "Deactivating");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("generators", 0, 300000, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- svg_text("right", 400000, y, "Generators");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ svg_text(true, 400000, y, "Generators");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg_bar("unitsload", 0, 300000, y);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- svg_text("right", 400000, y, "Loading unit files");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ svg_text(true, 400000, y, "Loading unit files");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
y++;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
svg("</g>\n\n");
|