diff options
Diffstat (limited to 'WebKitTools/MiniBrowser')
-rw-r--r-- | WebKitTools/MiniBrowser/MiniBrowser.qrc | 5 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/MiniBrowser.vcproj | 72 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/qt/BrowserView.cpp | 4 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/qt/BrowserView.h | 2 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/qt/BrowserWindow.cpp | 66 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/qt/BrowserWindow.h | 12 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/qt/MiniBrowser.pro | 7 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/qt/main.cpp | 27 | ||||
-rw-r--r-- | WebKitTools/MiniBrowser/win/stdafx.h | 1 |
9 files changed, 176 insertions, 20 deletions
diff --git a/WebKitTools/MiniBrowser/MiniBrowser.qrc b/WebKitTools/MiniBrowser/MiniBrowser.qrc new file mode 100644 index 0000000..ffe77b0 --- /dev/null +++ b/WebKitTools/MiniBrowser/MiniBrowser.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>useragentlist.txt</file> + </qresource> +</RCC> diff --git a/WebKitTools/MiniBrowser/MiniBrowser.vcproj b/WebKitTools/MiniBrowser/MiniBrowser.vcproj index 7af24ec..b8bcebe 100644 --- a/WebKitTools/MiniBrowser/MiniBrowser.vcproj +++ b/WebKitTools/MiniBrowser/MiniBrowser.vcproj @@ -83,7 +83,6 @@ InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\Configurations\MiniBrowserCoreFoundation.vsprops;.\Configurations\MiniBrowserCommon.vsprops"
UseOfATL="1"
CharacterSet="1"
- WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -393,6 +392,69 @@ Name="VCPostBuildEventTool"
/>
</Configuration>
+ <Configuration
+ Name="Release_LTCG|Win32"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\Configurations\MiniBrowserCoreFoundation.vsprops;.\Configurations\MiniBrowserCommon.vsprops"
+ UseOfATL="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
</Configurations>
<References>
</References>
@@ -469,6 +531,14 @@ UsePrecompiledHeader="1"
/>
</FileConfiguration>
+ <FileConfiguration
+ Name="Release_LTCG|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
</File>
</Filter>
<Filter
diff --git a/WebKitTools/MiniBrowser/qt/BrowserView.cpp b/WebKitTools/MiniBrowser/qt/BrowserView.cpp index ce101c2..c885a39 100644 --- a/WebKitTools/MiniBrowser/qt/BrowserView.cpp +++ b/WebKitTools/MiniBrowser/qt/BrowserView.cpp @@ -36,14 +36,14 @@ static QWKPage* createNewPage(QWKPage* page) return page; } -BrowserView::BrowserView(QWidget* parent) +BrowserView::BrowserView(QGraphicsWKView::BackingStoreType backingStoreType, QWidget* parent) : QGraphicsView(parent) , m_item(0) , m_context(WKContextGetSharedProcessContext()) { WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(m_context.get())); - m_item = new QGraphicsWKView(pageNamespace.get(), QGraphicsWKView::Simple, 0); + m_item = new QGraphicsWKView(pageNamespace.get(), backingStoreType, 0); setScene(new QGraphicsScene(this)); scene()->addItem(m_item); diff --git a/WebKitTools/MiniBrowser/qt/BrowserView.h b/WebKitTools/MiniBrowser/qt/BrowserView.h index 42b7658..7e8288e 100644 --- a/WebKitTools/MiniBrowser/qt/BrowserView.h +++ b/WebKitTools/MiniBrowser/qt/BrowserView.h @@ -37,7 +37,7 @@ class BrowserView : public QGraphicsView { Q_OBJECT public: - BrowserView(QWidget* parent = 0); + BrowserView(QGraphicsWKView::BackingStoreType, QWidget* parent = 0); virtual ~BrowserView() { delete m_item; } void load(const QString&); diff --git a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp index a703788..4c56c3b 100644 --- a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp +++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp @@ -30,15 +30,19 @@ #include "WKPageNamespace.h" -BrowserWindow::BrowserWindow() +BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type) + : m_backingStoreType(type) { setAttribute(Qt::WA_DeleteOnClose); m_menu = new QMenuBar(); - m_browser = new BrowserView(); + m_browser = new BrowserView(m_backingStoreType); m_addressBar = new QLineEdit(); m_menu->addAction("New Window", this, SLOT(newWindow())); + m_menu->addAction("Change User Agent", this, SLOT(showUserAgentDialog())); + + m_menu->addSeparator(); m_menu->addAction("Quit", this, SLOT(close())); m_browser->setFocus(Qt::OtherFocusReason); @@ -60,6 +64,9 @@ BrowserWindow::BrowserWindow() m_browser->setFocus(Qt::OtherFocusReason); + QShortcut* selectAddressBar = new QShortcut(Qt::CTRL | Qt::Key_L, this); + connect(selectAddressBar, SIGNAL(activated()), this, SLOT(openLocation())); + resize(960, 640); show(); } @@ -72,11 +79,17 @@ void BrowserWindow::load(const QString& url) BrowserWindow* BrowserWindow::newWindow(const QString& url) { - BrowserWindow* window = new BrowserWindow(); + BrowserWindow* window = new BrowserWindow(m_backingStoreType); window->load(url); return window; } +void BrowserWindow::openLocation() +{ + m_addressBar->selectAll(); + m_addressBar->setFocus(); +} + void BrowserWindow::changeLocation() { QString string = m_addressBar->text(); @@ -112,6 +125,53 @@ void BrowserWindow::urlChanged(const QUrl& url) m_addressBar->setText(url.toString()); } +void BrowserWindow::updateUserAgentList() +{ + QWKPage* page = m_browser->view()->page(); + + QFile file(":/useragentlist.txt"); + + if (file.open(QIODevice::ReadOnly)) { + while (!file.atEnd()) + m_userAgentList << file.readLine().trimmed(); + file.close(); + } + + Q_ASSERT(!m_userAgentList.isEmpty()); + + if (!(page->customUserAgent().isEmpty() || m_userAgentList.contains(page->customUserAgent()))) + m_userAgentList << page->customUserAgent(); +} + +void BrowserWindow::showUserAgentDialog() +{ + updateUserAgentList(); + + QDialog dialog(this); + dialog.setWindowTitle("Change User Agent"); + dialog.resize(size().width() * 0.7, dialog.size().height()); + QVBoxLayout* layout = new QVBoxLayout(&dialog); + dialog.setLayout(layout); + + QComboBox* combo = new QComboBox(&dialog); + combo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); + combo->setEditable(true); + combo->insertItems(0, m_userAgentList); + layout->addWidget(combo); + + int index = combo->findText(m_browser->view()->page()->customUserAgent()); + combo->setCurrentIndex(index); + + QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel + , Qt::Horizontal, &dialog); + connect(buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept())); + connect(buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject())); + layout->addWidget(buttonBox); + + if (dialog.exec() && !combo->currentText().isEmpty()) + m_browser->view()->page()->setCustomUserAgent(combo->currentText()); +} + BrowserWindow::~BrowserWindow() { delete m_addressBar; diff --git a/WebKitTools/MiniBrowser/qt/BrowserWindow.h b/WebKitTools/MiniBrowser/qt/BrowserWindow.h index 47e55b5..fe94d6b 100644 --- a/WebKitTools/MiniBrowser/qt/BrowserWindow.h +++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.h @@ -29,32 +29,38 @@ #ifndef BrowserWindow_h #define BrowserWindow_h -#define PLATFORM(x) 0 - #include "BrowserView.h" +#include <QStringList> #include <QtGui> +#include <qgraphicswkview.h> class BrowserWindow : public QMainWindow { Q_OBJECT public: - BrowserWindow(); + BrowserWindow(QGraphicsWKView::BackingStoreType); ~BrowserWindow(); void load(const QString& url); public slots: BrowserWindow* newWindow(const QString& url = "about:blank"); + void openLocation(); protected slots: void changeLocation(); void loadProgress(int progress); void titleChanged(const QString&); void urlChanged(const QUrl&); + void showUserAgentDialog(); private: + void updateUserAgentList(); + BrowserView* m_browser; QMenuBar* m_menu; QLineEdit* m_addressBar; + QStringList m_userAgentList; + QGraphicsWKView::BackingStoreType m_backingStoreType; }; #endif diff --git a/WebKitTools/MiniBrowser/qt/MiniBrowser.pro b/WebKitTools/MiniBrowser/qt/MiniBrowser.pro index e42c49a..82f6a00 100644 --- a/WebKitTools/MiniBrowser/qt/MiniBrowser.pro +++ b/WebKitTools/MiniBrowser/qt/MiniBrowser.pro @@ -51,3 +51,10 @@ contains(QT_CONFIG, opengl) { QT += opengl DEFINES += QT_CONFIGURED_WITH_OPENGL } + +# We have to copy the resource file to the build directory +# to use the useragentlist.txt file of QtTestBrowser without +# polluting the source tree. +# The copier is defined in WebKit2/DerivedSources.pro. +RESOURCES += \ + $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/MiniBrowser.qrc diff --git a/WebKitTools/MiniBrowser/qt/main.cpp b/WebKitTools/MiniBrowser/qt/main.cpp index 8ff3de8..20f4ff5 100644 --- a/WebKitTools/MiniBrowser/qt/main.cpp +++ b/WebKitTools/MiniBrowser/qt/main.cpp @@ -27,28 +27,37 @@ */ #include "BrowserWindow.h" +#include <QLatin1String> +#include <QRegExp> +#include <qgraphicswkview.h> #include <QtGui> int main(int argc, char** argv) { QApplication app(argc, argv); QStringList args = QApplication::arguments(); - QStringList urls = args; - urls.removeAt(0); + args.removeAt(0); - if (urls.isEmpty()) { + QGraphicsWKView::BackingStoreType backingStoreTypeToUse = QGraphicsWKView::Simple; + int indexOfTiledOption; + if ((indexOfTiledOption = args.indexOf(QRegExp(QLatin1String("-tiled")))) != -1) { + backingStoreTypeToUse = QGraphicsWKView::Tiled; + args.removeAt(indexOfTiledOption); + } + + if (args.isEmpty()) { QString defaultUrl = QString("file://%1/%2").arg(QDir::homePath()).arg(QLatin1String("index.html")); if (QDir(defaultUrl).exists()) - urls.append(defaultUrl); + args.append(defaultUrl); else - urls.append("http://www.google.com"); + args.append("http://www.google.com"); } - BrowserWindow* window = new BrowserWindow(); - window->load(urls[0]); + BrowserWindow* window = new BrowserWindow(backingStoreTypeToUse); + window->load(args[0]); - for (int i = 1; i < urls.size(); ++i) - window->newWindow(urls[i]); + for (int i = 1; i < args.size(); ++i) + window->newWindow(args[i]); app.exec(); diff --git a/WebKitTools/MiniBrowser/win/stdafx.h b/WebKitTools/MiniBrowser/win/stdafx.h index 0522a17..c5a35f9 100644 --- a/WebKitTools/MiniBrowser/win/stdafx.h +++ b/WebKitTools/MiniBrowser/win/stdafx.h @@ -28,4 +28,3 @@ #include <tchar.h> #include <windows.h> - |