[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
zoltan at webkit.org
zoltan at webkit.org
Sun Feb 20 23:58:30 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit 66cccf23c3c0dc01145648e9250dc6688865fe1d
Author: zoltan at webkit.org <zoltan at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 27 10:25:17 2011 +0000
[Qt] Add simple zooming features to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=53231
Reviewed by Andreas Kling.
Add View menu and Zoom In, Zoom Out, Zoom Reset actions to MiniBrowser.
* MiniBrowser/qt/BrowserWindow.cpp:
(BrowserWindow::BrowserWindow):
(BrowserWindow::zoomIn):
(BrowserWindow::zoomOut):
(BrowserWindow::resetZoom):
(BrowserWindow::updateUserAgentList):
(BrowserWindow::applyZoom):
* MiniBrowser/qt/BrowserWindow.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 719b73d..e2d7aaf 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,21 @@
+2011-01-27 Zoltan Horvath <zoltan at webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Add simple zooming features to MiniBrowser
+ https://bugs.webkit.org/show_bug.cgi?id=53231
+
+ Add View menu and Zoom In, Zoom Out, Zoom Reset actions to MiniBrowser.
+
+ * MiniBrowser/qt/BrowserWindow.cpp:
+ (BrowserWindow::BrowserWindow):
+ (BrowserWindow::zoomIn):
+ (BrowserWindow::zoomOut):
+ (BrowserWindow::resetZoom):
+ (BrowserWindow::updateUserAgentList):
+ (BrowserWindow::applyZoom):
+ * MiniBrowser/qt/BrowserWindow.h:
+
2011-01-26 Maciej Stachowiak <mjs at apple.com>
Reviewed by Dan Bernstein.
diff --git a/Tools/MiniBrowser/qt/BrowserWindow.cpp b/Tools/MiniBrowser/qt/BrowserWindow.cpp
index c37d36e..e63f1bd 100644
--- a/Tools/MiniBrowser/qt/BrowserWindow.cpp
+++ b/Tools/MiniBrowser/qt/BrowserWindow.cpp
@@ -36,26 +36,41 @@ static QWKPage* newPageFunction(QWKPage* page)
QGraphicsWKView::BackingStoreType BrowserWindow::backingStoreTypeForNewWindow = QGraphicsWKView::Simple;
+QVector<int> BrowserWindow::m_zoomLevels;
+
BrowserWindow::BrowserWindow(QWKContext* context)
+ : m_currentZoom(100) ,
+ m_browser(new BrowserView(backingStoreTypeForNewWindow, context))
{
setAttribute(Qt::WA_DeleteOnClose);
+ connect(m_browser->view(), SIGNAL(loadProgress(int)), SLOT(loadProgress(int)));
+ connect(m_browser->view(), SIGNAL(titleChanged(const QString&)), SLOT(titleChanged(const QString&)));
+ connect(m_browser->view(), SIGNAL(urlChanged(const QUrl&)), SLOT(urlChanged(const QUrl&)));
+
+ this->setCentralWidget(m_browser);
+ m_browser->setFocus(Qt::OtherFocusReason);
+
QMenu* fileMenu = menuBar()->addMenu("&File");
fileMenu->addAction("New Window", this, SLOT(newWindow()), QKeySequence::New);
fileMenu->addAction("Open File", this, SLOT(openFile()), QKeySequence::Open);
fileMenu->addSeparator();
fileMenu->addAction("Quit", this, SLOT(close()));
- QMenu* toolsMenu = menuBar()->addMenu("&Develop");
- toolsMenu->addAction("Change User Agent", this, SLOT(showUserAgentDialog()));
+ QMenu* viewMenu = menuBar()->addMenu("&View");
+ viewMenu->addAction(page()->action(QWKPage::Stop));
+ viewMenu->addAction(page()->action(QWKPage::Reload));
+ viewMenu->addSeparator();
+ QAction* zoomIn = viewMenu->addAction("Zoom &In", this, SLOT(zoomIn()));
+ QAction* zoomOut = viewMenu->addAction("Zoom &Out", this, SLOT(zoomOut()));
+ QAction* resetZoom = viewMenu->addAction("Reset Zoom", this, SLOT(resetZoom()));
- m_browser = new BrowserView(backingStoreTypeForNewWindow, context);
- connect(m_browser->view(), SIGNAL(loadProgress(int)), SLOT(loadProgress(int)));
- connect(m_browser->view(), SIGNAL(titleChanged(const QString&)), SLOT(titleChanged(const QString&)));
- connect(m_browser->view(), SIGNAL(urlChanged(const QUrl&)), SLOT(urlChanged(const QUrl&)));
+ zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus));
+ zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus));
+ resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0));
- this->setCentralWidget(m_browser);
- m_browser->setFocus(Qt::OtherFocusReason);
+ QMenu* toolsMenu = menuBar()->addMenu("&Develop");
+ toolsMenu->addAction("Change User Agent", this, SLOT(showUserAgentDialog()));
m_addressBar = new QLineEdit();
connect(m_addressBar, SIGNAL(returnPressed()), SLOT(changeLocation()));
@@ -72,6 +87,13 @@ BrowserWindow::BrowserWindow(QWKContext* context)
page()->setCreateNewPageFunction(newPageFunction);
+ // the zoom values are chosen to be like in Mozilla Firefox 3
+ if (!m_zoomLevels.count()) {
+ m_zoomLevels << 30 << 50 << 67 << 80 << 90;
+ m_zoomLevels << 100;
+ m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300;
+ }
+
resize(960, 640);
show();
}
@@ -153,23 +175,30 @@ void BrowserWindow::openFile()
#endif
}
-void BrowserWindow::updateUserAgentList()
+void BrowserWindow::zoomIn()
{
- QFile file(":/useragentlist.txt");
+ int i = m_zoomLevels.indexOf(m_currentZoom);
+ Q_ASSERT(i >= 0);
+ if (i < m_zoomLevels.count() - 1)
+ m_currentZoom = m_zoomLevels[i + 1];
- if (file.open(QIODevice::ReadOnly)) {
- while (!file.atEnd()) {
- QString agent = file.readLine().trimmed();
- if (!m_userAgentList.contains(agent))
- m_userAgentList << agent;
- }
- file.close();
- }
+ applyZoom();
+}
- Q_ASSERT(!m_userAgentList.isEmpty());
- QWKPage* wkPage = page();
- if (!(wkPage->customUserAgent().isEmpty() || m_userAgentList.contains(wkPage->customUserAgent())))
- m_userAgentList << wkPage->customUserAgent();
+void BrowserWindow::zoomOut()
+{
+ int i = m_zoomLevels.indexOf(m_currentZoom);
+ Q_ASSERT(i >= 0);
+ if (i > 0)
+ m_currentZoom = m_zoomLevels[i - 1];
+
+ applyZoom();
+}
+
+void BrowserWindow::resetZoom()
+{
+ m_currentZoom = 100;
+ applyZoom();
}
void BrowserWindow::showUserAgentDialog()
@@ -201,6 +230,30 @@ void BrowserWindow::showUserAgentDialog()
page()->setCustomUserAgent(combo->currentText());
}
+void BrowserWindow::updateUserAgentList()
+{
+ QFile file(":/useragentlist.txt");
+
+ if (file.open(QIODevice::ReadOnly)) {
+ while (!file.atEnd()) {
+ QString agent = file.readLine().trimmed();
+ if (!m_userAgentList.contains(agent))
+ m_userAgentList << agent;
+ }
+ file.close();
+ }
+
+ Q_ASSERT(!m_userAgentList.isEmpty());
+ QWKPage* wkPage = page();
+ if (!(wkPage->customUserAgent().isEmpty() || m_userAgentList.contains(wkPage->customUserAgent())))
+ m_userAgentList << wkPage->customUserAgent();
+}
+
+void BrowserWindow::applyZoom()
+{
+ page()->setPageZoomFactor(qreal(m_currentZoom) / 100.0);
+}
+
BrowserWindow::~BrowserWindow()
{
delete m_addressBar;
diff --git a/Tools/MiniBrowser/qt/BrowserWindow.h b/Tools/MiniBrowser/qt/BrowserWindow.h
index 2a04aa8..860eb17 100644
--- a/Tools/MiniBrowser/qt/BrowserWindow.h
+++ b/Tools/MiniBrowser/qt/BrowserWindow.h
@@ -56,11 +56,21 @@ protected slots:
void titleChanged(const QString&);
void urlChanged(const QUrl&);
void openFile();
+
+ void zoomIn();
+ void zoomOut();
+ void resetZoom();
+
void showUserAgentDialog();
private:
void updateUserAgentList();
+ void applyZoom();
+
+ static QVector<int> m_zoomLevels;
+ int m_currentZoom;
+
BrowserView* m_browser;
QLineEdit* m_addressBar;
QStringList m_userAgentList;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list