Still, I can't find way to modify TextEditor margins.
Core::IEditor *currentEditor = Core::EditorManager::currentEditor();
TextEditor::BaseTextEditor *textEditor = qobject_cast<TextEditor::BaseTextEditor*>(currentEditor);
TextEditor::TextEditorWidget * editorWidget = textEditor->editorWidget();
//how to do it?
Tried casting edditorWidget to class CustomTextEditorWidget : public TextEditor::TextEditorWidget with custom virtual int extraAreaWidth(int *markWidthPtr = nullptr) const override. qobject_cast fails, after static_cast there's exception.
Accessor approach
class TextEditorWidgetAccessor : public TextEditor::TextEditorWidget
{
public:
static void setMargins(TextEditor::TextEditorWidget *widget, int left, int top, int right, int bottom)
{
// Cast to accessor to get access to protected method
TextEditorWidgetAccessor *accessor = static_cast<TextEditorWidgetAccessor*>(widget);
accessor->setViewportMargins(left, top, right, bottom);
}
};
....
TextEditorWidgetAccessor::setMargins(editorWidget, 300, 0, 0, 0);
doesn't change viewportMargins - before and after setting they return the same original value.