mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 17:15:28 +00:00
save session on browser close only
This commit is contained in:
parent
196b55e072
commit
48198668fd
4 changed files with 38 additions and 79 deletions
|
|
@ -5,7 +5,6 @@ declare(strict_types=1);
|
|||
namespace Yggverse\Yoda\Entity\Browser\Container\Page\Navbar;
|
||||
|
||||
use \GdkEvent;
|
||||
use \Gtk;
|
||||
use \GtkEntry;
|
||||
|
||||
use \Yggverse\Yoda\Abstract\Entity\Entry;
|
||||
|
|
@ -17,9 +16,6 @@ class Request extends Entry
|
|||
// Defaults
|
||||
public const PLACEHOLDER = 'URL or search term...';
|
||||
|
||||
// Extras
|
||||
private ?int $_changed = null;
|
||||
|
||||
// Dependencies
|
||||
public Navbar $navbar;
|
||||
|
||||
|
|
@ -57,8 +53,6 @@ class Request extends Entry
|
|||
$this->navbar->page->open(
|
||||
$this->getValue()
|
||||
);
|
||||
|
||||
$this->navbar->page->container->tab->update();
|
||||
}
|
||||
|
||||
protected function _onKeyRelease(
|
||||
|
|
@ -81,33 +75,6 @@ class Request extends Entry
|
|||
|
||||
// Show suggestions autocomplete
|
||||
$this->completion->refresh();
|
||||
|
||||
// Update session
|
||||
if (isset($this->navbar->page->container->tab))
|
||||
{
|
||||
// Reset keyup time
|
||||
if ($this->_changed)
|
||||
{
|
||||
Gtk::source_remove(
|
||||
$this->_changed
|
||||
);
|
||||
|
||||
$this->_changed = null;
|
||||
}
|
||||
|
||||
// Wait for one second to apply act
|
||||
$this->_changed = Gtk::timeout_add(
|
||||
1000,
|
||||
function()
|
||||
{
|
||||
$this->navbar->page->container->tab->update();
|
||||
|
||||
$this->_changed = null;
|
||||
|
||||
return false; // stop
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
protected function _onFocusOut(
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class Tab
|
|||
public const SCROLLABLE = true;
|
||||
|
||||
// Extras
|
||||
private array $_page = [];
|
||||
public array $pages = [];
|
||||
|
||||
public function __construct(
|
||||
Container $container
|
||||
|
|
@ -119,7 +119,7 @@ class Tab
|
|||
{
|
||||
// Extendable classes not supported by PHP-GTK3 #117
|
||||
// create internal pages registry
|
||||
$this->_page[] = $page = new Page(
|
||||
$this->pages[] = $page = new Page(
|
||||
$this->container
|
||||
);
|
||||
|
||||
|
|
@ -204,13 +204,13 @@ class Tab
|
|||
}
|
||||
|
||||
// Validate page index exists
|
||||
if (empty($this->_page[$page_num]))
|
||||
if (empty($this->pages[$page_num]))
|
||||
{
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
// Return page entity
|
||||
return $this->_page[$page_num];
|
||||
return $this->pages[$page_num];
|
||||
}
|
||||
|
||||
public function close(
|
||||
|
|
@ -229,14 +229,12 @@ class Tab
|
|||
}
|
||||
}
|
||||
|
||||
public function reorder(
|
||||
bool $session = true
|
||||
): void
|
||||
public function reorder(): void
|
||||
{
|
||||
// Init new index
|
||||
$_page = [];
|
||||
$pages = [];
|
||||
|
||||
foreach ($this->_page as $page)
|
||||
foreach ($this->pages as $page)
|
||||
{
|
||||
// Get current entity $page_num
|
||||
$page_num = $this->gtk->page_num(
|
||||
|
|
@ -253,39 +251,14 @@ class Tab
|
|||
}
|
||||
|
||||
// Update position
|
||||
$_page[$page_num] = $page;
|
||||
$pages[$page_num] = $page;
|
||||
}
|
||||
|
||||
// Reorder entities
|
||||
$this->_page = $_page;
|
||||
$this->pages = $pages;
|
||||
|
||||
ksort(
|
||||
$this->_page
|
||||
$this->pages
|
||||
);
|
||||
|
||||
// Update session
|
||||
if ($session)
|
||||
{
|
||||
$this->update();
|
||||
}
|
||||
}
|
||||
|
||||
public function update(): void
|
||||
{
|
||||
$pid = pcntl_fork();
|
||||
|
||||
if ($pid === 0)
|
||||
{
|
||||
$this->container->browser->database->cleanSession();
|
||||
|
||||
foreach ($this->_page as $page)
|
||||
{
|
||||
$this->container->browser->database->addSession(
|
||||
$page->navbar->request->getValue()
|
||||
);
|
||||
}
|
||||
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue