summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp16
-rw-r--r--korganizer/koagenda.cpp25
-rw-r--r--korganizer/koagendaitem.cpp18
-rw-r--r--korganizer/koagendaitem.h1
-rw-r--r--korganizer/koeventviewerdialog.cpp11
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: