diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-01-03 13:01:47 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-01-06 10:51:18 +0100 |
| commit | d815c8badabb347537f26612a5edab3a71cba866 (patch) | |
| tree | 31cad5baf317fbe1bad63ae7b9a0cd3104317d42 /src/mainwindow.cpp | |
| parent | 522184bf155d22728d1a829e5f30847ae3e7aeb7 (diff) | |
| download | kristall-d815c8badabb347537f26612a5edab3a71cba866.tar.gz | |
Basic caching functionality implemented
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 34 |
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) { |
