summaryrefslogtreecommitdiffstats
path: root/tests/manual/examples/widgets/itemviews/chart/pieview.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/examples/widgets/itemviews/chart/pieview.h')
-rw-r--r--tests/manual/examples/widgets/itemviews/chart/pieview.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/manual/examples/widgets/itemviews/chart/pieview.h b/tests/manual/examples/widgets/itemviews/chart/pieview.h
new file mode 100644
index 0000000000..19c4a18ed0
--- /dev/null
+++ b/tests/manual/examples/widgets/itemviews/chart/pieview.h
@@ -0,0 +1,66 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#ifndef PIEVIEW_H
+#define PIEVIEW_H
+
+#include <QAbstractItemView>
+
+//! [0]
+class PieView : public QAbstractItemView
+{
+ Q_OBJECT
+
+public:
+ PieView(QWidget *parent = nullptr);
+
+ QRect visualRect(const QModelIndex &index) const override;
+ void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) override;
+ QModelIndex indexAt(const QPoint &point) const override;
+
+protected slots:
+ void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,
+ const QList<int> &roles = QList<int>()) override;
+ void rowsInserted(const QModelIndex &parent, int start, int end) override;
+ void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override;
+
+protected:
+ bool edit(const QModelIndex &index, EditTrigger trigger, QEvent *event) override;
+ QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction,
+ Qt::KeyboardModifiers modifiers) override;
+
+ int horizontalOffset() const override;
+ int verticalOffset() const override;
+
+ bool isIndexHidden(const QModelIndex &index) const override;
+
+ void setSelection(const QRect&, QItemSelectionModel::SelectionFlags command) override;
+
+ void mousePressEvent(QMouseEvent *event) override;
+
+ void mouseMoveEvent(QMouseEvent *event) override;
+ void mouseReleaseEvent(QMouseEvent *event) override;
+
+ void paintEvent(QPaintEvent *event) override;
+ void resizeEvent(QResizeEvent *event) override;
+ void scrollContentsBy(int dx, int dy) override;
+
+ QRegion visualRegionForSelection(const QItemSelection &selection) const override;
+
+private:
+ QRect itemRect(const QModelIndex &item) const;
+ QRegion itemRegion(const QModelIndex &index) const;
+ int rows(const QModelIndex &index = QModelIndex()) const;
+ void updateGeometries() override;
+
+ int margin = 0;
+ int totalSize = 300;
+ int pieSize = totalSize - 2 * margin;
+ int validItems = 0;
+ double totalValue = 0.0;
+ QRubberBand *rubberBand = nullptr;
+ QPoint origin;
+};
+//! [0]
+
+#endif // PIEVIEW_H