Commit 9afb7a80 authored by Stefan Majewsky's avatar Stefan Majewsky
Browse files

Add ToggleConstraintInteractor.

svn path=/trunk/KDE/kdegames/palapeli/; revision=1118502
parent 8b77baaa
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "interactors.h" #include "interactors.h"
#include "piece.h" #include "piece.h"
#include "scene.h"
#include "view.h" #include "view.h"
#include <QStyle> #include <QStyle>
...@@ -314,3 +315,21 @@ void Palapeli::RubberBandInteractor::stopInteraction(const Palapeli::MouseEvent& ...@@ -314,3 +315,21 @@ void Palapeli::RubberBandInteractor::stopInteraction(const Palapeli::MouseEvent&
} }
//END Palapeli::RubberBandInteractor //END Palapeli::RubberBandInteractor
//BEGIN Palapeli::ToggleConstraintInteractor
Palapeli::ToggleConstraintInteractor::ToggleConstraintInteractor(QGraphicsView* view)
: Palapeli::Interactor(30, Palapeli::MouseInteractor, view) //priority: higher than anything else (this should not depend on what the cursor is currently pointing)
{
setMetadata(TableInteraction, i18nc("Description (used like a name) for a mouse interaction method", "Toggle lock state of the puzzle table area"), QIcon());
}
bool Palapeli::ToggleConstraintInteractor::startInteraction(const Palapeli::MouseEvent& event)
{
Q_UNUSED(event)
Palapeli::Scene* scene = qobject_cast<Palapeli::Scene*>(this->scene());
if (scene)
scene->setConstrained(!scene->isConstrained());
return (bool) scene;
}
//END Palapeli::ToggleConstraintInteractor
...@@ -123,6 +123,16 @@ namespace Palapeli ...@@ -123,6 +123,16 @@ namespace Palapeli
Palapeli::RubberBandItem* m_item; Palapeli::RubberBandItem* m_item;
QPointF m_basePosition; QPointF m_basePosition;
}; };
//This interactor is assigned to nothing by default.
//When the interactor is triggered, the scene constraint is toggled.
class ToggleConstraintInteractor : public Palapeli::Interactor
{
public:
ToggleConstraintInteractor(QGraphicsView* view);
protected:
virtual bool startInteraction(const Palapeli::MouseEvent& event);
};
} }
#endif // PALAPELI_INTERACTORS_H #endif // PALAPELI_INTERACTORS_H
...@@ -171,7 +171,7 @@ QByteArray Palapeli::Trigger::serialized() const ...@@ -171,7 +171,7 @@ QByteArray Palapeli::Trigger::serialized() const
QString Palapeli::Trigger::toString() const QString Palapeli::Trigger::toString() const
{ {
const QString actionString = tPrinterData->actionString(m_wheelDirection, m_button); const QString actionString = tPrinterData->actionString(m_wheelDirection, m_button);
const QString modifierString = tPrinterData->modifierString(m_modifiers, '|'); const QString modifierString = tPrinterData->modifierString(m_modifiers, '+');
if (modifierString.isEmpty()) if (modifierString.isEmpty())
return actionString; return actionString;
else else
......
...@@ -44,6 +44,7 @@ QMap<QByteArray, Palapeli::Interactor*> Palapeli::TriggerMapper::createInteracto ...@@ -44,6 +44,7 @@ QMap<QByteArray, Palapeli::Interactor*> Palapeli::TriggerMapper::createInteracto
result["ScrollViewportVert"] = new Palapeli::ScrollViewportInteractor(Qt::Vertical, view); result["ScrollViewportVert"] = new Palapeli::ScrollViewportInteractor(Qt::Vertical, view);
result["RubberBand"] = new Palapeli::RubberBandInteractor(view); result["RubberBand"] = new Palapeli::RubberBandInteractor(view);
result["Constraints"] = new Palapeli::ConstraintInteractor(view); result["Constraints"] = new Palapeli::ConstraintInteractor(view);
result["ToggleConstraints"] = new Palapeli::ToggleConstraintInteractor(view);
return result; return result;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment