2016-12-11 23:03:06 +03:00
|
|
|
package parser
|
|
|
|
|
2017-01-08 22:14:18 +03:00
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
)
|
2016-12-11 23:03:06 +03:00
|
|
|
|
|
|
|
func (c *Class) remove() {
|
|
|
|
c.removeFunctions()
|
|
|
|
c.removeFunctions_Version()
|
|
|
|
|
|
|
|
c.removeEnums()
|
|
|
|
c.removeEnums_Version()
|
|
|
|
|
|
|
|
c.removeBases()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Class) removeFunctions() {
|
|
|
|
for i := len(c.Functions) - 1; i >= 0; i-- {
|
2016-12-14 23:12:51 +03:00
|
|
|
f := c.Functions[i]
|
|
|
|
|
|
|
|
switch {
|
|
|
|
case (f.Status == "obsolete" || f.Status == "compat") ||
|
2016-12-11 23:03:06 +03:00
|
|
|
!(f.Access == "public" || f.Access == "protected") ||
|
|
|
|
strings.ContainsAny(f.Name, "&<>=/!()[]{}^|*+-") ||
|
2016-12-14 23:12:51 +03:00
|
|
|
strings.Contains(f.Name, "Operator"):
|
|
|
|
{
|
|
|
|
c.Functions = append(c.Functions[:i], c.Functions[i+1:]...)
|
|
|
|
}
|
2016-12-11 23:03:06 +03:00
|
|
|
|
2016-12-14 23:12:51 +03:00
|
|
|
case (f.Virtual == IMPURE || f.Virtual == PURE) && f.Meta == CONSTRUCTOR:
|
|
|
|
{
|
|
|
|
c.Functions = append(c.Functions[:i], c.Functions[i+1:]...)
|
|
|
|
}
|
2016-12-11 23:03:06 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Class) removeFunctions_Version() {
|
|
|
|
for i := len(c.Functions) - 1; i >= 0; i-- {
|
|
|
|
switch c.Functions[i].Fullname {
|
|
|
|
case "QTextBrowser::isModified", "QTextBrowser::setModified":
|
|
|
|
{
|
|
|
|
c.Functions = append(c.Functions[:i], c.Functions[i+1:]...)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Class) removeEnums() {
|
|
|
|
for i := len(c.Enums) - 1; i >= 0; i-- {
|
|
|
|
if e := c.Enums[i]; (e.Status == "obsolete" || e.Status == "compat") ||
|
|
|
|
!(e.Access == "public" || e.Access == "protected") {
|
|
|
|
|
|
|
|
c.Enums = append(c.Enums[:i], c.Enums[i+1:]...)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Class) removeEnums_Version() {
|
|
|
|
for i := len(c.Enums) - 1; i >= 0; i-- {
|
|
|
|
switch c.Enums[i].ClassName() {
|
2017-01-08 22:14:18 +03:00
|
|
|
case "QCss", "QScript", "Http2":
|
2016-12-11 23:03:06 +03:00
|
|
|
{
|
|
|
|
c.Enums = append(c.Enums[:i], c.Enums[i+1:]...)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Class) removeBases() {
|
|
|
|
var bases = c.GetBases()
|
|
|
|
for i := len(bases) - 1; i >= 0; i-- {
|
2017-01-02 19:01:18 +03:00
|
|
|
if _, exists := State.ClassMap[bases[i]]; !exists {
|
2016-12-11 23:03:06 +03:00
|
|
|
bases = append(bases[:i], bases[i+1:]...)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
c.Bases = strings.Join(bases, ",")
|
|
|
|
}
|