Files
create/src/Gui/GuiApplication.h
0penBrain f6f5182bc3 Gui : susbtitute dot with local decimal separator for spin boxes
Main goal is to improve user-friendlyness for several locales
 Substitution of dot is performed :
 * Always if dot is neither decimal nor group/thousand separator of current locale
 * Only on NUMPAD dot if dot is not decimal but is group separator of current locale
2021-09-27 15:06:36 +02:00

107 lines
3.3 KiB
C++

/***************************************************************************
* Copyright (c) 2015 Werner Mayer <wmayer[at]users.sourceforge.net> *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef GUI_APPLICATION_H
#define GUI_APPLICATION_H
#include "GuiApplicationNativeEventAware.h"
#include <Base/Interpreter.h> // For Base::SystemExitException
#include <QList>
#include <memory>
class QSessionManager;
namespace Gui
{
/** Override QCoreApplication::notify() to fetch exceptions in Qt widgets
* properly that are not handled in the event handler or slot.
*/
class GUIApplication : public GUIApplicationNativeEventAware
{
Q_OBJECT
public:
explicit GUIApplication(int & argc, char ** argv);
virtual ~GUIApplication();
/**
* Make forwarding events exception-safe and get more detailed information
* where an unhandled exception comes from.
*/
bool notify (QObject * receiver, QEvent * event);
/// Pointer to exceptions caught in Qt event handler
std::shared_ptr<Base::SystemExitException> caughtException;
public Q_SLOTS:
void commitData(QSessionManager &manager);
protected:
bool event(QEvent * event);
};
class GUISingleApplication : public GUIApplication
{
Q_OBJECT
public:
explicit GUISingleApplication(int & argc, char ** argv);
virtual ~GUISingleApplication();
bool isRunning() const;
bool sendMessage(const QByteArray &message, int timeout = 5000);
private Q_SLOTS:
void receiveConnection();
void processMessages();
Q_SIGNALS:
void messageReceived(const QList<QByteArray> &);
private:
class Private;
QScopedPointer<Private> d_ptr;
};
class WheelEventFilter : public QObject
{
Q_OBJECT
public:
WheelEventFilter(QObject* parent);
bool eventFilter(QObject* obj, QEvent* ev);
};
class KeyboardFilter : public QObject
{
Q_OBJECT
public:
KeyboardFilter(QObject* parent);
bool eventFilter(QObject* obj, QEvent* ev);
};
}
#endif // GUI_APPLICATION_H