summaryrefslogtreecommitdiffabout
path: root/korganizer/mainwindow.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 7810bf9..61c39f5 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -2030,16 +2030,33 @@ void MainWindow::weekAction()
{
int month;
KPopupFrame* popup = new KPopupFrame(this);
- int size = 12;
- if ( QApplication::desktop()->width() >= 480 )
- size = 18;
- KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(size, popup);
+ KDateInternalWeekPicker* picker = new KDateInternalWeekPicker(10, popup);
// -----
picker->resize(picker->sizeHint());
popup->setMainWidget(picker);
picker->setFocus();
connect(picker, SIGNAL(closeMe(int)), popup, SLOT(close(int)));
- if(popup->exec(iconToolBar->mapToGlobal(QPoint(0, iconToolBar->height()))))
+ int x = 0;
+ int y = iconToolBar->height();
+ int dX = 0;
+ int dY = 0;
+ if ( iconToolBar->orientation () == Qt:: Horizontal ) {
+ if ( iconToolBar->y() > height()/2 ) {
+ dY = iconToolBar->height()+picker->sizeHint().height();
+ y = 0;
+ }
+ } else {
+ if ( iconToolBar->x() > width()/2 ) { // right side
+ x=0;
+ dX= iconToolBar->width()+picker->sizeHint().width();
+ y = 0;
+ } else {
+ x= iconToolBar->width();
+ y = 0;
+ }
+ }
+ qDebug("dax %d dy %d %d %d ", dX, dY, iconToolBar->x(), iconToolBar->y() );
+ if(popup->exec(iconToolBar->mapToGlobal(QPoint(x,y)-QPoint( dX,dY))))
{
month = picker->getResult();
emit selectWeek ( month );