summaryrefslogtreecommitdiff
path: root/src/tabbar/tabbar.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tabbar/tabbar.h')
-rw-r--r--src/tabbar/tabbar.h90
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;
+};