ui: language dependent symbol name delimiter

* implemented symbol delimiter as static field of NameHierarchy which is set when a project is created.
This commit is contained in:
malte_langkabel
2016-08-18 15:22:25 +02:00
parent c269493942
commit 9255d45b94
8 changed files with 76 additions and 46 deletions
+11 -4
View File
@@ -37,6 +37,11 @@ NameHierarchy NameHierarchy::deserialize(const std::string& serializedName)
return nameHierarchy;
}
void NameHierarchy::setDelimiter(const std::string& delimiter)
{
s_delimiter = delimiter;
}
NameHierarchy::NameHierarchy()
{
}
@@ -87,23 +92,23 @@ size_t NameHierarchy::size() const
return m_elements.size();
}
std::string NameHierarchy::getQualifiedName(const std::string& delimiter) const
std::string NameHierarchy::getQualifiedName() const
{
std::string name;
for (size_t i = 0; i < m_elements.size(); i++)
{
if (i > 0)
{
name += delimiter;
name += s_delimiter;
}
name += m_elements[i]->getName();
}
return name;
}
std::string NameHierarchy::getQualifiedNameWithSignature(const std::string& delimiter) const
std::string NameHierarchy::getQualifiedNameWithSignature() const
{
std::string name = getQualifiedName(delimiter);
std::string name = getQualifiedName();
if (m_elements.size())
{
name = m_elements.back()->getSignature().qualifyName(name); // todo: use separator for signature!
@@ -128,3 +133,5 @@ std::string NameHierarchy::getRawNameWithSignature() const
}
return "";
}
std::string NameHierarchy::s_delimiter = "@";
+5 -2
View File
@@ -12,6 +12,7 @@ class NameHierarchy
public:
static std::string serialize(NameHierarchy nameHierarchy);
static NameHierarchy deserialize(const std::string& serializedName);
static void setDelimiter(const std::string& delimiter);
NameHierarchy();
NameHierarchy(const std::string& name);
@@ -24,12 +25,14 @@ public:
std::shared_ptr<NameElement> operator[](size_t pos) const;
size_t size() const;
std::string getQualifiedName(const std::string& delimiter = "::") const;
std::string getQualifiedNameWithSignature(const std::string& delimiter = "::") const;
std::string getQualifiedName() const;
std::string getQualifiedNameWithSignature() const;
std::string getRawName() const;
std::string getRawNameWithSignature() const;
private:
static std::string s_delimiter;
std::vector<std::shared_ptr<NameElement>> m_elements;
};