mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-02 17:45:28 +00:00
draft history navigation
This commit is contained in:
parent
ca4f1c5b0e
commit
769ef576f6
3 changed files with 120 additions and 9 deletions
|
|
@ -26,12 +26,18 @@ History::History()
|
|||
// Actions
|
||||
void History::back()
|
||||
{
|
||||
historyBack->activate();
|
||||
if (has_memory_back())
|
||||
{
|
||||
index--;
|
||||
}
|
||||
}
|
||||
|
||||
void History::forward()
|
||||
{
|
||||
historyForward->activate();
|
||||
if (has_memory_forward())
|
||||
{
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
void History::push(
|
||||
|
|
@ -48,16 +54,89 @@ void History::push(
|
|||
true
|
||||
}
|
||||
);
|
||||
|
||||
index = memory.size(); // @TODO
|
||||
}
|
||||
}
|
||||
|
||||
void History::refresh()
|
||||
{
|
||||
historyBack->set_sensitive(
|
||||
false // @TODO memory.size() > 0
|
||||
has_memory_back()
|
||||
);
|
||||
|
||||
historyForward->set_sensitive(
|
||||
false // @TODO memory.size() > 0
|
||||
has_memory_forward()
|
||||
);
|
||||
}
|
||||
|
||||
// Getters
|
||||
bool History::has_memory_back() // @TODO & MEMORY
|
||||
{
|
||||
try
|
||||
{
|
||||
const History::Memory & MEMORY = get_memory_back();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
catch (const std::out_of_range & EXCEPTION)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool History::has_memory_forward() // @TODO & MEMORY
|
||||
{
|
||||
try
|
||||
{
|
||||
const History::Memory & MEMORY = get_memory_forward();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
catch (const std::out_of_range & EXCEPTION)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Copying getters
|
||||
Glib::ustring History::make_memory_back_request()
|
||||
{
|
||||
Glib::ustring request;
|
||||
|
||||
if (has_memory_back())
|
||||
{
|
||||
request = get_memory_back().request;
|
||||
}
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
Glib::ustring History::make_memory_forward_request()
|
||||
{
|
||||
Glib::ustring request;
|
||||
|
||||
if (has_memory_forward())
|
||||
{
|
||||
request = get_memory_forward().request;
|
||||
}
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
// Private helpers
|
||||
History::Memory & History::get_memory_back()
|
||||
{
|
||||
return memory.at(
|
||||
index - 1
|
||||
);
|
||||
}
|
||||
|
||||
History::Memory & History::get_memory_forward()
|
||||
{
|
||||
return memory.at(
|
||||
index + 1
|
||||
);
|
||||
}
|
||||
|
|
@ -26,8 +26,13 @@ namespace app::browser::main::tab::page::navbar
|
|||
bool permanent; // save in database (on application close) @TODO
|
||||
};
|
||||
|
||||
// Define navigation history storage
|
||||
std::vector<Memory> memory;
|
||||
std::vector<Memory>::iterator memory_index;
|
||||
int index = 0;
|
||||
|
||||
// Private helpers
|
||||
Memory & get_memory_back();
|
||||
Memory & get_memory_forward();
|
||||
|
||||
// Components
|
||||
history::Back * historyBack;
|
||||
|
|
@ -37,6 +42,7 @@ namespace app::browser::main::tab::page::navbar
|
|||
|
||||
History();
|
||||
|
||||
// Actions
|
||||
void back();
|
||||
void forward();
|
||||
|
||||
|
|
@ -45,6 +51,14 @@ namespace app::browser::main::tab::page::navbar
|
|||
);
|
||||
|
||||
void refresh();
|
||||
|
||||
// Getters
|
||||
bool has_memory_back();
|
||||
bool has_memory_forward();
|
||||
|
||||
// Copying getters (to keep private members encapsulation)
|
||||
Glib::ustring make_memory_back_request();
|
||||
Glib::ustring make_memory_forward_request();
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue