FreeCAD
1/***************************************************************************
2* Copyright (c) 2012 Werner Mayer <wmayer[at]users.sourceforge.net> *
3* *
4* This file is part of the FreeCAD CAx development system. *
5* *
6* This library is free software; you can redistribute it and/or *
7* modify it under the terms of the GNU Library General Public *
8* License as published by the Free Software Foundation; either *
9* version 2 of the License, or (at your option) any later version. *
10* *
11* This library is distributed in the hope that it will be useful, *
12* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14* GNU Library General Public License for more details. *
15* *
16* You should have received a copy of the GNU Library General Public *
17* License along with this library; see the file COPYING.LIB. If not, *
18* write to the Free Software Foundation, Inc., 51 Franklin Street, *
19* Fifth Floor, Boston, MA 02110-1301, USA *
20* *
21***************************************************************************/
22
23
24#include "PreCompiled.h"25#ifndef _PreComp_26#include <QCoreApplication>27#include <QEvent>28#endif29
30#include "Debugger.h"31#include "Console.h"32
33
34using namespace Base;35
36Debugger::Debugger(QObject* parent)37: QObject(parent)38{}39
40Debugger::~Debugger() = default;41
42void Debugger::attach()43{
44QCoreApplication::instance()->installEventFilter(this);45isAttached = true;46}
47
48void Debugger::detach()49{
50QCoreApplication::instance()->removeEventFilter(this);51isAttached = false;52}
53
54bool Debugger::eventFilter(QObject* /*watched*/, QEvent* event)55{
56if (event->type() == QEvent::KeyPress) {57if (loop.isRunning()) {58loop.quit();59return true;60}61}62
63return false;64}
65
66int Debugger::exec()67{
68if (isAttached) {69Base::Console().Message("TO CONTINUE PRESS ANY KEY...\n");70}71return loop.exec();72}
73
74void Debugger::quit()75{
76loop.quit();77}
78
79#include "moc_Debugger.cpp"80