Add duplicate shortcut for events
This commit is contained in:
parent
a5bd797914
commit
ea2bfa7274
6 changed files with 37 additions and 0 deletions
|
@ -27,6 +27,7 @@ class Event
|
|||
{
|
||||
public:
|
||||
Event();
|
||||
Event(const Event&);
|
||||
Event(QJsonObject, QString);
|
||||
public:
|
||||
int x() {
|
||||
|
|
|
@ -100,6 +100,7 @@ public:
|
|||
Event* createNewEvent(QString event_type);
|
||||
void deleteEvent(Event *);
|
||||
void updateSelectedEvents();
|
||||
void duplicateSelectedEvents();
|
||||
void redrawObject(DraggablePixmapItem *item);
|
||||
QList<DraggablePixmapItem *> *getObjects();
|
||||
|
||||
|
|
|
@ -123,6 +123,7 @@ private slots:
|
|||
|
||||
void undo();
|
||||
void redo();
|
||||
void duplicate();
|
||||
|
||||
void openInTextEditor();
|
||||
|
||||
|
|
|
@ -19,6 +19,19 @@ Event::Event()
|
|||
this->usingSprite = false;
|
||||
}
|
||||
|
||||
Event::Event(const Event& toCopy)
|
||||
{
|
||||
Event();
|
||||
this->values = toCopy.values;
|
||||
this->customValues = toCopy.customValues;
|
||||
this->pixmap = toCopy.pixmap;
|
||||
this->spriteWidth = toCopy.spriteWidth;
|
||||
this->spriteHeight = toCopy.spriteHeight;
|
||||
this->frame = toCopy.frame;
|
||||
this->hFlip = toCopy.hFlip;
|
||||
this->usingSprite = toCopy.usingSprite;
|
||||
}
|
||||
|
||||
Event::Event(QJsonObject obj, QString type)
|
||||
{
|
||||
Event();
|
||||
|
|
|
@ -1881,6 +1881,22 @@ void Editor::selectMapEvent(DraggablePixmapItem *object, bool toggle) {
|
|||
}
|
||||
}
|
||||
|
||||
void Editor::duplicateSelectedEvents() {
|
||||
if (!selected_events || !selected_events->length() || !map || !current_view || map_item->paintingMode != MapPixmapItem::PaintMode::EventObjects)
|
||||
return;
|
||||
|
||||
QList<DraggablePixmapItem*> *duplicates = new QList<DraggablePixmapItem*>;
|
||||
for (int i = 0; i < selected_events->length(); i++) {
|
||||
Event *duplicate = new Event(*selected_events->at(i)->event);
|
||||
map->addEvent(duplicate);
|
||||
DraggablePixmapItem *object = addMapEvent(duplicate);
|
||||
duplicates->append(object);
|
||||
}
|
||||
selected_events->clear();
|
||||
selected_events = duplicates;
|
||||
updateSelectedEvents();
|
||||
}
|
||||
|
||||
DraggablePixmapItem* Editor::addNewEvent(QString event_type) {
|
||||
if (project && map && !event_type.isEmpty()) {
|
||||
Event *event = Event::createNewEvent(event_type, map->name, project);
|
||||
|
|
|
@ -77,6 +77,7 @@ void MainWindow::initExtraShortcuts() {
|
|||
new QShortcut(QKeySequence("Ctrl+Shift+Z"), this, SLOT(redo()));
|
||||
new QShortcut(QKeySequence("Ctrl+0"), this, SLOT(resetMapViewScale()));
|
||||
new QShortcut(QKeySequence("Ctrl+G"), ui->checkBox_ToggleGrid, SLOT(toggle()));
|
||||
new QShortcut(QKeySequence("Ctrl+D"), this, SLOT(duplicate()));
|
||||
ui->actionZoom_In->setShortcuts({QKeySequence("Ctrl++"), QKeySequence("Ctrl+=")});
|
||||
}
|
||||
|
||||
|
@ -1230,6 +1231,10 @@ void MainWindow::redo() {
|
|||
editor->redo();
|
||||
}
|
||||
|
||||
void MainWindow::duplicate() {
|
||||
editor->duplicateSelectedEvents();
|
||||
}
|
||||
|
||||
// Open current map scripts in system default editor for .inc files
|
||||
void MainWindow::openInTextEditor() {
|
||||
bool usePoryscript = projectConfig.getUsePoryScript();
|
||||
|
|
Loading…
Reference in a new issue