browsermainwindow.h
上传用户:huahtool
上传日期:2015-12-10
资源大小:1089k
文件大小:5k
源码类别:

浏览器

开发平台:

Visual C++

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the demonstration applications of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. #ifndef BROWSERMAINWINDOW_H
  38. #define BROWSERMAINWINDOW_H
  39. #include <QtGui/QMainWindow>
  40. #include <QtGui/QIcon>
  41. #include <QtCore/QUrl>
  42. class AutoSaver;
  43. class BookmarksToolBar;
  44. class ChaseWidget;
  45. class QWebFrame;
  46. class TabWidget;
  47. class ToolbarSearch;
  48. class WebView;
  49. /*!
  50.     The MainWindow of the Browser Application.
  51.     Handles the tab widget and all the actions
  52.  */
  53. class BrowserMainWindow : public QMainWindow {
  54.     Q_OBJECT
  55. public:
  56.     BrowserMainWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0);
  57.     ~BrowserMainWindow();
  58.     QSize sizeHint() const;
  59. public:
  60.     static QUrl guessUrlFromString(const QString &url);
  61.     TabWidget *tabWidget() const;
  62.     WebView *currentTab() const;
  63.     QByteArray saveState(bool withTabs = true) const;
  64.     bool restoreState(const QByteArray &state);
  65. public slots:
  66.     void loadPage(const QString &url);
  67.     void slotHome();
  68. protected:
  69.     void closeEvent(QCloseEvent *event);
  70. private slots:
  71.     void save();
  72.     void slotLoadProgress(int);
  73.     void slotUpdateStatusbar(const QString &string);
  74.     void slotUpdateWindowTitle(const QString &title = QString());
  75.     void loadUrl(const QUrl &url);
  76.     void slotPreferences();
  77.     void slotFileNew();
  78.     void slotFileOpen();
  79.     void slotFilePrintPreview();
  80.     void slotFilePrint();
  81.     void slotPrivateBrowsing();
  82.     void slotFileSaveAs();
  83.     void slotEditFind();
  84.     void slotEditFindNext();
  85.     void slotEditFindPrevious();
  86.     void slotShowBookmarksDialog();
  87.     void slotAddBookmark();
  88.     void slotViewTextBigger();
  89.     void slotViewTextNormal();
  90.     void slotViewTextSmaller();
  91.     void slotViewToolbar();
  92.     void slotViewBookmarksBar();
  93.     void slotViewStatusbar();
  94.     void slotViewPageSource();
  95.     void slotViewFullScreen(bool enable);
  96.     void slotWebSearch();
  97.     void slotToggleInspector(bool enable);
  98.     void slotAboutApplication();
  99.     void slotDownloadManager();
  100.     void slotSelectLineEdit();
  101.     void slotAboutToShowBackMenu();
  102.     void slotAboutToShowForwardMenu();
  103.     void slotAboutToShowWindowMenu();
  104.     void slotOpenActionUrl(QAction *action);
  105.     void slotShowWindow();
  106.     void slotSwapFocus();
  107.     void printRequested(QWebFrame *frame);
  108.     void geometryChangeRequested(const QRect &geometry);
  109.     void updateToolbarActionText(bool visible);
  110.     void updateBookmarksToolbarActionText(bool visible);
  111. private:
  112.     void loadDefaultState();
  113.     void setupMenu();
  114.     void setupToolBar();
  115.     void updateStatusbarActionText(bool visible);
  116. private:
  117.     QToolBar *m_navigationBar;
  118.     ToolbarSearch *m_toolbarSearch;
  119.     BookmarksToolBar *m_bookmarksToolbar;
  120.     ChaseWidget *m_chaseWidget;
  121.     TabWidget *m_tabWidget;
  122.     AutoSaver *m_autoSaver;
  123.     QAction *m_historyBack;
  124.     QMenu *m_historyBackMenu;
  125.     QAction *m_historyForward;
  126.     QMenu *m_historyForwardMenu;
  127.     QMenu *m_windowMenu;
  128.     QAction *m_stop;
  129.     QAction *m_reload;
  130.     QAction *m_stopReload;
  131.     QAction *m_viewToolbar;
  132.     QAction *m_viewBookmarkBar;
  133.     QAction *m_viewStatusbar;
  134.     QAction *m_restoreLastSession;
  135.     QAction *m_addBookmark;
  136.     QIcon m_reloadIcon;
  137.     QIcon m_stopIcon;
  138.     QString m_lastSearch;
  139. };
  140. #endif // BROWSERMAINWINDOW_H