62
65
, mTilesetDocument(nullptr)
63
66
, mMapScene(new MapScene(this))
64
67
, mMapView(new MapView(this, MapView::NoStaticContents))
68
, mObjectsView(new ObjectsView(this))
65
69
, mToolManager(new ToolManager(this))
66
70
, mApplyingChanges(false)
67
71
, mSynchronizing(false)
75
79
mMapView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
76
80
mMapView->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
82
mObjectsView->setRootIsDecorated(false);
78
84
CreateObjectTool *rectangleObjectsTool = new CreateRectangleObjectTool(this);
79
85
CreateObjectTool *pointObjectsTool = new CreatePointObjectTool(this);
80
86
CreateObjectTool *ellipseObjectsTool = new CreateEllipseObjectTool(this);
96
102
toolBar->addAction(mToolManager->registerTool(polygonObjectsTool));
97
103
toolBar->addAction(mToolManager->registerTool(templatesTool));
105
mActionMoveUp = new QAction(this);
106
mActionMoveUp->setIcon(QIcon(QLatin1String(":/images/16x16/go-up.png")));
107
mActionMoveUp->setEnabled(false);
108
mActionMoveDown = new QAction(this);
109
mActionMoveDown->setIcon(QIcon(QLatin1String(":/images/16x16/go-down.png")));
110
mActionMoveDown->setEnabled(false);
112
Utils::setThemeIcon(mActionMoveUp, "go-up");
113
Utils::setThemeIcon(mActionMoveDown, "go-down");
115
QToolBar *objectsToolBar = new QToolBar(this);
116
objectsToolBar->setMovable(false);
117
objectsToolBar->setFloatable(false);
118
objectsToolBar->setIconSize(Utils::smallIconSize());
119
objectsToolBar->addAction(mActionMoveUp);
120
objectsToolBar->addAction(mActionMoveDown);
122
auto objectsWidget = new QWidget;
123
auto objectsVertical = new QVBoxLayout(objectsWidget);
124
objectsVertical->setSpacing(0);
125
objectsVertical->setMargin(0);
126
objectsVertical->addWidget(mObjectsView);
127
objectsVertical->addWidget(objectsToolBar);
99
129
auto widget = new QWidget(this);
100
130
auto vertical = new QVBoxLayout(widget);
101
131
vertical->setSpacing(0);
102
132
vertical->setMargin(0);
104
auto horizontal = new QHBoxLayout();
134
auto horizontal = new QHBoxLayout;
105
135
horizontal->addWidget(toolBar, 1);
137
auto splitter = new QSplitter;
138
splitter->addWidget(mMapView);
139
splitter->addWidget(objectsWidget);
107
141
vertical->addLayout(horizontal);
108
vertical->addWidget(mMapView);
142
vertical->addWidget(splitter);
110
144
setWidget(widget);
121
155
Zoomable *zoomable = mMapView->zoomable();
122
156
zoomable->setComboBox(zoomComboBox);
158
auto selectAllShortcut = new QShortcut(Qt::CTRL + Qt::Key_A, this, nullptr, nullptr, Qt::WidgetWithChildrenShortcut);
159
connect(selectAllShortcut, &QShortcut::activated, this, &TileCollisionDock::selectAll);
161
connect(mActionMoveUp, &QAction::triggered, this, &TileCollisionDock::moveObjectsUp);
162
connect(mActionMoveDown, &QAction::triggered, this, &TileCollisionDock::moveObjectsDown);
189
229
mDummyMapDocument->setCurrentLayer(objectGroup);
191
231
mMapScene->setMapDocument(mDummyMapDocument.data());
232
mObjectsView->setMapDocument(mDummyMapDocument.data());
233
mObjectsView->setRootIndex(mObjectsView->layerViewIndex(objectGroup));
192
234
mToolManager->setMapDocument(mDummyMapDocument.data());
194
236
mMapScene->enableSelectedTool();
203
245
mDummyMapDocument.clear();
204
246
mMapScene->setMapDocument(nullptr);
247
mObjectsView->setMapDocument(nullptr);
205
248
mToolManager->setMapDocument(nullptr);
208
252
emit dummyMapDocumentChanged(mDummyMapDocument.data());
210
254
setHasSelectedObjects(false);
350
394
void TileCollisionDock::selectedObjectsChanged()
352
396
setHasSelectedObjects(!mDummyMapDocument->selectedObjects().isEmpty());
397
mActionMoveUp->setEnabled(hasSelectedObjects());
398
mActionMoveDown->setEnabled(hasSelectedObjects());
355
401
void TileCollisionDock::setHasSelectedObjects(bool hasSelectedObjects)
409
void TileCollisionDock::selectAll()
411
if (!mDummyMapDocument)
414
ObjectGroup *objectGroup = static_cast<ObjectGroup*>(mDummyMapDocument->map()->layerAt(1));
415
mDummyMapDocument->setSelectedObjects(objectGroup->objects());
418
void TileCollisionDock::moveObjectsUp()
420
if (mDummyMapDocument)
421
mDummyMapDocument->moveObjectsUp(mDummyMapDocument->selectedObjects());
424
void TileCollisionDock::moveObjectsDown()
426
if (mDummyMapDocument)
427
mDummyMapDocument->moveObjectsDown(mDummyMapDocument->selectedObjects());
363
430
void TileCollisionDock::changeEvent(QEvent *e)
365
432
QDockWidget::changeEvent(e);
375
442
void TileCollisionDock::retranslateUi()
377
444
setWindowTitle(QCoreApplication::translate("Tiled::MainWindow", "Tile Collision Editor"));
446
mActionMoveUp->setToolTip(tr("Move Objects Up"));
447
mActionMoveDown->setToolTip(tr("Move Objects Down"));
380
450
} // namespace Tiled