aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-01-03 13:01:47 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-01-06 10:51:18 +0100
commitd815c8badabb347537f26612a5edab3a71cba866 (patch)
tree31cad5baf317fbe1bad63ae7b9a0cd3104317d42 /src/mainwindow.cpp
parent522184bf155d22728d1a829e5f30847ae3e7aeb7 (diff)
downloadkristall-d815c8badabb347537f26612a5edab3a71cba866.tar.gz
Basic caching functionality implemented
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index f46ed75..4552520 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -209,6 +209,40 @@ void MainWindow::mousePressEvent(QMouseEvent *event)
}
}
+std::shared_ptr<CachedPage> MainWindow::cacheFind(QString const &url)
+{
+ if (this->page_cache.find(url) != this->page_cache.end())
+ {
+ return page_cache[url];
+ }
+ return nullptr;
+}
+
+bool MainWindow::cacheContains(const QUrl &url) const
+{
+ QString urlstr = url.toString(QUrl::FullyEncoded | QUrl::RemoveFragment);
+ return this->page_cache.find(urlstr) != this->page_cache.end();
+}
+
+void MainWindow::cachePage(const QUrl &url, const QByteArray &body, const MimeType &mime)
+{
+ QString urlstr = url.toString(QUrl::FullyEncoded | QUrl::RemoveFragment);
+ if (this->page_cache.find(urlstr) != this->page_cache.end())
+ {
+ qDebug() << "Updating cached page";
+ auto pg = this->page_cache[urlstr];
+ pg->body = body;
+ pg->mime = mime;
+ return;
+ }
+
+ this->page_cache[urlstr] = std::make_shared<CachedPage>(url, body, mime);
+
+ qDebug() << "Cached page : " << url;
+
+ return;
+}
+
void MainWindow::on_browser_tabs_currentChanged(int index)
{
if(index >= 0) {