|
|
@ -105,7 +105,8 @@ class Page |
|
|
|
|
|
|
|
|
|
|
|
public function update( |
|
|
|
public function update( |
|
|
|
bool $history = true, |
|
|
|
bool $history = true, |
|
|
|
int $refresh = 100 |
|
|
|
int $refresh = 100, |
|
|
|
|
|
|
|
int $timeout = 5 |
|
|
|
): void |
|
|
|
): void |
|
|
|
{ |
|
|
|
{ |
|
|
|
// Update history |
|
|
|
// Update history |
|
|
@ -133,13 +134,17 @@ class Page |
|
|
|
|
|
|
|
|
|
|
|
// Update content by multi-protocol responser |
|
|
|
// Update content by multi-protocol responser |
|
|
|
$response = new \Yggverse\Yoda\Model\Response( |
|
|
|
$response = new \Yggverse\Yoda\Model\Response( |
|
|
|
$this->navbar->request->getValue() |
|
|
|
$this->navbar->request->getValue(), |
|
|
|
|
|
|
|
$timeout |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Calculate expiration time |
|
|
|
|
|
|
|
$expire = time() + $timeout; |
|
|
|
|
|
|
|
|
|
|
|
// Listen response |
|
|
|
// Listen response |
|
|
|
\Gtk::timeout_add( |
|
|
|
\Gtk::timeout_add( |
|
|
|
$refresh, |
|
|
|
$refresh, |
|
|
|
function() use ($response) |
|
|
|
function() use ($response, $expire) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// Redirect requested |
|
|
|
// Redirect requested |
|
|
|
if ($location = $response->getRedirect()) |
|
|
|
if ($location = $response->getRedirect()) |
|
|
@ -205,8 +210,18 @@ class Page |
|
|
|
|
|
|
|
|
|
|
|
else $this->response->hide(); |
|
|
|
else $this->response->hide(); |
|
|
|
|
|
|
|
|
|
|
|
// Stop event loop on request expired or completed |
|
|
|
// Stop event loop on request completed |
|
|
|
if ($response->isExpired() || $response->isCompleted()) |
|
|
|
if ($response->isCompleted()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// Hide progressbar |
|
|
|
|
|
|
|
$this->progressbar->hide(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Stop |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Stop event loop on request expired |
|
|
|
|
|
|
|
if (time() > $expire) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// Hide progressbar |
|
|
|
// Hide progressbar |
|
|
|
$this->progressbar->hide(); |
|
|
|
$this->progressbar->hide(); |
|
|
|