diff libgui/src/m-editor/file-editor-tab.h @ 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 744ff2fe11ce
children 5fc1ce2947bd
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor-tab.h
+++ b/libgui/src/m-editor/file-editor-tab.h
@@ -122,10 +122,12 @@
 
   struct bp_info
   {
-    bp_info (const QString& p, const QString& fn, int l)
-      : path (p.toStdString ()), function_name (fn.toStdString ()), line (l)
+    bp_info (const QString& f, const QString& p, const QString& fn, int l)
+      : file (f.toStdString ()), path (p.toStdString ()),
+        function_name (fn.toStdString ()), line (l)
     { }
 
+    std::string file;
     std::string path;
     std::string function_name;
     int line;
@@ -143,6 +145,9 @@
   void do_comment_selected_text (bool comment);
 
   void run_file_callback (void);
+
+  bool file_in_path (const bp_info& info);
+
   void add_breakpoint_callback (const bp_info& info);
   void remove_breakpoint_callback (const bp_info& info);
   void remove_all_breakpoints_callback (const bp_info& info);