Summary: | Times totally wrong after zooming out vertically | ||
---|---|---|---|
Product: | [Applications] korganizer | Reporter: | Thomas McGuire <mcguire> |
Component: | general | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Thomas McGuire
2005-07-05 21:04:20 UTC
Am Dienstag, 5. Juli 2005 21:04 schrieb Thomas McGuire:
> When using View->Zoom->Zoom Out Vertically many times, impossible clock
> times like 31 o'clock are shown at the left timebar.
I can't reproduce this using KDE 3.4. Which version are you using?
Cheers,
Reinhold
On Tuesday 05 July 2005 21:12, Reinhold Kainhofer wrote: > I can't reproduce this using KDE 3.4. Which version are you using? I am using SVN (trunk) from today, 10:00 german time. I do not have the qt4/kde4 branch. My kdelibs is from SVN too, but about 2 weeks old. Do you need more information (screenshots, config files or something like that) ? I can reproduce this with a fresh user account by zooming out vertically maybe 5 or 6 times. Note that there was a recent commit related to the timebar, but I am not sure if this behavior was introduced with that commit or if it also was like that before. > SVN commit 419239 by danimo: > > Merge code from KO/Pi that actually makes the hourlabel look nice. Big > fonts for hours, small ones for 00 or am/pm respectively. For an example > see > http://developer.kde.org/~danimo/screenies/korganizer_fancyhourlabel.png On Wednesday 06 July 2005 13:24, Thomas McGuire wrote: > I am using SVN (trunk) from today, 10:00 german time. I do not have the > qt4/kde4 branch. My kdelibs is from SVN too, but about 2 weeks old. > Do you need more information (screenshots, config files or something like > that) ? [...] > Note that there was a recent commit related to the timebar, but I am not > sure if this behavior was introduced with that commit or if it also was > like that before. > > > SVN commit 419239 by danimo: > > > > Merge code from KO/Pi that actually makes the hourlabel look nice. Big > > fonts for hours, small ones for 00 or am/pm respectively. For an example > > see > > http://developer.kde.org/~danimo/screenies/korganizer_fancyhourlabel.png Ah, yes, you are right! I can reproduce it with HEAD, but not with 3.4. It seems that this merge from Lutz' Ko/PI code into the korganizer code broke this... Cheers, Reinhold SVN commit 438286 by kainhofe: The time line merge from KO/Pi introduceda nasty regression (more than 24 hours are shown in a day!). This is the first shot, which works in most cases, but still lots of things remain to be fixed. CCBUG:108606 M +12 -7 koagendaview.cpp M +4 -4 koagendaview.h --- trunk/KDE/kdepim/korganizer/koagendaview.cpp #438285:438286 @@ -87,7 +87,7 @@ setHScrollBarMode(AlwaysOff); setVScrollBarMode(AlwaysOff); - resizeContents(50,mRows * mCellHeight); + resizeContents(50, int(mRows * mCellHeight) ); viewport()->setBackgroundMode( PaletteBackground ); @@ -135,7 +135,7 @@ // end of workaround int cell = ((int)(cy/mCellHeight)); - int y = cell * mCellHeight; + double y = cell * mCellHeight; QFontMetrics fm = fontMetrics(); QString hour; QString suffix = "am"; @@ -149,7 +149,7 @@ if (cell > 11) suffix = "pm"; if ( timeHeight > mCellHeight ) { - timeHeight = mCellHeight-1; + timeHeight = int(mCellHeight-1); int pointS = nFont.pointSize(); while ( pointS > 4 ) { nFont.setPointSize( pointS ); @@ -172,7 +172,7 @@ //p->drawLine(0,0,0,contentsHeight()); while (y < cy + ch+mCellHeight) { // hour, full line - p->drawLine( cx, y, cw+2, y ); + p->drawLine( cx, int(y), cw+2, int(y) ); hour.setNum(cell); // handle 24h and am/pm time formats if (KGlobal::locale()->use12Clock()) { @@ -185,10 +185,10 @@ int timeWidth = fm.width(hour); int offset = startW - timeWidth - tw2 -1 ; p->setFont( nFont ); - p->drawText( offset, y+timeHeight, hour); + p->drawText( offset, int(y+timeHeight), hour); p->setFont( sFont ); offset = startW - tw2; - p->drawText( offset, y+timeHeight-divTimeHeight, suffix); + p->drawText( offset, int(y+timeHeight-divTimeHeight), suffix); // increment indices y += mCellHeight; @@ -228,7 +228,12 @@ // update HourSize mCellHeight = KOPrefs::instance()->mHourSize*4; - resizeContents( mMiniWidth,mRows * mCellHeight+1 ); + // If the agenda is zoomed out so that more then 24 would be shown, + // the agenda only shows 24 hours, so we need to take the cell height + // from the agenda, which is larger than the configured one! + if ( mCellHeight < 4*mAgenda->gridSpacingY() ) + mCellHeight = 4*mAgenda->gridSpacingY(); + resizeContents( mMiniWidth, int(mRows * mCellHeight+1) ); } /** update time label positions */ --- trunk/KDE/kdepim/korganizer/koagendaview.h #438285:438286 @@ -75,7 +75,7 @@ private: int mRows; - int mCellHeight; + double mCellHeight; int mMiniWidth; KOAgenda* mAgenda; @@ -143,8 +143,8 @@ KOAgendaView( Calendar *cal, QWidget *parent = 0, const char *name = 0 ); virtual ~KOAgendaView(); - + /** Returns maximum number of days supported by the koagendaview */ virtual int maxDatesHint(); @@ -210,10 +210,10 @@ void zoomInHorizontally( const QDate& date=QDate() ); void zoomOutHorizontally( const QDate& date=QDate() ); - + void zoomInVertically( ); void zoomOutVertically( ); - + void zoomView( const int delta, const QPoint &pos, const Qt::Orientation orient=Qt::Horizontal ); signals: Reassigning all KOrganizer bug reports and wishes to the newly created korganizer-devel mailing list. Fixed long ago. |