mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 06:15:26 +00:00
Calendar widget should hide when clicking somewhere else
This patch adds a event filter to hide the calendar widget when it loses focus Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
927bc5d601
commit
facf6e4b59
2 changed files with 15 additions and 2 deletions
|
@ -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)
|
||||
|
|
|
@ -104,6 +104,7 @@ protected:
|
|||
void focusOutEvent(QFocusEvent *);
|
||||
void keyPressEvent(QKeyEvent *);
|
||||
void changeEvent(QEvent *);
|
||||
bool eventFilter(QObject *, QEvent *);
|
||||
signals:
|
||||
void dateChanged(const QDate& date);
|
||||
private:
|
||||
|
|
Loading…
Add table
Reference in a new issue