# HG changeset patch # User John Donoghue # Date 1364359444 14400 # Node ID f482302d81c9800eccc1f4bd581126b5dcae4d2c # Parent 8b0a04cbdc9d0f372e2f440c153a65928cb8f312 editor goto line menu item (bug #38590) * file-editor-tab.h,file_editor_tab.cc (file_editor_tab::goto_line): New function. * file-editor.h, file-editor.cc (file-editor::request_goto_line): New function. (file_editor::request_goto_line): New function. (file_editor::construct): New goto_line_action QAction. Include it in edit menu. diff -r 8b0a04cbdc9d -r f482302d81c9 libgui/src/m-editor/file-editor-tab.cc --- a/libgui/src/m-editor/file-editor-tab.cc Tue Mar 26 13:52:03 2013 -0400 +++ b/libgui/src/m-editor/file-editor-tab.cc Wed Mar 27 00:44:04 2013 -0400 @@ -41,6 +41,7 @@ #include #include #include +#include #include "file-editor-tab.h" #include "file-editor.h" @@ -628,6 +629,25 @@ } void +file_editor_tab::goto_line (const QWidget* ID) +{ + if (ID != this) + return; + + int line, index; + + _edit_area->getCursorPosition(&line, &index); + + bool ok = false; + + line = QInputDialog::getInt (_edit_area, "Goto line", "Line number", + line+1, 1, _edit_area->lines(), 1, &ok); + if (ok) + _edit_area->setCursorPosition (line-1, 0); +} + + +void file_editor_tab::do_comment_selected_text (bool comment) { if ( _edit_area->hasSelectedText() ) diff -r 8b0a04cbdc9d -r f482302d81c9 libgui/src/m-editor/file-editor-tab.h --- a/libgui/src/m-editor/file-editor-tab.h Tue Mar 26 13:52:03 2013 -0400 +++ b/libgui/src/m-editor/file-editor-tab.h Wed Mar 27 00:44:04 2013 -0400 @@ -75,6 +75,7 @@ void comment_selected_text (const QWidget* ID); void uncomment_selected_text (const QWidget* ID); void find (const QWidget* ID); + void goto_line (const QWidget* ID); void set_debugger_position (int line); diff -r 8b0a04cbdc9d -r f482302d81c9 libgui/src/m-editor/file-editor.cc --- a/libgui/src/m-editor/file-editor.cc Tue Mar 26 13:52:03 2013 -0400 +++ b/libgui/src/m-editor/file-editor.cc Wed Mar 27 00:44:04 2013 -0400 @@ -397,6 +397,13 @@ } void +file_editor::request_goto_line () +{ + emit fetab_goto_line (_tab_widget->currentWidget ()); +} + + +void file_editor::handle_mru_add_file (const QString& file_name) { _mru_files.removeAll (file_name); @@ -587,6 +594,8 @@ _run_action = new QAction (QIcon(":/actions/icons/artsbuilderexecute.png"), tr("Save File And Run"), _tool_bar); + QAction *goto_line_action = new QAction (tr ("Go&to Line"), _tool_bar); + // the mru-list and an empty array of actions QSettings *settings = resource_manager::get_settings (); // FIXME -- what should happen if settings is 0? @@ -671,6 +680,8 @@ editMenu->addAction (next_bookmark_action); editMenu->addAction (previous_bookmark_action); editMenu->addAction (remove_bookmark_action); + editMenu->addSeparator (); + editMenu->addAction (goto_line_action); _menu_bar->addMenu (editMenu); _debug_menu = new QMenu (tr ("&Debug"), _menu_bar); @@ -736,6 +747,10 @@ SIGNAL (triggered ()), this, SLOT (request_uncomment_selected_text ())); connect (find_action, SIGNAL (triggered ()), this, SLOT (request_find ())); + + connect (goto_line_action, + SIGNAL (triggered ()), this, SLOT (request_goto_line ())); + // The actions of the mru file menu for (int i = 0; i < MaxMRUFiles; ++i) { @@ -832,6 +847,8 @@ f, SLOT (uncomment_selected_text (const QWidget*))); connect (this, SIGNAL (fetab_find (const QWidget*)), f, SLOT (find (const QWidget*))); + connect (this, SIGNAL (fetab_goto_line (const QWidget*)), + f, SLOT (goto_line (const QWidget*))); connect (this, SIGNAL (fetab_set_focus (const QWidget*)), f, SLOT (set_focus (const QWidget*))); diff -r 8b0a04cbdc9d -r f482302d81c9 libgui/src/m-editor/file-editor.h --- a/libgui/src/m-editor/file-editor.h Tue Mar 26 13:52:03 2013 -0400 +++ b/libgui/src/m-editor/file-editor.h Wed Mar 27 00:44:04 2013 -0400 @@ -85,6 +85,7 @@ void fetab_comment_selected_text (const QWidget* ID); void fetab_uncomment_selected_text (const QWidget* ID); void fetab_find (const QWidget* ID); + void fetab_goto_line (const QWidget* ID); void fetab_set_focus (const QWidget* ID); public slots: @@ -114,6 +115,8 @@ void request_uncomment_selected_text (); void request_find (); + void request_goto_line (); + void handle_file_name_changed (const QString& fileName, const QString& toolTip); void handle_tab_close_request (int index); void handle_tab_remove_request ();