50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
|
#include "elna/history.hpp"
|
||
|
|
||
|
namespace elna
|
||
|
{
|
||
|
editor_history::editor_history()
|
||
|
: commands{}, current_pointer(commands.cend())
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void editor_history::push(const std::string& entry)
|
||
|
{
|
||
|
commands.push_front(entry);
|
||
|
current_pointer = commands.cbegin();
|
||
|
}
|
||
|
|
||
|
void editor_history::clear()
|
||
|
{
|
||
|
commands.clear();
|
||
|
current_pointer = commands.cend();
|
||
|
}
|
||
|
|
||
|
editor_history::const_iterator editor_history::prev() noexcept
|
||
|
{
|
||
|
if (this->current_pointer != cbegin())
|
||
|
{
|
||
|
this->current_pointer = std::prev(this->current_pointer);
|
||
|
}
|
||
|
return this->current_pointer;
|
||
|
}
|
||
|
|
||
|
editor_history::const_iterator editor_history::next() noexcept
|
||
|
{
|
||
|
if (this->current_pointer != cend())
|
||
|
{
|
||
|
this->current_pointer = std::next(this->current_pointer);
|
||
|
}
|
||
|
return this->current_pointer;
|
||
|
}
|
||
|
|
||
|
editor_history::const_iterator editor_history::cbegin() const noexcept
|
||
|
{
|
||
|
return this->commands.cbegin();
|
||
|
}
|
||
|
|
||
|
editor_history::const_iterator editor_history::cend() const noexcept
|
||
|
{
|
||
|
return this->commands.cend();
|
||
|
}
|
||
|
}
|