News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

Save() of an custom editor

Started by Florianx, October 08, 2005, 07:51:43 PM

Previous topic - Next topic

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():

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

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:

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

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.
Be patient!
This bug will be fixed soon...

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.
Be patient!
This bug will be fixed soon...

danselmi

Hi

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

spell checker plugin: [url="http://developer.berlios.de/projects/spellchecker/"]http://developer.berlios.de/projects/spellchecker/[/url]
nassi shneiderman plugin: [url="http://developer.berlios.de/projects/nassiplugin"]http://developer.berlios.de/projects/nassiplugin[/url]

danselmi

Hi

See patch ID 002606. It moves the SaveAs to EditorBase and adds SelectAll to EditorBase/cbEditor.
Both changes need additional changes in editormanager and SelectAll needs changes in main.
All these changes are quite small, so please take a look at it.

I work on a editor plugin (two-way structogram tool, see attachment for first screenshot) and needed this interface.
I think HexEditor will also benefit of this changes (at least the SaveAs method).

Regards Daniel

[attachment deleted by admin]
spell checker plugin: [url="http://developer.berlios.de/projects/spellchecker/"]http://developer.berlios.de/projects/spellchecker/[/url]
nassi shneiderman plugin: [url="http://developer.berlios.de/projects/nassiplugin"]http://developer.berlios.de/projects/nassiplugin[/url]

MortenMacFly

Quote from: danselmi on December 05, 2008, 03:19:37 PM
I work on a editor plugin (two-way structogram tool, see attachment for first screenshot) and needed this interface.
Wow! Now *that* looks great.  :P  Nice work! :D
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]