From bf92d588c473689a6f9baae8b2b0fa5fbccac470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Lien=20Sell=C3=A6g?= Date: Fri, 16 Oct 2015 13:06:14 +0200 Subject: [PATCH] Remove directories from Notebook --- src/notebook.cc | 4 +++- src/notebook.h | 3 +-- src/window.cc | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/notebook.cc b/src/notebook.cc index c22c448..9299009 100644 --- a/src/notebook.cc +++ b/src/notebook.cc @@ -27,7 +27,7 @@ namespace sigc { #endif } -Notebook::Notebook(Directories &directories) : Gtk::Notebook(), directories(directories) { +Notebook::Notebook() : Gtk::Notebook() { Gsv::init(); } @@ -71,6 +71,7 @@ void Notebook::open(const boost::filesystem::path &file_path) { auto language=Source::guess_language(file_path); if(language && (language->get_id()=="chdr" || language->get_id()=="cpphdr" || language->get_id()=="c" || language->get_id()=="cpp" || language->get_id()=="objc")) { boost::filesystem::path project_path; + auto directories = *Singleton::directories(); if(directories.cmake && directories.cmake->project_path!="" && file_path.generic_string().substr(0, directories.cmake->project_path.generic_string().size()+1)==directories.cmake->project_path.generic_string()+'/') { project_path=directories.cmake->project_path; if(boost::filesystem::exists(project_path.string()+"/CMakeLists.txt") && !boost::filesystem::exists(project_path.string()+"/compile_commands.json")) @@ -180,6 +181,7 @@ bool Notebook::save(int page, bool reparse_needed) { //If CMakeLists.txt have been modified: //TODO: recreate cmake even without directories open? if(view->file_path.filename()=="CMakeLists.txt") { + auto directories = *Singleton::directories(); if(directories.cmake && directories.cmake->project_path!="" && view->file_path.generic_string().substr(0, directories.cmake->project_path.generic_string().size()+1)==directories.cmake->project_path.generic_string()+'/' && CMake::create_compile_commands(directories.cmake->project_path)) { for(auto source_view: source_views) { if(auto source_clang_view=dynamic_cast(source_view)) { diff --git a/src/notebook.h b/src/notebook.h index b8f6b69..3af9887 100644 --- a/src/notebook.h +++ b/src/notebook.h @@ -12,7 +12,7 @@ class Notebook : public Gtk::Notebook { public: - Notebook(Directories &directories); + Notebook(); Source::View* get_view(int page); size_t get_index(int page); int size(); @@ -25,7 +25,6 @@ public: private: bool save_modified_dialog(); - Directories &directories; std::vector source_views; //Is NOT freed in destructor, this is intended for quick program exit. std::vector > source_maps; std::vector > scrolled_windows; diff --git a/src/window.cc b/src/window.cc index 55da6cd..880a3d8 100644 --- a/src/window.cc +++ b/src/window.cc @@ -30,7 +30,7 @@ void Window::generate_keybindings() { } } -Window::Window() : box(Gtk::ORIENTATION_VERTICAL), notebook(*Singleton::directories()), compiling(false) { +Window::Window() : box(Gtk::ORIENTATION_VERTICAL), compiling(false) { JDEBUG("start"); set_title("juCi++"); set_events(Gdk::POINTER_MOTION_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::SCROLL_MASK);