From 2a5fc574a1c2754d832fc251347000f51f251d45 Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Tue, 31 Aug 2010 14:46:52 +0200 Subject: [PATCH] Added preserving zoom level --- trunk/src/base/backbone/backbone.cpp | 7 +++++++ trunk/src/base/backbone/backbone.h | 1 + trunk/src/base/gui/TranslationTextEdit.cpp | 5 +++++ trunk/src/base/gui/TranslationTextEdit.h | 2 ++ trunk/src/base/gui/TranslationWidget.cpp | 16 +++++++++++++++- trunk/src/base/gui/TranslationWidget.h | 5 +++++ 6 files changed, 35 insertions(+), 1 deletion(-) diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index d9eae98..1dff134 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -379,6 +379,7 @@ void Backbone::loadPrefs(QString fileName) { _searchLimit = set.value("general/search_limit", 15).toInt(); _searchBookmarks = set.value("general/search_bookmarks",1).toBool(); _searchDicts = set.value("general/search_dictionaries",1).toBool(); + _zoom = set.value("general/zoom", 1.0).toReal(); } @@ -391,6 +392,7 @@ void Backbone::savePrefs(QSettings *set) { set->setValue("general/search_limit", _searchLimit); set->setValue("general/search_bookmarks", _searchBookmarks); set->setValue("general/search_dictionaries", _searchDicts); + set->setValue("general/zoom", _zoom); } @@ -567,6 +569,10 @@ void Backbone::setSettings(Settings *settings) { _searchBookmarks = 1; else _searchBookmarks = 0; + _zoom = settings->value("zoom").toFloat(); + if(!_zoom) + _zoom ++; + dictUpdated(); if(settings) delete settings; @@ -579,6 +585,7 @@ Settings* Backbone::settings() { Settings * settings = new Settings(); settings->setValue("history_size", QString("%1").arg(_historyLen)); settings->setValue("search_limit", QString("%1").arg(_searchLimit)); + settings->setValue("zoom", QString("%1").arg(_zoom)); if(_searchBookmarks) settings->setValue("search_bookmarks", "true"); else diff --git a/trunk/src/base/backbone/backbone.h b/trunk/src/base/backbone/backbone.h index 55b3ebb..623dd98 100644 --- a/trunk/src/base/backbone/backbone.h +++ b/trunk/src/base/backbone/backbone.h @@ -307,6 +307,7 @@ private: QString _configPath; QString _dir; int _historyLen; + qreal _zoom; bool dryRun; // mainly for testing - when true then doesn't bother configs etc bool stopped; // true when user stops searching/fetching diff --git a/trunk/src/base/gui/TranslationTextEdit.cpp b/trunk/src/base/gui/TranslationTextEdit.cpp index d6b7d7a..16160bc 100644 --- a/trunk/src/base/gui/TranslationTextEdit.cpp +++ b/trunk/src/base/gui/TranslationTextEdit.cpp @@ -23,10 +23,12 @@ #include #include "TranslationTextEdit.h" +#include "TranslationWidget.h" TranslationTextEdit::TranslationTextEdit(QWidget *parent) : QWebView(parent) { + realParent = qobject_cast(parent); searchSelectedAction = new QAction(tr("Search"), this); copySelectedAction = new QAction(tr("Copy"), this); selectAllAction = new QAction(tr("Select All"), this); @@ -57,10 +59,13 @@ void TranslationTextEdit::contextMenuEvent(QContextMenuEvent *e) { void TranslationTextEdit::zoomIn() { setZoomFactor(zoomFactor()*1.05); + realParent->updateZoom(zoomFactor()); + } void TranslationTextEdit::zoomOut() { setZoomFactor(zoomFactor()*0.95); + realParent->updateZoom(zoomFactor()); } void TranslationTextEdit::copy() { diff --git a/trunk/src/base/gui/TranslationTextEdit.h b/trunk/src/base/gui/TranslationTextEdit.h index 1c9adff..df47d30 100644 --- a/trunk/src/base/gui/TranslationTextEdit.h +++ b/trunk/src/base/gui/TranslationTextEdit.h @@ -27,6 +27,7 @@ #include #include #include +class TranslationWidget; class TranslationTextEdit : public QWebView { @@ -52,6 +53,7 @@ private: QAction* searchSelectedAction; QAction* copySelectedAction; QAction* selectAllAction; + TranslationWidget* realParent; }; diff --git a/trunk/src/base/gui/TranslationWidget.cpp b/trunk/src/base/gui/TranslationWidget.cpp index 3cfc892..b8f1bfd 100644 --- a/trunk/src/base/gui/TranslationWidget.cpp +++ b/trunk/src/base/gui/TranslationWidget.cpp @@ -30,7 +30,9 @@ #endif TranslationWidget::TranslationWidget(QWidget *parent): - QScrollArea(parent) { + QScrollArea(parent){ + + guiinterface = qobject_cast(parent); #ifdef Q_WS_MAEMO_5 setAttribute(Qt::WA_Maemo5StackedWindow); @@ -199,6 +201,11 @@ void TranslationWidget::initButtons() { void TranslationWidget::initializeUI() { webkit = new TranslationTextEdit(this); + Settings* set = guiinterface->settings(); + qreal fac = set->value("zoom").toFloat(); + if(!fac) + fac++; + webkit->setZoomFactor(fac); QWidget*w = new QWidget(this); verticalLayout = new QVBoxLayout(w); @@ -334,4 +341,11 @@ void TranslationWidget::keyPressEvent(QKeyEvent* event) { #endif +void TranslationWidget::updateZoom(qreal factor) { + Settings* set = guiinterface->settings(); + set->setValue("zoom", QString("%1").arg(factor)); + guiinterface->setSettings(set); +} + + diff --git a/trunk/src/base/gui/TranslationWidget.h b/trunk/src/base/gui/TranslationWidget.h index 92139d8..055aaad 100644 --- a/trunk/src/base/gui/TranslationWidget.h +++ b/trunk/src/base/gui/TranslationWidget.h @@ -33,6 +33,7 @@ #include #include "TranslationTextEdit.h" #include +#include "../../includes/GUIInterface.h" //! Displays translation of word found in dictionaries /*! @@ -55,6 +56,9 @@ public Q_SLOTS: //! Requests to show translation of word list passed as parameter. void show(QStringList); + //! Updates users zoom preferences and sends its to backbone to be saved + void updateZoom(qreal); + protected: #ifdef Q_WS_MAEMO_5 void keyPressEvent(QKeyEvent *); @@ -96,6 +100,7 @@ private: #endif QVBoxLayout *verticalLayout; QHBoxLayout* horizontalLayout; + GUIInterface* guiinterface; void initializeUI(); }; -- 1.7.9.5