diff options
author | matgic78 <matgic78@gmail.com> | 2010-04-16 17:32:38 +0200 |
---|---|---|
committer | matgic78 <matgic78@gmail.com> | 2010-04-16 17:32:38 +0200 |
commit | d8ea755c2b4ce9c22bf7543b3f345d90f434e8cf (patch) | |
tree | b488d7663c74447bec64ad7cb179fc1d1e760451 /src/newtabpage.cpp | |
parent | Fixing Lionel's merge request: (diff) | |
download | rekonq-d8ea755c2b4ce9c22bf7543b3f345d90f434e8cf.tar.xz |
Fix a bug in NewTabPage::snapFinished
When you started to load closedTabs and opened favorites, previews were replaced when background load of previews finished.
Changes :
- preview titles are saved only when urls match
- previews are replaced only when urls match
- added some checks to prevent NewTabPage to have strange behaviour in the future
Diffstat (limited to 'src/newtabpage.cpp')
-rw-r--r-- | src/newtabpage.cpp | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/newtabpage.cpp b/src/newtabpage.cpp index 043648e7..d7671937 100644 --- a/src/newtabpage.cpp +++ b/src/newtabpage.cpp @@ -283,20 +283,9 @@ void NewTabPage::setupPreview(QWebElement e, int index) void NewTabPage::snapFinished(int index, const KUrl &url, const QString &title) { - // do not try to modify the page if it isn't the newTabPage - if(m_root.document().findAll("#rekonq-newtabpage").count() == 0) - return; - - QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); - QWebElement newPrev = validPreview(index, url, title); - - if(m_root.findAll(".closedTabs").count() != 0) - hideControls(newPrev); - - prev.replace(newPrev); - - // update title - if(m_root.findAll(".favorites").count() != 0) + // Update title if necessary + QStringList urls = ReKonfig::previewUrls(); + if(KUrl(urls.at(index)) == url) { QStringList names = ReKonfig::previewNames(); names.replace(index, title); @@ -304,6 +293,23 @@ void NewTabPage::snapFinished(int index, const KUrl &url, const QString &title) ReKonfig::self()->writeConfig(); } + + // Update page, but only if open + if(m_root.document().findAll("#rekonq-newtabpage").count() == 0) + return; + if(m_root.findAll(".favorites").count() == 0 && m_root.findAll(".closedTabs").count() == 0) + return; + + QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); + if(KUrl(prev.findFirst("a").attribute("href")) == url) + { + QWebElement newPrev = validPreview(index, url, title); + + if(m_root.findAll(".closedTabs").count() != 0) + hideControls(newPrev); + + prev.replace(newPrev); + } } |