|
|
|
@ -60,7 +60,7 @@ void Notebook::Controller::CreateKeybindings() { |
|
|
|
OnFileNewFile(); |
|
|
|
OnFileNewFile(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
menu->action_group->add(Gtk::Action::create("WindowCloseTab", "Close tab"), Gtk::AccelKey(menu->key_map["close_tab"]), [this]() { |
|
|
|
menu->action_group->add(Gtk::Action::create("WindowCloseTab", "Close tab"), Gtk::AccelKey(menu->key_map["close_tab"]), [this]() { |
|
|
|
OnCloseCurrentPage(); |
|
|
|
close_current_page(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
menu->action_group->add(Gtk::Action::create("EditFind", "Find"), Gtk::AccelKey(menu->key_map["edit_find"]), [this]() { |
|
|
|
menu->action_group->add(Gtk::Action::create("EditFind", "Find"), Gtk::AccelKey(menu->key_map["edit_find"]), [this]() { |
|
|
|
show_search_and_replace(); |
|
|
|
show_search_and_replace(); |
|
|
|
@ -317,11 +317,12 @@ void Notebook::Controller::open_file(std::string path) { |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Notebook::Controller::OnCloseCurrentPage() { |
|
|
|
bool Notebook::Controller::close_current_page() { |
|
|
|
INFO("Notebook close page"); |
|
|
|
INFO("Notebook close page"); |
|
|
|
if (Pages() != 0) { |
|
|
|
if (Pages() != 0) { |
|
|
|
if(CurrentSourceView()->get_buffer()->get_modified()){ |
|
|
|
if(CurrentSourceView()->get_buffer()->get_modified()){ |
|
|
|
AskToSaveDialog(); |
|
|
|
if(!save_dialog()) |
|
|
|
|
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
int page = CurrentPage(); |
|
|
|
int page = CurrentPage(); |
|
|
|
view.notebook.remove_page(page); |
|
|
|
view.notebook.remove_page(page); |
|
|
|
@ -329,6 +330,7 @@ void Notebook::Controller::OnCloseCurrentPage() { |
|
|
|
scrolled_windows.erase(scrolled_windows.begin()+page); |
|
|
|
scrolled_windows.erase(scrolled_windows.begin()+page); |
|
|
|
hboxes.erase(hboxes.begin()+page); |
|
|
|
hboxes.erase(hboxes.begin()+page); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
void Notebook::Controller::OnFileNewFile() { |
|
|
|
void Notebook::Controller::OnFileNewFile() { |
|
|
|
entry_box.clear(); |
|
|
|
entry_box.clear(); |
|
|
|
@ -444,38 +446,20 @@ std::string Notebook::Controller::OnSaveFileAs(){ |
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Notebook::Controller::AskToSaveDialog() { |
|
|
|
bool Notebook::Controller::save_dialog() { |
|
|
|
INFO("AskToSaveDialog"); |
|
|
|
INFO("Notebook::Controller::save_dialog"); |
|
|
|
DEBUG("AskToSaveDialog: Finding file path"); |
|
|
|
Gtk::MessageDialog dialog((Gtk::Window&)(*view.get_toplevel()), "Save file!", false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO); |
|
|
|
Gtk::MessageDialog dialog((Gtk::Window&)(*view.get_toplevel()), "Save file!", |
|
|
|
dialog.set_secondary_text("Do you want to save: " + CurrentSourceView()->file_path+" ?"); |
|
|
|
false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO); |
|
|
|
|
|
|
|
dialog.set_secondary_text( |
|
|
|
|
|
|
|
"Do you want to save: " + |
|
|
|
|
|
|
|
CurrentSourceView()->file_path+" ?"); |
|
|
|
|
|
|
|
DEBUG("AskToSaveDialog: run dialog"); |
|
|
|
|
|
|
|
int result = dialog.run(); |
|
|
|
int result = dialog.run(); |
|
|
|
|
|
|
|
if(result==Gtk::RESPONSE_YES) { |
|
|
|
//Handle the response:
|
|
|
|
CurrentSourceView()->save(); |
|
|
|
DEBUG("AskToSaveDialog: switch response"); |
|
|
|
return true; |
|
|
|
switch(result) |
|
|
|
} |
|
|
|
{ |
|
|
|
else if(result==Gtk::RESPONSE_NO) { |
|
|
|
case(Gtk::RESPONSE_YES): |
|
|
|
return true; |
|
|
|
{ |
|
|
|
} |
|
|
|
DEBUG("AskToSaveDialog: save file: yes, trying to save file"); |
|
|
|
else { |
|
|
|
CurrentSourceView()->save(); |
|
|
|
return false; |
|
|
|
DEBUG("AskToSaveDialog: save file: yes, saved sucess"); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case(Gtk::RESPONSE_NO): |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
DEBUG("AskToSaveDialog: save file: no"); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
DEBUG("AskToSaveDialog: unexpected action: Default switch"); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|