Skip to content

Commit

Permalink
broke af
Browse files Browse the repository at this point in the history
  • Loading branch information
fundies committed Jan 16, 2020
1 parent bda43a4 commit 2234da8
Show file tree
Hide file tree
Showing 51 changed files with 1,124 additions and 999 deletions.
140 changes: 74 additions & 66 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,116 +26,124 @@ include_directories("${ENIGMA_DIR}/shared/protos/codegen" "${ENIGMA_DIR}/Command

# Populate a CMake variable with the sources
set(RGM_SOURCES
Plugins/RGMPlugin.cpp
Plugins/ServerPlugin.cpp
main.cpp
MainWindow.cpp
Dialogs/PreferencesDialog.cpp
Dialogs/TimelineChangeMoment.cpp
Editors/BaseEditor.cpp
Editors/CodeEditor.cpp
Editors/BackgroundEditor.cpp
Components/ArtManager.cpp
Components/Utility.cpp
Components/QMenuView.cpp
Components/RecentFiles.cpp
Models/TreeSortFilterProxyModel.cpp
Models/MessageModel.cpp
Models/RepeatedImageModel.cpp
Models/RepeatedStringModel.cpp
Models/ModelMapper.cpp
Models/ProtoModel.cpp
Models/RepeatedMessageModel.cpp
Models/ImmediateMapper.cpp
Models/ResourceModelMap.cpp
Models/TreeModel.cpp
Editors/ObjectEditor.cpp
Editors/PathEditor.cpp
Editors/CodeEditor.cpp
Editors/SoundEditor.cpp
Editors/ScriptEditor.cpp
Editors/ShaderEditor.cpp
Editors/FontEditor.cpp
Editors/PathEditor.cpp
Editors/BackgroundEditor.cpp
Editors/TimelineEditor.cpp
Editors/RoomEditor.cpp
Editors/SpriteEditor.cpp
Editors/ShaderEditor.cpp
Editors/ScriptEditor.cpp
Editors/SettingsEditor.cpp
Models/TreeModel.cpp
Models/RepeatedStringModel.cpp
Models/SpriteSubimageModel.cpp
Models/ProtoModel.cpp
Models/ModelMapper.cpp
Models/ImmediateMapper.cpp
Models/ResourceModelMap.cpp
Models/RepeatedProtoModel.cpp
Models/TreeSortFilterProxyModel.cpp
Components/ArtManager.cpp
Components/Utility.cpp
Components/RecentFiles.cpp
Components/QMenuView.cpp
Widgets/AssetScrollAreaBackground.cpp
Widgets/BackgroundView.cpp
Editors/SpriteEditor.cpp
Editors/BaseEditor.cpp
Editors/RoomEditor.cpp
Widgets/CodeWidgetPlain.cpp
Widgets/AssetView.cpp
Widgets/CodeWidget.cpp
Widgets/BackgroundView.cpp
Widgets/StackedCodeWidget.cpp
Widgets/ColorPicker.cpp
Widgets/PathView.cpp
Widgets/RoomView.cpp
Widgets/AssetView.cpp
Widgets/SpriteView.cpp
Widgets/PathView.cpp
Widgets/AssetScrollAreaBackground.cpp
Widgets/SpriteSubimageListView.cpp
Plugins/RGMPlugin.cpp
Plugins/ServerPlugin.cpp
Widgets/ColorPicker.cpp
Widgets/SpriteView.cpp
)

if (MSVC)
set(RGM_SOURCES ${RGM_SOURCES} qtplugins.cpp)
endif()

set(RGM_HEADERS
main.h
Plugins/ServerPlugin.h
Plugins/RGMPlugin.h
MainWindow.h
main.h
Dialogs/PreferencesDialog.h
Dialogs/PreferencesKeys.h
Dialogs/TimelineChangeMoment.h
Editors/CodeEditor.h
Editors/BaseEditor.h
Editors/BackgroundEditor.h
Editors/ObjectEditor.h
Editors/SoundEditor.h
Editors/ScriptEditor.h
Editors/ShaderEditor.h
Editors/FontEditor.h
Editors/PathEditor.h
Editors/TimelineEditor.h
Editors/RoomEditor.h
Editors/SpriteEditor.h
Editors/SettingsEditor.h
Components/Logger.h
Components/RecentFiles.h
Components/QMenuView.h
Components/ArtManager.h
Components/QMenuView_p.h
Components/Utility.h
Models/TreeModel.h
Models/ProtoModel.h
Models/ModelMapper.h
Models/ImmediateMapper.h
Models/RepeatedStringModel.h
Models/SpriteSubimageModel.h
Models/ResourceModelMap.h
Models/RepeatedProtoModel.h
Models/ModelMapper.h
Models/TreeSortFilterProxyModel.h
Components/ArtManager.h
Components/RecentFiles.h
Components/Utility.h
Components/QMenuView.h
Components/Logger.h
Models/RepeatedImageModel.h
Models/MessageModel.h
Models/ImmediateMapper.h
Models/RepeatedMessageModel.h
Models/ProtoModel.h
Models/RepeatedModel.h
Editors/FontEditor.h
Editors/PathEditor.h
Editors/SpriteEditor.h
Editors/SettingsEditor.h
Editors/SoundEditor.h
Editors/TimelineEditor.h
Editors/BackgroundEditor.h
Editors/ObjectEditor.h
Editors/RoomEditor.h
Editors/BaseEditor.h
Editors/ScriptEditor.h
Editors/CodeEditor.h
Editors/ShaderEditor.h
Widgets/AssetScrollArea.h
Widgets/AssetScrollAreaBackground.h
Widgets/BackgroundView.h
Widgets/CodeWidget.h
Widgets/StackedCodeWidget.h
Widgets/ColorPicker.h
Widgets/AssetScrollAreaBackground.h
Widgets/PathView.h
Widgets/ResourceSelector.h
Widgets/RoomView.h
Widgets/AssetView.h
Widgets/SpriteView.h
Widgets/ColorPicker.h
Widgets/SpriteSubimageListView.h
Plugins/RGMPlugin.h
Plugins/ServerPlugin.h
Widgets/CodeWidget.h
Widgets/SpriteView.h
Widgets/BackgroundView.h

)

set(RGM_UI
MainWindow.ui
Dialogs/TimelineChangeMoment.ui
Dialogs/PreferencesDialog.ui
Dialogs/AddImageDialog.ui
Dialogs/TimelineChangeMoment.ui
Editors/CodeEditor.ui
Editors/SoundEditor.ui
Editors/BackgroundEditor.ui
Editors/ObjectEditor.ui
Editors/FontEditor.ui
Editors/PathEditor.ui
Editors/TimelineEditor.ui
Editors/RoomEditor.ui
Editors/SpriteEditor.ui
Editors/PathEditor.ui
Editors/SettingsEditor.ui
Editors/RoomEditor.ui
Editors/FontEditor.ui
Editors/TimelineEditor.ui
Editors/ObjectEditor.ui
)

set(RGM_RC
Expand Down
61 changes: 33 additions & 28 deletions Editors/BackgroundEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,41 +15,46 @@

using buffers::resources::Background;

BackgroundEditor::BackgroundEditor(ProtoModelPtr model, QWidget* parent)
: BaseEditor(model, parent), ui(new Ui::BackgroundEditor) {
ui->setupUi(this);

connect(ui->actionSave, &QAction::triggered, this, &BaseEditor::OnSave);

ui->imagePreviewBackground->SetAssetView(ui->backgroundView);

ui->backgroundView->SetResourceModel(resMapper->GetModel());

resMapper->addMapping(ui->smoothCheckBox, Background::kSmoothEdgesFieldNumber);
resMapper->addMapping(ui->preloadCheckBox, Background::kPreloadFieldNumber);
resMapper->addMapping(ui->tilesetGroupBox, Background::kUseAsTilesetFieldNumber);
resMapper->addMapping(ui->tileWidthSpinBox, Background::kTileWidthFieldNumber);
resMapper->addMapping(ui->tileHeightSpinBox, Background::kTileHeightFieldNumber);
resMapper->addMapping(ui->horizontalOffsetSpinBox, Background::kHorizontalOffsetFieldNumber);
resMapper->addMapping(ui->verticalOffsetSpinBox, Background::kVerticalOffsetFieldNumber);
resMapper->addMapping(ui->horizontalSpacingSpinBox, Background::kHorizontalSpacingFieldNumber);
resMapper->addMapping(ui->verticalSpacingSpinBox, Background::kVerticalSpacingFieldNumber);
BackgroundEditor::BackgroundEditor(MessageModel* model, QWidget* parent)
: BaseEditor(model, parent), _ui(new Ui::BackgroundEditor) {
_ui->setupUi(this);

connect(_ui->actionSave, &QAction::triggered, this, &BaseEditor::OnSave);

resMapper->addMapping(_ui->smoothCheckBox, Background::kSmoothEdgesFieldNumber);
resMapper->addMapping(_ui->preloadCheckBox, Background::kPreloadFieldNumber);
resMapper->addMapping(_ui->tilesetGroupBox, Background::kUseAsTilesetFieldNumber);
resMapper->addMapping(_ui->tileWidthSpinBox, Background::kTileWidthFieldNumber);
resMapper->addMapping(_ui->tileHeightSpinBox, Background::kTileHeightFieldNumber);
resMapper->addMapping(_ui->horizontalOffsetSpinBox, Background::kHorizontalOffsetFieldNumber);
resMapper->addMapping(_ui->verticalOffsetSpinBox, Background::kVerticalOffsetFieldNumber);
resMapper->addMapping(_ui->horizontalSpacingSpinBox, Background::kHorizontalSpacingFieldNumber);
resMapper->addMapping(_ui->verticalSpacingSpinBox, Background::kVerticalSpacingFieldNumber);
resMapper->toFirst();

RebindSubModels();
}

BackgroundEditor::~BackgroundEditor() { delete ui; }
BackgroundEditor::~BackgroundEditor() { delete _ui; }

void BackgroundEditor::dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight, const QVariant& oldValue,
const QVector<int>& roles) {
BaseEditor::dataChanged(topLeft, bottomRight, oldValue, roles);
ui->backgroundView->update();
_ui->backgroundView->update();
}

void BackgroundEditor::RebindSubModels() {
_backgroundModel = _model->GetSubModel<MessageModel*>(TreeNode::kBackgroundFieldNumber);
_ui->imagePreviewBackground->SetAssetView(_ui->backgroundView);
_ui->backgroundView->SetResourceModel(resMapper->GetModel());
BaseEditor::RebindSubModels();
}

void BackgroundEditor::on_actionZoomIn_triggered() { ui->imagePreviewBackground->ZoomIn(); }
void BackgroundEditor::on_actionZoomIn_triggered() { _ui->imagePreviewBackground->ZoomIn(); }

void BackgroundEditor::on_actionZoomOut_triggered() { ui->imagePreviewBackground->ZoomOut(); }
void BackgroundEditor::on_actionZoomOut_triggered() { _ui->imagePreviewBackground->ZoomOut(); }

void BackgroundEditor::on_actionZoom_triggered() { ui->imagePreviewBackground->ResetZoom(); }
void BackgroundEditor::on_actionZoom_triggered() { _ui->imagePreviewBackground->ResetZoom(); }

void BackgroundEditor::on_actionNewImage_triggered() {
QDialog dialog(this);
Expand All @@ -62,7 +67,7 @@ void BackgroundEditor::on_actionNewImage_triggered() {
if (result != QDialog::Accepted) return;
QPixmap img(dialogUI.widthSpinBox->value(), dialogUI.heightSpinBox->value());
img.fill(Qt::transparent);
ui->backgroundView->SetImage(img);
_ui->backgroundView->SetImage(img);
}

void BackgroundEditor::on_actionLoadImage_triggered() {
Expand All @@ -83,7 +88,7 @@ void BackgroundEditor::on_actionLoadImage_triggered() {
}
} else {
// TODO: Copy data into our egm
SetModelData(Background::kImageFieldNumber, fName);
_backgroundModel->SetData(fName, Background::kImageFieldNumber);
}
}
}
Expand All @@ -93,12 +98,12 @@ void BackgroundEditor::on_actionSaveImage_triggered() {

if (dialog->exec() && dialog->selectedFiles().size() > 0) {
QString fName = dialog->selectedFiles()[0];
ui->backgroundView->WriteImage(fName, dialog->selectedMimeTypeFilter());
_ui->backgroundView->WriteImage(fName, dialog->selectedMimeTypeFilter());
}
}

void BackgroundEditor::on_actionEditImage_triggered() {
QString fName = GetModelData(Background::kImageFieldNumber).toString();
QString fName = _backgroundModel->Data(Background::kImageFieldNumber).toString();
QDesktopServices::openUrl(QUrl::fromLocalFile(fName));
// TODO: file watcher reload
// TODO: editor settings
Expand Down
8 changes: 5 additions & 3 deletions Editors/BackgroundEditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class BackgroundEditor : public BaseEditor {
Q_OBJECT

public:
explicit BackgroundEditor(ProtoModelPtr model, QWidget *parent);
explicit BackgroundEditor(MessageModel *model, QWidget *parent);
~BackgroundEditor() override;

private slots:
Expand All @@ -28,8 +28,10 @@ class BackgroundEditor : public BaseEditor {
void on_actionEditImage_triggered();

private:
Ui::BackgroundEditor *ui;
BackgroundView *renderer;
void RebindSubModels() override;
Ui::BackgroundEditor *_ui;
MessageModel *_backgroundModel;
BackgroundView *_renderer;
};

#endif // BACKGROUNDEDITOR_H
8 changes: 1 addition & 7 deletions Editors/BaseEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <QDebug>
#include <QMessageBox>

BaseEditor::BaseEditor(ProtoModelPtr treeNodeModel, QWidget* parent)
BaseEditor::BaseEditor(MessageModel* treeNodeModel, QWidget* parent)
: QWidget(parent), nodeMapper(new ModelMapper(treeNodeModel, this)), _model(treeNodeModel) {
buffers::TreeNode* n = static_cast<buffers::TreeNode*>(treeNodeModel->GetBuffer());
resMapper = new ModelMapper(treeNodeModel->GetSubModel<MessageModel*>(ResTypeFields[n->type_case()]), this);
Expand Down Expand Up @@ -46,12 +46,6 @@ bool BaseEditor::HasFocus() { return hasFocus; }

void BaseEditor::ReplaceBuffer(google::protobuf::Message* buffer) { resMapper->ReplaceBuffer(buffer); }

void BaseEditor::SetModelData(int index, const QVariant& value) {
resMapper->setData(resMapper->index(index), value, Qt::DisplayRole);
}

QVariant BaseEditor::GetModelData(int index) { return resMapper->data(resMapper->index(index), Qt::DisplayRole); }

void BaseEditor::dataChanged(const QModelIndex& topLeft, const QModelIndex& /*bottomRight*/, const QVariant& oldValue,
const QVector<int>& /*roles*/) {
buffers::TreeNode* n = static_cast<buffers::TreeNode*>(nodeMapper->GetModel()->GetBuffer());
Expand Down
7 changes: 3 additions & 4 deletions Editors/BaseEditor.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef BASEEDTIOR_H
#define BASEEDTIOR_H

#include "Models/MessageModel.h"
#include "Models/ModelMapper.h"

#include <QObject>
Expand All @@ -18,11 +19,9 @@ class BaseEditor : public QWidget {
Q_OBJECT

public:
explicit BaseEditor(ProtoModelPtr treeNodeModel, QWidget *parent);
explicit BaseEditor(MessageModel *treeNodeModel, QWidget *parent);

void ReplaceBuffer(google::protobuf::Message *buffer);
void SetModelData(int index, const QVariant &value);
QVariant GetModelData(int index);
bool HasFocus();

signals:
Expand All @@ -41,7 +40,7 @@ class BaseEditor : public QWidget {

ModelMapper *nodeMapper;
ModelMapper *resMapper;
ProtoModelPtr _model;
MessageModel *_model;
bool hasFocus = false;
};

Expand Down

0 comments on commit 2234da8

Please sign in to comment.