Warning, file /network/krdc/tabbedviewwidget.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2009 Tony Murray <murraytony@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef TABBEDVIEWWIDGET_H 0008 #define TABBEDVIEWWIDGET_H 0009 0010 #include <QAbstractItemModel> 0011 #include <QTabWidget> 0012 #include <QMouseEvent> 0013 0014 class TabbedViewWidgetModel : public QAbstractItemModel 0015 { 0016 friend class TabbedViewWidget; 0017 Q_OBJECT 0018 public: 0019 explicit TabbedViewWidgetModel(QTabWidget *modelTarget); 0020 QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; 0021 QModelIndex parent(const QModelIndex &index) const override; 0022 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0023 int columnCount(const QModelIndex &parent = QModelIndex()) const override; 0024 Qt::ItemFlags flags(const QModelIndex &index) const override; 0025 bool setData(const QModelIndex &index, const QVariant &value, int role) override; 0026 QVariant data(const QModelIndex &index, int role) const override; 0027 protected: 0028 void emitLayoutAboutToBeChanged(); 0029 void emitLayoutChanged(); 0030 void emitDataChanged(int index); 0031 0032 private: 0033 QTabWidget *m_tabWidget; 0034 }; 0035 0036 class TabbedViewWidget : public QTabWidget 0037 { 0038 Q_OBJECT 0039 public: 0040 explicit TabbedViewWidget(QWidget *parent = nullptr); 0041 ~TabbedViewWidget() override; 0042 TabbedViewWidgetModel* getModel(); 0043 int addTab(QWidget *page, const QString &label); 0044 int addTab(QWidget *page, const QIcon &icon, const QString &label); 0045 int insertTab(int index, QWidget *page, const QString &label); 0046 int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label); 0047 void removeTab(int index); 0048 void removePage(QWidget *page); 0049 void moveTab(int from, int to); 0050 void setTabText(int index, const QString &label); 0051 0052 Q_SIGNALS: 0053 void mouseMiddleClick(int index); 0054 0055 protected: 0056 void mouseDoubleClickEvent(QMouseEvent * event) override; 0057 void mouseReleaseEvent(QMouseEvent *) override; 0058 0059 private: 0060 TabbedViewWidgetModel *m_model; 0061 bool isEmptyTabbarSpace(const QPoint &point) const; 0062 }; 0063 0064 #endif // FULLSCREENWINDOW_H 0065