diff options
Diffstat (limited to 'core/doc_data.h')
-rw-r--r-- | core/doc_data.h | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/core/doc_data.h b/core/doc_data.h index 19dec71927..db83dda8aa 100644 --- a/core/doc_data.h +++ b/core/doc_data.h @@ -70,18 +70,29 @@ public: Vector<int> errors_returned; bool operator<(const MethodDoc &p_method) const { if (name == p_method.name) { - // Must be a constructor since there is no overloading. - // We want this arbitrary order for a class "Foo": - // - 1. Default constructor: Foo() - // - 2. Copy constructor: Foo(Foo) - // - 3+. Other constructors Foo(Bar, ...) based on first argument's name - if (arguments.size() == 0 || p_method.arguments.size() == 0) { // 1. + // Must be an operator or a constructor since there is no other overloading + if (name.left(8) == "operator") { + if (arguments.size() == p_method.arguments.size()) { + if (arguments.size() == 0) { + return false; + } + return arguments[0].type < p_method.arguments[0].type; + } return arguments.size() < p_method.arguments.size(); + } else { + // Must be a constructor + // We want this arbitrary order for a class "Foo": + // - 1. Default constructor: Foo() + // - 2. Copy constructor: Foo(Foo) + // - 3+. Other constructors Foo(Bar, ...) based on first argument's name + if (arguments.size() == 0 || p_method.arguments.size() == 0) { // 1. + return arguments.size() < p_method.arguments.size(); + } + if (arguments[0].type == return_type || p_method.arguments[0].type == p_method.return_type) { // 2. + return (arguments[0].type == return_type) || (p_method.arguments[0].type != p_method.return_type); + } + return arguments[0] < p_method.arguments[0]; } - if (arguments[0].type == return_type || p_method.arguments[0].type == p_method.return_type) { // 2. - return (arguments[0].type == return_type) || (p_method.arguments[0].type != p_method.return_type); - } - return arguments[0] < p_method.arguments[0]; } return name < p_method.name; } @@ -112,6 +123,7 @@ public: String setter, getter; String default_value; bool overridden = false; + String overrides; bool operator<(const PropertyDoc &p_prop) const { return name < p_prop.name; } @@ -124,7 +136,11 @@ public: String description; String default_value; bool operator<(const ThemeItemDoc &p_theme_item) const { - return name < p_theme_item.name; + // First sort by the data type, then by name. + if (data_type == p_theme_item.data_type) { + return name < p_theme_item.name; + } + return data_type < p_theme_item.data_type; } }; @@ -140,7 +156,9 @@ public: String brief_description; String description; Vector<TutorialDoc> tutorials; + Vector<MethodDoc> constructors; Vector<MethodDoc> methods; + Vector<MethodDoc> operators; Vector<MethodDoc> signals; Vector<ConstantDoc> constants; Map<String, String> enums; |