diff options
author | aqua <aqua@iserlohn-fortress.net> | 2022-08-22 10:16:01 +0300 |
---|---|---|
committer | aqua <aqua@iserlohn-fortress.net> | 2022-09-05 23:07:41 +0300 |
commit | f7df477b1e8fa4528b6fe4f8b44c403f46e72d85 (patch) | |
tree | 0411b17b662b7668127da151aaabab8c716cac24 /src/tabbar/tabbar.h | |
parent | check_license.py: add BSD-3-Clause (diff) | |
download | rekonq-f7df477b1e8fa4528b6fe4f8b44c403f46e72d85.tar.xz |
Add UrlBar and TabBar
- move src/tabwindow/tabbar.* to src/tabbar/
Diffstat (limited to 'src/tabbar/tabbar.h')
-rw-r--r-- | src/tabbar/tabbar.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/tabbar/tabbar.h b/src/tabbar/tabbar.h new file mode 100644 index 00000000..c305d1b5 --- /dev/null +++ b/src/tabbar/tabbar.h @@ -0,0 +1,90 @@ +/* ============================================================ + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (C) 2008-2012 by Andrea Diamantini <adjam7 at gmail dot com> + * Copyright (C) 2009-2011 by Lionel Chauvin <megabigbug@yahoo.fr> + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net> + * ============================================================ + * Description: Tab Bar + * ============================================================ */ + +#pragma once + +#include <QPointer> +#include <QTabBar> +#include <rview.hpp> + +class TabBar : public QTabBar { + Q_OBJECT + +public: + explicit TabBar(QWidget *parent = nullptr); + + int addTab(RekonqView *view); + [[nodiscard]] RekonqView *view(int index) { return m_views.at(index); } + /* + void setTabHighlighted(int index, bool b); + QRect tabTextRect(int index); + */ + +signals: + void removeView(RekonqView *); + +protected: + [[nodiscard]] QSize tabSizeHint(int index) const override; + /* + virtual void mouseMoveEvent(QMouseEvent *event); + virtual void leaveEvent(QEvent *event); + virtual void mousePressEvent(QMouseEvent *event); + virtual void mouseReleaseEvent(QMouseEvent *event); + + virtual void tabInserted(int index); + virtual void tabRemoved(int index); + + virtual void tabLayoutChange(); + + Q_SIGNALS: + void cloneTab(int); + void closeTab(int); + void closeOtherTabs(int); + void reloadTab(int); + void detachTab(int); + void tabLayoutChanged(); + + private Q_SLOTS: + void cloneTab(); + void closeTab(); + void closeOtherTabs(); + void reloadTab(); + void detachTab(); + + void pinTab(); + void unpinTab(); + + void contextMenu(int, const QPoint &); + void emptyAreaContextMenu(const QPoint &); + + void removeAnimation(int index); + + void showTabPreview(); + void hideTabPreview(); + + private: + // highlightAnimation + TabHighlightEffect *m_tabHighlightEffect; + QHash<QByteArray, QPropertyAnimation*> m_highlightAnimation; + QSignalMapper *m_animationMapper; + + // tab preview + QWeakPointer<TabPreviewPopup> m_previewPopup; + int m_currentTabPreviewIndex; + bool m_isFirstTimeOnTab; + */ + static constexpr int c_baseTabWidth = 250; + static constexpr int c_minTabWidth = 50; + +private: + QList<QPointer<RekonqView>> m_views; +}; |