From 8ef95ed5f65c07020a91b9fce306eacc0309794a Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 17 Apr 2010 18:27:40 +0200 Subject: Clean tab previews, not showing on loading removed a duplicated method and save one QPixmap in WebSnap class --- src/tabbar.cpp | 5 ++++- src/urlbar/listitem.cpp | 24 +++--------------------- src/urlbar/listitem.h | 3 --- src/websnap.cpp | 8 +++++--- src/websnap.h | 1 - 5 files changed, 12 insertions(+), 29 deletions(-) diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 518b1a96..f8da57b1 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -164,13 +164,16 @@ void TabBar::showTabPreview(int tab) delete m_previewPopup.data(); m_previewPopup.clear(); + if (indexedTab->progress() != 0) + return; + m_previewPopup = new KPassivePopup(this); m_previewPopup.data()->setFrameShape(QFrame::StyledPanel); m_previewPopup.data()->setFrameShadow(QFrame::Plain); m_previewPopup.data()->setFixedSize(w, h); QLabel *l = new QLabel(); - l->setPixmap( WebSnap::renderPreview( *indexedTab->page(), w, h, false) ); + l->setPixmap( WebSnap::renderPreview( *indexedTab->page(), w, h, true) ); m_previewPopup.data()->setView(l); m_previewPopup.data()->layout()->setAlignment(Qt::AlignTop); diff --git a/src/urlbar/listitem.cpp b/src/urlbar/listitem.cpp index 6f91aabd..229b43e9 100644 --- a/src/urlbar/listitem.cpp +++ b/src/urlbar/listitem.cpp @@ -31,6 +31,7 @@ // Local Includes #include "urlresolver.h" #include "application.h" +#include "websnap.h" // KDE Includes #include @@ -238,7 +239,8 @@ ItemPreview::ItemPreview(const QString &url, int width, int height, QWidget *par setFixedSize(width, height); setFrameStyle(QFrame::StyledPanel | QFrame::Raised); - QString path = KStandardDirs::locateLocal("cache", QString("thumbs/") + guessNameFromUrl( QUrl(url) ) + ".png", true); + KUrl u = WebSnap::fileForUrl( QUrl(url) ); + QString path = u.pathOrUrl(); if(QFile::exists(path)) { QPixmap preview; @@ -248,26 +250,6 @@ ItemPreview::ItemPreview(const QString &url, int width, int height, QWidget *par } -//TODO: REMOVE DUPLICATE CODE WITH PREVIEWIMAGE -QString ItemPreview::guessNameFromUrl(QUrl url) -{ - QString name = url.toString( QUrl::RemoveScheme | QUrl::RemoveUserInfo | QUrl::StripTrailingSlash ); - - // TODO learn Regular Expressions :) - // and implement something better here.. - name.remove('/'); - name.remove('&'); - name.remove('.'); - name.remove('-'); - name.remove('_'); - name.remove('?'); - name.remove('='); - name.remove('+'); - - return name; -} - - // --------------------------------------------------------------- diff --git a/src/urlbar/listitem.h b/src/urlbar/listitem.h index 2f6f898a..8a6f520f 100644 --- a/src/urlbar/listitem.h +++ b/src/urlbar/listitem.h @@ -193,9 +193,6 @@ class ItemPreview : public QLabel public: ItemPreview(const QString &url, int width, int height, QWidget *parent = 0); - -private: - static QString guessNameFromUrl(QUrl url); }; diff --git a/src/websnap.cpp b/src/websnap.cpp index 906bbc1e..612fdf4e 100644 --- a/src/websnap.cpp +++ b/src/websnap.cpp @@ -146,20 +146,22 @@ QString WebSnap::guessNameFromUrl(QUrl url) void WebSnap::saveResult(bool ok) { + QPixmap image = QPixmap(); + // crude error-checking if (!ok) { kDebug() << "Error loading site.."; m_snapTitle = "Error..."; - m_image = QPixmap(); + } else { - m_image = renderPreview(m_page, WIDTH, HEIGHT); + image = renderPreview(m_page, WIDTH, HEIGHT); m_snapTitle = m_page.mainFrame()->title(); } QFile::remove(fileForUrl(m_url).toLocalFile()); - m_image.save(fileForUrl(m_url).toLocalFile()); + image.save(fileForUrl(m_url).toLocalFile()); NewTabPage p( m_frame ); p.snapFinished(m_previewIndex, m_url, m_snapTitle); diff --git a/src/websnap.h b/src/websnap.h index e7c9e593..9773b4cc 100644 --- a/src/websnap.h +++ b/src/websnap.h @@ -78,7 +78,6 @@ private slots: private: QWebPage m_page; - QPixmap m_image; QUrl m_url; QString m_snapTitle; -- cgit v1.2.1