nemiver r879 - in trunk: . src/persp/dbgperspective src/persp/dbgperspective/menus src/uicommon
- From: dodji svn gnome org
- To: svn-commits-list gnome org
- Subject: nemiver r879 - in trunk: . src/persp/dbgperspective src/persp/dbgperspective/menus src/uicommon
- Date: Sat, 28 Jun 2008 18:22:16 +0000 (UTC)
Author: dodji
Date: Sat Jun 28 18:22:16 2008
New Revision: 879
URL: http://svn.gnome.org/viewvc/nemiver?rev=879&view=rev
Log:
fix #540653 - add a shorcut to set a conditional breakpoint
Modified:
trunk/ChangeLog
trunk/src/persp/dbgperspective/menus/menus.xml
trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc
trunk/src/uicommon/nmv-source-editor.cc
trunk/src/uicommon/nmv-source-editor.h
Modified: trunk/src/persp/dbgperspective/menus/menus.xml
==============================================================================
--- trunk/src/persp/dbgperspective/menus/menus.xml (original)
+++ trunk/src/persp/dbgperspective/menus/menus.xml Sat Jun 28 18:22:16 2008
@@ -72,6 +72,8 @@
name="ToggleEnableBreakMenuItem"/>
<menuitem action="SetBreakPointMenuItemAction"
name="SetBreakMenuItem"/>
+ <menuitem action="SetBreakPointUsingDialogMenuItemAction"
+ name="SetBreakUsingDialogMenuItem"/>
<separator/>
<menuitem action="InspectVariableMenuItemAction"
name="InspectVariableMenuItem"/>
Modified: trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc
==============================================================================
--- trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc (original)
+++ trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc Sat Jun 28 18:22:16 2008
@@ -224,6 +224,7 @@
void on_continue_action () ;
void on_continue_until_action () ;
void on_set_breakpoint_action () ;
+ void on_set_breakpoint_using_dialog_action ();
void on_refresh_locals_action () ;
void on_toggle_breakpoint_action () ;
void on_toggle_breakpoint_enabled_action () ;
@@ -252,7 +253,8 @@
const Glib::ustring &a_text,
int a_dont_know) ;
- void on_source_view_markers_region_clicked_signal (int a_line) ;
+ void on_source_view_markers_region_clicked_signal (int a_line,
+ bool a_dialog_requested) ;
bool on_button_pressed_in_source_view_signal (GdkEventButton *a_event) ;
@@ -465,6 +467,7 @@
void step_out () ;
void do_continue () ;
void do_continue_until () ;
+ void set_breakpoint_at_current_line_using_dialog ();
void set_breakpoint () ;
void set_breakpoint (const UString &a_file,
int a_line,
@@ -489,7 +492,11 @@
bool &a_enabled) ;
void toggle_breakpoint (const UString &a_file_path,
int a_linenum) ;
- void set_breakpoint_dialog ();
+ void set_breakpoint_using_dialog ();
+ void set_breakpoint_using_dialog (const UString &a_file_path,
+ const int a_line_num);
+ void set_breakpoint_using_dialog (const UString &a_function_name);
+ void set_breakpoint_from_dialog (SetBreakpointDialog &a_dialog);
void refresh_locals () ;
void inspect_variable () ;
@@ -1308,7 +1315,17 @@
{
LOG_FUNCTION_SCOPE_NORMAL_DD ;
NEMIVER_TRY
- set_breakpoint_dialog () ;
+ set_breakpoint_using_dialog () ;
+ NEMIVER_CATCH
+}
+
+void
+DBGPerspective::on_set_breakpoint_using_dialog_action ()
+{
+ LOG_FUNCTION_SCOPE_NORMAL_DD;
+
+ NEMIVER_TRY
+ set_breakpoint_at_current_line_using_dialog ();
NEMIVER_CATCH
}
@@ -1586,7 +1603,9 @@
}
void
-DBGPerspective::on_source_view_markers_region_clicked_signal (int a_line)
+DBGPerspective::on_source_view_markers_region_clicked_signal
+ (int a_line,
+ bool a_dialog_requested)
{
LOG_FUNCTION_SCOPE_NORMAL_DD ;
NEMIVER_TRY
@@ -1596,7 +1615,11 @@
THROW_IF_FAIL (cur_editor) ;
UString path ;
cur_editor->get_path (path) ;
- toggle_breakpoint (path, a_line + 1 ) ;
+ if (a_dialog_requested) {
+ set_breakpoint_using_dialog (path, a_line + 1);
+ } else {
+ toggle_breakpoint (path, a_line + 1 ) ;
+ }
}
NEMIVER_CATCH
@@ -2640,6 +2663,17 @@
},
{
+ "SetBreakPointUsingDialogMenuItemAction",
+ nil_stock_id,
+ _("Set Breakpoint with dialog..."),
+ _("Set a breakpoint at the current line using a dialog"),
+ sigc::mem_fun (*this,
+ &DBGPerspective::on_set_breakpoint_using_dialog_action),
+ ActionEntry::DEFAULT,
+ "<control><shift>B"
+ },
+
+ {
"InspectVariableMenuItemAction",
nil_stock_id,
_("Inspect a Variable"),
@@ -5284,7 +5318,7 @@
source_editor->get_path (path) ;
THROW_IF_FAIL (path != "") ;
- gint current_line =
+ int current_line =
source_editor->source_view ().get_source_buffer ()->get_insert
()->get_iter ().get_line () + 1;
if (current_line >= 0)
@@ -5292,42 +5326,37 @@
}
void
-DBGPerspective::set_breakpoint_dialog ()
+DBGPerspective::set_breakpoint_from_dialog (SetBreakpointDialog &a_dialog)
{
- LOG_FUNCTION_SCOPE_NORMAL_DD ;
- SetBreakpointDialog dialog (plugin_path ()) ;
-
- int result = dialog.run () ;
- if (result != Gtk::RESPONSE_OK) {
- return;
- }
-
- switch(dialog.mode ()) {
+ switch (a_dialog.mode ()) {
case SetBreakpointDialog::MODE_SOURCE_LOCATION:
{
UString filename;
- filename = dialog.file_name () ;
+ filename = a_dialog.file_name () ;
THROW_IF_FAIL (filename != "") ;
- int line = dialog.line_number () ;
+ int line = a_dialog.line_number () ;
LOG_DD ("setting breakpoint in file "
<< filename << " at line " << line) ;
- set_breakpoint (filename, line, dialog.condition ());
+ set_breakpoint (filename, line, a_dialog.condition ());
break;
}
+
case SetBreakpointDialog::MODE_FUNCTION_NAME:
{
- UString function = dialog.function ();
+ UString function = a_dialog.function ();
THROW_IF_FAIL (function != "") ;
- set_breakpoint (function, dialog.condition ());
+ set_breakpoint (function, a_dialog.condition ());
break;
}
+
case SetBreakpointDialog::MODE_EVENT:
{
- UString event = dialog.event ();
+ UString event = a_dialog.event ();
THROW_IF_FAIL (event != "");
debugger ()->set_catch (event);
break;
}
+
default:
THROW ("should not be reached");
break;
@@ -5335,6 +5364,67 @@
}
void
+DBGPerspective::set_breakpoint_at_current_line_using_dialog ()
+{
+ SourceEditor *source_editor = get_current_source_editor () ;
+ THROW_IF_FAIL (source_editor) ;
+ UString path ;
+ source_editor->get_path (path) ;
+ THROW_IF_FAIL (path != "") ;
+ int current_line =
+ source_editor->source_view ().get_source_buffer ()->get_insert
+ ()->get_iter ().get_line () + 1;
+ if (current_line >= 0)
+ set_breakpoint_using_dialog (path, current_line);
+}
+
+void
+DBGPerspective::set_breakpoint_using_dialog ()
+{
+ LOG_FUNCTION_SCOPE_NORMAL_DD;
+ SetBreakpointDialog dialog (plugin_path ()) ;
+
+ int result = dialog.run () ;
+ if (result != Gtk::RESPONSE_OK) {
+ return;
+ }
+ set_breakpoint_from_dialog (dialog);
+}
+
+void
+DBGPerspective::set_breakpoint_using_dialog (const UString &a_file_name,
+ const int a_line_num)
+{
+ LOG_FUNCTION_SCOPE_NORMAL_DD;
+ THROW_IF_FAIL (!a_file_name.empty ());
+ THROW_IF_FAIL (a_line_num > 0);
+
+ SetBreakpointDialog dialog (plugin_path ()) ;
+ dialog.mode (SetBreakpointDialog::MODE_SOURCE_LOCATION);
+ dialog.file_name (a_file_name);
+ dialog.line_number (a_line_num);
+ int result = dialog.run () ;
+ if (result != Gtk::RESPONSE_OK) {
+ return;
+ }
+ set_breakpoint_from_dialog (dialog);
+}
+
+void
+DBGPerspective::set_breakpoint_using_dialog (const UString &a_function_name)
+{
+ LOG_FUNCTION_SCOPE_NORMAL_DD;
+ SetBreakpointDialog dialog (plugin_path ());
+ dialog.mode (SetBreakpointDialog::MODE_FUNCTION_NAME);
+ dialog.file_name (a_function_name);
+ int result = dialog.run ();
+ if (result != Gtk::RESPONSE_OK) {
+ return;
+ }
+ set_breakpoint_from_dialog (dialog);
+}
+
+void
DBGPerspective::refresh_locals ()
{
get_local_vars_inspector ().show_local_variables_of_current_function () ;
Modified: trunk/src/uicommon/nmv-source-editor.cc
==============================================================================
--- trunk/src/uicommon/nmv-source-editor.cc (original)
+++ trunk/src/uicommon/nmv-source-editor.cc Sat Jun 28 18:22:16 2008
@@ -60,7 +60,7 @@
class SourceView : public gtksourceview::SourceView {
- sigc::signal<void, int> m_marker_region_got_clicked_signal ;
+ sigc::signal<void, int, bool> m_marker_region_got_clicked_signal ;
public:
SourceView (Glib::RefPtr<SourceBuffer> &a_buf) :
@@ -115,7 +115,8 @@
THROW_IF_FAIL (iter) ;
LOG_DD ("got clicked on line: " << iter.get_line ()) ;
- marker_region_got_clicked_signal ().emit (iter.get_line ()) ; ;
+ marker_region_got_clicked_signal ().emit (iter.get_line (),
+ false/*no dialog requested*/);
}
bool on_button_press_event (GdkEventButton *a_event)
@@ -129,7 +130,7 @@
}
}
- sigc::signal<void, int>& marker_region_got_clicked_signal ()
+ sigc::signal<void, int, bool>& marker_region_got_clicked_signal ()
{
return m_marker_region_got_clicked_signal ;
}
@@ -151,7 +152,7 @@
Gtk::Label *line_col_label ;
Gtk::Label *line_count;
sigc::signal<void, gint, gint> signal_insertion_moved ;
- sigc::signal<void, int> marker_region_got_clicked_signal ;
+ sigc::signal<void, int, bool> marker_region_got_clicked_signal ;
sigc::signal<void, const Gtk::TextBuffer::iterator&>
insertion_changed_signal;
UString path ;
@@ -159,9 +160,9 @@
//**************
//<signal slots>
//**************
- void on_marker_region_got_clicked (int a_line)
+ void on_marker_region_got_clicked (int a_line, bool a_dialog_requested)
{
- marker_region_got_clicked_signal.emit (a_line) ;
+ marker_region_got_clicked_signal.emit (a_line, a_dialog_requested) ;
}
void on_mark_set_signal (const Gtk::TextBuffer::iterator &a_iter,
@@ -772,7 +773,7 @@
return false ;
}
-sigc::signal<void, int>&
+sigc::signal<void, int, bool>&
SourceEditor::marker_region_got_clicked_signal () const
{
return m_priv->marker_region_got_clicked_signal ;
Modified: trunk/src/uicommon/nmv-source-editor.h
==============================================================================
--- trunk/src/uicommon/nmv-source-editor.h (original)
+++ trunk/src/uicommon/nmv-source-editor.h Sat Jun 28 18:22:16 2008
@@ -93,9 +93,12 @@
/// \name signals
/// @{
- sigc::signal<void, int>& marker_region_got_clicked_signal () const ;
+ sigc::signal<void,
+ int/*line clicked*/,
+ bool/*dialog requested*/>&
+ marker_region_got_clicked_signal () const ;
sigc::signal<void, const Gtk::TextBuffer::iterator&>&
- insertion_changed_signal () const ;
+ insertion_changed_signal () const ;
/// @}
};//end class SourceEditor
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]