PyAPI: use C/RNA API for Text.from_string/to_string
Use faster C code for getting the buffer from text.
This commit is contained in:
parent
1032f111d0
commit
231eac160e
Notes:
blender-bot
2023-02-14 05:36:11 +01:00
Referenced by commit f4ff36431c
, Fix text.as_string() adding a trailing new-line
|
@ -580,15 +580,6 @@ class MeshPolygon(StructRNA):
|
|||
class Text(bpy_types.ID):
|
||||
__slots__ = ()
|
||||
|
||||
def as_string(self):
|
||||
"""Return the text as a string."""
|
||||
return "\n".join(line.body for line in self.lines)
|
||||
|
||||
def from_string(self, string):
|
||||
"""Replace text with this string."""
|
||||
self.clear()
|
||||
self.write(string)
|
||||
|
||||
def as_module(self):
|
||||
import bpy
|
||||
from os.path import splitext, join
|
||||
|
|
|
@ -32,6 +32,17 @@ static void rna_Text_write(Text *text, const char *str)
|
|||
WM_main_add_notifier(NC_TEXT | NA_EDITED, text);
|
||||
}
|
||||
|
||||
static void rna_Text_from_string(Text *text, const char *str)
|
||||
{
|
||||
BKE_text_clear(text);
|
||||
BKE_text_write(text, str);
|
||||
}
|
||||
|
||||
static void rna_Text_as_string(Text *text, int *r_result_len, const char **result)
|
||||
{
|
||||
*result = txt_to_buf(text, r_result_len);
|
||||
}
|
||||
|
||||
static void rna_Text_select_set(Text *text, int startl, int startc, int endl, int endc)
|
||||
{
|
||||
txt_sel_set(text, startl, startc, endl, endc);
|
||||
|
@ -60,6 +71,16 @@ void RNA_api_text(StructRNA *srna)
|
|||
parm = RNA_def_string(func, "text", "Text", 0, "", "New text for this data-block");
|
||||
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
||||
|
||||
func = RNA_def_function(srna, "from_string", "rna_Text_from_string");
|
||||
RNA_def_function_ui_description(func, "Replace text with this string.");
|
||||
parm = RNA_def_string(func, "text", "Text", 0, "", "");
|
||||
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
||||
|
||||
func = RNA_def_function(srna, "as_string", "rna_Text_as_string");
|
||||
RNA_def_function_ui_description(func, "Return the text as a string");
|
||||
parm = RNA_def_string(func, "text", "Text", 0, "", "");
|
||||
RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_OUTPUT);
|
||||
|
||||
func = RNA_def_function(
|
||||
srna, "is_syntax_highlight_supported", "ED_text_is_syntax_highlight_supported");
|
||||
RNA_def_function_return(func,
|
||||
|
|
Loading…
Reference in New Issue