Skip to content

Commit

Permalink
Up/down buttons in objects dock + pixel coordinates for objects in st…
Browse files Browse the repository at this point in the history
…atus bar (#1384)

* Added object move up/down in Objects dock
* Added pixel coordinates to status bar when edit objects layer
  • Loading branch information
iskolbin authored and bjorn committed Nov 28, 2016
1 parent 49a7560 commit f943d7b
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/tiled/abstractobjecttool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ void AbstractObjectTool::mouseMoved(const QPointF &pos,
const QPointF tilePosF = mapDocument()->renderer()->screenToTileCoords(offsetPos);
const int x = (int) std::floor(tilePosF.x());
const int y = (int) std::floor(tilePosF.y());
setStatusInfo(QString(QLatin1String("%1, %2")).arg(x).arg(y));
setStatusInfo(QString(QLatin1String("%1, %2 (%3, %4)")).arg(x).arg(y).arg(offsetPos.x()).arg(offsetPos.y()));
}

void AbstractObjectTool::mousePressed(QGraphicsSceneMouseEvent *event)
Expand Down
45 changes: 45 additions & 0 deletions src/tiled/mapdocument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "addremovelayer.h"
#include "addremovemapobject.h"
#include "addremovetileset.h"
#include "changemapobjectsorder.h"
#include "changeproperties.h"
#include "changeselectedarea.h"
#include "containerhelpers.h"
Expand Down Expand Up @@ -996,6 +997,50 @@ void MapDocument::moveObjectsToGroup(const QList<MapObject *> &objects,
mUndoStack->endMacro();
}

static bool mapObjectIndexLessThan(MapObject *o1, MapObject *o2){
return o1->objectGroup()->objects().indexOf(o1) < o2->objectGroup()->objects().indexOf(o2);
}

static bool mapObjectIndexGreaterThan(MapObject *o1, MapObject *o2){
return o1->objectGroup()->objects().indexOf(o1) > o2->objectGroup()->objects().indexOf(o2);
}

void MapDocument::moveObjectsUp(const QList<MapObject *> &objects)
{
if (objects.isEmpty())
return;

QList<MapObject *> objectsSorted = QList<MapObject *>(objects);
qSort(objectsSorted.begin(), objectsSorted.end(), mapObjectIndexLessThan);

mUndoStack->beginMacro(tr("Move %n Object(s) index(ices) up", "", objects.size()));
foreach(MapObject *mapObject, objectsSorted) {
ObjectGroup *group = mapObject->objectGroup();
int index = group->objects().indexOf(mapObject);
if (index > 0)
mUndoStack->push(new ChangeMapObjectsOrder(this, group, index, index-1, 1));
}
mUndoStack->endMacro();
}

void MapDocument::moveObjectsDown(const QList<MapObject *> &objects)
{
if (objects.isEmpty())
return;

QList<MapObject *> objectsSorted = QList<MapObject *>(objects);
qSort(objectsSorted.begin(), objectsSorted.end(), mapObjectIndexGreaterThan);

mUndoStack->beginMacro(tr("Move %n Object(s) index(ices) down", "", objects.size()));
foreach(MapObject *mapObject, objectsSorted) {
ObjectGroup *group = mapObject->objectGroup();
int index = group->objects().indexOf(mapObject);
if (index < group->objectCount() - 1)
mUndoStack->push(new ChangeMapObjectsOrder(this, group, index+1, index, 1));
}
mUndoStack->endMacro();
}

void MapDocument::setProperty(Object *object,
const QString &name,
const QVariant &value)
Expand Down
3 changes: 3 additions & 0 deletions src/tiled/mapdocument.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,8 @@ class MapDocument : public QObject
void removeObjects(const QList<MapObject*> &objects);
void moveObjectsToGroup(const QList<MapObject*> &objects,
ObjectGroup *objectGroup);
void moveObjectsUp(const QList<MapObject*> &objects);
void moveObjectsDown(const QList<MapObject*> &objects);

void setProperty(Object *object, const QString &name, const QVariant &value);
void setProperties(Object *object, const Properties &properties);
Expand Down Expand Up @@ -394,6 +396,7 @@ private slots:
private:
void setFileName(const QString &fileName);
void deselectObjects(const QList<MapObject*> &objects);
void moveObjectIndex(const MapObject *object, int count);

QString mFileName;
QString mLastExportFileName;
Expand Down
22 changes: 22 additions & 0 deletions src/tiled/objectsdock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@ ObjectsDock::ObjectsDock(QWidget *parent)
mActionMoveToGroup = new QAction(this);
mActionMoveToGroup->setIcon(QIcon(QLatin1String(":/images/16x16/layer-object.png")));

mActionMoveUp = new QAction(this);
mActionMoveUp->setIcon(QIcon(QLatin1String(":/images/16x16/go-up.png")));
mActionMoveDown = new QAction(this);
mActionMoveDown->setIcon(QIcon(QLatin1String(":/images/16x16/go-down.png")));

QToolBar *toolBar = new QToolBar;
toolBar->setFloatable(false);
toolBar->setMovable(false);
Expand All @@ -85,6 +90,8 @@ ObjectsDock::ObjectsDock(QWidget *parent)
toolBar->addAction(handler->actionDuplicateObjects());
toolBar->addAction(handler->actionRemoveObjects());

toolBar->addAction(mActionMoveUp);
toolBar->addAction(mActionMoveDown);
toolBar->addAction(mActionMoveToGroup);
QToolButton *button;
button = dynamic_cast<QToolButton*>(toolBar->widgetForAction(mActionMoveToGroup));
Expand All @@ -103,6 +110,21 @@ ObjectsDock::ObjectsDock(QWidget *parent)

connect(DocumentManager::instance(), SIGNAL(documentAboutToClose(MapDocument*)),
SLOT(documentAboutToClose(MapDocument*)));

connect(mActionMoveUp, SIGNAL(triggered()), SLOT(moveObjectsUp()));
connect(mActionMoveDown, SIGNAL(triggered()), SLOT(moveObjectsDown()));
}

void ObjectsDock::moveObjectsUp()
{
if (mMapDocument)
mMapDocument->moveObjectsUp(mMapDocument->selectedObjects());
}

void ObjectsDock::moveObjectsDown()
{
if (mMapDocument)
mMapDocument->moveObjectsDown(mMapDocument->selectedObjects());
}

void ObjectsDock::setMapDocument(MapDocument *mapDoc)
Expand Down
4 changes: 4 additions & 0 deletions src/tiled/objectsdock.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ private slots:
void triggeredMoveToMenu(QAction *action);
void objectProperties();
void documentAboutToClose(MapDocument *mapDocument);
void moveObjectsUp();
void moveObjectsDown();

private:
void retranslateUi();
Expand All @@ -64,6 +66,8 @@ private slots:
QAction *mActionNewLayer;
QAction *mActionObjectProperties;
QAction *mActionMoveToGroup;
QAction *mActionMoveUp;
QAction *mActionMoveDown;

ObjectsView *mObjectsView;
MapDocument *mMapDocument;
Expand Down

0 comments on commit f943d7b

Please sign in to comment.