You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
503 lines
21 KiB
503 lines
21 KiB
15 years ago
|
/* -*- Mode: C++ -*-
|
||
|
$Id$
|
||
|
KDChart - a multi-platform charting engine
|
||
|
*/
|
||
|
|
||
|
/****************************************************************************
|
||
|
** Copyright (C) 2001-2004 Klarälvdalens Datakonsult AB. All rights reserved.
|
||
|
**
|
||
|
** This file is part of the KDGantt 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 KDGantt licenses may use this file in
|
||
|
** accordance with the KDGantt 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.klaralvdalens-datakonsult.se/Public/products/ for
|
||
|
** information about KDGantt Commercial License Agreements.
|
||
|
**
|
||
|
** Contact info@klaralvdalens-datakonsult.se if any conditions of this
|
||
|
** licensing are not clear to you.
|
||
|
**
|
||
|
** As a special exception, permission is given to link this program
|
||
|
** with any edition of Qt, and distribute the resulting executable,
|
||
|
** without including the source code for Qt in the source distribution.
|
||
|
**
|
||
|
**********************************************************************/
|
||
|
|
||
|
#ifndef KDGANTTVIEW_H
|
||
|
#define KDGANTTVIEW_H
|
||
|
|
||
|
#include <qptrlist.h>
|
||
|
#include <qwidget.h>
|
||
|
#include <qlistview.h>
|
||
|
#include <qsplitter.h>
|
||
|
#include <qlayout.h>
|
||
|
#include <qfont.h>
|
||
|
#include <qdom.h>
|
||
|
#include <qvbox.h>
|
||
|
|
||
|
|
||
|
#include "KDGanttViewItem.h"
|
||
|
#include "KDGanttViewTaskLinkGroup.h"
|
||
|
#include "KDGanttMinimizeSplitter.h"
|
||
|
#include "KDGanttViewItemDrag.h"
|
||
|
|
||
|
class KDIntervalColorRectangle;
|
||
|
class KDGanttViewTaskLink;
|
||
|
class QPrinter;
|
||
|
class QIODevice;
|
||
|
class itemAttributeDialog;
|
||
|
class KDListView;
|
||
|
class KDGanttViewItem;
|
||
|
class KDGanttViewEventItem;
|
||
|
class KDGanttViewTaskItem;
|
||
|
class KDGanttViewSummaryItem;
|
||
|
class KDTimeTableWidget;
|
||
|
class KDTimeHeaderWidget;
|
||
|
class KDLegendWidget;
|
||
|
class KDGanttCanvasView;
|
||
|
class KDGanttViewTaskLink;
|
||
|
class KDGanttMinimizeSplitter;
|
||
|
|
||
|
class KDGanttView : public KDGanttMinimizeSplitter
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
Q_PROPERTY( bool showLegend READ showLegend WRITE setShowLegend )
|
||
|
Q_PROPERTY( bool showListView READ showListView WRITE setShowListView )
|
||
|
Q_PROPERTY( bool showTaskLinks READ showTaskLinks WRITE setShowTaskLinks )
|
||
|
Q_PROPERTY( bool editorEnabled READ editorEnabled WRITE setEditorEnabled )
|
||
|
Q_PROPERTY( QDateTime horizonStart READ horizonStart WRITE setHorizonStart )
|
||
|
Q_PROPERTY( QDateTime horizonEnd READ horizonEnd WRITE setHorizonEnd )
|
||
|
Q_PROPERTY( Scale scale READ scale WRITE setScale )
|
||
|
Q_PROPERTY( YearFormat yearFormat READ yearFormat WRITE setYearFormat )
|
||
|
Q_PROPERTY( HourFormat hourFormat READ hourFormat WRITE setHourFormat )
|
||
|
Q_PROPERTY( bool showMinorTicks READ showMinorTicks WRITE setShowMinorTicks )
|
||
|
Q_PROPERTY( bool showMajorTicks READ showMajorTicks WRITE setShowMajorTicks )
|
||
|
Q_PROPERTY( bool editable READ editable WRITE setEditable )
|
||
|
Q_PROPERTY( QColor textColor READ textColor WRITE setTextColor )
|
||
|
Q_PROPERTY( int majorScaleCount READ majorScaleCount WRITE setMajorScaleCount )
|
||
|
Q_PROPERTY( int minorScaleCount READ minorScaleCount WRITE setMinorScaleCount )
|
||
|
Q_PROPERTY( int autoScaleMinorTickCount READ autoScaleMinorTickCount WRITE setAutoScaleMinorTickCount )
|
||
|
Q_PROPERTY( Scale maximumScale READ maximumScale WRITE setMaximumScale )
|
||
|
Q_PROPERTY( Scale minimumScale READ minimumScale WRITE setMinimumScale )
|
||
|
Q_PROPERTY( int minimumColumnWidth READ minimumColumnWidth WRITE setMinimumColumnWidth )
|
||
|
Q_PROPERTY( int ganttMaximumWidth READ ganttMaximumWidth WRITE setGanttMaximumWidth )
|
||
|
Q_PROPERTY( QColor weekendBackgroundColor READ weekendBackgroundColor WRITE setWeekendBackgroundColor )
|
||
|
Q_PROPERTY( QColor ganttViewBackgroundColor READ gvBackgroundColor WRITE setGvBackgroundColor )
|
||
|
Q_PROPERTY( QColor listViewBackgroundColor READ lvBackgroundColor WRITE setLvBackgroundColor )
|
||
|
Q_PROPERTY( QColor timeHeaderBackgroundColor READ timeHeaderBackgroundColor WRITE setTimeHeaderBackgroundColor )
|
||
|
Q_PROPERTY( QColor legendHeaderBackgroundColor READ legendHeaderBackgroundColor WRITE setLegendHeaderBackgroundColor )
|
||
|
Q_PROPERTY( double zoomFactor READ zoomFactor )
|
||
|
Q_PROPERTY( bool showHeaderPopupMenu READ showHeaderPopupMenu WRITE setShowHeaderPopupMenu )
|
||
|
Q_PROPERTY( bool showTimeTablePopupMenu READ showTimeTablePopupMenu WRITE setShowTimeTablePopupMenu )
|
||
|
Q_PROPERTY( bool headerVisible READ headerVisible WRITE setHeaderVisible )
|
||
|
Q_PROPERTY( bool showLegendButton READ showLegendButton WRITE setShowLegendButton )
|
||
|
Q_PROPERTY( bool legendIsDockwindow READ legendIsDockwindow WRITE setLegendIsDockwindow )
|
||
|
Q_PROPERTY( bool displayEmptyTasksAsLine READ displayEmptyTasksAsLine WRITE setDisplayEmptyTasksAsLine )
|
||
|
Q_PROPERTY( QBrush noInformationBrush READ noInformationBrush WRITE setNoInformationBrush )
|
||
|
Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled )
|
||
|
Q_PROPERTY( bool dropEnabled READ dropEnabled WRITE setDropEnabled )
|
||
|
Q_PROPERTY( bool calendarMode READ calendarMode WRITE setCalendarMode )
|
||
|
|
||
|
Q_ENUMS( Scale )
|
||
|
Q_ENUMS( YearFormat )
|
||
|
Q_ENUMS( HourFormat )
|
||
|
|
||
|
public:
|
||
|
enum Scale { Minute, Hour, Day, Week, Month, Auto };
|
||
|
enum YearFormat { FourDigit, TwoDigit, TwoDigitApostrophe, NoDate };
|
||
|
enum HourFormat { Hour_24, Hour_12, Hour_24_FourDigit };
|
||
|
enum RepaintMode { No, Medium, Always };
|
||
|
|
||
|
KDGanttView( QWidget* parent = 0, const char* name = 0 );
|
||
|
~KDGanttView();
|
||
|
|
||
|
virtual void show();
|
||
|
virtual bool close ( bool alsoDelete );
|
||
|
void setRepaintMode( RepaintMode mode );
|
||
|
void setUpdateEnabled( bool enable);
|
||
|
bool getUpdateEnabled( )const;
|
||
|
|
||
|
void setGanttMaximumWidth( int w );
|
||
|
int ganttMaximumWidth() const;
|
||
|
void setShowLegend( bool show );
|
||
|
bool showLegend() const;
|
||
|
void setLegendIsDockwindow( bool dock );
|
||
|
bool legendIsDockwindow( ) const;
|
||
|
QDockWindow* legendDockwindow( ) const;
|
||
|
void setShowListView( bool show );
|
||
|
bool showListView() const;
|
||
|
void setEditorEnabled( bool enable );
|
||
|
bool editorEnabled() const;
|
||
|
void setListViewWidth( int );
|
||
|
int listViewWidth();
|
||
|
void setEditable( bool editable );
|
||
|
bool editable() const;
|
||
|
void setCalendarMode( bool mode );
|
||
|
bool calendarMode() const;
|
||
|
void setDisplaySubitemsAsGroup( bool show );
|
||
|
bool displaySubitemsAsGroup() const;
|
||
|
void setDisplayEmptyTasksAsLine( bool show );
|
||
|
bool displayEmptyTasksAsLine() const;
|
||
|
|
||
|
void setHorBackgroundLines( int count = 2,
|
||
|
QBrush brush =
|
||
|
QBrush( QColor ( 200,200,200 ),
|
||
|
Qt::Dense6Pattern ));
|
||
|
int horBackgroundLines( QBrush& brush );
|
||
|
bool saveProject( QIODevice* );
|
||
|
bool loadProject( QIODevice* );
|
||
|
void print( QPrinter* printer = 0 ,
|
||
|
bool printListView = true, bool printTimeLine = true,
|
||
|
bool printLegend = false );
|
||
|
QSize drawContents( QPainter* p = 0,
|
||
|
bool drawListView = true, bool drawTimeLine = true,
|
||
|
bool drawLegend = false );
|
||
|
void setZoomFactor( double factor, bool absolute );
|
||
|
double zoomFactor() const;
|
||
|
void zoomToFit();
|
||
|
void ensureVisible( KDGanttViewItem* );
|
||
|
void center( KDGanttViewItem* );
|
||
|
void centerTimeline( const QDateTime& center );
|
||
|
void centerTimelineAfterShow( const QDateTime& center );
|
||
|
void setTimelineToStart();
|
||
|
void setTimelineToEnd();
|
||
|
void addTicksLeft( int num = 1 );
|
||
|
void addTicksRight( int num = 1 );
|
||
|
void setShowTaskLinks( bool show );
|
||
|
bool showTaskLinks() const;
|
||
|
|
||
|
void setFont(const QFont& f);
|
||
|
void setShowHeaderPopupMenu( bool show = true,
|
||
|
bool showZoom = true,
|
||
|
bool showScale = true,
|
||
|
bool showTime = true,
|
||
|
bool showYear = true,
|
||
|
bool showGrid = true,
|
||
|
bool showPrint = false);
|
||
|
bool showHeaderPopupMenu() const;
|
||
|
void setShowTimeTablePopupMenu( bool );
|
||
|
bool showTimeTablePopupMenu() const;
|
||
|
void setShapes( KDGanttViewItem::Type type,
|
||
|
KDGanttViewItem::Shape start,
|
||
|
KDGanttViewItem::Shape middle,
|
||
|
KDGanttViewItem::Shape end,
|
||
|
bool overwriteExisting = true );
|
||
|
bool shapes( KDGanttViewItem::Type type,
|
||
|
KDGanttViewItem::Shape& start,
|
||
|
KDGanttViewItem::Shape& middle,
|
||
|
KDGanttViewItem::Shape& end ) const;
|
||
|
void setColors( KDGanttViewItem::Type type,
|
||
|
const QColor& start, const QColor& middle,
|
||
|
const QColor& end,
|
||
|
bool overwriteExisting = true );
|
||
|
bool colors( KDGanttViewItem::Type type,
|
||
|
QColor& start, QColor& middle, QColor& end ) const;
|
||
|
void setDefaultColor( KDGanttViewItem::Type type,
|
||
|
const QColor&,
|
||
|
bool overwriteExisting = true );
|
||
|
QColor defaultColor( KDGanttViewItem::Type type ) const;
|
||
|
void setHighlightColors( KDGanttViewItem::Type type,
|
||
|
const QColor& start, const QColor& middle,
|
||
|
const QColor& end,
|
||
|
bool overwriteExisting = true );
|
||
|
bool highlightColors( KDGanttViewItem::Type type,
|
||
|
QColor& start, QColor& middle, QColor& end ) const;
|
||
|
void setDefaultHighlightColor( KDGanttViewItem::Type type,
|
||
|
const QColor&,
|
||
|
bool overwriteExisting = true );
|
||
|
QColor defaultHighlightColor( KDGanttViewItem::Type type ) const;
|
||
|
void setTextColor( const QColor& color );
|
||
|
QColor textColor() const;
|
||
|
|
||
|
void setNoInformationBrush( const QBrush& brush );
|
||
|
QBrush noInformationBrush() const;
|
||
|
|
||
|
// Link-related stuff
|
||
|
QPtrList<KDGanttViewTaskLink> taskLinks() const;
|
||
|
QPtrList<KDGanttViewTaskLinkGroup> taskLinkGroups() const;
|
||
|
|
||
|
// Legend-related stuff
|
||
|
void addLegendItem( KDGanttViewItem::Shape shape, const QColor& shapeColor, const QString& text );
|
||
|
void clearLegend();
|
||
|
// Header-related stuff
|
||
|
void setHorizonStart( const QDateTime& start );
|
||
|
QDateTime horizonStart() const;
|
||
|
void setHorizonEnd( const QDateTime& start );
|
||
|
QDateTime horizonEnd() const;
|
||
|
void setScale( Scale );
|
||
|
Scale scale() const;
|
||
|
void setMaximumScale( Scale );
|
||
|
Scale maximumScale() const;
|
||
|
void setMinimumScale( Scale );
|
||
|
Scale minimumScale() const;
|
||
|
void setAutoScaleMinorTickCount( int count );
|
||
|
int autoScaleMinorTickCount() const;
|
||
|
void setMajorScaleCount( int count );
|
||
|
int majorScaleCount() const;
|
||
|
void setMinorScaleCount( int count );
|
||
|
int minorScaleCount() const;
|
||
|
void setMinimumColumnWidth( int width );
|
||
|
int minimumColumnWidth() const;
|
||
|
void setYearFormat( YearFormat format );
|
||
|
YearFormat yearFormat() const;
|
||
|
void setHourFormat( HourFormat format );
|
||
|
HourFormat hourFormat() const;
|
||
|
void setShowMajorTicks( bool );
|
||
|
bool showMajorTicks() const;
|
||
|
void setShowMinorTicks( bool );
|
||
|
bool showMinorTicks() const;
|
||
|
void setColumnBackgroundColor( const QDateTime& column,
|
||
|
const QColor& color,
|
||
|
Scale mini = KDGanttView::Minute ,
|
||
|
Scale maxi = KDGanttView::Month);
|
||
|
#if 0
|
||
|
// This API has been replaced with KDIntervalColorRectangle and addIntervalBackgroundColor
|
||
|
void setIntervalBackgroundColor( const QDateTime& start,
|
||
|
const QDateTime& end,
|
||
|
const QColor& color,
|
||
|
Scale mini = KDGanttView::Minute ,
|
||
|
Scale maxi = KDGanttView::Month);
|
||
|
bool changeBackgroundInterval( const QDateTime& oldstart,
|
||
|
const QDateTime& oldend,
|
||
|
const QDateTime& newstart,
|
||
|
const QDateTime& newend );
|
||
|
bool deleteBackgroundInterval( const QDateTime& start,
|
||
|
const QDateTime& end );
|
||
|
#endif
|
||
|
void addIntervalBackgroundColor( KDIntervalColorRectangle* newItem );
|
||
|
void clearBackgroundColor();
|
||
|
QColor columnBackgroundColor( const QDateTime& column ) const;
|
||
|
void setWeekendBackgroundColor( const QColor& color );
|
||
|
QColor weekendBackgroundColor() const;
|
||
|
void setWeekdayBackgroundColor( const QColor& color, int weekday );
|
||
|
QColor weekdayBackgroundColor(int weekday) const;
|
||
|
|
||
|
|
||
|
void setPaletteBackgroundColor(const QColor& col);
|
||
|
void setGvBackgroundColor ( const QColor & );
|
||
|
void setLvBackgroundColor ( const QColor & );
|
||
|
void setTimeHeaderBackgroundColor ( const QColor & );
|
||
|
void setLegendHeaderBackgroundColor ( const QColor & );
|
||
|
QColor gvBackgroundColor () const ;
|
||
|
QColor lvBackgroundColor () const ;
|
||
|
QColor timeHeaderBackgroundColor () const ;
|
||
|
QColor legendHeaderBackgroundColor () const ;
|
||
|
void addUserdefinedLegendHeaderWidget( QWidget * w );
|
||
|
|
||
|
void setWeekendDays( int start, int end );
|
||
|
void weekendDays( int& start, int& end ) const;
|
||
|
|
||
|
static QPixmap getPixmap( KDGanttViewItem::Shape shape, const QColor& shapeColor,const QColor& backgroundColor, int itemSize);
|
||
|
|
||
|
void setHeaderVisible( bool );
|
||
|
bool headerVisible() const;
|
||
|
|
||
|
void setShowLegendButton( bool show );
|
||
|
bool showLegendButton() const;
|
||
|
|
||
|
// Pass-through methods from QListView
|
||
|
virtual int addColumn( const QString& label, int width = -1 );
|
||
|
virtual int addColumn( const QIconSet& iconset, const QString& label,
|
||
|
int width = -1 );
|
||
|
virtual void removeColumn( int index );
|
||
|
KDGanttViewItem* selectedItem() const;
|
||
|
void setSelected( KDGanttViewItem*, bool );
|
||
|
KDGanttViewItem* firstChild() const;
|
||
|
KDGanttViewItem* lastItem() const;
|
||
|
int childCount() const;
|
||
|
void clear();
|
||
|
|
||
|
void setDragEnabled( bool b );
|
||
|
void setDropEnabled( bool b );
|
||
|
void setDragDropEnabled( bool b );
|
||
|
bool dragEnabled() const;
|
||
|
bool dropEnabled() const;
|
||
|
bool isDragEnabled() const;
|
||
|
bool isDropEnabled() const;
|
||
|
|
||
|
virtual bool lvDropEvent ( QDropEvent *e, KDGanttViewItem*, KDGanttViewItem*);
|
||
|
virtual void lvStartDrag (KDGanttViewItem*);
|
||
|
virtual bool lvDragMoveEvent (QDragMoveEvent * e,KDGanttViewItem*, KDGanttViewItem*);
|
||
|
virtual void lvDragEnterEvent (QDragEnterEvent * e );
|
||
|
virtual QSize sizeHint() const;
|
||
|
KDGanttViewItem* getItemByName( const QString& name ) const;
|
||
|
QDateTime getDateTimeForCoordX(int coordX, bool global = true ) const;
|
||
|
KDGanttViewItem* getItemByListViewPos( const QPoint& pos ) const;
|
||
|
KDGanttViewItem* getItemByGanttViewPos( const QPoint& pos ) const;
|
||
|
KDGanttViewItem* getItemAt( const QPoint& pos , bool global = true ) const;
|
||
|
|
||
|
// setting the vertical scrollbars of the listview and the timetable
|
||
|
// default values: always off for the listview, always on for the timetable
|
||
|
void setLvVScrollBarMode( QScrollView::ScrollBarMode );
|
||
|
void setGvVScrollBarMode( QScrollView::ScrollBarMode );
|
||
|
|
||
|
void setLinkItemsEnabled(bool on);
|
||
|
bool isLinkItemsEnabled() const;
|
||
|
|
||
|
KDTimeTableWidget * timeTableWidget() { return myTimeTable; }
|
||
|
KDTimeHeaderWidget * timeHeaderWidget() { return myTimeHeader; }
|
||
|
|
||
|
void setFixedHorizon( bool f ) { mFixedHorizon = f; }
|
||
|
|
||
|
public slots:
|
||
|
void editItem( KDGanttViewItem* );
|
||
|
void zoomToSelection( const QDateTime& start, const QDateTime& end);
|
||
|
|
||
|
signals:
|
||
|
void timeIntervallSelected( const QDateTime& start, const QDateTime& end);
|
||
|
void timeIntervalSelected( const QDateTime& start, const QDateTime& end);
|
||
|
void rescaling( KDGanttView::Scale );
|
||
|
void intervalColorRectangleMoved( const QDateTime& start, const QDateTime& end );
|
||
|
|
||
|
// the following signals are emitted if an item is clicked in the
|
||
|
// listview (inclusive) or in the ganttview
|
||
|
void itemLeftClicked( KDGanttViewItem* );
|
||
|
void itemMidClicked( KDGanttViewItem* );
|
||
|
void itemRightClicked( KDGanttViewItem* );
|
||
|
void itemDoubleClicked( KDGanttViewItem* );
|
||
|
|
||
|
// The following signal is emitted when two items shall be linked
|
||
|
void linkItems( KDGanttViewItem* from, KDGanttViewItem* to, int linkType );
|
||
|
|
||
|
// the following signals are emitted if an item is clicked in the
|
||
|
// listview (exlusive) or in the ganttview
|
||
|
// gv... means item in ganttview clicked
|
||
|
|
||
|
void gvCurrentChanged( KDGanttViewItem* );
|
||
|
void gvItemLeftClicked( KDGanttViewItem* );
|
||
|
void gvItemMidClicked( KDGanttViewItem* );
|
||
|
void gvItemRightClicked( KDGanttViewItem* );
|
||
|
// the point is the global position!!
|
||
|
void gvMouseButtonClicked ( int button, KDGanttViewItem* item, const QPoint & pos);
|
||
|
void gvItemDoubleClicked( KDGanttViewItem* );
|
||
|
// the point is the global position!!
|
||
|
void gvContextMenuRequested ( KDGanttViewItem * item, const QPoint & pos );
|
||
|
void gvItemMoved( KDGanttViewItem* );
|
||
|
|
||
|
// lv... means item in listview clicked
|
||
|
void lvCurrentChanged( KDGanttViewItem* );
|
||
|
void lvItemRenamed( KDGanttViewItem* , int col, const QString & text );
|
||
|
void lvMouseButtonPressed( int button, KDGanttViewItem * item, const QPoint & pos, int c );
|
||
|
void lvItemLeftClicked( KDGanttViewItem* );
|
||
|
void lvItemMidClicked( KDGanttViewItem* );
|
||
|
void lvItemRightClicked( KDGanttViewItem* );
|
||
|
void lvContextMenuRequested ( KDGanttViewItem * item, const QPoint & pos, int col );
|
||
|
void lvMouseButtonClicked ( int button, KDGanttViewItem* item, const QPoint & pos, int c );
|
||
|
void lvItemDoubleClicked( KDGanttViewItem* );
|
||
|
void lvSelectionChanged( KDGanttViewItem* );
|
||
|
|
||
|
void itemConfigured( KDGanttViewItem* );
|
||
|
|
||
|
void taskLinkLeftClicked( KDGanttViewTaskLink* );
|
||
|
void taskLinkMidClicked( KDGanttViewTaskLink* );
|
||
|
void taskLinkRightClicked( KDGanttViewTaskLink* );
|
||
|
void taskLinkDoubleClicked( KDGanttViewTaskLink* );
|
||
|
|
||
|
void dateTimeDoubleClicked (const QDateTime& );
|
||
|
|
||
|
void dropped ( QDropEvent * e, KDGanttViewItem* droppedItem, KDGanttViewItem* itemBelowMouse);
|
||
|
private slots:
|
||
|
void forceRepaint( int val = 0 );
|
||
|
void slotSelectionChanged( QListViewItem* item );
|
||
|
void slotCurrentChanged ( QListViewItem * item );
|
||
|
void slotItemRenamed ( QListViewItem * item, int col, const QString & text );
|
||
|
void slotMouseButtonPressed ( int button, QListViewItem * item, const QPoint & pos, int c );
|
||
|
void slotmouseButtonClicked ( int button, QListViewItem * item, const QPoint & pos, int c );
|
||
|
void slotcontextMenuRequested ( QListViewItem * item, const QPoint & pos, int col );
|
||
|
void slotHeaderSizeChanged();
|
||
|
void addTickRight();
|
||
|
void addTickLeft();
|
||
|
void enableAdding( int );
|
||
|
void slot_lvDropped(QDropEvent* e, KDGanttViewItem* droppedItem, KDGanttViewItem* itemBelowMouse );
|
||
|
private:
|
||
|
struct legendItem {
|
||
|
KDGanttViewItem::Shape shape;
|
||
|
QColor color;
|
||
|
QString text;
|
||
|
};
|
||
|
bool loadXML( const QDomDocument& doc );
|
||
|
QDomDocument saveXML( bool withPI = true ) const;
|
||
|
|
||
|
void emptySpaceDoubleClicked( QMouseEvent* e );
|
||
|
|
||
|
static QString scaleToString( Scale scale );
|
||
|
static QString yearFormatToString( YearFormat format );
|
||
|
static QString hourFormatToString( HourFormat format );
|
||
|
static Scale stringToScale( const QString& string );
|
||
|
static YearFormat stringToYearFormat( const QString& string );
|
||
|
static HourFormat stringToHourFormat( const QString& string );
|
||
|
|
||
|
// PENDING(lutz) Review these
|
||
|
friend class KDGanttCanvasView;
|
||
|
friend class KDGanttViewEventItem;
|
||
|
friend class KDGanttViewItem;
|
||
|
friend class KDGanttViewTaskItem;
|
||
|
friend class KDGanttViewSummaryItem;
|
||
|
friend class KDGanttViewTaskLink;
|
||
|
friend class KDGanttViewCalendarItem;
|
||
|
friend class KDTimeTableWidget;
|
||
|
friend class KDTimeHeaderWidget;
|
||
|
friend class KDListView;
|
||
|
friend class KDGanttViewTaskLinkGroup;
|
||
|
friend class KDLegendWidget;
|
||
|
|
||
|
KDListView * myListView;
|
||
|
KDGanttCanvasView *myCanvasView;
|
||
|
KDTimeHeaderWidget * myTimeHeader;
|
||
|
KDTimeTableWidget * myTimeTable;
|
||
|
KDLegendWidget * myLegend;
|
||
|
itemAttributeDialog* myItemAttributeDialog;
|
||
|
QVBox * leftWidget, * rightWidget;
|
||
|
QHBox * spacerLeft;
|
||
|
QScrollView* myTimeHeaderScroll;
|
||
|
QHBox* myTimeHeaderContainer ;
|
||
|
QWidget* timeHeaderSpacerWidget;
|
||
|
QWidget *spacerRight;
|
||
|
|
||
|
bool listViewIsVisible;
|
||
|
bool chartIsEditable;
|
||
|
bool editorIsEnabled;
|
||
|
bool _displaySubitemsAsGroup;
|
||
|
bool _displayEmptyTasksAsLine;
|
||
|
bool _showLegendButton;
|
||
|
bool _showHeader;
|
||
|
bool _enableAdding;
|
||
|
bool fCenterTimeLineAfterShow;
|
||
|
bool fDragEnabled;
|
||
|
bool fDropEnabled;
|
||
|
bool closingBlocked;
|
||
|
QDateTime dtCenterTimeLineAfterShow;
|
||
|
KDGanttViewItem::Shape myDefaultShape [9];
|
||
|
QColor myColor[9],myColorHL[9];
|
||
|
bool undefinedShape[3],undefinedColor[3],undefinedColorHL[3];
|
||
|
QColor myTextColor;
|
||
|
QColor myDefaultColor[3],myDefaultColorHL[3];
|
||
|
QPtrList<KDGanttViewTaskLinkGroup> myTaskLinkGroupList;
|
||
|
QPtrList<legendItem> *myLegendItems;
|
||
|
void addTaskLinkGroup(KDGanttViewTaskLinkGroup*);
|
||
|
void removeTaskLinkGroup(KDGanttViewTaskLinkGroup*);
|
||
|
int getIndex( KDGanttViewItem::Type ) const;
|
||
|
void notifyEditdialog( KDGanttViewItem * );
|
||
|
void initDefaults();
|
||
|
KDGanttViewItem* myCurrentItem;
|
||
|
KDGanttMinimizeSplitter *mySplitter;
|
||
|
bool mFixedHorizon;
|
||
|
protected:
|
||
|
virtual QDragObject * dragObject ();
|
||
|
virtual void startDrag ();
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|