Browse Source

Can now open several directories (in separate juci applications) from command line arguments.

merge-requests/365/head
eidheim 10 years ago
parent
commit
106ee0669a
  1. 19
      src/juci.cc
  2. 2
      src/juci.h

19
src/juci.cc

@ -27,8 +27,8 @@ int app::on_command_line(const Glib::RefPtr<Gio::ApplicationCommandLine> &cmd) {
p=boost::filesystem::canonical(p); p=boost::filesystem::canonical(p);
if(boost::filesystem::is_regular_file(p)) if(boost::filesystem::is_regular_file(p))
files.emplace_back(p.string()); files.emplace_back(p.string());
else if(directory=="" && boost::filesystem::is_directory(p)) else if(boost::filesystem::is_directory(p))
directory=p.string(); directories.emplace_back(p.string());
} }
else else
std::cerr << "Path " << p << " does not exist." << std::endl; std::cerr << "Path " << p << " does not exist." << std::endl;
@ -42,8 +42,19 @@ void app::on_activate() {
window = std::unique_ptr<Window>(new Window()); window = std::unique_ptr<Window>(new Window());
add_window(*window); add_window(*window);
window->show(); window->show();
if(directory!="") { bool first_directory=true;
window->directories.open_folder(directory); for(auto &directory: directories) {
if(first_directory) {
window->directories.open_folder(directory);
first_directory=false;
}
else {
std::thread another_juci_app([this, directory](){
Singleton::terminal()->async_print("Executing: juci "+directory);
Singleton::terminal()->execute("juci "+directory, "");
});
another_juci_app.detach();
}
} }
for(auto &f: files) for(auto &f: files)
window->notebook.open(f); window->notebook.open(f);

2
src/juci.h

@ -11,7 +11,7 @@ class app : public Gtk::Application {
private: private:
std::unique_ptr<Window> window; std::unique_ptr<Window> window;
std::string directory; std::vector<std::string> directories;
std::vector<std::string> files; std::vector<std::string> files;
}; };

Loading…
Cancel
Save