SpeedDial: First try to port it to QtWebEngine

It now just loads the page, but it does not even correctly
shows all the dials.
remotes/origin/falkon
David Rosca 11 years ago
parent 89dedf0a0e
commit b6fcfba09a
  1. 2
      src/lib/network/schemehandlers/qupzillaschemehandler.cpp
  2. 2
      src/lib/plugins/plugins.cpp
  3. 41
      src/lib/plugins/speeddial.cpp
  4. 12
      src/lib/plugins/speeddial.h

@ -308,7 +308,6 @@ QString QupZillaSchemeReply::speeddialPage()
}
QString page = dPage;
#if QTWEBENGINE_DISABLED
SpeedDial* dial = mApp->plugins()->speedDial();
page.replace(QLatin1String("%INITIAL-SCRIPT%"), dial->initialScript());
@ -317,7 +316,6 @@ QString QupZillaSchemeReply::speeddialPage()
page.replace(QLatin1String("%ROW-PAGES%"), QString::number(dial->pagesInRow()));
page.replace(QLatin1String("%SD-SIZE%"), QString::number(dial->sdSize()));
page.replace(QLatin1String("%SD-CNTR%"), QString::number(dial->sdCntr()));
#endif
return page;
}

@ -29,7 +29,7 @@
Plugins::Plugins(QObject* parent)
: QObject(parent)
, m_pluginsLoaded(false)
//, m_speedDial(new SpeedDial(this))
, m_speedDial(new SpeedDial(this))
{
loadSettings();
}

@ -22,12 +22,9 @@
#include "qztools.h"
#include "autosaver.h"
#if QTWEBENGINE_DISABLED
#include <QDir>
#include <QCryptographicHash>
#include <QFileDialog>
#include <QWebEngineFrame>
#include <QWebEnginePage>
#include <QImage>
@ -126,10 +123,10 @@ QUrl SpeedDial::urlForShortcut(int key)
return QUrl::fromEncoded(m_webPages.at(key).url.toUtf8());
}
void SpeedDial::addWebFrame(QWebEngineFrame* frame)
void SpeedDial::addWebPage(QWebEnginePage *page)
{
if (!m_webFrames.contains(frame)) {
m_webFrames.append(frame);
if (!m_pages.contains(page)) {
m_pages.append(page);
}
}
@ -148,8 +145,8 @@ void SpeedDial::addPage(const QUrl &url, const QString &title)
m_webPages.append(page);
m_regenerateScript = true;
foreach (QWebEngineFrame* frame, cleanFrames()) {
frame->page()->triggerAction(QWebEnginePage::Reload);
foreach (QWebEnginePage *page, pages()) {
page->triggerAction(QWebEnginePage::Reload);
}
emit pagesChanged();
@ -167,8 +164,8 @@ void SpeedDial::removePage(const Page &page)
m_webPages.removeAll(page);
m_regenerateScript = true;
foreach (QWebEngineFrame* frame, cleanFrames()) {
frame->page()->triggerAction(QWebEnginePage::Reload);
foreach (QWebEnginePage *page, pages()) {
page->triggerAction(QWebEnginePage::Reload);
}
emit pagesChanged();
@ -276,12 +273,14 @@ void SpeedDial::loadThumbnail(const QString &url, bool loadTitle)
return;
}
#if QTWEBENGINE_DISABLED
PageThumbnailer* thumbnailer = new PageThumbnailer(this);
thumbnailer->setUrl(QUrl::fromEncoded(url.toUtf8()));
thumbnailer->setLoadTitle(loadTitle);
connect(thumbnailer, SIGNAL(thumbnailCreated(QPixmap)), this, SLOT(thumbnailCreated(QPixmap)));
thumbnailer->start();
#endif
}
void SpeedDial::removeImageForUrl(const QString &url)
@ -337,6 +336,7 @@ void SpeedDial::setSdCentered(int cntr)
void SpeedDial::thumbnailCreated(const QPixmap &pixmap)
{
#if QTWEBENGINE_DISABLED
PageThumbnailer* thumbnailer = qobject_cast<PageThumbnailer*>(sender());
if (!thumbnailer) {
return;
@ -362,8 +362,8 @@ void SpeedDial::thumbnailCreated(const QPixmap &pixmap)
m_regenerateScript = true;
cleanFrames();
foreach (QWebEngineFrame* frame, cleanFrames()) {
pages();
foreach (QWebEngineFrame* frame, pages()) {
frame->evaluateJavaScript(QString("setImageToUrl('%1', '%2');").arg(escapeUrl(url), escapeTitle(fileName)));
if (loadTitle) {
frame->evaluateJavaScript(QString("setTitleToUrl('%1', '%2');").arg(escapeUrl(url), escapeTitle(title)));
@ -371,6 +371,7 @@ void SpeedDial::thumbnailCreated(const QPixmap &pixmap)
}
thumbnailer->deleteLater();
#endif
}
QString SpeedDial::escapeTitle(QString title) const
@ -387,18 +388,18 @@ QString SpeedDial::escapeUrl(QString url) const
return url;
}
QList<QWebFrame*> SpeedDial::cleanFrames()
QList<QWebEnginePage*> SpeedDial::pages()
{
QList<QWebFrame*> list;
QList<QWebEnginePage*> list;
for (int i = 0; i < m_webFrames.count(); i++) {
QWebFrame* frame = m_webFrames.at(i).data();
if (!frame || QzTools::frameUrl(frame).toString() != QLatin1String("qupzilla:speeddial")) {
m_webFrames.removeAt(i);
for (int i = 0; i < m_pages.count(); i++) {
QWebEnginePage *page = m_pages.at(i).data();
if (!page || page->url().toString() != QLatin1String("qupzilla:speeddial")) {
m_pages.removeAt(i);
i--;
continue;
}
list.append(frame);
list.append(page);
}
return list;
@ -415,5 +416,3 @@ QString SpeedDial::generateAllPages()
return allPages;
}
#endif

@ -18,15 +18,13 @@
#ifndef SPEEDDIAL_H
#define SPEEDDIAL_H
#if QTWEBENGINE_DISABLED
#include <QObject>
#include <QPointer>
#include <QWebEnginePage>
#include "qzcommon.h"
class QUrl;
class QWebEngineFrame;
class QPixmap;
class AutoSaver;
@ -54,7 +52,7 @@ public:
Page pageForUrl(const QUrl &url);
QUrl urlForShortcut(int key);
void addWebFrame(QWebEngineFrame* frame);
void addWebPage(QWebEnginePage *page);
void addPage(const QUrl &url, const QString &title);
void removePage(const Page &page);
@ -90,7 +88,7 @@ private:
QString escapeTitle(QString string) const;
QString escapeUrl(QString url) const;
QList<QWebEngineFrame*> cleanFrames();
QList<QWebEnginePage*> pages();
QString generateAllPages();
QString m_initialScript;
@ -101,7 +99,7 @@ private:
int m_sizeOfSpeedDials;
int m_sdcentered;
QList<QPointer<QWebFrame> > m_webFrames;
QList<QPointer<QWebEnginePage> > m_pages;
QList<Page> m_webPages;
AutoSaver* m_autoSaver;
@ -109,6 +107,4 @@ private:
bool m_regenerateScript;
};
#endif
#endif // SPEEDDIAL_H

Loading…
Cancel
Save