Wrap messages nicely on metrics screen

This commit is contained in:
Jack Grigg
2017-05-11 15:35:57 +12:00
parent 5b3bc9716e
commit b4f861d191

View File

@@ -10,6 +10,7 @@
#include "util.h" #include "util.h"
#include "utiltime.h" #include "utiltime.h"
#include "utilmoneystr.h" #include "utilmoneystr.h"
#include "utilstrencodings.h"
#include <boost/thread.hpp> #include <boost/thread.hpp>
#include <boost/thread/synchronized_value.hpp> #include <boost/thread/synchronized_value.hpp>
@@ -334,20 +335,19 @@ int printMessageBox(size_t cols)
int lines = 2 + u->size(); int lines = 2 + u->size();
std::cout << _("Messages:") << std::endl; std::cout << _("Messages:") << std::endl;
for (auto it = u->cbegin(); it != u->cend(); ++it) { for (auto it = u->cbegin(); it != u->cend(); ++it) {
std::cout << *it << std::endl; auto msg = FormatParagraph(*it, cols, 2);
std::cout << "- " << msg << std::endl;
// Handle newlines and wrapped lines // Handle newlines and wrapped lines
size_t i = 0; size_t i = 0;
size_t j = 0; size_t j = 0;
while (j < it->size()) { while (j < msg.size()) {
i = it->find('\n', j); i = msg.find('\n', j);
if (i == std::string::npos) { if (i == std::string::npos) {
i = it->size(); i = msg.size();
} else { } else {
// Newline // Newline
lines++; lines++;
} }
// Wrapped lines
lines += ((i-j) / cols);
j = i + 1; j = i + 1;
} }
} }