-rw-r--r-- | korganizer/calendarview.cpp | 16 | ||||
-rw-r--r-- | korganizer/koagenda.cpp | 25 | ||||
-rw-r--r-- | korganizer/koagendaitem.cpp | 18 | ||||
-rw-r--r-- | korganizer/koagendaitem.h | 1 | ||||
-rw-r--r-- | korganizer/koeventviewerdialog.cpp | 11 |
5 files changed, 68 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 1009956..d6918d3 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -481,4 +481,5 @@ CalendarView::~CalendarView() delete mDateFrame ; delete beamDialog; + delete mEventViewerDialog; //kdDebug() << "~CalendarView() done" << endl; } @@ -2528,5 +2529,11 @@ void CalendarView::showEventEditor() { #ifdef DESKTOP_VERSION + int x,y,w,h; + x = mEventEditor->geometry().x(); + y = mEventEditor->geometry().y(); + w = mEventEditor->width(); + h = mEventEditor->height(); mEventEditor->show(); + mEventEditor->setGeometry(x,y,w,h); #else if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) { @@ -2544,5 +2551,11 @@ void CalendarView::showTodoEditor() { #ifdef DESKTOP_VERSION + int x,y,w,h; + x = mTodoEditor->geometry().x(); + y = mTodoEditor->geometry().y(); + w = mTodoEditor->width(); + h = mTodoEditor->height(); mTodoEditor->show(); + mTodoEditor->setGeometry(x,y,w,h); #else if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) { @@ -2794,5 +2807,5 @@ KOEventViewerDialog* CalendarView::getEventViewerDialog() { if ( !mEventViewerDialog ) { - mEventViewerDialog = new KOEventViewerDialog(this); + mEventViewerDialog = new KOEventViewerDialog(0); connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); @@ -3968,4 +3981,5 @@ void CalendarView::resetFocus() //mViewManager->currentView()->setFocus(); //qDebug("sssssssssssssssset focus "); + topLevelWidget()->raise(); setActiveWindow(); //setFocus(); diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 195b1fa..ec81d44 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp @@ -1182,5 +1182,28 @@ void KOAgenda::finishUpdate() KOAgendaItem *item; - globalFlagBlockAgendaItemPaint = 1; + globalFlagBlockAgendaItemPaint = 1; + // Adjust sub cell geometry of all conflict items of all conflict items of all conflict items ... of the conflict item with the max number of conflictitems + for ( item=mItems.first(); item != 0; item=mItems.next() ) { + if ( !item->checkLayout() ) { + //qDebug(" conflictitem found "); + int newSubCellWidth; + if (mAllDayMode) newSubCellWidth = mGridSpacingY / item->subCells(); + else newSubCellWidth = mGridSpacingX / item->subCells(); + + if (mAllDayMode) { + item->resize(item->cellWidth() * mGridSpacingX, newSubCellWidth); + } else { + item->resize(newSubCellWidth, item->cellHeight() * mGridSpacingY); + } + int x,y; + gridToContents(item->cellX(),item->cellYTop(),x,y); + if (mAllDayMode) { + y += item->subCell() * newSubCellWidth; + } else { + x += item->subCell() * newSubCellWidth; + } + moveChild(item,x,y); + } + } for ( item=mItems.first(); item != 0; item=mItems.next() ) { if ( !item->isVisible() ) diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index 38bd93a..042a789 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp @@ -765,2 +765,20 @@ void KOAgendaItem::addConflictItem(KOAgendaItem *ci) mConflictItems.append(ci); } + +bool KOAgendaItem::checkLayout() +{ + if ( !mConflictItems.count() ) + return true; + int max = 0; + KOAgendaItem *item; + for ( item=mConflictItems.first(); item != 0; + item=mConflictItems.next() ) { + if ( item->subCells() > max ) + max = item->subCells(); + } + if ( max > subCells() ) { + setSubCells( max ); + return false; + } + return true; +} diff --git a/korganizer/koagendaitem.h b/korganizer/koagendaitem.h index 5b8f420..b4dba79 100644 --- a/korganizer/koagendaitem.h +++ b/korganizer/koagendaitem.h @@ -108,4 +108,5 @@ class KOAgendaItem : public QWidget void computeText(); void recreateIncidence(); + bool checkLayout(); public slots: bool updateIcons( QPainter *, bool ); diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp index 8bada3b..e2c8e6e 100644 --- a/korganizer/koeventviewerdialog.cpp +++ b/korganizer/koeventviewerdialog.cpp @@ -75,8 +75,15 @@ void KOEventViewerDialog::showMe() #ifdef DESKTOP_VERSION + int x,y,w,h; + x = geometry().x(); + y = geometry().y(); + w = width(); + h = height(); show(); + setGeometry(x,y,w,h); #else showMaximized(); #endif + raise(); setActiveWindow(); mEventViewer->setFocus(); @@ -259,5 +266,7 @@ void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e ) break; case Qt::Key_I: - accept(); + sendSignalViewerClosed = true; + slotViewerClosed(); + //accept(); break; default: |