author | zautrix <zautrix> | 2005-02-07 10:32:40 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-02-07 10:32:40 (UTC) |
commit | afc19166fcdc09d3d5b757a84abfeb0b2746f35f (patch) (side-by-side diff) | |
tree | 91b1de5d4154eace5ddb2c0dc5c3243a53ed8661 | |
parent | 363a0e27d630452762e76131b4606e14a3231f01 (diff) | |
download | kdepimpi-afc19166fcdc09d3d5b757a84abfeb0b2746f35f.zip kdepimpi-afc19166fcdc09d3d5b757a84abfeb0b2746f35f.tar.gz kdepimpi-afc19166fcdc09d3d5b757a84abfeb0b2746f35f.tar.bz2 |
month fixes
-rw-r--r-- | korganizer/komonthview.cpp | 216 | ||||
-rw-r--r-- | korganizer/komonthview.h | 8 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 2 |
3 files changed, 122 insertions, 104 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 70cbf96..234375b 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -23,5 +23,4 @@ #include <qkeycode.h> #include <qhbox.h> -#include <qtimer.h> #include <qvbox.h> #include <qwidgetstack.h> @@ -75,5 +74,5 @@ private: }; - + KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name) @@ -93,5 +92,5 @@ QString KNoScrollListBox::getWhatsThisText(QPoint p) QListBoxItem* item = itemAt ( p ); if ( ! item ) { - return i18n("Click in the cell\nto add an event!"); + return i18n("Click in the cell\nto add an event!"); } return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence()); @@ -320,5 +319,5 @@ MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par ) SLOT( contextMenu( QListBoxItem * ) ) ); connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ), - SLOT( selection( QListBoxItem * ) ) ); + SLOT( selection( QListBoxItem * ) ) ); connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ), SLOT( cellClicked( QListBoxItem * ) ) ); @@ -408,11 +407,4 @@ void MonthViewCell::keyPressEvent ( QKeyEvent * e ) } -void MonthViewCell::clear() -{ - mItemList->clear(); - QApplication::removePostedEvents ( mItemList ); - QApplication::removePostedEvents ( mLabel ); - QApplication::removePostedEvents ( this ); -} void MonthViewCell::startUpdateCell() @@ -553,42 +545,42 @@ void MonthViewCell::insertEvent(Event *event) void MonthViewCell::insertTodo(Todo *todo) { - QString text; mItemList->setFocusPolicy(WheelFocus); - if (todo->hasDueDate()) { - if (!todo->doesFloat()) { - text += KGlobal::locale()->formatTime(todo->dtDue().time()); - text += " "; + QString text; + if (todo->hasDueDate()) { + if (!todo->doesFloat()) { + text += KGlobal::locale()->formatTime(todo->dtDue().time()); + text += " "; + } } - } - text += i18n("T: %1").arg(todo->summary()); - - MonthViewItem *item = new MonthViewItem( todo, mDate, text ); - //item->setPalette( mStandardPalette ); - QPalette pal; - if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { - QStringList categories = todo->categories(); - QString cat = categories.first(); - if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { - pal = getPalette(); - if (cat.isEmpty()) { - pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); + text += i18n("Td: %1").arg(todo->summary()); + + MonthViewItem *item = new MonthViewItem( todo, mDate, text ); + //item->setPalette( mStandardPalette ); + QPalette pal; + if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { + QStringList categories = todo->categories(); + QString cat = categories.first(); + if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { + pal = getPalette(); + if (cat.isEmpty()) { + pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); + } else { + pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); + } + } else { - pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); + if (cat.isEmpty()) { + pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); + } else { + pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); + } } - + } else { - if (cat.isEmpty()) { - pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); - } else { - pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); - } + pal = mStandardPalette ; } - - } else { - pal = mStandardPalette ; - } - item->setPalette( pal ); - mItemList->insertItem( item ); - mToolTip += text+"\n"; + item->setPalette( pal ); + mItemList->insertItem( item ); + mToolTip += text+"\n"; } void MonthViewCell::finishUpdateCell() @@ -617,4 +609,5 @@ void MonthViewCell::finishUpdateCell() void MonthViewCell::updateCell() { + qDebug("MonthViewCell::updateCell() "); if ( !mMonthView->isUpdatePossible() ) return; @@ -784,4 +777,5 @@ void MonthViewCell::selection( QListBoxItem *item ) { if ( !item ) return; + mMonthView->setSelectedCell( this ); } @@ -796,9 +790,7 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) : KOEventView( calendar, parent, name ), mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), - mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) + mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) { - ignoreResizeEvent = 0; - mShortDayLabelsW = false; - mShortDayLabelsM = false; + skipResize = false; clPending = true; mWidStack = new QWidgetStack( this ); @@ -820,4 +812,5 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) updatePossible = false; mCells.setAutoDelete( true ); + mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; mDayLabels.resize( mDaysPerWeek ); mDayLabelsW.resize( mDaysPerWeek ); @@ -908,5 +901,5 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); mContextMenu = eventPopup(); - //updateConfig(); //useless here ... + // updateConfig(); //useless here... // ... but we need mWidthLongDayLabel computed QFontMetrics fontmetric(mDayLabels[0]->font()); @@ -1015,9 +1008,13 @@ void KOMonthView::updateConfig() QFontMetrics fontmetric(mDayLabels[0]->font()); mWidthLongDayLabel = 0; + for (int i = 0; i < 7; i++) { int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; } + bool temp = mShowSatSunComp ; + mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; if ( ! mShowWeekView ) { + if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) computeLayout(); } @@ -1047,11 +1044,11 @@ void KOMonthView::updateDayLabels() for (int i = 0; i < 7; i++) { if (mWeekStartsMonday) { - bool show = mShortDayLabelsW; - if ( i > 4 && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) + bool show = mShortDayLabels; + if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) show = true; (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); } else { - if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsW)); - else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsW)); + if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); + else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); } @@ -1060,11 +1057,11 @@ void KOMonthView::updateDayLabels() for (int i = 0; i < 7; i++) { if (mWeekStartsMonday) { - bool show = mShortDayLabelsM; - if ( i > 4 && KOPrefs::instance()->mMonthViewSatSunTog && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) + bool show = mShortDayLabels; + if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) show = true; (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); } else { - if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM)); - else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM)); + if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); + else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); } @@ -1264,12 +1261,10 @@ void KOMonthView::updateView() void KOMonthView::resizeEvent(QResizeEvent * e) { - //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); - if ( ignoreResizeEvent ) { - //qDebug("KOMonthView::resizeEvent ignored "); - --ignoreResizeEvent; + qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); + if ( skipResize ) { + skipResize = false; + qDebug("skipResize "); return; } - if ( e->size().width()+ e->size().height() < 240 ) - return; computeLayout(); clPending = true; @@ -1281,20 +1276,36 @@ void KOMonthView::resizeEvent(QResizeEvent * e) void KOMonthView::computeLayoutWeek() { - static int widd = 0; - static int heigg = 0; - if ( widd == width() && heigg == height () ) { - return; - } - widd = width() ; - heigg = height (); + static int lastWid = 0; + static int lastHei = 0; int daysToShow; + bool combinedSatSun = false; + if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { + daysToShow = 6; + combinedSatSun = true; + } + int tWid = topLevelWidget()->size().width(); + int tHei = topLevelWidget()->size().height(); + int wid = size().width();//e int hei = size().height()-1; + + if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) + return; + + + if ( lastWid == width() && lastHei ==height() ) + return; + lastWid =width(); + lastHei = height(); + + if ( wid < hei ) daysToShow = 2; else daysToShow = 3; - bool combinedSatSun = true; + mShowSatSunComp = true; + combinedSatSun = true; + qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); QFontMetrics fm ( mWeekLabels[0]->font() ); int weeklabelwid = fm.width( "888" ); @@ -1373,6 +1384,7 @@ void KOMonthView::computeLayoutWeek() mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); - - mShortDayLabelsW = mDayLabelsW[0]->width() < mWidthLongDayLabel ; + // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); + //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); + mShortDayLabels = mDayLabelsW[0]->width() < mWidthLongDayLabel ; updateDayLabels(); bool forceUpdate = !updatePossible; @@ -1384,37 +1396,32 @@ void KOMonthView::computeLayoutWeek() void KOMonthView::computeLayout() { - // select the appropriate heading string size. E.g. "Wednesday" or "Wed". - // note this only changes the text if the requested size crosses the - // threshold between big enough to support the full name and not big - // enough. - - int tWid = topLevelWidget()->size().width(); - int tHei = topLevelWidget()->size().height(); - - int wid = size().width();//e - int hei = size().height()-1; + - if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) - return; + static int lastWid = 0; + static int lastHei = 0; - if ( mShowWeekView ){ computeLayoutWeek(); return; } - static int widd = 0; - static int heigg = 0; - if ( widd == width() && heigg == height () ) { - return; - } - widd = width() ; - heigg = height (); - int daysToShow = 7; bool combinedSatSun = false; - if (KOPrefs::instance()->mMonthViewSatSunTog ) { + if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { daysToShow = 6; combinedSatSun = true; } + int tWid = topLevelWidget()->size().width(); + int tHei = topLevelWidget()->size().height(); + + int wid = size().width();//e + int hei = size().height()-1; + + if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) + return; + if ( lastWid == width() && lastHei ==height() ) + return; + lastWid =width(); + lastHei = height(); + qDebug("KOMonthView::computeLayout() MMM ------------------------------------ "); QFontMetrics fm ( mWeekLabels[0]->font() ); int weeklabelwid = fm.width( "888" ); @@ -1453,4 +1460,5 @@ void KOMonthView::computeLayout() h = cellHei ; for ( i = 0; i < mCells.count(); ++i) { + //qDebug("iii %d ", i); w = colWid; if ( ((i) % 7) >= 7-colModulo ) { @@ -1489,9 +1497,11 @@ void KOMonthView::computeLayout() } mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); - mShortDayLabelsM = mDayLabels[0]->width() < mWidthLongDayLabel ; - qDebug("dlwid %d %d ",mDayLabels[0]->width() , mWidthLongDayLabel); + // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); + //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); + mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; updateDayLabels(); bool forceUpdate = !updatePossible; updatePossible = true; + //mWeekLabels[mNumWeeks]->setText( i18n("W")); if ( forceUpdate ) updateView(); @@ -1501,5 +1511,12 @@ void KOMonthView::showContextMenu( Incidence *incidence ) { mContextMenu->showIncidencePopup(incidence); - + /* + if( incidence && incidence->type() == "Event" ) { + Event *event = static_cast<Event *>(incidence); + mContextMenu->showEventPopup(event); + } else { + kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; + } + */ } MonthViewCell * KOMonthView::selectedCell( ) @@ -1509,4 +1526,5 @@ MonthViewCell * KOMonthView::selectedCell( ) void KOMonthView::setSelectedCell( MonthViewCell *cell ) { + // qDebug("KOMonthView::setSelectedCell "); if ( mSelectedCell && mSelectedCell != cell ) { MonthViewCell * mvc = mSelectedCell; @@ -1515,4 +1533,6 @@ void KOMonthView::setSelectedCell( MonthViewCell *cell ) } else mSelectedCell = cell; + // if ( mSelectedCell ) + // mSelectedCell->select(); if ( !mSelectedCell ) emit incidenceSelected( 0 ); @@ -1559,5 +1579,5 @@ void KOMonthView::keyPressEvent ( QKeyEvent * e ) else mCells[0]->setFocus(); - + } e->accept(); diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index 9dbe319..a29a1a8 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h @@ -155,5 +155,4 @@ class MonthViewCell : public QWidget void deselect(); void select(); - void clear(); #ifdef DESKTOP_VERSION @@ -227,7 +226,7 @@ class KOMonthView: public KOEventView bool isMonthView() { return true; } bool isUpdatePossible() { return updatePossible; } - void setIgnoreResizeEvent( int c ) { ignoreResizeEvent = c ;} MonthViewCell * selectedCell(); + bool skipResize; public slots: virtual void updateView(); @@ -260,5 +259,4 @@ class KOMonthView: public KOEventView private: - int ignoreResizeEvent; int currentWeek(); bool clPending; @@ -272,4 +270,5 @@ class KOMonthView: public KOEventView int mNumCells; bool mWeekStartsMonday; + bool mShowSatSunComp; void computeLayout(); void computeLayoutWeek(); @@ -282,6 +281,5 @@ class KOMonthView: public KOEventView QPtrVector<KOWeekButton> mWeekLabelsW; - bool mShortDayLabelsM; - bool mShortDayLabelsW; + bool mShortDayLabels; int mWidthLongDayLabel; diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index 62d3e7f..ba15f7f 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp @@ -202,5 +202,5 @@ void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) } else { if ( view == mMonthView && mMonthView) - mMonthView->setIgnoreResizeEvent( 1 ); + mMonthView->skipResize = true ; mCurrentView = view; // bool full = fullScreen; |