diff libgui/src/octave-qt-link.cc @ 16547:3cd80afc3509

improve debugging with the GUI * dialog.h, dialog.cc (cd_or_addpath_dialog): New class. (QUIWidgetCreator::signal_debug_cd_or_addpath): New function. (QUIWidgetCreator::create_debug_cd_or_addpath_dialog): New signal. * file-editor-tab.h, file-editor-tab.cc (file_editor_tab::file_in_path): New function. (file_editor_tab::add_breakpoint_callback, file_editor_tab::remove_breakpoint_callback, file_editor_tab::remove_all_breakpoints_callback): Use file_in_path. Don't cd to the directory containing the file. Don't add 1 to the line number. (file_editor_tab::request_add_breakpoint, file_editor_tab::request_remove_breakpoint): Add 1 to the line number. (file_editor_tab::insert_debugger_pointer, file_editor_tab::delete_debugger_pointer, file_editor_tab::do_breakpoint_marker): Subtract 1 from line. (file_editor_tab::bp_info): Also cache full file name. Change all uses. * file-editor.h, file-editor.cc (file_editor::request_open_file, file_editor::handle_delete_debugger_pointer_request): Don't subtract 1 from line numbers. * main-window.h, main-window.cc (main_window::connect_uiwidget_links): Connect uiwidget_creator::create_debug_cd_or_addpath_dialog to main_window::handle_create_debug_cd_or_addpath_dialog. (main_window::handle_create_debug_cd_or_addpath_dialog): New function. * octave-qt-link.h, octave-qt-link.cc (octave_qt_link::do_debug_cd_or_addpath_error): New function. * load-path.h, load-path.cc (load_path::contains_canonical, load_path::do_contains_canonical): New functions. * octave-link.h (octave_link::debug_cd_or_addpath_error, octave_link::do_debug_cd_or_addpath_error): New functions.
author John W. Eaton <jwe@octave.org>
date Fri, 19 Apr 2013 17:36:40 -0400
parents 9bc1f8278966
children 6ae555fc8c43
line wrap: on
line diff
--- a/libgui/src/octave-qt-link.cc	Fri Apr 19 09:36:22 2013 -0400
+++ b/libgui/src/octave-qt-link.cc	Fri Apr 19 17:36:40 2013 -0400
@@ -31,6 +31,7 @@
 #include "str-vec.h"
 
 #include "dialog.h"
+#include "error.h"
 #include "workspace-element.h"
 
 #include "octave-qt-link.h"
@@ -154,6 +155,20 @@
   return retval;
 }
 
+int
+octave_qt_link::do_debug_cd_or_addpath_error (const std::string& file,
+                                              const std::string& dir,
+                                              bool addpath_option)
+{
+  uiwidget_creator.signal_debug_cd_or_addpath (QString::fromStdString (file),
+                                               QString::fromStdString (dir),
+                                               addpath_option);
+
+  uiwidget_creator.wait ();
+
+  return uiwidget_creator.get_dialog_result ();
+}
+
 void
 octave_qt_link::do_change_directory (const std::string& dir)
 {