From e16141c9aa87714e2e4e9357d0a60f8eb3e22faf Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Mon, 6 Feb 2017 12:39:42 -0600 Subject: Tweak output formatting of save_all_bindings_as_html --- libs/gtkmm2ext/bindings.cc | 79 +++++++++++++++++++++---------------- libs/gtkmm2ext/gtkmm2ext/bindings.h | 2 +- 2 files changed, 45 insertions(+), 36 deletions(-) diff --git a/libs/gtkmm2ext/bindings.cc b/libs/gtkmm2ext/bindings.cc index 0b03eeef15..5098b9399e 100644 --- a/libs/gtkmm2ext/bindings.cc +++ b/libs/gtkmm2ext/bindings.cc @@ -782,60 +782,60 @@ Bindings::save_all_bindings_as_html (ostream& ostr) ostr << PROGRAM_NAME; ostr << "\n"; - - ostr << "\n"; - ostr << "\n\n"; - ostr << "
\n"; + ostr << "\n\n"; + ostr << "\n\n"; + + /* first column: separate by group */ + ostr << "\n\n"; + //second column + ostr << "\n\n"; + + + ostr << "\n\n"; + ostr << "
\n\n"; + for (list::const_iterator b = bindings.begin(); b != bindings.end(); ++b) { + (*b)->save_as_html (ostr, true); + } + ostr << "\n\n"; for (list::const_iterator b = bindings.begin(); b != bindings.end(); ++b) { - (*b)->save_as_html (ostr); + (*b)->save_as_html (ostr, false); } + ostr << "
\n\n"; - ostr << "
\n"; ostr << "\n"; ostr << "\n"; } void -Bindings::save_as_html (ostream& ostr) const +Bindings::save_as_html (ostream& ostr, bool categorize) const { if (!press_bindings.empty()) { - ostr << "
\n"; - ostr << "

"; - ostr << name(); - ostr << "

\n\n"; - - /* first pass: separate by group */ + ostr << "

"; + if (categorize) + ostr << _("Window") << ": " << name() << _(" (Categorized)"); + else + ostr << _("Window") << ": " << name() << _(" (Alphabetical)"); + ostr << "

\n\n"; typedef std::map > GroupMap; GroupMap group_map; for (KeybindingMap::const_iterator k = press_bindings.begin(); k != press_bindings.end(); ++k) { + if (k->first.name().empty()) { continue; } string group_name; - if (!k->second.group_name.empty()) { + if (categorize && !k->second.group_name.empty()) { group_name = k->second.group_name; } else { - group_name = X_("nogroup"); + group_name = _("Uncategorized"); } GroupMap::iterator gm = group_map.find (group_name); @@ -848,11 +848,13 @@ Bindings::save_as_html (ostream& ostr) const } } + for (GroupMap::const_iterator gm = group_map.begin(); gm != group_map.end(); ++gm) { - ostr << "
\n"; - ostr << "
" << gm->first << "
\n"; - + if (categorize) { + ostr << "

" << gm->first << "

\n"; + } + for (vector::const_iterator k = gm->second.begin(); k != gm->second.end(); ++k) { if ((*k)->first.name().empty()) { @@ -875,6 +877,7 @@ Bindings::save_as_html (ostream& ostr) const string key_name = (*k)->first.native_short_name (); replace_all (key_name, X_("KP_"), X_("Numpad ")); + replace_all (key_name, X_("nabla"), X_("Tab")); string::size_type pos; @@ -900,14 +903,20 @@ Bindings::save_as_html (ostream& ostr) const key_name.replace (pos, strlen (targets[n]), replacements[n]); } } + + key_name.append(" "); - ostr << "
" << key_name << "
"; - ostr << "
" << action->get_label() << "
\n"; + while (key_name.length()<28) + key_name.append("-"); + + ostr << "" << key_name; + ostr << "" << action->get_label() << "
\n"; } - ostr << "
\n\n"; - } + ostr << "\n\n"; - ostr << "
\n"; + } + + ostr << "\n"; } } diff --git a/libs/gtkmm2ext/gtkmm2ext/bindings.h b/libs/gtkmm2ext/gtkmm2ext/bindings.h index f4e71f89b2..f92a3a518f 100644 --- a/libs/gtkmm2ext/gtkmm2ext/bindings.h +++ b/libs/gtkmm2ext/gtkmm2ext/bindings.h @@ -186,7 +186,7 @@ class LIBGTKMM2EXT_API Bindings { bool load (XMLNode const& node); void load_operation (XMLNode const& node); void save (XMLNode& root); - void save_as_html (std::ostream&) const; + void save_as_html (std::ostream&, bool) const; /* GTK has the following position a Gtk::Action: * -- cgit v1.2.3