summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2011-02-01 18:19:52 +0100
committerAndrea Diamantini <adjam7@gmail.com>2011-02-01 18:19:52 +0100
commitd69ddcbc4f520a84b8e6b56fa5957beea9d78b0b (patch)
treef755150209a0fc3abf737556115c9c2b9a9da0e8
parentAdded pulldown menu for multiple steps to the "Forward History" button (diff)
downloadrekonq-d69ddcbc4f520a84b8e6b56fa5957beea9d78b0b.tar.xz
This is a simpler version of the zoom save settings patch.
It allows saving zoom settings for each website (saving settings per host) and loads them on loadFinished. Needs testing.
-rw-r--r--src/webpage.cpp12
-rw-r--r--src/webtab.cpp2
-rw-r--r--src/zoombar.cpp42
-rw-r--r--src/zoombar.h19
4 files changed, 51 insertions, 24 deletions
diff --git a/src/webpage.cpp b/src/webpage.cpp
index c074f1ad..7a7793ec 100644
--- a/src/webpage.cpp
+++ b/src/webpage.cpp
@@ -532,7 +532,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply)
void WebPage::loadStarted()
{
- // HACK:
+ // HACK:
// Chinese encoding Fix. See BUG: 251264
// Use gb18030 instead of gb2312
if(settings()->defaultTextEncoding() == QL1S("gb2312"))
@@ -545,6 +545,16 @@ void WebPage::loadFinished(bool ok)
{
Q_UNUSED(ok);
+ // set zoom factor
+ QString val;
+ KSharedConfig::Ptr config = KGlobal::config();
+ KConfigGroup group( config, "Zoom" );
+ val = group.readEntry(_loadingUrl.host(), QString("10"));
+
+ int value = val.toInt();
+ kDebug() << "ZOOM VALUE: " << _loadingUrl.host() << value;
+ mainFrame()->setZoomFactor(QVariant(value).toReal() / 10); // Don't allox max +1 values
+
// Provide site icon. Can this be moved to loadStarted??
Application::iconManager()->provideIcon(this, _loadingUrl);
diff --git a/src/webtab.cpp b/src/webtab.cpp
index 1305747e..67a5f3b7 100644
--- a/src/webtab.cpp
+++ b/src/webtab.cpp
@@ -54,6 +54,7 @@
// Qt Includes
#include <QtGui/QVBoxLayout>
+
WebTab::WebTab(QWidget *parent)
: QWidget(parent)
, m_webView(new WebView(this))
@@ -169,6 +170,7 @@ void WebTab::createPreviewSelectorBar(int index)
connect(page()->mainFrame(), SIGNAL(urlChanged(QUrl)), m_previewSelectorBar.data(), SLOT(verifyUrl()), Qt::UniqueConnection);
}
+
void WebTab::insertBar(NotificationBar *bar)
{
qobject_cast<QVBoxLayout *>(layout())->insertWidget(0, bar);
diff --git a/src/zoombar.cpp b/src/zoombar.cpp
index a895466a..86791266 100644
--- a/src/zoombar.cpp
+++ b/src/zoombar.cpp
@@ -40,6 +40,8 @@
#include <KIcon>
#include <KLocalizedString>
#include <KStandardAction>
+#include <KConfig>
+#include <KConfigGroup>
// Qt Includes
#include <QtGui/QHBoxLayout>
@@ -47,6 +49,7 @@
#include <QtGui/QSlider>
#include <QtGui/QToolButton>
+
ZoomBar::ZoomBar(QWidget *parent)
: QWidget(parent)
,m_zoomIn(new QToolButton(this))
@@ -84,8 +87,6 @@ ZoomBar::ZoomBar(QWidget *parent)
m_zoomOut->setAutoRaise(true);
m_zoomNormal->setAutoRaise(true);
- // layout->setSpacing(0);
- // layout->setMargin(0);
layout->addWidget(m_zoomOut);
layout->addWidget(m_zoomSlider, 8);
layout->addWidget(m_zoomIn);
@@ -101,6 +102,15 @@ ZoomBar::ZoomBar(QWidget *parent)
}
+ZoomBar::~ZoomBar()
+{
+ delete m_zoomIn;
+ delete m_zoomOut;
+ delete m_zoomNormal;
+ delete m_zoomSlider;
+}
+
+
void ZoomBar::setupActions(MainWindow *window)
{
KAction *a;
@@ -118,15 +128,6 @@ void ZoomBar::setupActions(MainWindow *window)
}
-ZoomBar::~ZoomBar()
-{
- delete m_zoomIn;
- delete m_zoomOut;
- delete m_zoomNormal;
- delete m_zoomSlider;
-}
-
-
void ZoomBar::show()
{
// show findbar if not visible
@@ -134,7 +135,7 @@ void ZoomBar::show()
{
emit visibilityChanged(true);
QWidget::show();
- m_zoomSlider->setValue(Application::instance()->mainWindow()->currentTab()->view()->zoomFactor()*10);
+ m_zoomSlider->setValue(Application::instance()->mainWindow()->currentTab()->view()->zoomFactor()*10);
}
}
@@ -168,7 +169,7 @@ void ZoomBar::updateSlider(int webview)
{
WebTab *tab = 0;
if (!Application::instance()->mainWindowList().isEmpty())
- tab = Application::instance()->mainWindow()->mainView()->webTab(webview);
+ tab = Application::instance()->mainWindow()->mainView()->webTab(webview);
if (!tab)
return;
@@ -181,8 +182,10 @@ void ZoomBar::setValue(int value)
{
m_zoomSlider->setValue(value);
m_percentage->setText(i18nc("percentage of the website zoom", "%1%", QString::number(value*10)));
- // Don't allox max +1 values
- Application::instance()->mainWindow()->currentTab()->view()->setZoomFactor(QVariant(m_zoomSlider->value()).toReal() / 10);
+
+ WebTab *tab = Application::instance()->mainWindow()->currentTab();
+ saveZoomValue(tab->url().host(), value);
+ tab->view()->setZoomFactor(QVariant(value).toReal() / 10); // Don't allox max +1 values
}
@@ -190,3 +193,12 @@ void ZoomBar::toggleVisibility()
{
isVisible() ? hide() : show();
}
+
+
+void ZoomBar::saveZoomValue(const QString &host, int value)
+{
+ KSharedConfig::Ptr config = KGlobal::config();
+ KConfigGroup group( config, "Zoom" );
+ group.writeEntry(host, QString::number(value) );
+ config->sync();
+}
diff --git a/src/zoombar.h b/src/zoombar.h
index 533946f8..d31ac85a 100644
--- a/src/zoombar.h
+++ b/src/zoombar.h
@@ -34,7 +34,7 @@
// Qt Includes
#include <QtGui/QWidget>
-#include <QLabel>
+#include <QtGui/QLabel>
// Forward Declarations
class MainWindow;
@@ -51,7 +51,7 @@ public:
ZoomBar(QWidget *parent);
~ZoomBar();
-public slots:
+public Q_SLOTS:
void show();
void hide();
@@ -63,15 +63,18 @@ public slots:
void setValue(int value);
void toggleVisibility();
-signals:
+private:
+ void saveZoomValue(const QString &, int);
+
+Q_SIGNALS:
void visibilityChanged(bool);
private:
- QToolButton *m_zoomIn;
- QToolButton *m_zoomOut;
- QToolButton *m_zoomNormal;
- QSlider *m_zoomSlider;
- QLabel *m_percentage;
+ QToolButton *m_zoomIn;
+ QToolButton *m_zoomOut;
+ QToolButton *m_zoomNormal;
+ QSlider *m_zoomSlider;
+ QLabel *m_percentage;
};
#endif