#ifndef DESKTOP_VERSION #include #else #include #endif #include #include #include #include //Added by qt3to4: #include #include #include #include #include #include "lineview.h" #include "timeline.h" #include "timespanview.h" TimeSpanView::TimeSpanView( QWidget *parent, const char *name ) : QWidget( parent, name ) { Q3BoxLayout *topLayout = new Q3VBoxLayout( this ); #ifndef DESKTOP_VERSION mSplitter = new QKSplitter( this ); #else mSplitter = new QSplitter( this ); #endif topLayout->addWidget( mSplitter ); mList = new Q3ListView( mSplitter ); mList->addColumn( i18n("Summary") ); QWidget *rightPane = new QWidget( mSplitter ); Q3BoxLayout *rightPaneLayout = new Q3VBoxLayout( rightPane ); mTimeLine = new TimeLine( rightPane ); mTimeLine->setFixedHeight( mList->header()->height() ); rightPaneLayout->addWidget( mTimeLine ); mLineView = new LineView( rightPane ); rightPaneLayout->addWidget( mLineView ); Q3BoxLayout *buttonLayout = new Q3HBoxLayout( rightPaneLayout ); QPushButton *zoomInButton = new QPushButton( i18n("Zoom In"), rightPane ); connect( zoomInButton, SIGNAL( clicked() ), SLOT( zoomIn() ) ); buttonLayout->addWidget( zoomInButton ); QPushButton *zoomOutButton = new QPushButton( i18n("Zoom Out"), rightPane ); connect( zoomOutButton, SIGNAL( clicked() ), SLOT( zoomOut() ) ); buttonLayout->addWidget( zoomOutButton ); QPushButton *centerButton = new QPushButton( i18n("Center View"), rightPane ); connect( centerButton, SIGNAL( clicked() ), SLOT( centerView() ) ); buttonLayout->addWidget( centerButton ); connect(mLineView->horizontalScrollBar(),SIGNAL(valueChanged(int)), mTimeLine,SLOT(setContentsPos(int))); } TimeSpanView::~TimeSpanView() { } Q3ValueList TimeSpanView::splitterSizes() { return mSplitter->sizes(); } void TimeSpanView::setSplitterSizes( Q3ValueList sizes ) { mSplitter->setSizes( sizes ); } void TimeSpanView::addItem( KCal::Event *event ) { new Q3ListViewItem( mList, event->summary() ); QDateTime startDt = event->dtStart(); QDateTime endDt = event->dtEnd(); // kdDebug() << "TimeSpanView::addItem(): start: " << startDt.toString() // << " end: " << endDt.toString() << endl; int startSecs = mStartDate.secsTo( startDt ); int durationSecs = startDt.secsTo( endDt ); // kdDebug() << "--- startSecs: " << startSecs << " dur: " << durationSecs << endl; int startX = mStartDate.secsTo( startDt ) / mSecsPerPixel; int endX = startX + startDt.secsTo( endDt ) / mSecsPerPixel; // kdDebug() << "TimeSpanView::addItem(): s: " << startX << " e: " << endX << endl; mLineView->addLine( startX, endX ); } void TimeSpanView::clear() { mList->clear(); mLineView->clear(); } void TimeSpanView::updateView() { #if QT_VERSION >= 0x030000 mLineView->updateContents(); mTimeLine->updateContents(); #else #endif } void TimeSpanView::setDateRange( const QDateTime &start, const QDateTime &end ) { mStartDate = start; mEndDate = end; mTimeLine->setDateRange( start, end ); mSecsPerPixel = mStartDate.secsTo( mEndDate ) / mLineView->pixelWidth(); } QDateTime TimeSpanView::startDateTime() { return mStartDate; } QDateTime TimeSpanView::endDateTime() { return mEndDate; } void TimeSpanView::zoomIn() { int span = mStartDate.daysTo( mEndDate ); setDateRange( mStartDate.addDays( span / 4 ), mEndDate.addDays( span / -4 ) ); emit dateRangeChanged(); } void TimeSpanView::zoomOut() { int span = mStartDate.daysTo( mEndDate ); setDateRange( mStartDate.addDays( span / -4 ), mEndDate.addDays( span / 4 ) ); emit dateRangeChanged(); } void TimeSpanView::centerView() { QScrollBar *scrollBar = mLineView->horizontalScrollBar(); int min = scrollBar->minValue(); int max = scrollBar->maxValue(); scrollBar->setValue( min + (max-min) / 2 ); }