Browse Source

Debug stop is now visible even if the line is a breakpoint

merge-requests/365/head
eidheim 9 years ago
parent
commit
6a691543ab
  1. 6
      src/notebook.cc
  2. 6
      src/project.cc
  3. 6
      src/source.cc

6
src/notebook.cc

@ -228,11 +228,15 @@ void Notebook::open(const boost::filesystem::path &file_path, size_t notebook_in
auto start_iter=source_view->get_buffer()->get_iter_at_line(line_nr);
auto end_iter=source_view->get_iter_at_line_end(line_nr);
source_view->get_source_buffer()->remove_source_marks(start_iter, end_iter, "debug_breakpoint");
source_view->get_source_buffer()->remove_source_marks(start_iter, end_iter, "debug_breakpoint_and_stop");
if(Project::current && Project::debugging)
Project::current->debug_remove_breakpoint(source_view->file_path, line_nr+1, source_view->get_buffer()->get_line_count()+1);
}
else {
source_view->get_source_buffer()->create_source_mark("debug_breakpoint", source_view->get_buffer()->get_iter_at_line(line_nr));
auto iter=source_view->get_buffer()->get_iter_at_line(line_nr);
source_view->get_source_buffer()->create_source_mark("debug_breakpoint", iter);
if(source_view->get_source_buffer()->get_source_marks_at_line(line_nr, "debug_stop").size()>0)
source_view->get_source_buffer()->create_source_mark("debug_breakpoint_and_stop", iter);
if(Project::current && Project::debugging)
Project::current->debug_add_breakpoint(source_view->file_path, line_nr+1);
}

6
src/project.cc

@ -98,6 +98,7 @@ void Project::debug_update_stop() {
auto view=Notebook::get().get_view(c);
if(view->file_path==debug_last_stop_file_path) {
view->get_source_buffer()->remove_source_marks(view->get_buffer()->begin(), view->get_buffer()->end(), "debug_stop");
view->get_source_buffer()->remove_source_marks(view->get_buffer()->begin(), view->get_buffer()->end(), "debug_breakpoint_and_stop");
break;
}
}
@ -108,7 +109,10 @@ void Project::debug_update_stop() {
auto view=Notebook::get().get_view(c);
if(view->file_path==debug_stop.first) {
if(debug_stop.second.first<view->get_buffer()->get_line_count()) {
view->get_source_buffer()->create_source_mark("debug_stop", view->get_buffer()->get_iter_at_line(debug_stop.second.first));
auto iter=view->get_buffer()->get_iter_at_line(debug_stop.second.first);
view->get_source_buffer()->create_source_mark("debug_stop", iter);
if(view->get_source_buffer()->get_source_marks_at_iter(iter, "debug_breakpoint").size()>0)
view->get_source_buffer()->create_source_mark("debug_breakpoint_and_stop", iter);
debug_last_stop_file_path=debug_stop.first;
}
break;

6
src/source.cc

@ -139,6 +139,12 @@ Source::View::View(const boost::filesystem::path &file_path, Glib::RefPtr<Gsv::L
rgba.set_blue(1.0);
mark_attr_debug_stop->set_background(rgba);
set_mark_attributes("debug_stop", mark_attr_debug_stop, 101);
auto mark_attr_debug_breakpoint_and_stop=Gsv::MarkAttributes::create();
rgba.set_red(0.75);
rgba.set_green(0.5);
rgba.set_blue(0.75);
mark_attr_debug_breakpoint_and_stop->set_background(rgba);
set_mark_attributes("debug_breakpoint_and_stop", mark_attr_debug_breakpoint_and_stop, 102);
get_buffer()->signal_changed().connect([this](){
set_info(info);

Loading…
Cancel
Save