-rw-r--r-- | korganizer/komonthview.cpp | 95 |
1 files changed, 85 insertions, 10 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index b175f9a..2b7e41f 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -407,10 +407,20 @@ void MonthViewItem::paint(QPainter *p) p->setPen( palette().color( QPalette::Normal, sel ? \ QColorGroup::HighlightedText : QColorGroup::Foreground ) ); - p->drawText( x, yPos, text() ); - if ( mIncidence->cancelled() ) { - int wid = fm.width( text() ); - p->drawLine( x, heihei/2 ,x+wid, heihei/2 ); - } - + if ( KOPrefs::instance()->mMonthShowTimes || isWeekItem) { + p->drawText( x, yPos, text() ); + if ( mIncidence->cancelled() ) { + int wid = fm.width( text() ); + p->drawLine( x, heihei/2 ,x+wid, heihei/2 ); + } + } else { + QString pText = text(); + if( pText.mid(2,1) == ":" ) + pText = pText.mid( 6 ); + p->drawText( x, yPos, pText ); + if ( mIncidence->cancelled() ) { + int wid = fm.width( pText ); + p->drawLine( x, heihei/2 ,x+wid, heihei/2 ); + } + } } @@ -1043,4 +1053,5 @@ void MonthViewCell::newEvent() void MonthViewCell::cellClicked( QListBoxItem *item ) { + mMonthView->setSelectedCell( this ); qDebug("CELL "); if ( item == 0 ) { @@ -1054,6 +1065,9 @@ void MonthViewCell::cellClicked( QListBoxItem *item ) void MonthViewCell::contextMenu( QListBoxItem *item ) { - if ( !item ) return; - + mMonthView->setPopupCell( this ); + if ( !item ) { + mMonthView->showContextMenu( 0 ); + return; + } MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); Incidence *incidence = eventItem->incidence(); @@ -1084,4 +1098,5 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) skipResize = false; clPending = true; + mPopupCell = 0; mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); mWidStack = new QWidgetStack( this ); @@ -1201,4 +1216,27 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); mContextMenu = eventPopup(); + mContextMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("New Event..."),this, + SLOT(slotNewEvent()),false); + mContextMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("New Todo..."),this, + SLOT(slotNewTodo()),false); + mContextMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("Journal"),this, + SLOT(slotEditJournal()),false); + + + + QString pathString = ""; + if ( !KOPrefs::instance()->mToolBarMiniIcons ) { + if ( QApplication::desktop()->width() < 480 ) + pathString += "icons16/"; + } else + pathString += "iconsmini/"; + mNewItemMenu = new QPopupMenu( this ); + mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent())); + mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false); + mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false); + // updateConfig(); //useless here... // ... but we need mWidthLongDayLabel computed @@ -1894,5 +1932,10 @@ void KOMonthView::computeLayout() void KOMonthView::showContextMenu( Incidence *incidence ) { - mContextMenu->showIncidencePopup(incidence); + if( incidence ) + mContextMenu->showIncidencePopup(incidence); + else { + //qDebug("KOMonthView::showContextMenu "); + mNewItemMenu->popup(QCursor::pos()); + } /* if( incidence && incidence->type() == "Event" ) { @@ -1910,5 +1953,5 @@ MonthViewCell * KOMonthView::selectedCell( ) void KOMonthView::setSelectedCell( MonthViewCell *cell ) { - //qDebug("KOMonthView::setSelectedCell "); + //qDebug("KOMonthView::setSelectedCell %d", cell); if ( mSelectedCell && mSelectedCell != cell ) { MonthViewCell * mvc = mSelectedCell; @@ -2015,2 +2058,34 @@ void KOMonthView::prevCell() focusNextPrevChild ( false ); } + +void KOMonthView::slotNewTodo() +{ + //qDebug("KOMonthView::slotNewTodo() "); + if ( mPopupCell ){ + QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); + emit newTodoSignal(dt,true); + } + mPopupCell = 0; +} +void KOMonthView::slotNewEvent() +{ + if ( mPopupCell ) { + QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); + emit newEventSignal( dt ); + } + //qDebug("KOMonthView::slotNewEvent() "); + mPopupCell = 0; +} + +void KOMonthView::slotEditJournal() +{ + if ( mPopupCell ) + emit showJournalSignal( 7, mPopupCell->date() ); + //qDebug("KOMonthView::slotEditJournal() "); + mPopupCell = 0; +} + +void KOMonthView::setPopupCell( MonthViewCell * c) +{ + mPopupCell = c; +} |