Commit c87f8eb0 authored by Boudewijn Rempt's avatar Boudewijn Rempt

Revert "Make Krita build with gcc 4.6.3"

This reverts commit 3cea2871.
parent 3aef694f
......@@ -23,8 +23,7 @@
#include <cmath>
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <functional>
#include "kis_algebra_2d.h"
#include "kis_debug.h"
......@@ -48,6 +47,8 @@ KisCachedGradientShapeStrategy::KisCachedGradientShapeStrategy(const QRect &rc,
: KisGradientShapeStrategy(),
m_d(new Private())
{
using namespace std::placeholders; // for _1, _2, _3...
KIS_ASSERT_RECOVER_NOOP(rc.width() >= 3 && rc.height() >= 3);
m_d->rc = rc;
......@@ -82,8 +83,8 @@ KisCachedGradientShapeStrategy::KisCachedGradientShapeStrategy(const QRect &rc,
yStart, yEnd, numSamplesY, Natural));
boost::function<qreal(qreal, qreal)> valueOp =
boost::bind(&KisGradientShapeStrategy::valueAt, m_d->baseStrategy.data(), _1, _2);
std::function<qreal(qreal, qreal)> valueOp =
std::bind(&KisGradientShapeStrategy::valueAt, m_d->baseStrategy.data(), _1, _2);
m_d->spline->initializeSpline(valueOp);
......
This diff is collapsed.
......@@ -886,7 +886,7 @@ private:
private:
class KisImagePrivate;
KisImagePrivate * const m_d;
KisImagePrivate * m_d;
};
#endif // KIS_IMAGE_H_
......@@ -78,7 +78,7 @@ void KisImageSignalRouter::emitNotification(KisImageSignalType type)
}
}
void KisImageSignalRouter::emitNodeChanged(KisNode *node)
void KisImageSignalRouter::emitNodeChanged(KisNodeSP node)
{
emit sigNodeChanged(node);
}
......
......@@ -110,7 +110,7 @@ public:
void emitNotification(KisImageSignalType type);
void emitNotifications(KisImageSignalVector notifications);
void emitNodeChanged(KisNode *node);
void emitNodeChanged(KisNodeSP node);
void emitNodeHasBeenAdded(KisNode *parent, int index);
void emitAboutToRemoveANode(KisNode *parent, int index);
......
......@@ -428,15 +428,17 @@ void KisLiquifyTransformWorker::run(KisPaintDeviceSP device)
m_d->transformedPoints);
}
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <functional>
#include <QTransform>
typedef boost::function<QPointF (const QPointF&)> PointMapFunction;
using PointMapFunction = std::function<QPointF (const QPointF&)>;
PointMapFunction bindPointMapTransform(const QTransform &transform) {
using namespace std::placeholders;
typedef QPointF (QTransform::*MapFuncType)(const QPointF&) const;
return boost::bind(static_cast<MapFuncType>(&QTransform::map), &transform, _1);
return std::bind(static_cast<MapFuncType>(&QTransform::map), &transform, _1);
}
QImage KisLiquifyTransformWorker::runOnQImage(const QImage &srcImage,
......
......@@ -20,29 +20,27 @@
#define __KIS_SIGNAL_COMPRESSOR_WITH_PARAM_H
#include <kis_signal_compressor.h>
#include <functional>
#include <boost/function.hpp>
#include <boost/bind.hpp>
/**
* A special class that converts a Qt signal into a boost::function
* call.
* A special class that converts a Qt signal into a std::function call.
*
* Example:
*
* boost::function<void ()> destinationFunctionCall(boost::bind(someNiceFunc, firstParam, secondParam));
* std::function<void ()> destinationFunctionCall(std::bind(someNiceFunc, firstParam, secondParam));
* SignalToFunctionProxy proxy(destinationFunctionCall);
* connect(srcObject, SIGNAL(sigSomethingChanged()), &proxy, SLOT(start()));
*
* Now every time sigSomethingChanged() is emitted, someNiceFunc is
* called. boost::bind allows us to call any method of any class without
* called. std::bind allows us to call any method of any class without
* changing signature of the class or creating special wrappers.
*/
class KRITAIMAGE_EXPORT SignalToFunctionProxy : public QObject
{
Q_OBJECT
public:
typedef boost::function<void ()> TrivialFunction;
using TrivialFunction = std::function<void ()>;
public:
SignalToFunctionProxy(TrivialFunction function)
......@@ -64,7 +62,7 @@ private:
* A special class for deferring and comressing events with one
* parameter of type T. This works like KisSignalCompressor but can
* handle events with one parameter. Due to limitation of the Qt this
* doesn't allow signal/slots, so it uses boost::funxtion instead.
* doesn't allow signal/slots, so it uses std::function instead.
*
* In the end (after a timeout) the latest param value is returned to
* the callback.
......@@ -73,9 +71,11 @@ private:
*
* \code{.cpp}
*
* using namespace std::placeholders; // For _1 placeholder
*
* // prepare the callback function
* boost::function<void (qreal)> callback(
* boost::bind(&LutDockerDock::setCurrentExposureImpl, this, _1));
* std::function<void (qreal)> callback(
* std::bind(&LutDockerDock::setCurrentExposureImpl, this, _1));
*
* // Create the compressor object
* KisSignalCompressorWithParam<qreal> compressor(40, callback);
......@@ -90,15 +90,15 @@ template <typename T>
class KisSignalCompressorWithParam
{
public:
typedef boost::function<void (T)> CallbackFunction;
using CallbackFunction = std::function<void (T)>;
public:
KisSignalCompressorWithParam(int delay, CallbackFunction function)
: m_compressor(delay, KisSignalCompressor::FIRST_ACTIVE),
m_function(function)
{
boost::function<void ()> callback(
boost::bind(&KisSignalCompressorWithParam<T>::fakeSlotTimeout, this));
std::function<void ()> callback(
std::bind(&KisSignalCompressorWithParam<T>::fakeSlotTimeout, this));
m_signalProxy.reset(new SignalToFunctionProxy(callback));
m_compressor.connect(&m_compressor, SIGNAL(timeout()), m_signalProxy.data(), SLOT(start()));
......
......@@ -19,7 +19,7 @@
#ifndef __KIS_STROKE_STRATEGY_FACTORY_H
#define __KIS_STROKE_STRATEGY_FACTORY_H
#include <boost/function.hpp>
typedef boost::function< KisStrokeStrategy*() > KisStrokeStrategyFactory;
#include <functional>
using KisStrokeStrategyFactory = std::function<KisStrokeStrategy*()>;
#endif /* __KIS_STROKE_STRATEGY_FACTORY_H */
......@@ -21,8 +21,7 @@
#include <QMap>
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <functional>
#include "kis_types.h"
#include "kritaimage_export.h"
......@@ -31,8 +30,8 @@
class QDomElement;
typedef boost::function<KisTransformMaskParamsInterfaceSP (const QDomElement &)> KisTransformMaskParamsFactory;
typedef QMap<QString, KisTransformMaskParamsFactory> KisTransformMaskParamsFactoryMap;
using KisTransformMaskParamsFactory = std::function<KisTransformMaskParamsInterfaceSP (const QDomElement &)>;
using KisTransformMaskParamsFactoryMap = QMap<QString, KisTransformMaskParamsFactory>;
class KRITAIMAGE_EXPORT KisTransformMaskParamsFactoryRegistry
{
......
This diff is collapsed.
......@@ -80,14 +80,13 @@ void KisImageTest::benchmarkCreation()
#include "testutil.h"
#include "kis_stroke_strategy.h"
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <functional>
class ForbiddenLodStrokeStrategy : public KisStrokeStrategy
{
public:
ForbiddenLodStrokeStrategy(boost::function<void()> lodCallback)
ForbiddenLodStrokeStrategy(std::function<void()> lodCallback)
: m_lodCallback(lodCallback)
{
}
......@@ -99,7 +98,7 @@ public:
}
private:
boost::function<void()> m_lodCallback;
std::function<void()> m_lodCallback;
};
void notifyVar(bool *value) {
......@@ -121,7 +120,7 @@ void KisImageTest::testBlockLevelOfDetail()
bool lodCreated = false;
KisStrokeId id = p.image->startStroke(
new ForbiddenLodStrokeStrategy(
boost::bind(&notifyVar, &lodCreated)));
std::bind(&notifyVar, &lodCreated)));
p.image->endStroke(id);
p.image->waitForDone();
......@@ -134,7 +133,7 @@ void KisImageTest::testBlockLevelOfDetail()
bool lodCreated = false;
KisStrokeId id = p.image->startStroke(
new ForbiddenLodStrokeStrategy(
boost::bind(&notifyVar, &lodCreated)));
std::bind(&notifyVar, &lodCreated)));
p.image->endStroke(id);
p.image->waitForDone();
......@@ -148,7 +147,7 @@ void KisImageTest::testBlockLevelOfDetail()
bool lodCreated = false;
KisStrokeId id = p.image->startStroke(
new ForbiddenLodStrokeStrategy(
boost::bind(&notifyVar, &lodCreated)));
std::bind(&notifyVar, &lodCreated)));
p.image->endStroke(id);
p.image->waitForDone();
......
......@@ -92,8 +92,11 @@ LutDockerDock::LutDockerDock()
, m_canvas(0)
, m_draggingSlider(false)
{
m_exposureCompressor.reset(new KisSignalCompressorWithParam<qreal>(40, boost::bind(&LutDockerDock::setCurrentExposureImpl, this, _1)));
m_gammaCompressor.reset(new KisSignalCompressorWithParam<qreal>(40, boost::bind(&LutDockerDock::setCurrentGammaImpl, this, _1)));
using namespace std::placeholders; // For _1
m_exposureCompressor.reset(
new KisSignalCompressorWithParam<qreal>(40, std::bind(&LutDockerDock::setCurrentExposureImpl, this, _1)));
m_gammaCompressor.reset(
new KisSignalCompressorWithParam<qreal>(40, std::bind(&LutDockerDock::setCurrentGammaImpl, this, _1)));
m_page = new QWidget(this);
setupUi(m_page);
......
......@@ -270,8 +270,6 @@ public:
} else {
unit = KoUnit::Centimeter;
}
confirmNonNativeSave[0] = true;
confirmNonNativeSave[1] = true;
}
~Private() {
......@@ -294,7 +292,7 @@ public:
QByteArray mimeType; // The actual mimetype of the document
QByteArray outputMimeType; // The mimetype to use when saving
bool confirmNonNativeSave [2]; // used to pop up a dialog when saving for the
bool confirmNonNativeSave [2] = {true, true}; // used to pop up a dialog when saving for the
// first time if the file is in a foreign format
// (Save/Save As, Export)
int specialOutputFlag; // See KoFileDialog in koMainWindow.cc
......
......@@ -91,9 +91,6 @@ class Q_DECL_HIDDEN KisPart::Private
public:
Private(KisPart *_part)
: part(_part)
, canvasItem(0)
, startupWidget(0)
, actionCollection(0)
, idleWatcher(2500)
#ifdef HAVE_OPENGL
, animationCachePopulator(_part)
......@@ -112,9 +109,9 @@ public:
QList<QPointer<KisMainWindow> > mainWindows;
QList<QPointer<KisDocument> > documents;
QGraphicsItem *canvasItem;
KisOpenPane *startupWidget;
KActionCollection *actionCollection;
QGraphicsItem *canvasItem{0};
KisOpenPane *startupWidget{0};
KActionCollection *actionCollection{0};
KisIdleWatcher idleWatcher;
#ifdef HAVE_OPENGL
......
......@@ -105,14 +105,7 @@ public:
Private(KisView *_q, KisDocument *document,
KoCanvasResourceManager *resourceManager,
KActionCollection *actionCollection)
: undo(0)
, redo(0)
, tempActiveWidget(0)
, documentDeleted(false)
, viewManager(0)
, isCurrent(false)
, showFloatingMessage(false)
, actionCollection(actionCollection)
: actionCollection(actionCollection)
, viewConverter()
, canvasController(_q, actionCollection)
, canvas(&viewConverter, resourceManager, _q, document->shapeController())
......@@ -122,8 +115,8 @@ public:
{
}
KisUndoStackAction *undo;
KisUndoStackAction *redo;
KisUndoStackAction *undo = 0;
KisUndoStackAction *redo = 0;
class StatusBarItem;
......@@ -131,7 +124,7 @@ public:
bool inOperation; //in the middle of an operation (no screen refreshing)?
QPointer<KisDocument> document; // our KisDocument
QWidget *tempActiveWidget;
QWidget *tempActiveWidget = 0;
/**
* Signals the document has been deleted. Can't use document==0 since this
......@@ -139,18 +132,18 @@ public:
* XXX: either provide a better justification to do things this way, or
* rework the mechanism.
*/
bool documentDeleted;
bool documentDeleted = false;
KActionCollection* actionCollection;
KisCoordinatesConverter viewConverter;
KisCanvasController canvasController;
KisCanvas2 canvas;
KisZoomManager zoomManager;
KisViewManager *viewManager;
KisViewManager *viewManager = 0;
KisNodeSP currentNode;
KisPaintingAssistantsDecoration paintingAssistantsDecoration;
bool isCurrent;
bool showFloatingMessage;
bool isCurrent = false;
bool showFloatingMessage = false;
QPointer<KisFloatingMessage> savedFloatingMessage;
KisSignalCompressor floatingMessageCompressor;
......@@ -164,9 +157,8 @@ public:
: m_widget(widget),
m_stretch(stretch),
m_permanent(permanent),
m_hidden(false),
m_connected(false)
{}
m_connected(false),
m_hidden(false) {}
bool operator==(const StatusBarItem& rhs) {
return m_widget == rhs.m_widget;
......@@ -203,11 +195,11 @@ public:
}
}
private:
QWidget * m_widget;
QWidget * m_widget = 0;
int m_stretch;
bool m_permanent;
bool m_connected;
bool m_hidden;
bool m_connected = false;
bool m_hidden = false;
};
......
......@@ -84,7 +84,7 @@
#include "kis_canvas_updates_compressor.h"
class KisCanvas2::KisCanvas2Private
class Q_DECL_HIDDEN KisCanvas2::KisCanvas2Private
{
public:
......@@ -92,30 +92,21 @@ public:
KisCanvas2Private(KoCanvasBase *parent, KisCoordinatesConverter* coordConverter, QPointer<KisView> view, KoCanvasResourceManager* resourceManager)
: coordinatesConverter(coordConverter)
, view(view)
, canvasWidget(0)
, shapeManager(new KoShapeManager(parent))
, currentCanvasIsOpenGL(false)
, toolProxy(new KisToolProxy(parent))
, vastScrolling(true)
, popupPalette(0)
, displayColorConverter(new KisDisplayColorConverter(resourceManager, view))
, shapeManager(parent)
, toolProxy(parent)
, displayColorConverter(resourceManager, view)
{
}
~KisCanvas2Private() {
delete shapeManager;
delete toolProxy;
}
KisCoordinatesConverter *coordinatesConverter;
QPointer<KisView>view;
KisAbstractCanvasWidget *canvasWidget;
KoShapeManager *shapeManager;
KisAbstractCanvasWidget *canvasWidget = 0;
KoShapeManager shapeManager;
bool currentCanvasIsOpenGL;
#ifdef HAVE_OPENGL
int openGLFilterMode;
#endif
KisToolProxy *toolProxy;
KisToolProxy toolProxy;
KisPrescaledProjectionSP prescaledProjection;
bool vastScrolling;
......@@ -124,8 +115,8 @@ public:
QBitArray channelFlags;
KisPopupPalette *popupPalette;
KisDisplayColorConverter *displayColorConverter;
KisPopupPalette *popupPalette = 0;
KisDisplayColorConverter displayColorConverter;
KisCanvasUpdatesCompressor projectionUpdatesCompressor;
#ifdef HAVE_OPENGL
......@@ -309,8 +300,8 @@ void KisCanvas2::addCommand(KUndo2Command *command)
KoShapeManager* KisCanvas2::shapeManager() const
{
if (!viewManager()) return m_d->shapeManager;
if (!viewManager()->nodeManager()) return m_d->shapeManager;
if (!viewManager()) return globalShapeManager();
if (!viewManager()->nodeManager()) return globalShapeManager();
KisLayerSP activeLayer = viewManager()->nodeManager()->activeLayer();
if (activeLayer && activeLayer->isEditable()) {
......@@ -327,12 +318,12 @@ KoShapeManager* KisCanvas2::shapeManager() const
}
}
return m_d->shapeManager;
return globalShapeManager();
}
KoShapeManager * KisCanvas2::globalShapeManager() const
{
return m_d->shapeManager;
return &m_d->shapeManager;
}
void KisCanvas2::updateInputMethodInfo()
......@@ -387,7 +378,7 @@ KoUnit KisCanvas2::unit() const
KoToolProxy * KisCanvas2::toolProxy() const
{
return m_d->toolProxy;
return &m_d->toolProxy;
}
void KisCanvas2::createQPainterCanvas()
......@@ -397,10 +388,10 @@ void KisCanvas2::createQPainterCanvas()
KisQPainterCanvas * canvasWidget = new KisQPainterCanvas(this, m_d->coordinatesConverter, m_d->view);
m_d->prescaledProjection = new KisPrescaledProjection();
m_d->prescaledProjection->setCoordinatesConverter(m_d->coordinatesConverter);
m_d->prescaledProjection->setMonitorProfile(m_d->displayColorConverter->monitorProfile(),
m_d->displayColorConverter->renderingIntent(),
m_d->displayColorConverter->conversionFlags());
m_d->prescaledProjection->setDisplayFilter(m_d->displayColorConverter->displayFilter());
m_d->prescaledProjection->setMonitorProfile(m_d->displayColorConverter.monitorProfile(),
m_d->displayColorConverter.renderingIntent(),
m_d->displayColorConverter.conversionFlags());
m_d->prescaledProjection->setDisplayFilter(m_d->displayColorConverter.displayFilter());
canvasWidget->setPrescaledProjection(m_d->prescaledProjection);
setCanvasWidget(canvasWidget);
}
......@@ -412,7 +403,7 @@ void KisCanvas2::createOpenGLCanvas()
m_d->openGLFilterMode = cfg.openGLFilteringMode();
m_d->currentCanvasIsOpenGL = true;
KisOpenGLCanvas2 *canvasWidget = new KisOpenGLCanvas2(this, m_d->coordinatesConverter, 0, m_d->view->image(), m_d->displayColorConverter);
KisOpenGLCanvas2 *canvasWidget = new KisOpenGLCanvas2(this, m_d->coordinatesConverter, 0, m_d->view->image(), &m_d->displayColorConverter);
m_d->frameCache = KisAnimationFrameCache::getFrameCache(canvasWidget->openGLImageTextures());
setCanvasWidget(canvasWidget);
......@@ -436,7 +427,7 @@ void KisCanvas2::createCanvas(bool useOpenGL)
KisConfig cfg;
QDesktopWidget dw;
const KoColorProfile *profile = cfg.displayProfile(dw.screenNumber(imageView()));
m_d->displayColorConverter->setMonitorProfile(profile);
m_d->displayColorConverter.setMonitorProfile(profile);
if (useOpenGL) {
#ifdef HAVE_OPENGL
......@@ -538,7 +529,7 @@ void KisCanvas2::startUpdateInPatches(const QRect &imageRect)
void KisCanvas2::setDisplayFilter(KisDisplayFilter *displayFilter)
{
m_d->displayColorConverter->setDisplayFilter(displayFilter);
m_d->displayColorConverter.setDisplayFilter(displayFilter);
KisImageWSP image = this->image();
image->barrierLock();
......@@ -550,18 +541,18 @@ void KisCanvas2::setDisplayFilter(KisDisplayFilter *displayFilter)
KisDisplayFilter *KisCanvas2::displayFilter() const
{
return m_d->displayColorConverter->displayFilter();
return m_d->displayColorConverter.displayFilter();
}
KisDisplayColorConverter* KisCanvas2::displayColorConverter() const
{
return m_d->displayColorConverter;
return &m_d->displayColorConverter;
}
KisExposureGammaCorrectionInterface* KisCanvas2::exposureGammaCorrectionInterface() const
{
KisDisplayFilter *displayFilter =
m_d->displayColorConverter->displayFilter();
m_d->displayColorConverter.displayFilter();
return displayFilter ?
displayFilter->correctionInterface() :
......@@ -699,7 +690,7 @@ void KisCanvas2::preScale()
const KoColorProfile * KisCanvas2::monitorProfile()
{
return m_d->displayColorConverter->monitorProfile();
return m_d->displayColorConverter.monitorProfile();
}
KisViewManager* KisCanvas2::viewManager() const
......@@ -761,15 +752,15 @@ void KisCanvas2::refetchDataFromImage()
void KisCanvas2::slotSetDisplayProfile(const KoColorProfile *monitorProfile)
{
if (m_d->displayColorConverter->monitorProfile() == monitorProfile) return;
if (m_d->displayColorConverter.monitorProfile() == monitorProfile) return;
m_d->displayColorConverter->setMonitorProfile(monitorProfile);
m_d->displayColorConverter.setMonitorProfile(monitorProfile);
KisImageWSP image = this->image();
image->barrierLock();
m_d->canvasWidget->setDisplayProfile(m_d->displayColorConverter);
m_d->canvasWidget->setDisplayProfile(&m_d->displayColorConverter);
refetchDataFromImage();
}
......@@ -829,9 +820,9 @@ void KisCanvas2::slotSelectionChanged()
if (!shapeLayer) {
return;
}
m_d->shapeManager->selection()->deselectAll();
m_d->shapeManager.selection()->deselectAll();
Q_FOREACH (KoShape* shape, shapeLayer->shapeManager()->selection()->selectedShapes()) {
m_d->shapeManager->selection()->select(shape);
m_d->shapeManager.selection()->select(shape);
}
}
......
......@@ -27,7 +27,7 @@
SliderAndSpinBoxSync::SliderAndSpinBoxSync(KisDoubleSliderSpinBox *slider,
QSpinBox *spinBox,
boost::function<int()> parentValueOp)
IntFunction parentValueOp)
: m_slider(slider),
m_spinBox(spinBox),
m_parentValueOp(parentValueOp),
......
......@@ -20,7 +20,7 @@
#define __SLIDER_AND_SPIN_BOX_SYNC_H
#include <QObject>
#include <boost/function.hpp>
#include <functional>
class QSpinBox;
class KisDoubleSliderSpinBox;
......@@ -40,10 +40,12 @@ class KisDoubleSliderSpinBox;
class SliderAndSpinBoxSync : public QObject
{
Q_OBJECT
using IntFunction = std::function<int()>;
public:
SliderAndSpinBoxSync(KisDoubleSliderSpinBox *slider,
QSpinBox *spinBox,
boost::function<int()> parentValueOp);
IntFunction parentValueOp);
~SliderAndSpinBoxSync();
......@@ -57,7 +59,7 @@ private Q_SLOTS:
private:
KisDoubleSliderSpinBox *m_slider;
QSpinBox *m_spinBox;
boost::function<int()> m_parentValueOp;
IntFunction m_parentValueOp;
bool m_blockUpdates;
};
......
......@@ -117,20 +117,8 @@ bool KisInputManager::Private::ignoreQtCursorEvents()
KisInputManager::Private::Private(KisInputManager *qq)
: q(qq)
, canvas(0)
, toolProxy(0)
, forwardAllEventsToTool(0)
, disableTouchOnCanvas(false)
, touchHasBlockedPressEvents(false)
, lastTouchEvent(0)
, defaultInputAction(0)
, eventsReceiver(0)
, testingAcceptCompressedTabletEvents(false)
, testingCompressBrushEvents(false)
, moveEventCompressor(10 /* ms */, KisSignalCompressor::FIRST_ACTIVE)
, canvasSwitcher(this, qq)
, focusOnEnter(true)
, containsPointer(true)
{
KisConfig cfg;
disableTouchOnCanvas = cfg.disableTouchOnCanvas();
......
......@@ -39,7 +39,6 @@ class KisInputManager::Private
{
public:
Private(KisInputManager *qq);
bool tryHidePopupPalette();
void addStrokeShortcut(KisAbstractInputAction* action, int index, const QList< Qt::Key >& modifiers, Qt::MouseButtons buttons);
void addKeyShortcut(KisAbstractInputAction* action, int index,const QList<Qt::Key> &keys);
......@@ -52,25 +51,25 @@ public:
KisInputManager *q;
KisCanvas2 *canvas;
KisToolProxy *toolProxy;
KisCanvas2 *canvas = 0;
KisToolProxy *toolProxy = 0;
bool forwardAllEventsToTool;
bool forwardAllEventsToTool = false;
bool ignoreQtCursorEvents();
bool disableTouchOnCanvas;
bool touchHasBlockedPressEvents;
bool disableTouchOnCanvas = false;
bool touchHasBlockedPressEvents = false;
KisShortcutMatcher matcher;
QTouchEvent *lastTouchEvent;
QTouchEvent *lastTouchEvent = 0;
KisToolInvocationAction *defaultInputAction;
KisToolInvocationAction *defaultInputAction = 0;
QObject *eventsReceiver;