/* ============================================================ * The rekonq project * ============================================================ * SPDX-License-Identifier: GPL-2.0-or-later * Copyright (C) 2008-2012 by Andrea Diamantini * Copyright (C) 2009-2011 by Lionel Chauvin * SPDX-License-Identifier: GPL-3.0-only * Copyright (C) 2022 aqua * ============================================================ * Description: Tab Bar * ============================================================ */ #pragma once #include #include #include 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 m_highlightAnimation; QSignalMapper *m_animationMapper; // tab preview QWeakPointer m_previewPopup; int m_currentTabPreviewIndex; bool m_isFirstTimeOnTab; */ static constexpr int c_baseTabWidth = 250; static constexpr int c_minTabWidth = 50; private: QList> m_views; };