From 8343d45f3dfd631a3f5ac4213918f285930eb446 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Thu, 17 Dec 2009 18:22:23 +0100 Subject: Re-implemented previews in homepage without using plugins. Not finished yet : Little things that change: -nice buttons appearing on hover -transitions on hover TODO: -when a preview is empty or when loading, it is very ugly -for now there's no way to choose the page you want to preview -port "closed Tabs" to this new architecture -totally remove PreviewImage classes -eventually, specific contextmenu for previews --- src/rekonqpage/newtabpage.cpp | 155 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 127 insertions(+), 28 deletions(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index 66f74b86..4299c8bb 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -46,6 +46,7 @@ // Qt Includes #include +#include NewTabPage::NewTabPage(QWebFrame *frame) @@ -72,6 +73,16 @@ NewTabPage::~NewTabPage() void NewTabPage::generate(const KUrl &url) { + if(KUrl("about:preview").isParentOf(url)) + { + if(url.directory() == QString("preview/remove")) + { + removePreview(url.fileName().toInt()); + return; + } + } + + QWebPage *page = m_root.webFrame()->page(); page->mainFrame()->setHtml(m_html); @@ -80,26 +91,26 @@ void NewTabPage::generate(const KUrl &url) browsingMenu(url); QString title; - if(url == KUrl("about:closedTabs")) + if(url == KUrl("about:home") || url == KUrl("about:favorites")) + { + favoritesPage(); + title = i18n("Favorites"); + } + else if(url == KUrl("about:closedTabs")) { closedTabsPage(); title = i18n("Closed Tabs"); } - if(url == KUrl("about:history")) + else if(url == KUrl("about:history")) { historyPage(); title = i18n("History"); } - if(url == KUrl("about:bookmarks")) + else if(url == KUrl("about:bookmarks")) { bookmarksPage(); title = i18n("Bookmarks"); } - if(url == KUrl("about:home") || url == KUrl("about:favorites")) - { - favoritesPage(); - title = i18n("Favorites"); - } m_root.document().findFirst("title").setPlainText(title); } @@ -114,34 +125,111 @@ void NewTabPage::favoritesPage() for(int i=0; i<8; ++i) { - QWebElement speed = markup(".thumbnail"); - speed.findFirst("object").setAttribute("data" , urls.at(i)); - speed.findFirst("param[name=title]").setAttribute("value", names.at(i)); - speed.findFirst("param[name=index]").setAttribute("value", QString::number(i)); - speed.findFirst("param[name=isFavorite]").setAttribute("value", "true"); + QWebElement speed; + + if(urls.at(i).isEmpty()) + speed = emptyPreview(); + else if(!QFile::exists(WebSnap::fileForUrl(urls.at(i)).toLocalFile())) + speed = loadingPreview(i, urls.at(i)); + else + speed = validPreview(i, urls.at(i), names.at(i)); + + speed.setAttribute("id", "preview" + QVariant(i).toString()); m_root.appendInside(speed); } } -// FIXME : port to new PreviewImage API to use... -/*QString NewTabPage::lastVisitedPage() +QWebElement NewTabPage::emptyPreview() { - QString last; - QList history = Application::historyManager()->history(); - for (int i = 0; i < 8 && i < history.size(); ++i) - { - HistoryItem it = history.at(i); - last += "
"; - last += ""; - last += ""; - last += "
"; - last += "" + it.title + "
"; - } + QWebElement prev = markup(".thumbnail"); + + prev.findFirst("img").setAttribute("src" , QString("file:///") + + KIconLoader::global()->iconPath("insert-image", KIconLoader::Desktop)); + prev.findFirst("span").appendInside(i18n("Set a Preview...")); + + return prev; +} + + +QWebElement NewTabPage::loadingPreview(int index, KUrl url) +{ + QWebElement prev = markup(".thumbnail"); + + prev.findFirst("img").setAttribute("src" , + QString("file:///") + KStandardDirs::locate("appdata", "pics/busywidget.gif")); + prev.findFirst("span").appendInside(i18n("Loading Preview...")); + WebSnap *snap = new WebSnap(url); + snap->SetData(QVariant(index)); + connect(snap, SIGNAL(finished()), SLOT(snapFinished())); + + return prev; +} + +QWebElement NewTabPage::validPreview(int index, KUrl url, QString title) +{ + QWebElement prev = markup(".thumbnail"); + KUrl previewPath = WebSnap::fileForUrl(url); + QString iString = QVariant(index).toString(); + + prev.findFirst(".preview").setAttribute("src" , previewPath.toMimeDataString()); + prev.findFirst("a").setAttribute("href", url.toMimeDataString()); + prev.findFirst("span > a").setAttribute("href", url.toMimeDataString()); + prev.findFirst("span").appendInside(checkTitle(title)); + + prev.findFirst(".modify img").setAttribute("src", QString("file:///") + + KIconLoader::global()->iconPath("insert-image", KIconLoader::DefaultState)); + prev.findFirst(".modify").setAttribute("href", QString("about:preview/modify/" + iString )); + + prev.findFirst(".remove img").setAttribute("src", QString("file:///") + + KIconLoader::global()->iconPath("edit-delete", KIconLoader::DefaultState)); + prev.findFirst(".remove").setAttribute("href", QString("about:preview/remove/" + iString )); + + return prev; +} - return last; -}*/ +void NewTabPage::snapFinished() +{ + WebSnap *snap = qobject_cast(sender()); + QWebElement thumb = m_root.findFirst("#preview" + snap->data().toString()); + thumb.findFirst("img").setAttribute("src", WebSnap::fileForUrl(snap->snapUrl()).toMimeDataString()); + thumb.findFirst("p").setPlainText(snap->snapTitle()); + + // Save the new config + QStringList names = ReKonfig::previewNames(); + QStringList urls = ReKonfig::previewUrls(); + + // stripTrailingSlash to be sure to get the same string for same address + urls.replace(snap->data().toInt(), snap->snapUrl().toString(QUrl::StripTrailingSlash)); + names.replace(snap->data().toInt() , snap->snapTitle()); + + ReKonfig::setPreviewNames(names); + ReKonfig::setPreviewUrls(urls); + + ReKonfig::self()->writeConfig(); +} + + +void NewTabPage::removePreview(int index) +{ + QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); + + + QStringList names = ReKonfig::previewNames(); + QStringList urls = ReKonfig::previewUrls(); + + urls.replace(index, QString("")); + names.replace(index, QString("")); + + ReKonfig::setPreviewNames(names); + ReKonfig::setPreviewUrls(urls); + + // sync file data + ReKonfig::self()->writeConfig(); + + prev.replace(emptyPreview()); +} void NewTabPage::browsingMenu(const KUrl ¤tUrl) @@ -278,3 +366,14 @@ void NewTabPage::closedTabsPage() m_root.appendInside(closed); } } + + +QString NewTabPage::checkTitle(QString title) +{ + if(title.length() > 23) + { + title.truncate(20); + title += "..."; + } + return title; +} -- cgit v1.2.1 From f1f7e2011c3f245cd1987b0f09b72c2f7dea283f Mon Sep 17 00:00:00 2001 From: matgic78 Date: Fri, 18 Dec 2009 15:58:48 +0100 Subject: Various changes: - improve appearance of empty/loading previews - port closedTabs to new system - remove PreviewImage files TODO : dialog to choose preview --- src/rekonqpage/newtabpage.cpp | 84 +++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 26 deletions(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index 4299c8bb..a587502c 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -80,6 +80,10 @@ void NewTabPage::generate(const KUrl &url) removePreview(url.fileName().toInt()); return; } + if(url.directory() == QString("preview/modify")) + { + return; + } } @@ -125,28 +129,31 @@ void NewTabPage::favoritesPage() for(int i=0; i<8; ++i) { - QWebElement speed; + KUrl url = urls.at(i); + QWebElement prev; - if(urls.at(i).isEmpty()) - speed = emptyPreview(); - else if(!QFile::exists(WebSnap::fileForUrl(urls.at(i)).toLocalFile())) - speed = loadingPreview(i, urls.at(i)); + if(url.isEmpty()) + prev = emptyPreview(i); + else if(!QFile::exists(WebSnap::fileForUrl(url).toLocalFile())) + prev = loadingPreview(i, url); else - speed = validPreview(i, urls.at(i), names.at(i)); + prev = validPreview(i, url, names.at(i)); - speed.setAttribute("id", "preview" + QVariant(i).toString()); - m_root.appendInside(speed); + prev.setAttribute("id", "preview" + QVariant(i).toString()); + m_root.appendInside(prev); } } -QWebElement NewTabPage::emptyPreview() +QWebElement NewTabPage::emptyPreview(int index) { QWebElement prev = markup(".thumbnail"); - prev.findFirst("img").setAttribute("src" , QString("file:///") + + prev.findFirst(".preview img").setAttribute("src" , QString("file:///") + KIconLoader::global()->iconPath("insert-image", KIconLoader::Desktop)); prev.findFirst("span").appendInside(i18n("Set a Preview...")); + prev.findFirst("a").setAttribute("href", QString("about:/preview/modify/" + QVariant(index).toString())); + hideControls(prev); return prev; } @@ -156,9 +163,11 @@ QWebElement NewTabPage::loadingPreview(int index, KUrl url) { QWebElement prev = markup(".thumbnail"); - prev.findFirst("img").setAttribute("src" , - QString("file:///") + KStandardDirs::locate("appdata", "pics/busywidget.gif")); + prev.findFirst(".preview img").setAttribute("src" , + QString("file:///") + KStandardDirs::locate("appdata", "pics/busywidget.gif")); prev.findFirst("span").appendInside(i18n("Loading Preview...")); + showControls(prev); + WebSnap *snap = new WebSnap(url); snap->SetData(QVariant(index)); connect(snap, SIGNAL(finished()), SLOT(snapFinished())); @@ -172,29 +181,43 @@ QWebElement NewTabPage::validPreview(int index, KUrl url, QString title) KUrl previewPath = WebSnap::fileForUrl(url); QString iString = QVariant(index).toString(); - prev.findFirst(".preview").setAttribute("src" , previewPath.toMimeDataString()); + prev.findFirst(".preview img").setAttribute("src" , previewPath.toMimeDataString()); prev.findFirst("a").setAttribute("href", url.toMimeDataString()); - prev.findFirst("span > a").setAttribute("href", url.toMimeDataString()); + prev.findFirst("span a").setAttribute("href", url.toMimeDataString()); prev.findFirst("span").appendInside(checkTitle(title)); prev.findFirst(".modify img").setAttribute("src", QString("file:///") + - KIconLoader::global()->iconPath("insert-image", KIconLoader::DefaultState)); + KIconLoader::global()->iconPath("insert-image", KIconLoader::DefaultState)); prev.findFirst(".modify").setAttribute("href", QString("about:preview/modify/" + iString )); prev.findFirst(".remove img").setAttribute("src", QString("file:///") + - KIconLoader::global()->iconPath("edit-delete", KIconLoader::DefaultState)); + KIconLoader::global()->iconPath("edit-delete", KIconLoader::DefaultState)); prev.findFirst(".remove").setAttribute("href", QString("about:preview/remove/" + iString )); + showControls(prev); + + return prev; } +void NewTabPage::hideControls(QWebElement e) +{ + e.findFirst(".remove").setStyleProperty("visibility", "hidden"); + e.findFirst(".modify").setStyleProperty("visibility", "hidden"); +} +void NewTabPage::showControls(QWebElement e) +{ + e.findFirst(".remove").setStyleProperty("visibility", "visible"); + e.findFirst(".modify").setStyleProperty("visibility", "visible"); +} + + void NewTabPage::snapFinished() { WebSnap *snap = qobject_cast(sender()); - QWebElement thumb = m_root.findFirst("#preview" + snap->data().toString()); - thumb.findFirst("img").setAttribute("src", WebSnap::fileForUrl(snap->snapUrl()).toMimeDataString()); - thumb.findFirst("p").setPlainText(snap->snapTitle()); + QWebElement prev = m_root.findFirst("#preview" + snap->data().toString()); + prev.replace(validPreview(snap->data().toInt(), snap->snapUrl(), snap->snapTitle())); // Save the new config QStringList names = ReKonfig::previewNames(); @@ -228,7 +251,7 @@ void NewTabPage::removePreview(int index) // sync file data ReKonfig::self()->writeConfig(); - prev.replace(emptyPreview()); + prev.replace(emptyPreview(index)); } @@ -357,13 +380,22 @@ void NewTabPage::createBookItem(const KBookmark &bookmark, QWebElement parent) void NewTabPage::closedTabsPage() { QList links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); - - foreach(const HistoryItem &item, links) + + for(int i=0; i < links.count(); ++i) { - QWebElement closed = markup(".thumbnail"); - closed.findFirst("object").setAttribute("data" , item.url); - closed.findFirst("param[name=title]").setAttribute("value", item.title); - m_root.appendInside(closed); + HistoryItem item = links.at(i); + QWebElement prev; + + if(item.url.isEmpty()) + continue; + else if(!QFile::exists(WebSnap::fileForUrl(item.url).toLocalFile())) + prev = loadingPreview(i, item.url); + else + prev = validPreview(i, item.url, item.title); + + prev.setAttribute("id", "preview" + QVariant(i).toString()); + hideControls(prev); + m_root.appendInside(prev); } } -- cgit v1.2.1 From 18b87086d1a0e472662f3883962b60dbe57e215f Mon Sep 17 00:00:00 2001 From: matgic78 Date: Sat, 26 Dec 2009 13:00:53 +0100 Subject: First expermimental implementation of a new way of choosing a preview --- src/rekonqpage/newtabpage.cpp | 57 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 12 deletions(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index a587502c..c91af2dc 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -36,6 +36,7 @@ #include "application.h" #include "mainwindow.h" #include "mainview.h" +#include "previewchooser.h" // KDE Includes #include @@ -43,6 +44,7 @@ #include #include #include +#include // Qt Includes #include @@ -82,6 +84,9 @@ void NewTabPage::generate(const KUrl &url) } if(url.directory() == QString("preview/modify")) { + PreviewChooser *pc = new PreviewChooser(url.fileName().toInt()); + connect(pc, SIGNAL(urlChoosed(int,KUrl)), SLOT(setPreview(int,KUrl))); + pc->show(); return; } } @@ -139,7 +144,8 @@ void NewTabPage::favoritesPage() else prev = validPreview(i, url, names.at(i)); - prev.setAttribute("id", "preview" + QVariant(i).toString()); + setupPreview(prev, i); + m_root.appendInside(prev); } } @@ -152,7 +158,9 @@ QWebElement NewTabPage::emptyPreview(int index) prev.findFirst(".preview img").setAttribute("src" , QString("file:///") + KIconLoader::global()->iconPath("insert-image", KIconLoader::Desktop)); prev.findFirst("span").appendInside(i18n("Set a Preview...")); - prev.findFirst("a").setAttribute("href", QString("about:/preview/modify/" + QVariant(index).toString())); + prev.findFirst("a").setAttribute("href", QString("about:preview/modify/" + QVariant(index).toString())); + + setupPreview(prev, index); hideControls(prev); return prev; @@ -166,6 +174,8 @@ QWebElement NewTabPage::loadingPreview(int index, KUrl url) prev.findFirst(".preview img").setAttribute("src" , QString("file:///") + KStandardDirs::locate("appdata", "pics/busywidget.gif")); prev.findFirst("span").appendInside(i18n("Loading Preview...")); + + setupPreview(prev, index); showControls(prev); WebSnap *snap = new WebSnap(url); @@ -184,19 +194,11 @@ QWebElement NewTabPage::validPreview(int index, KUrl url, QString title) prev.findFirst(".preview img").setAttribute("src" , previewPath.toMimeDataString()); prev.findFirst("a").setAttribute("href", url.toMimeDataString()); prev.findFirst("span a").setAttribute("href", url.toMimeDataString()); - prev.findFirst("span").appendInside(checkTitle(title)); - - prev.findFirst(".modify img").setAttribute("src", QString("file:///") + - KIconLoader::global()->iconPath("insert-image", KIconLoader::DefaultState)); - prev.findFirst(".modify").setAttribute("href", QString("about:preview/modify/" + iString )); - - prev.findFirst(".remove img").setAttribute("src", QString("file:///") + - KIconLoader::global()->iconPath("edit-delete", KIconLoader::DefaultState)); - prev.findFirst(".remove").setAttribute("href", QString("about:preview/remove/" + iString )); + prev.findFirst("span").setPlainText(checkTitle(title)); + setupPreview(prev, index); showControls(prev); - return prev; } @@ -212,6 +214,19 @@ void NewTabPage::showControls(QWebElement e) e.findFirst(".modify").setStyleProperty("visibility", "visible"); } +void NewTabPage::setupPreview(QWebElement e, int index) +{ + e.findFirst(".remove img").setAttribute("src", QString("file:///") + + KIconLoader::global()->iconPath("edit-delete", KIconLoader::DefaultState)); + e.findFirst(".modify img").setAttribute("src", QString("file:///") + + KIconLoader::global()->iconPath("insert-image", KIconLoader::DefaultState)); + + e.findFirst(".modify").setAttribute("href", QString("about:preview/modify/" + QVariant(index).toString())); + e.findFirst(".remove").setAttribute("href", QString("about:preview/remove/" + QVariant(index).toString())); + + e.setAttribute("id", "preview" + QVariant(index).toString()); +} + void NewTabPage::snapFinished() { @@ -255,6 +270,24 @@ void NewTabPage::removePreview(int index) } +void NewTabPage::setPreview(int index, KUrl url) +{ + if(url.isEmpty()) + return; + + QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); + + QStringList urls = ReKonfig::previewUrls(); + urls.replace(index, url.toMimeDataString()); + ReKonfig::setPreviewUrls(urls); + ReKonfig::self()->writeConfig(); + + prev.replace(loadingPreview(index, url)); + + +} + + void NewTabPage::browsingMenu(const KUrl ¤tUrl) { QList navItems; -- cgit v1.2.1 From e3215b1316fa0459d4238bf5cb3c60b0bff90f73 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Thu, 31 Dec 2009 10:53:51 +0100 Subject: little changes --- src/rekonqpage/newtabpage.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index c91af2dc..c8b2e916 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -84,7 +84,9 @@ void NewTabPage::generate(const KUrl &url) } if(url.directory() == QString("preview/modify")) { - PreviewChooser *pc = new PreviewChooser(url.fileName().toInt()); + int index = url.fileName().toInt(); + QString url = m_root.findFirst("#preview" + QVariant(index).toString() + " > a").attribute("href"); + PreviewChooser *pc = new PreviewChooser(index, url); connect(pc, SIGNAL(urlChoosed(int,KUrl)), SLOT(setPreview(int,KUrl))); pc->show(); return; -- cgit v1.2.1 From 8b26d07972db5a2953e64f61bf86e2e31959a32f Mon Sep 17 00:00:00 2001 From: matgic78 Date: Thu, 31 Dec 2009 11:07:24 +0100 Subject: fix bug : closed Tabs replaced favorites when loaded --- src/rekonqpage/newtabpage.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index c8b2e916..78928bca 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -53,6 +53,7 @@ NewTabPage::NewTabPage(QWebFrame *frame) : m_root(frame->documentElement()) + , m_url(KUrl()) { QString htmlFilePath = KStandardDirs::locate("data", "rekonq/htmls/home.html"); @@ -73,7 +74,7 @@ NewTabPage::~NewTabPage() } -void NewTabPage::generate(const KUrl &url) +void NewTabPage::generate(KUrl url) { if(KUrl("about:preview").isParentOf(url)) { @@ -106,6 +107,7 @@ void NewTabPage::generate(const KUrl &url) { favoritesPage(); title = i18n("Favorites"); + url = KUrl("about:favorites"); } else if(url == KUrl("about:closedTabs")) { @@ -123,6 +125,8 @@ void NewTabPage::generate(const KUrl &url) title = i18n("Bookmarks"); } + m_url = url; + m_root.document().findFirst("title").setPlainText(title); } @@ -236,6 +240,9 @@ void NewTabPage::snapFinished() QWebElement prev = m_root.findFirst("#preview" + snap->data().toString()); prev.replace(validPreview(snap->data().toInt(), snap->snapUrl(), snap->snapTitle())); + if(m_url != KUrl("about:favorites")) + return; + // Save the new config QStringList names = ReKonfig::previewNames(); QStringList urls = ReKonfig::previewUrls(); -- cgit v1.2.1 From 544094302a51b919b1eea86b313ec10d47533a08 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Fri, 15 Jan 2010 17:20:51 +0100 Subject: A new approach for choosing previews : a bar appears, then you browse to the page you want to preview, and then you click a button --- src/rekonqpage/newtabpage.cpp | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index 78928bca..b075c186 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -36,7 +36,8 @@ #include "application.h" #include "mainwindow.h" #include "mainview.h" -#include "previewchooser.h" +#include "websnap.h" +#include "previewselectorbar.h" // KDE Includes #include @@ -48,7 +49,6 @@ // Qt Includes #include -#include NewTabPage::NewTabPage(QWebFrame *frame) @@ -86,10 +86,8 @@ void NewTabPage::generate(KUrl url) if(url.directory() == QString("preview/modify")) { int index = url.fileName().toInt(); - QString url = m_root.findFirst("#preview" + QVariant(index).toString() + " > a").attribute("href"); - PreviewChooser *pc = new PreviewChooser(index, url); - connect(pc, SIGNAL(urlChoosed(int,KUrl)), SLOT(setPreview(int,KUrl))); - pc->show(); + Application::instance()->mainWindow()->findChild() + ->enable(index, qobject_cast< WebPage* >(m_root.webFrame()->page())); return; } } @@ -260,9 +258,6 @@ void NewTabPage::snapFinished() void NewTabPage::removePreview(int index) { - QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); - - QStringList names = ReKonfig::previewNames(); QStringList urls = ReKonfig::previewUrls(); @@ -272,9 +267,9 @@ void NewTabPage::removePreview(int index) ReKonfig::setPreviewNames(names); ReKonfig::setPreviewUrls(urls); - // sync file data ReKonfig::self()->writeConfig(); + QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); prev.replace(emptyPreview(index)); } @@ -285,18 +280,33 @@ void NewTabPage::setPreview(int index, KUrl url) return; QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); + prev.replace(loadingPreview(index, url)); + +} + + +void NewTabPage::setPreview(int index, WebPage* page) +{ + KUrl url = page->mainFrame()->url(); + WebSnap::savePreview(WebSnap::renderPreview(*page), url); + + QStringList names = ReKonfig::previewNames(); QStringList urls = ReKonfig::previewUrls(); + urls.replace(index, url.toMimeDataString()); + names.replace(index, page->mainFrame()->title()); + + ReKonfig::setPreviewNames(names); ReKonfig::setPreviewUrls(urls); + ReKonfig::self()->writeConfig(); - - prev.replace(loadingPreview(index, url)); - + setPreview(index, url); } + void NewTabPage::browsingMenu(const KUrl ¤tUrl) { QList navItems; -- cgit v1.2.1 From 50d6ee1e340c35261b0445c1a2c793fb07da4854 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Sun, 17 Jan 2010 19:06:27 +0100 Subject: bugfixing... --- src/rekonqpage/newtabpage.cpp | 56 ++++--------------------------------------- 1 file changed, 5 insertions(+), 51 deletions(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index b075c186..f2609c19 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -26,6 +26,7 @@ // Self Includes #include "newtabpage.h" +#include "newtabpage.moc" // Auto Includes #include "rekonq.h" @@ -183,8 +184,9 @@ QWebElement NewTabPage::loadingPreview(int index, KUrl url) showControls(prev); WebSnap *snap = new WebSnap(url); + bool test = connect(snap, SIGNAL(finished()), this, SLOT(snapFinished())); + kDebug() << test; snap->SetData(QVariant(index)); - connect(snap, SIGNAL(finished()), SLOT(snapFinished())); return prev; } @@ -233,26 +235,11 @@ void NewTabPage::setupPreview(QWebElement e, int index) void NewTabPage::snapFinished() -{ +{ + kDebug() << "called"; WebSnap *snap = qobject_cast(sender()); QWebElement prev = m_root.findFirst("#preview" + snap->data().toString()); prev.replace(validPreview(snap->data().toInt(), snap->snapUrl(), snap->snapTitle())); - - if(m_url != KUrl("about:favorites")) - return; - - // Save the new config - QStringList names = ReKonfig::previewNames(); - QStringList urls = ReKonfig::previewUrls(); - - // stripTrailingSlash to be sure to get the same string for same address - urls.replace(snap->data().toInt(), snap->snapUrl().toString(QUrl::StripTrailingSlash)); - names.replace(snap->data().toInt() , snap->snapTitle()); - - ReKonfig::setPreviewNames(names); - ReKonfig::setPreviewUrls(urls); - - ReKonfig::self()->writeConfig(); } @@ -274,39 +261,6 @@ void NewTabPage::removePreview(int index) } -void NewTabPage::setPreview(int index, KUrl url) -{ - if(url.isEmpty()) - return; - - QWebElement prev = m_root.findFirst("#preview" + QVariant(index).toString()); - prev.replace(loadingPreview(index, url)); - -} - - -void NewTabPage::setPreview(int index, WebPage* page) -{ - KUrl url = page->mainFrame()->url(); - - WebSnap::savePreview(WebSnap::renderPreview(*page), url); - - QStringList names = ReKonfig::previewNames(); - QStringList urls = ReKonfig::previewUrls(); - - urls.replace(index, url.toMimeDataString()); - names.replace(index, page->mainFrame()->title()); - - ReKonfig::setPreviewNames(names); - ReKonfig::setPreviewUrls(urls); - - ReKonfig::self()->writeConfig(); - - setPreview(index, url); -} - - - void NewTabPage::browsingMenu(const KUrl ¤tUrl) { QList navItems; -- cgit v1.2.1 From dd2b45b7592bdefd14665c13cec2b7db6728d800 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Sun, 31 Jan 2010 15:53:29 +0100 Subject: Add tooltips to buttons --- src/rekonqpage/newtabpage.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index f2609c19..8a1ca89f 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -224,8 +224,10 @@ void NewTabPage::setupPreview(QWebElement e, int index) { e.findFirst(".remove img").setAttribute("src", QString("file:///") + KIconLoader::global()->iconPath("edit-delete", KIconLoader::DefaultState)); + e.findFirst(".remove").setAttribute("title", "Remove favorite"); e.findFirst(".modify img").setAttribute("src", QString("file:///") + KIconLoader::global()->iconPath("insert-image", KIconLoader::DefaultState)); + e.findFirst(".modify").setAttribute("title", "Set new favorite"); e.findFirst(".modify").setAttribute("href", QString("about:preview/modify/" + QVariant(index).toString())); e.findFirst(".remove").setAttribute("href", QString("about:preview/remove/" + QVariant(index).toString())); -- cgit v1.2.1 From 697d05328acd76de7a73145056ef22c8083f3ca4 Mon Sep 17 00:00:00 2001 From: matgic78 Date: Thu, 4 Feb 2010 17:29:13 +0100 Subject: Do not try to load homepage if url is not valid --- src/rekonqpage/newtabpage.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index 8a1ca89f..49f4e837 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -93,6 +93,14 @@ void NewTabPage::generate(KUrl url) } } + if( url != KUrl("about:home") + && url != KUrl("about:favorites") + && url != KUrl("about:closedTabs") + && url != KUrl("about:history") + && url != KUrl("about:bookmarks") + ) + return; + QWebPage *page = m_root.webFrame()->page(); page->mainFrame()->setHtml(m_html); -- cgit v1.2.1 From 6f3b61c0462b08d3c2a34ac1923470a3690233ee Mon Sep 17 00:00:00 2001 From: matgic78 Date: Sat, 6 Feb 2010 11:19:18 +0100 Subject: Fix loading previews : when load finished, result wasn't shown --- src/rekonqpage/newtabpage.cpp | 47 +++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 13 deletions(-) (limited to 'src/rekonqpage/newtabpage.cpp') diff --git a/src/rekonqpage/newtabpage.cpp b/src/rekonqpage/newtabpage.cpp index 49f4e837..19f1686f 100644 --- a/src/rekonqpage/newtabpage.cpp +++ b/src/rekonqpage/newtabpage.cpp @@ -76,7 +76,7 @@ NewTabPage::~NewTabPage() void NewTabPage::generate(KUrl url) -{ +{ if(KUrl("about:preview").isParentOf(url)) { if(url.directory() == QString("preview/remove")) @@ -140,10 +140,10 @@ void NewTabPage::generate(KUrl url) void NewTabPage::favoritesPage() { + m_root.addClass("favorites"); + QStringList names = ReKonfig::previewNames(); QStringList urls = ReKonfig::previewUrls(); - - m_root.addClass("favorites"); for(int i=0; i<8; ++i) { @@ -187,14 +187,12 @@ QWebElement NewTabPage::loadingPreview(int index, KUrl url) prev.findFirst(".preview img").setAttribute("src" , QString("file:///") + KStandardDirs::locate("appdata", "pics/busywidget.gif")); prev.findFirst("span").appendInside(i18n("Loading Preview...")); + prev.findFirst("a").setAttribute("href", url.toMimeDataString()); setupPreview(prev, index); showControls(prev); - WebSnap *snap = new WebSnap(url); - bool test = connect(snap, SIGNAL(finished()), this, SLOT(snapFinished())); - kDebug() << test; - snap->SetData(QVariant(index)); + new WebSnap(url, m_root.webFrame()->page(), index); return prev; } @@ -244,12 +242,29 @@ void NewTabPage::setupPreview(QWebElement e, int index) } -void NewTabPage::snapFinished() -{ - kDebug() << "called"; - WebSnap *snap = qobject_cast(sender()); - QWebElement prev = m_root.findFirst("#preview" + snap->data().toString()); - prev.replace(validPreview(snap->data().toInt(), snap->snapUrl(), snap->snapTitle())); +void NewTabPage::snapFinished(int index, KUrl url, 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) + { + QStringList names = ReKonfig::previewNames(); + names.replace(index, title); + ReKonfig::setPreviewNames(names); + + ReKonfig::self()->writeConfig(); + } } @@ -319,6 +334,8 @@ void NewTabPage::browsingMenu(const KUrl ¤tUrl) void NewTabPage::historyPage() { + m_root.addClass("history"); + HistoryTreeModel *model = Application::historyManager()->historyTreeModel(); int i = 0; @@ -349,6 +366,8 @@ void NewTabPage::historyPage() void NewTabPage::bookmarksPage() { + m_root.addClass("bookmarks"); + KBookmarkGroup bookGroup = Application::bookmarkProvider()->rootGroup(); if (bookGroup.isNull()) { @@ -395,6 +414,8 @@ void NewTabPage::createBookItem(const KBookmark &bookmark, QWebElement parent) void NewTabPage::closedTabsPage() { + m_root.addClass("closedTabs"); + QList links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); for(int i=0; i < links.count(); ++i) -- cgit v1.2.1