summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2019-09-05 19:39:58 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2019-09-05 19:48:46 +0200
commit9a94fe7d26bfc53569317897d73d1daf0e62130f (patch)
tree06d75f2d6a9bdc45b38e73c39bb747856890ef04
parent4ee8ecd3efee742be58c1ff191e78d0de09b57b6 (diff)
Improve the `String::humanize_size()` method
- Use "B" insted of "Bytes" to be more compact - Use suffixes that denote a binary prefix - Make suffixes localizable This removes the need for the custom `EditorNetworkProfiler:_format_bandwidth()` method.
-rw-r--r--core/ustring.cpp4
-rw-r--r--editor/editor_network_profiler.cpp20
-rw-r--r--editor/editor_network_profiler.h1
3 files changed, 4 insertions, 21 deletions
diff --git a/core/ustring.cpp b/core/ustring.cpp
index 3f5e198281..fb4bd6d802 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -3285,7 +3285,7 @@ static int _humanize_digits(int p_num) {
String String::humanize_size(size_t p_size) {
uint64_t _div = 1;
- static const char *prefix[] = { " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", "" };
+ static const char *prefix[] = { " B", " KiB", " MiB", " GiB", " TiB", " PiB", " EiB", "" };
int prefix_idx = 0;
while (p_size > (_div * 1024) && prefix[prefix_idx][0]) {
@@ -3296,7 +3296,7 @@ String String::humanize_size(size_t p_size) {
int digits = prefix_idx > 0 ? _humanize_digits(p_size / _div) : 0;
double divisor = prefix_idx > 0 ? _div : 1;
- return String::num(p_size / divisor).pad_decimals(digits) + prefix[prefix_idx];
+ return String::num(p_size / divisor).pad_decimals(digits) + RTR(prefix[prefix_idx]);
}
bool String::is_abs_path() const {
diff --git a/editor/editor_network_profiler.cpp b/editor/editor_network_profiler.cpp
index 5666448887..b90fe96cee 100644
--- a/editor/editor_network_profiler.cpp
+++ b/editor/editor_network_profiler.cpp
@@ -92,22 +92,6 @@ void EditorNetworkProfiler::_clear_pressed() {
}
}
-String EditorNetworkProfiler::_format_bandwidth(int p_value) {
- String unit = "B";
- float v = p_value;
- if (v > 1073741824.0) {
- unit = "GiB";
- v /= 1073741824.0;
- } else if (v > 1048576.0) {
- unit = "MiB";
- v /= 1048576.0;
- } else if (v > 1024.0) {
- unit = "KiB";
- v /= 1024.0;
- }
- return vformat("%.1f %s/s", v, unit);
-}
-
void EditorNetworkProfiler::add_node_frame_data(const MultiplayerAPI::ProfilingInfo p_frame) {
if (!nodes_data.has(p_frame.node)) {
@@ -127,8 +111,8 @@ void EditorNetworkProfiler::add_node_frame_data(const MultiplayerAPI::ProfilingI
void EditorNetworkProfiler::set_bandwidth(int p_incoming, int p_outgoing) {
- incoming_bandwidth_text->set_text(_format_bandwidth(p_incoming));
- outgoing_bandwidth_text->set_text(_format_bandwidth(p_outgoing));
+ incoming_bandwidth_text->set_text(vformat(TTR("%s/s"), String::humanize_size(p_incoming)));
+ outgoing_bandwidth_text->set_text(vformat(TTR("%s/s"), String::humanize_size(p_outgoing)));
}
bool EditorNetworkProfiler::is_profiling() {
diff --git a/editor/editor_network_profiler.h b/editor/editor_network_profiler.h
index 5046741cbc..85fec340fd 100644
--- a/editor/editor_network_profiler.h
+++ b/editor/editor_network_profiler.h
@@ -56,7 +56,6 @@ private:
void _activate_pressed();
void _clear_pressed();
- String _format_bandwidth(int p_value);
protected:
void _notification(int p_what);