/*! @file @id $Id$ */ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 #ifndef __SWISSWEBWIDGET_HXX__ #define __SWISSWEBWIDGET_HXX__ #include #include #include #include #include //! @addtogroup qbrowserlib //! @{ namespace qbrowserlib { //! Window Widget for complete page witghin a webbrowser. /*! Contains a toolbar, a status bar and @refs SwissWebView. Instanciate this and you have a complete browser. To be used inside a QTabBar, as main window or as docking widget. */ class SwissWebWidget: public QWidget, private Ui::SwissWebWidget { Q_OBJECT; public: SwissWebWidget(QWidget* p=0): QWidget(p) { setupUi(this); /*! Within a QMainWindow, the widget automatically reparents the top buttons to the toolbar and the bottom status line to the window's status bar. */ moveToMain(qobject_cast(p?p->parentWidget():p)); connects(); } //! Moves status widgets to status bar, tool widgets to toolbar /*! You can use this method to reparent the tools and the status part of the widget into the toolbar and statusbar of your main window. @note If used as central widget of a QMainWindow, status and tools are automatically reparented in the constructor. */ void moveToMain(QMainWindow* w) { if (!w) return; QToolBar* t(w->addToolBar(trUtf8("Browser Tools", "name of the browser's toolbar"))); while (_tools->count()) t->addWidget(_tools->itemAt(0)->widget()); delete _tools; _tools=0; _statusbar->removeWidget(_status); delete _status; _status=0; while (_statusbar->count()) w->statusBar()->addWidget(_statusbar->itemAt(0)->widget()); delete _statusbar; _statusbar=0; } public Q_SLOTS: void load() { _webview->load(_url->text()); } protected: void connects() { connect(_url, SIGNAL(returnPressed()), SLOT(load())); } }; } //! @} #endif