InputMode::Prompt: use an enum for mode rather than bool m_insert_reg

This commit is contained in:
Maxime Coste 2013-10-26 14:06:27 +01:00
parent ebd768e03d
commit 0746e7309e

View File

@ -331,11 +331,11 @@ public:
std::vector<String>& history = ms_history[m_prompt]; std::vector<String>& history = ms_history[m_prompt];
const String& line = m_line_editor.line(); const String& line = m_line_editor.line();
if (m_insert_reg) if (m_mode == Mode::InsertReg)
{ {
String reg = RegisterManager::instance()[key.key].values(context())[0]; String reg = RegisterManager::instance()[key.key].values(context())[0];
m_line_editor.insert(reg); m_line_editor.insert(reg);
m_insert_reg = false; m_mode = Mode::Default;
} }
else if (key == Key{Key::Modifiers::Control, 'm'}) // enter else if (key == Key{Key::Modifiers::Control, 'm'}) // enter
{ {
@ -364,7 +364,7 @@ public:
} }
else if (key == Key{Key::Modifiers::Control, 'r'}) else if (key == Key{Key::Modifiers::Control, 'r'})
{ {
m_insert_reg = true; m_mode = Mode::InsertReg;
} }
else if (key == Key::Up or else if (key == Key::Up or
key == Key{Key::Modifiers::Control, 'p'}) key == Key{Key::Modifiers::Control, 'p'})
@ -487,6 +487,8 @@ private:
context().print_status(display_line); context().print_status(display_line);
} }
enum class Mode { Default, InsertReg };
PromptCallback m_callback; PromptCallback m_callback;
Completer m_completer; Completer m_completer;
const String m_prompt; const String m_prompt;
@ -495,7 +497,7 @@ private:
int m_current_completion = -1; int m_current_completion = -1;
String m_prefix; String m_prefix;
LineEditor m_line_editor; LineEditor m_line_editor;
bool m_insert_reg = false; Mode m_mode = Mode::Default;
static std::unordered_map<String, std::vector<String>> ms_history; static std::unordered_map<String, std::vector<String>> ms_history;
std::vector<String>::iterator m_history_it; std::vector<String>::iterator m_history_it;