RichEdit: Diagram, ide: Tool to convert virtual methods to override

This commit is contained in:
Mirek Fidler 2025-07-17 13:27:46 +02:00
parent e0bc0f5fd6
commit 119d4c4e5f
7 changed files with 27 additions and 4 deletions

View file

@ -593,6 +593,19 @@ void CodeEditor::MakeLineEnds()
Make(THISBACK(LineEnds));
}
void CodeEditor::ConvertToOverrides()
{
Make([](String& out) {
out.Insert(0, " ");
out.Replace("\tvirtual\t", "\t");
out.Replace("\tvirtual ", "\t");
out.Replace(" virtual\t", " ");
out.Replace(" virtual ", " ");
out.Replace(";", " override;");
out.Remove(0, 1);
});
}
void CodeEditor::MoveNextWord(bool sel) {
int64 p = GetCursor64();
int64 e = GetLength64();

View file

@ -441,6 +441,7 @@ public:
void MakeTabsOrSpaces(bool tabs);
void MakeLineEnds();
void ConvertToOverrides();
void CopyWord();
void SwapChars();

View file

@ -306,8 +306,7 @@ struct RichObjectTypeDrawingCls : public RichObjectType
virtual Value Read(const String& s) const;
virtual String Write(const Value& v) const;
struct Data
{
struct Data {
void Serialize(Stream& stream);
Drawing drawing;

View file

@ -8,6 +8,7 @@ struct RichDiagram : public RichObjectType {
virtual String Write(const Value& v) const;
virtual Size GetPhysicalSize(const Value& data) const;
virtual Size GetPixelSize(const Value& data) const;
virtual void Paint(const Value& data, Draw& w, Size sz, Color, void *) const;
virtual Image ToImage(int64, const Value& data, Size sz, Color, void *) const;

View file

@ -136,6 +136,11 @@ struct PageDraw {
class RichObject;
class Bar;
struct RichObjectPaintInfo {
void *context;
Color ink;
};
struct RichObjectType {
virtual String GetTypeName(const Value& v) const = 0;
virtual String GetCreateName() const;
@ -151,11 +156,12 @@ struct RichObjectType {
virtual Size GetDefaultSize(const Value& data, Size maxsize, void *context) const;
virtual Size GetPhysicalSize(const Value& data, void *context) const;
virtual Size GetPixelSize(const Value& data, void *context) const;
virtual void Paint(const Value& data, Draw& w, Size sz, Color ink, void *context) const;
virtual Image ToImage(int64 serial_id, const Value& data, Size sz, Color ink, void *context) const;
virtual void Menu(Bar& bar, RichObject& ex, void *context) const;
virtual void DefaultAction(RichObject& ex, void *context) const;
virtual String GetLink(const Value& data, Point pt, Size sz, void *context) const;
virtual void Paint(const Value& data, Draw& w, Size sz, Color ink, void *context) const;
virtual Image ToImage(int64 serial_id, const Value& data, Size sz, Color ink, void *context) const;
Size StdDefaultSize(const Value& data, Size maxsize, void *context) const;

View file

@ -36,6 +36,7 @@ KEY(TRANSLATESTRING, "Mark selection with t_", K_ALT_F2)
KEY(SPACESTOTABS, "Spaces to tabs", 0)
KEY(TABSTOSPACES, "Tabs to spaces", 0)
KEY(LINEENDINGS, "Remove trailing tabs and spaces", 0)
KEY(CONVERTOOVERRIDE, "Remove 'virtual', add 'override'", K_SHIFT|K_ALT_O)
KEY(DUPLICATEIT, "Duplicate line or selection", K_CTRL_D)
KEY(WORDWRAP, "Word wrap", K_ALT_W)

View file

@ -170,6 +170,8 @@ void Ide::EditSpecial(Bar& menu)
.Help("Convert all tabs to spaces");
menu.Add(b, AK_LINEENDINGS, THISBACK(EditMakeLineEnds))
.Help("Remove tabs and spaces at line endings");
menu.Add(b && editor.IsSelection(), AK_CONVERTOOVERRIDE, [=] { editor.ConvertToOverrides(); })
.Help("Convert virtual function declarations to override (removes virtual, adds override)");
menu.Add(b, AK_TRANSLATESTRING, THISBACK(TranslateString))
.Help("Mark the current selection as translated string");
menu.Add(b, AK_SWAPCHARS, THISBACK(SwapChars))