From cb26948ad3dce5548551fc1c17d0fd282dc90dd8 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 7 Feb 2013 19:25:42 +0100 Subject: [PATCH] ClientManager: move the Client inner class detail in the cpp file --- src/client_manager.cc | 27 ++++++++++++++++++++++++--- src/client_manager.hh | 21 ++++----------------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/client_manager.cc b/src/client_manager.cc index d2c1f187..62324b7c 100644 --- a/src/client_manager.cc +++ b/src/client_manager.cc @@ -7,6 +7,30 @@ namespace Kakoune { +struct ClientManager::Client +{ + Client(std::unique_ptr&& ui, Window& window, + String name) + : user_interface(std::move(ui)), + input_handler(*user_interface), + name(std::move(name)) + { + assert(not this->name.empty()); + context().change_editor(window); + } + Client(Client&&) = delete; + Client& operator=(Client&& other) = delete; + + Context& context() { return input_handler.context(); } + + std::unique_ptr user_interface; + InputHandler input_handler; + String name; +}; + +ClientManager::ClientManager() = default; +ClientManager::~ClientManager() = default; + String ClientManager::generate_name() const { for (int i = 0; true; ++i) @@ -32,10 +56,7 @@ void ClientManager::create_client(std::unique_ptr&& ui, Buffer& buffer = **BufferManager::instance().begin(); m_clients.emplace_back(new Client{std::move(ui), get_unused_window_for_buffer(buffer), generate_name()}); - - InputHandler* input_handler = &m_clients.back()->input_handler; Context* context = &m_clients.back()->context(); - try { CommandManager::instance().execute(init_commands, *context); diff --git a/src/client_manager.hh b/src/client_manager.hh index e74110d1..06ead097 100644 --- a/src/client_manager.hh +++ b/src/client_manager.hh @@ -12,6 +12,9 @@ struct client_removed{}; class ClientManager : public Singleton { public: + ClientManager(); + ~ClientManager(); + void create_client(std::unique_ptr&& ui, const String& init_cmd); @@ -30,23 +33,7 @@ private: void remove_client_by_context(Context& context); String generate_name() const; - struct Client - { - Client(std::unique_ptr&& ui, Window& window, - String name) - : user_interface(std::move(ui)), - input_handler(*user_interface), - name(std::move(name)) { context().change_editor(window); } - Client(Client&&) = delete; - Client& operator=(Client&& other) = delete; - - Context& context() { return input_handler.context(); } - - std::unique_ptr user_interface; - InputHandler input_handler; - String name; - }; - + struct Client; std::vector> m_clients; std::vector> m_windows; };