diff --git a/src/KGantt/kganttdatetimegrid.h b/src/KGantt/kganttdatetimegrid.h index 1b19274..93eb995 100644 --- a/src/KGantt/kganttdatetimegrid.h +++ b/src/KGantt/kganttdatetimegrid.h @@ -1,168 +1,169 @@ /* * Copyright (C) 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. * * This file is part of the KGantt library. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef KGANTTDATETIMEGRID_H #define KGANTTDATETIMEGRID_H #include "kganttabstractgrid.h" #include #include +#include namespace KGantt { class DateTimeScaleFormatter; class DateTimeTimeLine; class KGANTT_EXPORT DateTimeGrid : public AbstractGrid { Q_OBJECT KGANTT_DECLARE_PRIVATE_DERIVED( DateTimeGrid ) public: enum Scale { ScaleAuto, ScaleHour, ScaleDay, ScaleWeek, ScaleMonth, ScaleUserDefined }; DateTimeGrid(); virtual ~DateTimeGrid(); QDateTime startDateTime() const; void setStartDateTime( const QDateTime& dt ); qreal dayWidth() const; void setDayWidth( qreal ); qreal mapFromDateTime( const QDateTime& dt) const; QDateTime mapToDateTime( qreal x ) const; void setWeekStart( Qt::DayOfWeek ); Qt::DayOfWeek weekStart() const; void setFreeDays( const QSet& fd ); QSet freeDays() const; void setFreeDaysBrush(const QBrush brush); QBrush freeDaysBrush() const; void setScale( Scale s ); Scale scale() const; void setUserDefinedLowerScale( DateTimeScaleFormatter* lower ); void setUserDefinedUpperScale( DateTimeScaleFormatter* upper ); DateTimeScaleFormatter* userDefinedLowerScale() const; DateTimeScaleFormatter* userDefinedUpperScale() const; bool rowSeparators() const; void setRowSeparators( bool enable ); void setNoInformationBrush( const QBrush& brush ); QBrush noInformationBrush() const; /*reimp*/ Span mapToChart( const QModelIndex& idx ) const Q_DECL_OVERRIDE; /*reimp*/ bool mapFromChart( const Span& span, const QModelIndex& idx, const QList& constraints=QList() ) const Q_DECL_OVERRIDE; /*reimp*/ qreal mapToChart( const QVariant& value ) const Q_DECL_OVERRIDE; /*reimp*/ QVariant mapFromChart( qreal x ) const Q_DECL_OVERRIDE; /*reimp*/ void paintGrid( QPainter* painter, const QRectF& sceneRect, const QRectF& exposedRect, AbstractRowController* rowController = nullptr, QWidget* widget = nullptr ) Q_DECL_OVERRIDE; /*reimp*/ void paintHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect, qreal offset, QWidget* widget = nullptr ) Q_DECL_OVERRIDE; DateTimeTimeLine *timeLine() const; protected: virtual void paintHourScaleHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect, qreal offset, QWidget* widget = nullptr ); virtual void paintDayScaleHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect, qreal offset, QWidget* widget = nullptr ); virtual void paintWeekScaleHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect, qreal offset, QWidget* widget = nullptr ); virtual void paintMonthScaleHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect, qreal offset, QWidget* widget = nullptr ); virtual void paintUserDefinedHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect, qreal offset, const DateTimeScaleFormatter* formatter, QWidget* widget = nullptr ); virtual void drawDayBackground(QPainter* painter, const QRectF& rect, const QDate& date); virtual void drawDayForeground(QPainter* painter, const QRectF& rect, const QDate& date); QRectF computeRect(const QDateTime& from, const QDateTime& to, const QRectF& rect) const; QPair dateTimeRange(const QRectF& rect) const; /* reimp */ void drawBackground(QPainter* paint, const QRectF& rect) Q_DECL_OVERRIDE; /* reimp */ void drawForeground(QPainter* paint, const QRectF& rect) Q_DECL_OVERRIDE; }; class KGANTT_EXPORT DateTimeScaleFormatter { KGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC( DateTimeScaleFormatter ) public: enum Range { Second, Minute, Hour, Day, Week, Month, Year }; DateTimeScaleFormatter( Range range, const QString& formatString, Qt::Alignment alignment = Qt::AlignCenter ); DateTimeScaleFormatter( Range range, const QString& formatString, const QString& templ, Qt::Alignment alignment = Qt::AlignCenter ); DateTimeScaleFormatter( const DateTimeScaleFormatter& other ); virtual ~DateTimeScaleFormatter(); DateTimeScaleFormatter& operator=( const DateTimeScaleFormatter& other ); QString format() const; Range range() const; Qt::Alignment alignment() const; virtual QDateTime nextRangeBegin( const QDateTime& datetime ) const; virtual QDateTime currentRangeBegin( const QDateTime& datetime ) const; QString format( const QDateTime& datetime ) const; virtual QString text( const QDateTime& datetime ) const; }; } #ifndef QT_NO_DEBUG_STREAM QDebug KGANTT_EXPORT operator<<( QDebug dbg, KGantt::DateTimeScaleFormatter::Range ); #endif #endif /* KGANTTDATETIMEGRID_H */