TableBottomBox: Creator/Configurator can be closed via Escape

This commit is contained in:
Stanislav Bas 2015-07-04 20:30:02 +03:00
parent 1f826476ff
commit 880bc31ddf
2 changed files with 20 additions and 0 deletions

View file

@ -6,6 +6,8 @@
#include <QStatusBar> #include <QStatusBar>
#include <QStackedLayout> #include <QStackedLayout>
#include <QLabel> #include <QLabel>
#include <QEvent>
#include <QKeyEvent>
#include "creator.hpp" #include "creator.hpp"
@ -92,6 +94,7 @@ CSVWorld::TableBottomBox::TableBottomBox (const CreatorFactoryBase& creatorFacto
if (mCreator) if (mCreator)
{ {
mCreator->installEventFilter(this);
mLayout->addWidget (mCreator); mLayout->addWidget (mCreator);
connect (mCreator, SIGNAL (done()), this, SLOT (requestDone())); connect (mCreator, SIGNAL (done()), this, SLOT (requestDone()));
@ -101,6 +104,7 @@ CSVWorld::TableBottomBox::TableBottomBox (const CreatorFactoryBase& creatorFacto
} }
mExtendedConfigurator = new ExtendedCommandConfigurator (document, id, this); mExtendedConfigurator = new ExtendedCommandConfigurator (document, id, this);
mExtendedConfigurator->installEventFilter(this);
mLayout->addWidget (mExtendedConfigurator); mLayout->addWidget (mExtendedConfigurator);
connect (mExtendedConfigurator, SIGNAL (done()), this, SLOT (requestDone())); connect (mExtendedConfigurator, SIGNAL (done()), this, SLOT (requestDone()));
@ -118,6 +122,20 @@ CSVWorld::TableBottomBox::~TableBottomBox()
delete mCreator; delete mCreator;
} }
bool CSVWorld::TableBottomBox::eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == Qt::Key_Escape)
{
requestDone();
return true;
}
}
return QWidget::eventFilter(object, event);
}
void CSVWorld::TableBottomBox::setStatusBar (bool show) void CSVWorld::TableBottomBox::setStatusBar (bool show)
{ {
if (show!=mShowStatusBar) if (show!=mShowStatusBar)

View file

@ -59,6 +59,8 @@ namespace CSVWorld
virtual ~TableBottomBox(); virtual ~TableBottomBox();
virtual bool eventFilter(QObject *object, QEvent *event);
void setEditLock (bool locked); void setEditLock (bool locked);
void setStatusBar (bool show); void setStatusBar (bool show);