// For license of this file, see /LICENSE.md. #ifndef TABBAR_H #define TABBAR_H #include "miscellaneous/iconfactory.h" #include #include class TabBar : public QTabBar { Q_OBJECT public: enum class TabType { FeedReader = 1, DownloadManager = 2, NonClosable = 4, Closable = 8 }; // Constructors. explicit TabBar(QWidget* parent = nullptr); virtual ~TabBar(); // Getter/setter for tab type. void setTabType(int index, TabType type); TabBar::TabType tabType(int index) const; private slots: // Called when user selects to close tab via close button. void closeTabViaButton(); private: // Reimplementations. void mouseDoubleClickEvent(QMouseEvent* event); void mousePressEvent(QMouseEvent* event); void wheelEvent(QWheelEvent* event); signals: // Emmited if empty space on tab bar is double clicked. void emptySpaceDoubleClicked(); }; inline TabBar::TabType TabBar::tabType(int index) const { return static_cast(tabData(index).toInt()); } TabBar::TabType operator|(TabBar::TabType a, TabBar::TabType b); TabBar::TabType operator&(TabBar::TabType a, TabBar::TabType b); TabBar::TabType& operator|=(TabBar::TabType& a, TabBar::TabType b); TabBar::TabType& operator&=(TabBar::TabType& a, TabBar::TabType b); #endif // TABBAR_H