-rw-r--r-- | korganizer/komonthview.cpp | 88 |
1 files changed, 55 insertions, 33 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 8ee5bc3..050bfb9 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -309,64 +309,71 @@ void MonthViewItem::paint(QPainter *p) } } int MonthViewItem::height(const QListBox *lb) const { + int ret = 10; if ( lb ) - return lb->fontMetrics().lineSpacing()+1; - return 10; + ret = lb->fontMetrics().lineSpacing()+1; + return ret; } int MonthViewItem::width(const QListBox *lb) const { - int size = PIXMAP_SIZE; - if ( QApplication::desktop()->width() < 300 ) - size = 3; - int x = 1; - if ( KOPrefs::instance()->mMonthShowIcons ) { - if ( mInfo ) { - x += size + 1; - } - if( mRecur ) { - x += size+1; - } - if( mAlarm ) { - x += size+1; + + if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) { + int size = PIXMAP_SIZE; + if ( QApplication::desktop()->width() < 300 ) + size = 3; + int x = 1; + if ( KOPrefs::instance()->mMonthShowIcons ) { + if ( mInfo ) { + x += size + 1; + } + if( mRecur ) { + x += size+1; + } + if( mAlarm ) { + x += size+1; + } + if( mReply ) { + x += size+1; + } } - if( mReply ) { - x += size+1; + if( mMultiday ) { + x += size+1+2+size/2; } + return( x + lb->fontMetrics().width( text() ) + 1 ); } - if( mMultiday ) { - x += size+1+2+size/2; - } - - return( x + lb->fontMetrics().width( text() ) + 1 ); + if ( ! lb ) + return 10; + //qDebug("ret wid %d ", lb->width()); + return lb->width(); } MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par ) : QWidget( par ), mMonthView( parent ) { - QVBoxLayout *topLayout = new QVBoxLayout( this ); + //QVBoxLayout *topLayout = new QVBoxLayout( this ); // mLabel = new QLabel( this );QPushButton mLabel = new QPushButton( this ); //mLabel->setFrameStyle( QFrame::Panel | QFrame::Plain ); //mLabel->setLineWidth( 1 ); //mLabel->setAlignment( AlignCenter ); mLabel->setFlat( true ); mLabel->setFocusPolicy(NoFocus); mItemList = new KNoScrollListBox( this ); mItemList->setMinimumSize( 10, 10 ); mItemList->setFrameStyle( QFrame::Panel | QFrame::Plain ); mItemList->setLineWidth( 1 ); - topLayout->addWidget( mItemList ); + //topLayout->addWidget( mItemList ); mLabel->raise(); // QColor( 0,0,255 ) QColor( 160,1600,255 ) mStandardPalette = palette(); mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) ); enableScrollBars( false ); @@ -414,23 +421,26 @@ void MonthViewCell::setPrimary( bool primary ) //setMyPalette(); } void MonthViewCell::setMyPalette() { if ( mHoliday) { - setPalette( mHolidayPalette ); + mLabel->setPalette( QPalette ( mHolidayPalette.color( QPalette::Normal,QColorGroup::Base),mHolidayPalette.color(QPalette::Normal,QColorGroup::Base ) )); + mItemList->setPalette( mHolidayPalette ); } else { if ( mPrimary ) { - setPalette( mPrimaryPalette ); + mLabel->setPalette( QPalette ( mPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); + mItemList->setPalette( mPrimaryPalette ); } else { - setPalette( mNonPrimaryPalette ); + mItemList->setPalette( mNonPrimaryPalette ); + mLabel->setPalette( QPalette ( mNonPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mNonPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); } } - QPalette pal = palette(); + //QPalette pal = palette(); - mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) )); + //mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) )); } QPalette MonthViewCell::getPalette () { if ( !KOPrefs::instance()->mMonthViewUsesDayColors ) return mStandardPalette; if ( mHoliday) { @@ -671,13 +681,14 @@ void MonthViewCell::finishUpdateCell() } else { mLabel->resize( mLabelSize ); text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); } mLabel->setText( text ); - resizeEvent( 0 ); + resizeEvent( 0 ); + } void MonthViewCell::updateCell() { //qDebug("MonthViewCell::updateCell() "); if ( !mMonthView->isUpdatePossible() ) return; @@ -732,14 +743,22 @@ void MonthViewCell::updateConfig( bool bigFont ) // = false //updateCell(); } void MonthViewCell::enableScrollBars( bool enabled ) { if ( enabled ) { - mItemList->setVScrollBarMode(QScrollView::Auto); + //mItemList->setVScrollBarMode(QScrollView::Auto); mItemList->setHScrollBarMode(QScrollView::Auto); + QListBoxItem *fi = mItemList->firstItem (); + if (fi ) { + int hei = mItemList->numRows () * fi->height(mItemList); + if ( hei < height() - mItemList->horizontalScrollBar()->height () ) + mItemList->setVScrollBarMode(QScrollView::AlwaysOff); + else + mItemList->setVScrollBarMode(QScrollView::Auto); + } } else { mItemList->setVScrollBarMode(QScrollView::AlwaysOff); mItemList->setHScrollBarMode(QScrollView::AlwaysOff); } } @@ -778,25 +797,28 @@ void MonthViewCell::deselect() } void MonthViewCell::select() { ;// updateCell(); } -void MonthViewCell::resizeEvent ( QResizeEvent * ) +void MonthViewCell::resizeEvent ( QResizeEvent * e ) { if ( !mMonthView->isUpdatePossible() ) return; - + //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); + deselect(); int size = height() - mLabel->height() - 2; if ( size > 0 ) mItemList->verticalScrollBar()->setMaximumHeight( size ); size = width() - mLabel->width() -2; if ( size > 0 ) mItemList->horizontalScrollBar()->setMaximumWidth( size ); mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); + mItemList->resize ( width(), height () ); + } void MonthViewCell::defaultAction( QListBoxItem *item ) { if ( !item ) return; |