With a existing 't' hotkey, support the three view based on percent,
total period and number of samples on the annotate TUI browser,
circulating them like below:

  Percent -> Period -> Samples -> Percent ...

Suggested-by: Namhyung Kim <namhy...@kernel.org>
Cc: Milian Wolff <milian.wo...@kdab.com>
Cc: Jiri Olsa <jo...@redhat.com>
Signed-off-by: Taeung Song <treeze.tae...@gmail.com>
---
 tools/perf/ui/browsers/annotate.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/tools/perf/ui/browsers/annotate.c 
b/tools/perf/ui/browsers/annotate.c
index faca1b9..e82e6c5 100644
--- a/tools/perf/ui/browsers/annotate.c
+++ b/tools/perf/ui/browsers/annotate.c
@@ -835,7 +835,7 @@ static int annotate_browser__run(struct annotate_browser 
*browser,
                "n             Search next string\n"
                "o             Toggle disassembler output/simplified view\n"
                "s             Toggle source code view\n"
-               "t             Toggle total period view\n"
+               "t             Circulate percent, total period, samples view\n"
                "/             Search string\n"
                "k             Toggle line numbers\n"
                "r             Run available scripts\n"
@@ -912,8 +912,19 @@ static int annotate_browser__run(struct annotate_browser 
*browser,
                        }
                        continue;
                case 't':
-                       annotate_browser__opts.show_total_period =
-                         !annotate_browser__opts.show_total_period;
+                       if (annotate_browser__opts.show_total_period) {
+                               annotate_browser__opts.show_total_period = 
false;
+                               annotate_browser__opts.show_nr_samples = true;
+                       } else if (annotate_browser__opts.show_nr_samples)
+                               annotate_browser__opts.show_nr_samples = false;
+                       else
+                               annotate_browser__opts.show_total_period = true;
+                       annotate_browser__update_addr_width(browser);
+                       continue;
+               case 'e':
+                       annotate_browser__opts.show_total_period = false;
+                       annotate_browser__opts.show_nr_samples =
+                               !annotate_browser__opts.show_nr_samples;
                        annotate_browser__update_addr_width(browser);
                        continue;
                case K_LEFT:
-- 
2.7.4

Reply via email to