Browse Source

implement history navigation

PHP-GTK3
yggverse 3 months ago
parent
commit
0db319a519
  1. 33
      src/Entity/Window/Tab/Address.php
  2. 23
      src/Entity/Window/Tab/Address/Navbar/History.php
  3. 13
      src/Entity/Window/Tab/Address/Navbar/History/Back.php
  4. 13
      src/Entity/Window/Tab/Address/Navbar/History/Forward.php

33
src/Entity/Window/Tab/Address.php

@ -61,7 +61,9 @@ class Address @@ -61,7 +61,9 @@ class Address
);
}
public function update(): void
public function update(
bool $history = true
): void
{
// Parse address
$address = new \Yggverse\Net\Address(
@ -78,19 +80,22 @@ class Address @@ -78,19 +80,22 @@ class Address
$address
);
// Remember address in the navigation memory
$this->navbar->history->add(
$address->get()
);
// Refresh history in database
$this->navbar->address->tab->window->database->refreshHistory(
$address->get(),
// @TODO title
);
// Refresh tabs
$this->navbar->address->tab->refresh();
if ($history)
{
// Remember address in the navigation memory
$this->navbar->history->add(
$address->get()
);
// Refresh history in database
$this->navbar->address->tab->window->database->refreshHistory(
$address->get(),
// @TODO title
);
// Refresh tabs
$this->navbar->address->tab->refresh();
}
// Update statusbar indicator
$this->statusbar->setValue(

23
src/Entity/Window/Tab/Address/Navbar/History.php

@ -15,12 +15,12 @@ class History @@ -15,12 +15,12 @@ class History
public \Yggverse\Yoda\Entity\Window\Tab\Address\Navbar\History\Back $back;
public \Yggverse\Yoda\Entity\Window\Tab\Address\Navbar\History\Forward $forward;
private \Yggverse\Yoda\Model\History $_history;
public \Yggverse\Yoda\Model\History $memory;
public function __construct(
\Yggverse\Yoda\Entity\Window\Tab\Address\Navbar $navbar
) {
$this->_history = new \Yggverse\Yoda\Model\History();
$this->memory = new \Yggverse\Yoda\Model\History();
$this->navbar = $navbar;
@ -50,27 +50,32 @@ class History @@ -50,27 +50,32 @@ class History
}
public function add(
string $url
string $value
): void
{
if (empty($url))
if (empty($value))
{
throw new \Exception;
}
if ($url != $this->_history->getCurrent())
if ($value != $this->memory->getCurrent())
{
$this->_history->add(
$url
$this->memory->add(
$value
);
}
$this->refresh();
}
public function refresh(): void
{
$this->back->gtk->set_sensitive(
(bool) $this->_history->getBack()
(bool) $this->memory->getBack()
);
$this->forward->gtk->set_sensitive(
(bool) $this->_history->getForward()
(bool) $this->memory->getForward()
);
}
}

13
src/Entity/Window/Tab/Address/Navbar/History/Back.php

@ -12,6 +12,17 @@ class Back extends \Yggverse\Yoda\Abstract\Entity\Window\Tab\Address\Navbar\Butt @@ -12,6 +12,17 @@ class Back extends \Yggverse\Yoda\Abstract\Entity\Window\Tab\Address\Navbar\Butt
\GtkButton $entity
): void
{
// @TODO
if ($this->navbar->history->memory->getBack())
{
$this->navbar->request->setValue(
$this->navbar->history->memory->goBack()
);
$this->navbar->address->update(
false
);
}
$this->navbar->history->refresh();
}
}

13
src/Entity/Window/Tab/Address/Navbar/History/Forward.php

@ -12,6 +12,17 @@ class Forward extends \Yggverse\Yoda\Abstract\Entity\Window\Tab\Address\Navbar\B @@ -12,6 +12,17 @@ class Forward extends \Yggverse\Yoda\Abstract\Entity\Window\Tab\Address\Navbar\B
\GtkButton $entity
): void
{
// @TODO
if ($this->navbar->history->memory->getForward())
{
$this->navbar->request->setValue(
$this->navbar->history->memory->goForward()
);
$this->navbar->address->update(
false
);
}
$this->navbar->history->refresh();
}
}
Loading…
Cancel
Save