kde-playground/kdepim/kdgantt2/kdganttgraphicsscene.h
Ivailo Monev a9b00154bc generic: replace forward class declarations with header inclusions
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
2019-07-31 18:05:48 +00:00

141 lines
5.1 KiB
C++

/****************************************************************************
** Copyright (C) 2001-2006 Klarälvdalens Datakonsult AB. All rights reserved.
**
** This file is part of the KD Gantt library.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid commercial KD Gantt licenses may use this file in
** accordance with the KD Gantt Commercial License Agreement provided with
** the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.kdab.net/kdgantt for
** information about KD Gantt Commercial License Agreements.
**
** Contact info@kdab.net if any conditions of this
** licensing are not clear to you.
**
**********************************************************************/
#ifndef KDGANTTGRAPHICSSCENE_H
#define KDGANTTGRAPHICSSCENE_H
#include <QDateTime>
#include <QList>
#include <QGraphicsScene>
#include <QModelIndex>
#include "kdganttglobal.h"
#include <QAbstractProxyModel>
#include <QItemSelectionModel>
#include <QPrinter>
namespace KDGantt {
class AbstractGrid;
class AbstractRowController;
class GraphicsItem;
class Constraint;
class ConstraintModel;
class ConstraintGraphicsItem;
class ItemDelegate;
class GraphicsScene : public QGraphicsScene {
Q_OBJECT
KDGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC( GraphicsScene )
public:
explicit GraphicsScene( QObject* parent=0 );
virtual ~GraphicsScene();
//qreal dateTimeToSceneX( const QDateTime& dt ) const;
//QDateTime sceneXtoDateTime( qreal x ) const;
static QModelIndex mainIndex( const QModelIndex& idx );
static QModelIndex dataIndex( const QModelIndex& idx );
QAbstractItemModel* model() const;
QAbstractProxyModel* summaryHandlingModel() const;
QModelIndex rootIndex() const;
ConstraintModel* constraintModel() const;
QItemSelectionModel* selectionModel() const;
void insertItem( const QPersistentModelIndex&, GraphicsItem* );
void removeItem( const QModelIndex& );
using QGraphicsScene::removeItem;
GraphicsItem* findItem( const QModelIndex& ) const;
GraphicsItem* findItem( const QPersistentModelIndex& ) const;
void updateItems();
void clearItems();
void deleteSubtree( const QModelIndex& );
ConstraintGraphicsItem* findConstraintItem( const Constraint& ) const;
QList<ConstraintGraphicsItem*> findConstraintItems( const QModelIndex& idx ) const;
void clearConstraintItems();
void setItemDelegate( ItemDelegate* );
ItemDelegate* itemDelegate() const;
void setRowController( AbstractRowController* rc );
AbstractRowController* rowController() const;
void setGrid( AbstractGrid* grid );
AbstractGrid* grid() const;
bool isReadOnly() const;
void updateRow( const QModelIndex& idx );
GraphicsItem* createItem( ItemType type ) const;
/* used by GraphicsItem */
void itemEntered( const QModelIndex& );
void itemPressed( const QModelIndex& );
void itemClicked( const QModelIndex& );
void itemDoubleClicked( const QModelIndex& );
void setDragSource( GraphicsItem* item );
GraphicsItem* dragSource() const;
/* Printing */
void print( QPrinter* printer, bool drawRowLabels = true );
void print( QPrinter* printer, qreal start, qreal end, bool drawRowLabels = true );
void print( QPainter* painter, const QRectF& target = QRectF(), bool drawRowLabels=true );
void print( QPainter* painter, qreal start, qreal end, const QRectF& target = QRectF(), bool drawRowLabels=true );
Q_SIGNALS:
void gridChanged();
void clicked( const QModelIndex & index );
void doubleClicked( const QModelIndex & index );
void entered( const QModelIndex & index );
void pressed( const QModelIndex & index );
protected:
/*reimp*/ void helpEvent( QGraphicsSceneHelpEvent *helpEvent );
/*reimp*/ void drawBackground( QPainter* painter, const QRectF& rect );
public Q_SLOTS:
void setModel( QAbstractItemModel* );
void setSummaryHandlingModel( QAbstractProxyModel* );
void setConstraintModel( ConstraintModel* );
void setRootIndex( const QModelIndex& idx );
void setSelectionModel( QItemSelectionModel* selectionmodel );
void setReadOnly( bool );
private Q_SLOTS:
/* slots for ConstraintModel */
void slotConstraintAdded( const Constraint& );
void slotConstraintRemoved( const Constraint& );
void slotGridChanged();
private:
void doPrint( QPainter* painter, const QRectF& targetRect,
qreal start, qreal end,
QPrinter* printer, bool drawRowLabels );
};
}
#endif /* KDGANTTGRAPHICSSCENE_H */