Browse Source

Making frame variable smaller if it is too long when using backtrace, and dialogs are now moved to the start of line if activated on iter columns>=80

merge-requests/365/head
eidheim 10 years ago
parent
commit
fe219a6e25
  1. 2
      src/source_clang.cc
  2. 13
      src/window.cc

2
src/source_clang.cc

@ -1195,6 +1195,8 @@ Source::ClangViewAutocomplete(file_path, project_path, language) {
goto_method=[this](){ goto_method=[this](){
if(parsed) { if(parsed) {
auto iter=get_buffer()->get_insert()->get_iter(); auto iter=get_buffer()->get_insert()->get_iter();
if(iter.get_line_offset()>=80)
iter=get_buffer()->get_iter_at_line(iter.get_line());
Gdk::Rectangle visible_rect; Gdk::Rectangle visible_rect;
get_visible_rect(visible_rect); get_visible_rect(visible_rect);
Gdk::Rectangle iter_rect; Gdk::Rectangle iter_rect;

13
src/window.cc

@ -514,6 +514,8 @@ void Window::set_menu_actions() {
auto token=current_view->get_token(); auto token=current_view->get_token();
if(token) { if(token) {
auto iter=current_view->get_buffer()->get_insert()->get_iter(); auto iter=current_view->get_buffer()->get_insert()->get_iter();
if(iter.get_line_offset()>=80)
iter=current_view->get_buffer()->get_iter_at_line(iter.get_line());
Gdk::Rectangle visible_rect; Gdk::Rectangle visible_rect;
current_view->get_visible_rect(visible_rect); current_view->get_visible_rect(visible_rect);
Gdk::Rectangle iter_rect; Gdk::Rectangle iter_rect;
@ -898,6 +900,8 @@ void Window::set_menu_actions() {
auto view=notebook.get_current_view(); auto view=notebook.get_current_view();
auto buffer=view->get_buffer(); auto buffer=view->get_buffer();
auto iter=buffer->get_insert()->get_iter(); auto iter=buffer->get_insert()->get_iter();
if(iter.get_line_offset()>=80)
iter=buffer->get_iter_at_line(iter.get_line());
Gdk::Rectangle visible_rect; Gdk::Rectangle visible_rect;
view->get_visible_rect(visible_rect); view->get_visible_rect(visible_rect);
Gdk::Rectangle iter_rect; Gdk::Rectangle iter_rect;
@ -913,11 +917,16 @@ void Window::set_menu_actions() {
for(auto &frame: backtrace) { for(auto &frame: backtrace) {
std::string row="<i>"+frame.module_filename+"</i>"; std::string row="<i>"+frame.module_filename+"</i>";
//Shorten frame.function_name if it is too long
if(frame.function_name.size()>120) {
frame.function_name=frame.function_name.substr(0, 58)+"...."+frame.function_name.substr(frame.function_name.size()-58);
}
if(frame.file_path.empty()) if(frame.file_path.empty())
row+=" - "+frame.function_name; row+=" - "+Glib::Markup::escape_text(frame.function_name);
else { else {
auto file_path=boost::filesystem::path(frame.file_path).filename().string(); auto file_path=boost::filesystem::path(frame.file_path).filename().string();
row+=":<b>"+Glib::Markup::escape_text(file_path)+":"+std::to_string(frame.line_nr)+"</b> - "+Glib::Markup::escape_text(frame.function_name); row+="<i>:</i><b>"+Glib::Markup::escape_text(file_path)+":"+std::to_string(frame.line_nr)+"</b> - "+Glib::Markup::escape_text(frame.function_name);
} }
(*rows)[row]=frame; (*rows)[row]=frame;
view->selection_dialog->add_row(row); view->selection_dialog->add_row(row);

Loading…
Cancel
Save