#ifndef WEBBROWSER_H #define WEBBROWSER_H #include #include "gui/tabcontent.h" class QToolBar; class QVBoxLayout; class LocationLineEdit; class BaseWebView; class WebBrowserNetworkAccessManager; class QMenu; class TabWidget; class WebBrowser : public TabContent { Q_OBJECT public: // Constructors and destructors. explicit WebBrowser(TabWidget *parent = 0); ~WebBrowser(); // Reloads icons for all buttons. void setupIcons(); // Returns icon associated with currently loaded website. QIcon icon(); // Returns this instance. // NOTE: This is needed due to TabContent interface. WebBrowser *webBrowser(); // Returns global menu for this web browser. QMenu *globalMenu(); // Returns pointer to global network access manager // for web browsers. // NOTE: All web browsers use shared network access manager, // which makes setting of custom network settings easy. static WebBrowserNetworkAccessManager *globalNetworkManager(); // Returns list of all running web browsers. static QList runningWebBrowsers(); public slots: // Switches visibility of navigation bar. void setNavigationBarVisible(bool visible); // Loads new url into the web browser. void navigateToUrl(const QString &url); void navigateToUrl(const QUrl &url); protected: // Creates necessary connections. void createConnections(); protected slots: // Updates url (for example on location text box). void updateUrl(const QUrl &url); signals: void newTabRequested(); void linkMiddleClicked(const QUrl &link_url); void iconChanged(int index, const QIcon &icon); private: QVBoxLayout *m_layout; QToolBar *m_toolBar; BaseWebView *m_webView; LocationLineEdit *m_txtLocation; QAction *m_actionBack; QAction *m_actionForward; QAction *m_actionReload; QAction *m_actionStop; static QPointer m_networkManager; static QList m_runningWebBrowsers; }; #endif // WEBBROWSER_H