# HG changeset patch # User Jacob Dawid # Date 1341235135 -7200 # Node ID e97be88fc478a65eff05b54f60c4aa015a319622 # Parent 6b90737f69cc0f17794ce0aef0e3fb684f6f880a Fixed removing all breakpoints. * file-editor-tab: Renamed slot to remove all breakpoints. * file-editor: Renamed slot to remove all breakpoints. * octave-event: Added checking for return value when adding breakpoints. diff -r 6b90737f69cc -r e97be88fc478 gui/src/m-editor/file-editor-tab.cc --- a/gui/src/m-editor/file-editor-tab.cc Mon Jul 02 12:35:08 2012 +0200 +++ b/gui/src/m-editor/file-editor-tab.cc Mon Jul 02 15:18:55 2012 +0200 @@ -383,9 +383,19 @@ } void -file_editor_tab::remove_breakpoint () +file_editor_tab::remove_all_breakpoints () { - _edit_area->markerDeleteAll (breakpoint); + QFileInfo file_info (_file_name); + QString path = file_info.absolutePath (); + QString function_name = file_info.fileName (); + + // We have to cut off the suffix, because octave appends it. + function_name.chop (file_info.suffix ().length () + 1); + + octave_link::instance ()->post_event + (new octave_remove_all_breakpoints_event (*this, + path.toStdString (), + function_name.toStdString ())); } void diff -r 6b90737f69cc -r e97be88fc478 gui/src/m-editor/file-editor-tab.h --- a/gui/src/m-editor/file-editor-tab.h Mon Jul 02 12:35:08 2012 +0200 +++ b/gui/src/m-editor/file-editor-tab.h Mon Jul 02 15:18:55 2012 +0200 @@ -46,7 +46,7 @@ void toggle_bookmark (); void next_bookmark (); void previous_bookmark (); - void remove_breakpoint (); + void remove_all_breakpoints (); void toggle_breakpoint (); void next_breakpoint (); void previous_breakpoint (); diff -r 6b90737f69cc -r e97be88fc478 gui/src/m-editor/file-editor.cc --- a/gui/src/m-editor/file-editor.cc Mon Jul 02 12:35:08 2012 +0200 +++ b/gui/src/m-editor/file-editor.cc Mon Jul 02 15:18:55 2012 +0200 @@ -230,7 +230,7 @@ { file_editor_tab *activeFileEditorTab = active_editor_tab (); if (activeFileEditorTab) - activeFileEditorTab->remove_breakpoint (); + activeFileEditorTab->remove_all_breakpoints (); } void diff -r 6b90737f69cc -r e97be88fc478 gui/src/octave-adapter/octave-event.h --- a/gui/src/octave-adapter/octave-event.h Mon Jul 02 12:35:08 2012 +0200 +++ b/gui/src/octave-adapter/octave-event.h Mon Jul 02 15:18:55 2012 +0200 @@ -269,12 +269,11 @@ bp_table::intmap intmap; intmap[0] = _line; - // TODO: Check success. std::string previous_directory = octave_env::get_current_directory (); octave_env::chdir (_path); - bp_table::add_breakpoint (_function_name, intmap); + intmap = bp_table::add_breakpoint (_function_name, intmap); octave_env::chdir (previous_directory); - return true; + return intmap.size () > 0; } std::string get_path () @@ -317,12 +316,11 @@ bp_table::intmap intmap; intmap[0] = _line; - // TODO: Check success. std::string previous_directory = octave_env::get_current_directory (); octave_env::chdir (_path); bp_table::remove_breakpoint (_function_name, intmap); octave_env::chdir (previous_directory); - return true; + return true; // TODO: Check result. } std::string get_path () @@ -350,21 +348,37 @@ { public: octave_remove_all_breakpoints_event (octave_event_observer& o, - std::string file) + std::string path, + std::string function_name) : octave_event (o) { - _file = file; + _path = path; + _function_name = function_name; } bool perform () { - // TODO: Check success. - bp_table::remove_all_breakpoints_in_file (_file, true); - return true; + bp_table::intmap intmap; + std::string previous_directory = octave_env::get_current_directory (); + octave_env::chdir (_path); + intmap = bp_table::remove_all_breakpoints_in_file (_function_name, true); + octave_env::chdir (previous_directory); + return intmap.size() > 0; + } + + std::string get_path () + { + return _path; + } + + std::string get_function_name () + { + return _function_name; } private: - std::string _file; + std::string _path; + std::string _function_name; }; class octave_debug_step_into_event : public octave_event