Browse Source

Now only reparse when needed at tab switch.

merge-requests/365/head
eidheim 10 years ago
parent
commit
ef422a35e5
  1. 9
      src/notebook.cc
  2. 1
      src/source.h
  3. 8
      src/window.cc

9
src/notebook.cc

@ -113,6 +113,15 @@ bool Notebook::save(int page) {
auto view=get_view(page);
if (view->file_path != "" && view->get_buffer()->get_modified()) {
if(juci::filesystem::write(view->file_path, view->get_buffer())) {
if(auto clang_view=dynamic_cast<Source::ClangView*>(view)) {
for(auto a_view: source_views) {
if(auto a_clang_view=dynamic_cast<Source::ClangView*>(a_view)) {
if(clang_view!=a_clang_view)
a_clang_view->start_reparse_needed=true;
}
}
}
view->get_buffer()->set_modified(false);
Singleton::terminal()->print("File saved to: " +view->file_path.string()+"\n");

1
src/source.h

@ -126,6 +126,7 @@ namespace Source {
ClangViewParse(const boost::filesystem::path &file_path, const boost::filesystem::path& project_path);
boost::filesystem::path project_path;
void start_reparse();
bool start_reparse_needed=false;
protected:
void init_parse();
bool on_key_press_event(GdkEventKey* key);

8
src/window.cc

@ -93,8 +93,12 @@ Window::Window() : box(Gtk::ORIENTATION_VERTICAL), notebook(directories), compil
directories.select(notebook.get_current_view()->file_path);
if(auto source_view=dynamic_cast<Source::ClangView*>(notebook.get_current_view()))
source_view->start_reparse();
if(auto source_view=dynamic_cast<Source::ClangView*>(notebook.get_current_view())) {
if(source_view->start_reparse_needed) {
source_view->start_reparse();
source_view->start_reparse_needed=false;
}
}
Singleton::status()->set_text(notebook.get_current_view()->status);
}

Loading…
Cancel
Save