Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Save() of an custom editor

(1/2) > >>

Florianx:
Hi,
I'm trying to write an editor plug-in.
I have overloaded EditorBase and implemented the functions GetModified(), SetModified() and Save().
If I close an modified file, Save() is called correctly.
If I modify the file, the save-icon and the menu entry get enabled correctly.
But if I click on the icon, the menu entry or press Ctrl+S, Save() is not called.

I have found the reason for that: its EditorManager::SaveActive():

--- Code: ---bool EditorManager::SaveActive()
{
    SANITY_CHECK(false);
    cbEditor* ed = GetBuiltinEditor(GetActiveEditor());
if (ed)
return ed->Save();
return true;
}

--- End code ---
Why do you call GetBuiltinEditor() here?
It's completely unnecessary here, because Save() is an virtual function of EditorBase.
if you change the function to:

--- Code: ---bool EditorManager::SaveActive()
{
    SANITY_CHECK(false);
    EditorBase* ed = GetActiveEditor();
if (ed)
return ed->Save();
return true;
}

--- End code ---
saving should also work for custom editors.
The same is with EditorManager::SaveAll().


I generally think you should redesign EditorBase, so that you don't have to make an distinction between buldin and custom editors.
I you do this, you can move cbEditor to an plug-in, which will make the source much cleaner. But thats something for >1.0.

mandrav:
It seems that someone (Rick?) who moved enough cbEditor functions to EditorBase, forgot to update the editormanager's functions.
Thanks for spotting this.

rickg22:
^^; oopsie... please put that in bug reports (with priority 1) so i remember to implement it after RC2 is released.

mandrav:
I corrected the Save() functions but still more functions should be moved to EditorBase (like SaveAs()). We 'll settle this after RC2 is released.

danselmi:
Hi

Is someone working on this? (SaveAs() is not in editorBase)

Navigation

[0] Message Index

[#] Next page

Go to full version