1 /* 2 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2010 University of Szeged 4 * 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #ifndef BrowserWindow_h 30 #define BrowserWindow_h 31 32 #include "BrowserView.h" 33 34 #include "MiniBrowserApplication.h" 35 #include <QStringList> 36 #include <QtGui> 37 38 class UrlLoader; 39 40 class BrowserWindow : public QMainWindow { 41 Q_OBJECT 42 43 public: 44 BrowserWindow(QWKContext*, WindowOptions* = 0); 45 ~BrowserWindow(); 46 void load(const QString& url); 47 48 QWKPage* page(); 49 50 public slots: 51 BrowserWindow* newWindow(const QString& url = "about:blank"); 52 void openLocation(); 53 54 signals: 55 void enteredFullScreenMode(bool on); 56 57 protected slots: 58 void changeLocation(); 59 void loadProgress(int progress); 60 void urlChanged(const QUrl&); 61 void openFile(); 62 63 void zoomIn(); 64 void zoomOut(); 65 void resetZoom(); 66 void toggleZoomTextOnly(bool on); 67 void screenshot(); 68 69 void toggleFullScreenMode(bool enable); 70 71 void toggleFrameFlattening(bool); 72 void showUserAgentDialog(); 73 74 void loadURLListFromFile(); 75 76 void printURL(const QUrl&); 77 78 void toggleAutoLoadImages(bool); 79 void toggleDisableJavaScript(bool); 80 81 private: 82 void updateUserAgentList(); 83 84 void applyZoom(); 85 86 static QVector<qreal> m_zoomLevels; 87 bool m_isZoomTextOnly; 88 qreal m_currentZoom; 89 90 UrlLoader* m_urlLoader; 91 QWKContext* m_context; 92 WindowOptions m_windowOptions; 93 BrowserView* m_browser; 94 QLineEdit* m_addressBar; 95 QStringList m_userAgentList; 96 }; 97 98 #endif 99