Move Action change dialogs

This commit is contained in:
feedc0de committed 2024-01-11 22:27:02 +01:00
1 parent 2e7d6ad6c5
commit 6136280507
20 files changed
+498 -39

No files matched your search

@@ -0,0 +1,63 @@
#include "executecodedialog.h"
#include <QRadioButton>
#include <QLabel>
#include <QMessageBox>
#include "projectcontainer.h"
ExecuteCodeDialog::ExecuteCodeDialog(ExecuteCodeAction &action, QWidget *parent) :
CodeEditorDialog{tr("Execute Code"), parent},
m_action{action},
m_radioButtonSelf{new QRadioButton{tr("Self"), this}},
m_radioButtonOther{new QRadioButton{tr("Other"), this}},
m_radioButtonObject{new QRadioButton{tr("Object"), this}}
{
#ifdef Q_OS_LINUX
setWindowFlags((windowFlags() & ~Qt::Dialog) | Qt::Window);
#endif
setWindowFlag(Qt::WindowCloseButtonHint);
addToolbarWidget(new QLabel{tr("Applies to:"), this});
addToolbarWidget(m_radioButtonSelf);
addToolbarWidget(m_radioButtonOther);
addToolbarWidget(m_radioButtonObject);
m_radioButtonSelf->setChecked(m_action.appliesTo == ExecuteCodeAction::AppliesTo::Self);
m_radioButtonOther->setChecked(m_action.appliesTo == ExecuteCodeAction::AppliesTo::Other);
m_radioButtonObject->setChecked(m_action.appliesTo == ExecuteCodeAction::AppliesTo::Object);
setScript(m_action.script);
connect(m_radioButtonSelf, &QRadioButton::toggled,
this, &ExecuteCodeDialog::changed);
connect(m_radioButtonOther, &QRadioButton::toggled,
this, &ExecuteCodeDialog::changed);
connect(m_radioButtonObject, &QRadioButton::toggled,
this, &ExecuteCodeDialog::changed);
}
void ExecuteCodeDialog::accept()
{
if (!m_unsavedChanges)
{
QDialog::reject();
return;
}
if (m_radioButtonSelf->isChecked())
m_action.appliesTo = ExecuteCodeAction::AppliesTo::Self;
else if (m_radioButtonOther->isChecked())
m_action.appliesTo = ExecuteCodeAction::AppliesTo::Other;
else if (m_radioButtonObject->isChecked())
m_action.appliesTo = ExecuteCodeAction::AppliesTo::Object;
else
{
QMessageBox::warning(this, tr("No Applies To selected!"), tr("No Applies To selected!"));
return;
}
m_action.script = script();
CodeEditorDialog::accept();
}
@@ -0,0 +1,23 @@
#pragma once
#include "dialogs/codeeditordialog.h"
class QRadioButton;
struct ExecuteCodeAction;
class ExecuteCodeDialog : public CodeEditorDialog
{
Q_OBJECT
public:
explicit ExecuteCodeDialog(ExecuteCodeAction &action, QWidget *parent = nullptr);
void accept() override;
private:
ExecuteCodeAction &m_action;
QRadioButton * const m_radioButtonSelf;
QRadioButton * const m_radioButtonOther;
QRadioButton * const m_radioButtonObject;
};
@@ -149,6 +149,10 @@
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QPushButton" name="pushButton">
<property name="icon">
<iconset resource="../../resources_editor.qrc">
<normaloff>:/qtgameengine/icons/blue-arrow-up-left.png</normaloff>:/qtgameengine/icons/blue-arrow-up-left.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
@@ -156,6 +160,10 @@
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_5">
<property name="icon">
<iconset resource="../../resources_editor.qrc">
<normaloff>:/qtgameengine/icons/blue-stop.png</normaloff>:/qtgameengine/icons/blue-stop.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
@@ -185,6 +193,10 @@
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_3">
<property name="icon">
<iconset resource="../../resources_editor.qrc">
<normaloff>:/qtgameengine/icons/blue-arrow-up-right.png</normaloff>:/qtgameengine/icons/blue-arrow-up-right.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
@@ -203,6 +215,10 @@
</item>
<item row="2" column="0">
<widget class="QPushButton" name="pushButton_7">
<property name="icon">
<iconset resource="../../resources_editor.qrc">
<normaloff>:/qtgameengine/icons/blue-arrow-down-left.png</normaloff>:/qtgameengine/icons/blue-arrow-down-left.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
@@ -221,6 +237,10 @@
</item>
<item row="2" column="2">
<widget class="QPushButton" name="pushButton_9">
<property name="icon">
<iconset resource="../../resources_editor.qrc">
<normaloff>:/qtgameengine/icons/blue-arrow-down-right.png</normaloff>:/qtgameengine/icons/blue-arrow-down-right.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
@@ -0,0 +1,19 @@
#include "movefreedialog.h"
#include "ui_movefreedialog.h"
#include <QPushButton>
MoveFreeDialog::MoveFreeDialog(MoveFreeAction &action, QWidget *parent) :
QDialog{parent},
m_ui{std::make_unique<Ui::MoveFreeDialog>()},
m_action{action}
{
m_ui->setupUi(this);
if (auto button = m_ui->buttonBox->button(QDialogButtonBox::Ok))
button->setIcon(QIcon{":/qtgameengine/icons/ok.png"});
if (auto button = m_ui->buttonBox->button(QDialogButtonBox::Cancel))
button->setIcon(QIcon{":/qtgameengine/icons/delete.png"});
}
MoveFreeDialog::~MoveFreeDialog() = default;
@@ -0,0 +1,22 @@
#pragma once
#include <QDialog>
#include <memory>
namespace Ui { class MoveFreeDialog; }
class MoveFreeAction;
class MoveFreeDialog : public QDialog
{
Q_OBJECT
public:
explicit MoveFreeDialog(MoveFreeAction &action, QWidget *parent = nullptr);
~MoveFreeDialog() override;
private:
const std::unique_ptr<Ui::MoveFreeDialog> m_ui;
MoveFreeAction &m_action;
};
@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MoveFreeDialog</class>
<widget class="QDialog" name="MoveFreeDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>435</width>
<height>429</height>
</rect>
</property>
<property name="windowTitle">
<string>Move Free</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,1,0">
<item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../resources_editor.qrc">:/qtgameengine/icons/action-move-free.png</pixmap>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Applies to</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QRadioButton" name="radioButtonSelf">
<property name="text">
<string>Self</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonOther">
<property name="text">
<string>Other</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QRadioButton" name="radioButtonObject">
<property name="text">
<string>Object:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QToolButton" name="toolButton">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="labelDirection">
<property name="text">
<string>direction:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBoxDirection"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelSpeed">
<property name="text">
<string>speed:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBoxSpeed"/>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="checkBoxRelative">
<property name="text">
<string>Relative</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../../resources_editor.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>MoveFreeDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>MoveFreeDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>
@@ -0,0 +1,12 @@
#include "movetowardsdialog.h"
#include "ui_movetowardsdialog.h"
MoveTowardsDialog::MoveTowardsDialog(MoveTowardsAction &action, QWidget *parent) :
QDialog{parent},
m_ui{std::make_unique<Ui::MoveTowardsDialog>()},
m_action{action}
{
m_ui->setupUi(this);
}
MoveTowardsDialog::~MoveTowardsDialog() = default;
@@ -0,0 +1,22 @@
#pragma once
#include <QDialog>
#include <memory>
namespace Ui { class MoveTowardsDialog; }
class MoveTowardsAction;
class MoveTowardsDialog : public QDialog
{
Q_OBJECT
public:
explicit MoveTowardsDialog(MoveTowardsAction &action, QWidget *parent = nullptr);
~MoveTowardsDialog() override;
private:
const std::unique_ptr<Ui::MoveTowardsDialog> m_ui;
MoveTowardsAction &m_action;
};
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MoveTowardsDialog</class>
<widget class="QDialog" name="MoveTowardsDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>30</x>
<y>240</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>MoveTowardsDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>MoveTowardsDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>