File indexing completed on 2024-05-12 04:20:45
0001 /* 0002 * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. 0003 * 0004 * This file is part of the KGantt library. 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KGANTTVIEW_P_H 0010 #define KGANTTVIEW_P_H 0011 0012 #include "kganttview.h" 0013 #include "kganttgraphicsscene.h" 0014 #include "kgantttreeviewrowcontroller.h" 0015 #include "kganttconstraintmodel.h" 0016 #include "kganttconstraintproxy.h" 0017 0018 #include "kganttgraphicsview.h" 0019 #include "kganttdatetimegrid.h" 0020 0021 #include "kganttproxymodel.h" 0022 0023 #include <QSplitter> 0024 #include <QTreeView> 0025 #include <QGraphicsView> 0026 #include <QModelIndex> 0027 #include <QPointer> 0028 0029 QT_BEGIN_NAMESPACE 0030 class QAbstractProxyModel; 0031 class QGraphicsView; 0032 class QGraphicsScene; 0033 class QGraphicsRectItem; 0034 QT_END_NAMESPACE 0035 0036 namespace KGantt { 0037 class GraphicsItem; 0038 class KGanttTreeView; 0039 0040 /*! \internal */ 0041 class KGanttTreeView : public QTreeView { 0042 Q_OBJECT 0043 public: 0044 explicit KGanttTreeView( QAbstractProxyModel* proxy, QWidget* parent = nullptr ); 0045 ~KGanttTreeView() override; 0046 0047 AbstractRowController* rowController() { return &m_controller; } 0048 0049 public Q_SLOTS: 0050 void expandAll(QModelIndex index = QModelIndex()); 0051 void collapseAll(QModelIndex index = QModelIndex()); 0052 0053 private: 0054 TreeViewRowController m_controller; 0055 }; 0056 0057 /*! \internal */ 0058 class Q_DECL_HIDDEN View::Private { 0059 public: 0060 explicit Private(View*); 0061 virtual ~Private(); 0062 0063 void init(); 0064 0065 GraphicsItem* createItem( ItemType type ) const; 0066 0067 void updateScene(); 0068 0069 void setupGraphicsView(); 0070 0071 // slots 0072 void slotCollapsed(const QModelIndex&); 0073 void slotExpanded(const QModelIndex&); 0074 void slotVerticalScrollValueChanged( int ); 0075 void slotLeftWidgetVerticalRangeChanged( int, int ); 0076 void slotGfxViewVerticalRangeChanged( int, int ); 0077 0078 View* q; 0079 0080 QSplitter splitter; 0081 0082 /* TODO: Refine/subclass */ 0083 //KGanttTreeView treeview; 0084 QPointer<QAbstractItemView> leftWidget; 0085 AbstractRowController* rowController; 0086 QPointer<GraphicsView> gfxview; 0087 //KGanttHeaderWidget headerwidget; 0088 0089 QPointer<QAbstractItemModel> model; 0090 ProxyModel ganttProxyModel; 0091 //KGanttTreeViewRowController rowController; 0092 ConstraintModel mappedConstraintModel; 0093 ConstraintProxy constraintProxy; 0094 }; 0095 0096 } 0097 #endif /* KGANTTVIEW_P_H */ 0098