mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-02 01:25:27 +00:00
draft history navigation
This commit is contained in:
parent
ca4f1c5b0e
commit
769ef576f6
3 changed files with 120 additions and 9 deletions
|
|
@ -89,12 +89,30 @@ Navbar::Navbar(
|
||||||
// Actions
|
// Actions
|
||||||
void Navbar::back()
|
void Navbar::back()
|
||||||
{
|
{
|
||||||
navbarHistory->back();
|
if (navbarHistory->has_memory_back())
|
||||||
|
{
|
||||||
|
navbarRequest->set_text(
|
||||||
|
navbarHistory->make_memory_back_request()
|
||||||
|
);
|
||||||
|
|
||||||
|
navbarHistory->back(); // --
|
||||||
|
|
||||||
|
navbarUpdate->activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Navbar::forward()
|
void Navbar::forward()
|
||||||
{
|
{
|
||||||
navbarHistory->forward();
|
if (navbarHistory->has_memory_forward())
|
||||||
|
{
|
||||||
|
navbarRequest->set_text(
|
||||||
|
navbarHistory->make_memory_forward_request()
|
||||||
|
);
|
||||||
|
|
||||||
|
navbarHistory->forward(); // ++
|
||||||
|
|
||||||
|
navbarUpdate->activate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Navbar::push(
|
void Navbar::push(
|
||||||
|
|
@ -121,7 +139,7 @@ void Navbar::refresh()
|
||||||
navbarHistory->refresh();
|
navbarHistory->refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setters
|
// Setters @TODO is really wanted?
|
||||||
void Navbar::set_request_text(
|
void Navbar::set_request_text(
|
||||||
const Glib::ustring & VALUE
|
const Glib::ustring & VALUE
|
||||||
) {
|
) {
|
||||||
|
|
@ -132,7 +150,7 @@ void Navbar::set_request_text(
|
||||||
// refresh(); not wanted as on change listener do same @TODO
|
// refresh(); not wanted as on change listener do same @TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters @TODO &
|
||||||
Glib::ustring Navbar::get_request_text()
|
Glib::ustring Navbar::get_request_text()
|
||||||
{
|
{
|
||||||
return navbarRequest->get_text();
|
return navbarRequest->get_text();
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,18 @@ History::History()
|
||||||
// Actions
|
// Actions
|
||||||
void History::back()
|
void History::back()
|
||||||
{
|
{
|
||||||
historyBack->activate();
|
if (has_memory_back())
|
||||||
|
{
|
||||||
|
index--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void History::forward()
|
void History::forward()
|
||||||
{
|
{
|
||||||
historyForward->activate();
|
if (has_memory_forward())
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void History::push(
|
void History::push(
|
||||||
|
|
@ -48,16 +54,89 @@ void History::push(
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
index = memory.size(); // @TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void History::refresh()
|
void History::refresh()
|
||||||
{
|
{
|
||||||
historyBack->set_sensitive(
|
historyBack->set_sensitive(
|
||||||
false // @TODO memory.size() > 0
|
has_memory_back()
|
||||||
);
|
);
|
||||||
|
|
||||||
historyForward->set_sensitive(
|
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
|
bool permanent; // save in database (on application close) @TODO
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Define navigation history storage
|
||||||
std::vector<Memory> memory;
|
std::vector<Memory> memory;
|
||||||
std::vector<Memory>::iterator memory_index;
|
int index = 0;
|
||||||
|
|
||||||
|
// Private helpers
|
||||||
|
Memory & get_memory_back();
|
||||||
|
Memory & get_memory_forward();
|
||||||
|
|
||||||
// Components
|
// Components
|
||||||
history::Back * historyBack;
|
history::Back * historyBack;
|
||||||
|
|
@ -37,6 +42,7 @@ namespace app::browser::main::tab::page::navbar
|
||||||
|
|
||||||
History();
|
History();
|
||||||
|
|
||||||
|
// Actions
|
||||||
void back();
|
void back();
|
||||||
void forward();
|
void forward();
|
||||||
|
|
||||||
|
|
@ -45,6 +51,14 @@ namespace app::browser::main::tab::page::navbar
|
||||||
);
|
);
|
||||||
|
|
||||||
void refresh();
|
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