-rw-r--r-- | korganizer/koagendaview.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index 6428757..b5596d9 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp @@ -200,9 +200,44 @@ void TimeLabels::positionChanged() void TimeLabels::setAgenda(KOAgenda* agenda) { mAgenda = agenda; } + +void TimeLabels::contentsMousePressEvent ( QMouseEvent * e) +{ + mMouseDownY = e->pos().y(); +} + +void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e ) +{ + int diff = mMouseDownY - e->pos().y(); + if ( diff < 10 && diff > -10 ) + return; + int tSize = KOPrefs::instance()->mHourSize + (diff/10) ; + if ( tSize < 4 ) + tSize = 4; + if ( tSize > 18 ) + tSize = 18; + tSize = (tSize-2)/2; + topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize)); +} +void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e ) +{ + int diff = mMouseDownY - e->pos().y(); + if ( diff < 10 && diff > -10 ) + return; + int tSize = KOPrefs::instance()->mHourSize + (diff/10); + if ( tSize < 4 ) + tSize = 4; + if ( tSize > 18 ) + tSize = 18; + tSize = (tSize/2)*2; + if ( tSize == KOPrefs::instance()->mHourSize ) + return; + KOPrefs::instance()->mHourSize = tSize; + emit scaleChanged(); +} /** This is called in response to repaint() */ void TimeLabels::paintEvent(QPaintEvent*) { @@ -409,8 +444,10 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : // Create time labels mTimeLabels = new TimeLabels(24,agendaFrame); agendaLayout->addWidget(mTimeLabels,1,0); + connect(mTimeLabels,SIGNAL( scaleChanged()), + this,SLOT(updateConfig())); // Create agenda mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame); agendaLayout->addMultiCellWidget(mAgenda,1,1,1,2); |