summaryrefslogtreecommitdiffstats
path: root/qt-ui/simplewidgets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/simplewidgets.cpp')
-rw-r--r--qt-ui/simplewidgets.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp
index 94670b04b..7da691d1b 100644
--- a/qt-ui/simplewidgets.cpp
+++ b/qt-ui/simplewidgets.cpp
@@ -297,8 +297,7 @@ DateWidget::DateWidget(QWidget *parent) : QWidget(parent),
setDate(QDate::currentDate());
setMinimumSize(QSize(80,64));
setFocusPolicy(Qt::StrongFocus);
- calendarWidget->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
- calendarWidget->setWindowModality(Qt::ApplicationModal);
+ calendarWidget->setWindowFlags(Qt::FramelessWindowHint);
calendarWidget->setFirstDayOfWeek(getLocale().firstDayOfWeek());
calendarWidget->setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader);
@@ -306,8 +305,19 @@ DateWidget::DateWidget(QWidget *parent) : QWidget(parent),
connect(calendarWidget, SIGNAL(clicked(QDate)), calendarWidget, SLOT(hide()));
connect(calendarWidget, SIGNAL(activated(QDate)), this, SLOT(setDate(QDate)));
connect(calendarWidget, SIGNAL(clicked(QDate)), this, SLOT(setDate(QDate)));
+ calendarWidget->installEventFilter(this);
}
+bool DateWidget::eventFilter(QObject *object, QEvent *event)
+{
+ if(event->type() == QEvent::FocusOut){
+ calendarWidget->hide();
+ return true;
+ }
+ return QObject::eventFilter(object, event);
+}
+
+
void DateWidget::setDate(const QDate& date)
{
mDate = date;
@@ -367,6 +377,8 @@ void DateWidget::mousePressEvent(QMouseEvent *event)
{
calendarWidget->move(event->globalPos());
calendarWidget->show();
+ calendarWidget->raise();
+ calendarWidget->setFocus();
}
void DateWidget::focusInEvent(QFocusEvent *event)