mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Add braces to C++ single-line loops and conditionals (NFC) (#2973)
This makes code easier to read and more consistent between C++ and Java. Also update clang-format settings to always add a line break (even if no braces are used).
This commit is contained in:
@@ -32,12 +32,15 @@ static std::string BooleanArrayToString(wpi::ArrayRef<int> in) {
|
||||
os << '[';
|
||||
bool first = true;
|
||||
for (auto v : in) {
|
||||
if (!first) os << ',';
|
||||
if (!first) {
|
||||
os << ',';
|
||||
}
|
||||
first = false;
|
||||
if (v)
|
||||
if (v) {
|
||||
os << "true";
|
||||
else
|
||||
} else {
|
||||
os << "false";
|
||||
}
|
||||
}
|
||||
os << ']';
|
||||
return rv;
|
||||
@@ -49,7 +52,9 @@ static std::string DoubleArrayToString(wpi::ArrayRef<double> in) {
|
||||
os << '[';
|
||||
bool first = true;
|
||||
for (auto v : in) {
|
||||
if (!first) os << ',';
|
||||
if (!first) {
|
||||
os << ',';
|
||||
}
|
||||
first = false;
|
||||
os << wpi::format("%.6f", v);
|
||||
}
|
||||
@@ -63,7 +68,9 @@ static std::string StringArrayToString(wpi::ArrayRef<std::string> in) {
|
||||
os << '[';
|
||||
bool first = true;
|
||||
for (auto&& v : in) {
|
||||
if (!first) os << ',';
|
||||
if (!first) {
|
||||
os << ',';
|
||||
}
|
||||
first = false;
|
||||
os << '"';
|
||||
os.write_escaped(v);
|
||||
@@ -99,14 +106,16 @@ NetworkTablesModel::Entry::Entry(nt::EntryNotification&& event)
|
||||
void NetworkTablesModel::Entry::UpdateValue() {
|
||||
switch (value->type()) {
|
||||
case NT_BOOLEAN:
|
||||
if (!source)
|
||||
if (!source) {
|
||||
source = std::make_unique<DataSource>(wpi::Twine{"NT:"} + name);
|
||||
}
|
||||
source->SetValue(value->GetBoolean() ? 1 : 0);
|
||||
source->SetDigital(true);
|
||||
break;
|
||||
case NT_DOUBLE:
|
||||
if (!source)
|
||||
if (!source) {
|
||||
source = std::make_unique<DataSource>(wpi::Twine{"NT:"} + name);
|
||||
}
|
||||
source->SetValue(value->GetDouble());
|
||||
source->SetDigital(false);
|
||||
break;
|
||||
@@ -136,12 +145,16 @@ void NetworkTablesModel::Update() {
|
||||
updateTree = true;
|
||||
}
|
||||
}
|
||||
if (!entry) continue;
|
||||
if (!entry) {
|
||||
continue;
|
||||
}
|
||||
if (event.flags & NT_NOTIFY_DELETE) {
|
||||
auto it = std::find(m_sortedEntries.begin(), m_sortedEntries.end(),
|
||||
entry.get());
|
||||
// will be removed completely below
|
||||
if (it != m_sortedEntries.end()) *it = nullptr;
|
||||
if (it != m_sortedEntries.end()) {
|
||||
*it = nullptr;
|
||||
}
|
||||
m_entries.erase(event.entry);
|
||||
updateTree = true;
|
||||
continue;
|
||||
@@ -156,7 +169,9 @@ void NetworkTablesModel::Update() {
|
||||
}
|
||||
|
||||
// shortcut common case (updates)
|
||||
if (!updateTree) return;
|
||||
if (!updateTree) {
|
||||
return;
|
||||
}
|
||||
|
||||
// remove deleted entries
|
||||
m_sortedEntries.erase(
|
||||
@@ -204,15 +219,22 @@ void NetworkTablesModel::Update() {
|
||||
}
|
||||
}
|
||||
|
||||
bool NetworkTablesModel::Exists() { return nt::IsConnected(m_inst); }
|
||||
bool NetworkTablesModel::Exists() {
|
||||
return nt::IsConnected(m_inst);
|
||||
}
|
||||
|
||||
static std::shared_ptr<nt::Value> StringToBooleanArray(wpi::StringRef in) {
|
||||
in = in.trim();
|
||||
if (in.empty())
|
||||
if (in.empty()) {
|
||||
return nt::NetworkTableValue::MakeBooleanArray(
|
||||
std::initializer_list<bool>{});
|
||||
if (in.front() == '[') in = in.drop_front();
|
||||
if (in.back() == ']') in = in.drop_back();
|
||||
}
|
||||
if (in.front() == '[') {
|
||||
in = in.drop_front();
|
||||
}
|
||||
if (in.back() == ']') {
|
||||
in = in.drop_back();
|
||||
}
|
||||
in = in.trim();
|
||||
|
||||
wpi::SmallVector<wpi::StringRef, 16> inSplit;
|
||||
@@ -237,11 +259,16 @@ static std::shared_ptr<nt::Value> StringToBooleanArray(wpi::StringRef in) {
|
||||
|
||||
static std::shared_ptr<nt::Value> StringToDoubleArray(wpi::StringRef in) {
|
||||
in = in.trim();
|
||||
if (in.empty())
|
||||
if (in.empty()) {
|
||||
return nt::NetworkTableValue::MakeBooleanArray(
|
||||
std::initializer_list<bool>{});
|
||||
if (in.front() == '[') in = in.drop_front();
|
||||
if (in.back() == ']') in = in.drop_back();
|
||||
}
|
||||
if (in.front() == '[') {
|
||||
in = in.drop_front();
|
||||
}
|
||||
if (in.back() == ']') {
|
||||
in = in.drop_back();
|
||||
}
|
||||
in = in.trim();
|
||||
|
||||
wpi::SmallVector<wpi::StringRef, 16> inSplit;
|
||||
@@ -265,12 +292,13 @@ static std::shared_ptr<nt::Value> StringToDoubleArray(wpi::StringRef in) {
|
||||
}
|
||||
|
||||
static int fromxdigit(char ch) {
|
||||
if (ch >= 'a' && ch <= 'f')
|
||||
if (ch >= 'a' && ch <= 'f') {
|
||||
return (ch - 'a' + 10);
|
||||
else if (ch >= 'A' && ch <= 'F')
|
||||
} else if (ch >= 'A' && ch <= 'F') {
|
||||
return (ch - 'A' + 10);
|
||||
else
|
||||
} else {
|
||||
return ch - '0';
|
||||
}
|
||||
}
|
||||
|
||||
static wpi::StringRef UnescapeString(wpi::StringRef source,
|
||||
@@ -313,11 +341,16 @@ static wpi::StringRef UnescapeString(wpi::StringRef source,
|
||||
|
||||
static std::shared_ptr<nt::Value> StringToStringArray(wpi::StringRef in) {
|
||||
in = in.trim();
|
||||
if (in.empty())
|
||||
if (in.empty()) {
|
||||
return nt::NetworkTableValue::MakeStringArray(
|
||||
std::initializer_list<std::string>{});
|
||||
if (in.front() == '[') in = in.drop_front();
|
||||
if (in.back() == ']') in = in.drop_back();
|
||||
}
|
||||
if (in.front() == '[') {
|
||||
in = in.drop_front();
|
||||
}
|
||||
if (in.back() == ']') {
|
||||
in = in.drop_back();
|
||||
}
|
||||
in = in.trim();
|
||||
|
||||
wpi::SmallVector<wpi::StringRef, 16> inSplit;
|
||||
@@ -327,7 +360,9 @@ static std::shared_ptr<nt::Value> StringToStringArray(wpi::StringRef in) {
|
||||
in.split(inSplit, ',', -1, false);
|
||||
for (auto val : inSplit) {
|
||||
val = val.trim();
|
||||
if (val.empty()) continue;
|
||||
if (val.empty()) {
|
||||
continue;
|
||||
}
|
||||
if (val.front() != '"' || val.back() != '"') {
|
||||
wpi::errs() << "GUI: NetworkTables: Could not understand value '" << val
|
||||
<< "'\n";
|
||||
@@ -341,7 +376,9 @@ static std::shared_ptr<nt::Value> StringToStringArray(wpi::StringRef in) {
|
||||
|
||||
static void EmitEntryValueReadonly(NetworkTablesModel::Entry& entry) {
|
||||
auto& val = entry.value;
|
||||
if (!val) return;
|
||||
if (!val) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (val->type()) {
|
||||
case NT_BOOLEAN:
|
||||
@@ -388,37 +425,43 @@ static char* GetTextBuffer(wpi::StringRef in) {
|
||||
|
||||
static void EmitEntryValueEditable(NetworkTablesModel::Entry& entry) {
|
||||
auto& val = entry.value;
|
||||
if (!val) return;
|
||||
if (!val) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImGui::PushID(entry.name.c_str());
|
||||
switch (val->type()) {
|
||||
case NT_BOOLEAN: {
|
||||
static const char* boolOptions[] = {"false", "true"};
|
||||
int v = val->GetBoolean() ? 1 : 0;
|
||||
if (ImGui::Combo("boolean", &v, boolOptions, 2))
|
||||
if (ImGui::Combo("boolean", &v, boolOptions, 2)) {
|
||||
nt::SetEntryValue(entry.entry, nt::NetworkTableValue::MakeBoolean(v));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NT_DOUBLE: {
|
||||
double v = val->GetDouble();
|
||||
if (ImGui::InputDouble("double", &v, 0, 0, "%.6f",
|
||||
ImGuiInputTextFlags_EnterReturnsTrue))
|
||||
ImGuiInputTextFlags_EnterReturnsTrue)) {
|
||||
nt::SetEntryValue(entry.entry, nt::NetworkTableValue::MakeDouble(v));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NT_STRING: {
|
||||
char* v = GetTextBuffer(val->GetString());
|
||||
if (ImGui::InputText("string", v, kTextBufferSize,
|
||||
ImGuiInputTextFlags_EnterReturnsTrue))
|
||||
ImGuiInputTextFlags_EnterReturnsTrue)) {
|
||||
nt::SetEntryValue(entry.entry, nt::NetworkTableValue::MakeString(v));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NT_BOOLEAN_ARRAY: {
|
||||
char* v = GetTextBuffer(entry.valueStr);
|
||||
if (ImGui::InputText("boolean[]", v, kTextBufferSize,
|
||||
ImGuiInputTextFlags_EnterReturnsTrue)) {
|
||||
if (auto outv = StringToBooleanArray(v))
|
||||
if (auto outv = StringToBooleanArray(v)) {
|
||||
nt::SetEntryValue(entry.entry, std::move(outv));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -426,8 +469,9 @@ static void EmitEntryValueEditable(NetworkTablesModel::Entry& entry) {
|
||||
char* v = GetTextBuffer(entry.valueStr);
|
||||
if (ImGui::InputText("double[]", v, kTextBufferSize,
|
||||
ImGuiInputTextFlags_EnterReturnsTrue)) {
|
||||
if (auto outv = StringToDoubleArray(v))
|
||||
if (auto outv = StringToDoubleArray(v)) {
|
||||
nt::SetEntryValue(entry.entry, std::move(outv));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -435,8 +479,9 @@ static void EmitEntryValueEditable(NetworkTablesModel::Entry& entry) {
|
||||
char* v = GetTextBuffer(entry.valueStr);
|
||||
if (ImGui::InputText("string[]", v, kTextBufferSize,
|
||||
ImGuiInputTextFlags_EnterReturnsTrue)) {
|
||||
if (auto outv = StringToStringArray(v))
|
||||
if (auto outv = StringToStringArray(v)) {
|
||||
nt::SetEntryValue(entry.entry, std::move(outv));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -463,26 +508,29 @@ static void EmitEntry(NetworkTablesModel::Entry& entry, const char* name,
|
||||
}
|
||||
ImGui::NextColumn();
|
||||
|
||||
if (flags & NetworkTablesFlags_ReadOnly)
|
||||
if (flags & NetworkTablesFlags_ReadOnly) {
|
||||
EmitEntryValueReadonly(entry);
|
||||
else
|
||||
} else {
|
||||
EmitEntryValueEditable(entry);
|
||||
}
|
||||
ImGui::NextColumn();
|
||||
|
||||
if (flags & NetworkTablesFlags_ShowFlags) {
|
||||
if ((entry.flags & NT_PERSISTENT) != 0)
|
||||
if ((entry.flags & NT_PERSISTENT) != 0) {
|
||||
ImGui::Text("Persistent");
|
||||
else if (entry.flags != 0)
|
||||
} else if (entry.flags != 0) {
|
||||
ImGui::Text("%02x", entry.flags);
|
||||
}
|
||||
ImGui::NextColumn();
|
||||
}
|
||||
|
||||
if (flags & NetworkTablesFlags_ShowTimestamp) {
|
||||
if (entry.value)
|
||||
if (entry.value) {
|
||||
ImGui::Text("%f", (entry.value->last_change() * 1.0e-6) -
|
||||
(GetZeroTime() * 1.0e-6));
|
||||
else
|
||||
} else {
|
||||
ImGui::TextUnformatted("");
|
||||
}
|
||||
ImGui::NextColumn();
|
||||
}
|
||||
ImGui::Separator();
|
||||
@@ -500,8 +548,12 @@ static void EmitTree(const std::vector<NetworkTablesModel::TreeNode>& tree,
|
||||
TreeNodeEx(node.name.c_str(), ImGuiTreeNodeFlags_SpanFullWidth);
|
||||
ImGui::NextColumn();
|
||||
ImGui::NextColumn();
|
||||
if (flags & NetworkTablesFlags_ShowFlags) ImGui::NextColumn();
|
||||
if (flags & NetworkTablesFlags_ShowTimestamp) ImGui::NextColumn();
|
||||
if (flags & NetworkTablesFlags_ShowFlags) {
|
||||
ImGui::NextColumn();
|
||||
}
|
||||
if (flags & NetworkTablesFlags_ShowTimestamp) {
|
||||
ImGui::NextColumn();
|
||||
}
|
||||
ImGui::Separator();
|
||||
if (open) {
|
||||
EmitTree(node.children, flags);
|
||||
@@ -543,7 +595,9 @@ void glass::DisplayNetworkTables(NetworkTablesModel* model,
|
||||
ImGui::Columns();
|
||||
}
|
||||
|
||||
if (!CollapsingHeader("Values", ImGuiTreeNodeFlags_DefaultOpen)) return;
|
||||
if (!CollapsingHeader("Values", ImGuiTreeNodeFlags_DefaultOpen)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const bool showFlags = (flags & NetworkTablesFlags_ShowFlags);
|
||||
@@ -551,13 +605,17 @@ void glass::DisplayNetworkTables(NetworkTablesModel* model,
|
||||
|
||||
static bool first = true;
|
||||
ImGui::Columns(2 + (showFlags ? 1 : 0) + (showTimestamp ? 1 : 0), "values");
|
||||
if (first) ImGui::SetColumnWidth(-1, 0.5f * ImGui::GetWindowWidth());
|
||||
if (first) {
|
||||
ImGui::SetColumnWidth(-1, 0.5f * ImGui::GetWindowWidth());
|
||||
}
|
||||
ImGui::Text("Name");
|
||||
ImGui::NextColumn();
|
||||
ImGui::Text("Value");
|
||||
ImGui::NextColumn();
|
||||
if (showFlags) {
|
||||
if (first) ImGui::SetColumnWidth(-1, 12 * ImGui::GetFontSize());
|
||||
if (first) {
|
||||
ImGui::SetColumnWidth(-1, 12 * ImGui::GetFontSize());
|
||||
}
|
||||
ImGui::Text("Flags");
|
||||
ImGui::NextColumn();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user