From 16c625403695c82055388fb3b2bda728d33028c1 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 23 Jul 2012 17:55:03 +0200 Subject: TabWindow, first import :) --- src/tabwindow/tabwindow.h | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/tabwindow/tabwindow.h (limited to 'src/tabwindow/tabwindow.h') diff --git a/src/tabwindow/tabwindow.h b/src/tabwindow/tabwindow.h new file mode 100644 index 00000000..147fac40 --- /dev/null +++ b/src/tabwindow/tabwindow.h @@ -0,0 +1,100 @@ +/*************************************************************************** + * Copyright (C) 2012 by Andrea Diamantini * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * + ***************************************************************************/ + + + +#ifndef TAB_WINDOW +#define TAB_WINDOW + + +#include + +class QLabel; +class QUrl; +class QToolButton; +class QWebHistory; + +class TabHistory; + +class TabBar; +class WebPage; +class WebWindow; + + +class TabWindow : public KTabWidget +{ + Q_OBJECT + +public: + TabWindow(QWidget *parent = 0); + + virtual QSize sizeHint() const; + + WebWindow* currentWebWindow() const; + WebWindow* webWindow(int index) const; + + TabBar* tabBar() const; + +public Q_SLOTS: + void loadUrlInNewTab(const QUrl &, TabHistory *history = 0); + void newCleanTab(); + +private: + /** + * Updates tabbar and add new tab button position + */ + void updateTabBar(); + + /** + * Prepares the new WebWindow to be open + */ + WebWindow *prepareNewTab(WebPage *page = 0); + +private Q_SLOTS: + void tabTitleChanged(const QString &); + + void tabLoadStarted(); + void tabLoadProgress(int); + void tabLoadFinished(bool); + + void pageCreated(WebPage *); + + void currentChanged(int); + + // Indexed slots + void cloneTab(int index = -1); + void closeTab(int index = -1, bool del = true); + void closeOtherTabs(int index = -1); + void reloadTab(int index = -1); + void reloadAllTabs(); + void restoreClosedTab(int i); + +protected: + virtual void resizeEvent(QResizeEvent *); + +private: + // the new tab button + QToolButton *_addTabButton; + + int _openedTabsCounter; + + QList m_recentlyClosedTabs; +}; + +#endif // TAB_WINDOW -- cgit v1.2.1