Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Save() of an custom editor
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