Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions builder/builder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
#include <QCoreApplication>

Builder::Builder() {
connect(AssetManager::instance(), &AssetManager::importFinished, this, &Builder::onImportFinished, Qt::QueuedConnection);
connect(AssetManager::instance(), &AssetManager::buildSuccessful, this, &Builder::onBuildSuccessful, Qt::QueuedConnection);
connect(Editor::assets(), &AssetManager::importFinished, this, &Builder::onImportFinished, Qt::QueuedConnection);
connect(Editor::assets(), &AssetManager::buildSuccessful, this, &Builder::onBuildSuccessful, Qt::QueuedConnection);
}

void Builder::setPlatform(const TString &platform) {
ProjectSettings *project = ProjectSettings::instance();
EditorSettings::instance()->loadSettings();
ProjectSettings *project = Editor::project();
Editor::settings()->loadSettings();
if(platform.isEmpty()) {
for(const TString &it : project->platforms()) {
m_platformsToBuild.push(it);
Expand All @@ -38,7 +38,7 @@ void Builder::setPlatform(const TString &platform) {
builder->convertFile(nullptr);
}

AssetManager::instance()->rescan();
Editor::assets()->rescan();
}
}

Expand All @@ -53,12 +53,12 @@ bool Builder::package(const TString &target) {
return false;
}

StringList list(File::list(ProjectSettings::instance()->importPath()));
StringList list(File::list(Editor::project()->importPath()));
for(auto &it : list) {
if(File::isFile(it)) {
Url info(it);

TString origin = AssetManager::instance()->uuidToPath(info.baseName());
TString origin = Editor::assets()->uuidToPath(info.baseName());
aInfo() << "\tCoping:" << origin.data();

File inFile(it);
Expand Down Expand Up @@ -86,7 +86,7 @@ bool Builder::package(const TString &target) {
}

void Builder::onImportFinished() {
ProjectSettings *project = ProjectSettings::instance();
ProjectSettings *project = Editor::project();

NativeCodeBuilder *builder = project->currentBuilder();

Expand All @@ -100,7 +100,7 @@ void Builder::onImportFinished() {
}

void Builder::onBuildSuccessful() {
ProjectSettings *project = ProjectSettings::instance();
ProjectSettings *project = Editor::project();
TString targetPath = project->targetPath() + "/" + project->currentPlatformName();

if(!File::exists(targetPath) && !File::mkPath(targetPath)) {
Expand Down Expand Up @@ -130,7 +130,7 @@ void Builder::onBuildSuccessful() {
if(!m_platformsToBuild.empty()) {
project->setCurrentPlatform(m_platformsToBuild.top());
m_platformsToBuild.pop();
AssetManager::instance()->rescan();
Editor::assets()->rescan();

return;
}
Expand Down
13 changes: 6 additions & 7 deletions builder/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,18 +87,17 @@ int main(int argc, char *argv[]) {
Engine engine;
Engine::setPlatformAdaptor(&EditorPlatform::instance());

ProjectSettings::instance()->init(parser.value(sourceFileOption).toStdString(), parser.value(targetDirectoryOption).toStdString());
ProjectSettings::instance()->loadSettings();
Editor::project()->init(parser.value(sourceFileOption).toStdString(), parser.value(targetDirectoryOption).toStdString());

PluginManager::instance()->init(&engine);
AssetManager::instance()->init();
Editor::plugins()->init(&engine);
Editor::assets()->init();

ProjectSettings::instance()->loadPlatforms();
Editor::project()->loadPlatforms();

if(!PluginManager::instance()->rescanProject(ProjectSettings::instance()->pluginsPath())) {
if(!Editor::plugins()->rescanProject(Editor::project()->pluginsPath())) {
aWarning() << "Not all plugins were loaded.";
}
PluginManager::instance()->initSystems();
Editor::plugins()->initSystems();

Builder builder;

Expand Down
3 changes: 2 additions & 1 deletion editor/editor.qbs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import qbs
Project {
id: editor
property stringList srcFiles: [
"src/**/*.cpp"
"src/**/*.cpp",
"src/*.h"
]

property stringList incPaths: [
Expand Down
49 changes: 49 additions & 0 deletions editor/includes/editor.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,59 @@
#define EDITOR_EXPORT
#endif

class ProjectSettings;
class EditorSettings;
class AssetManager;
class PluginManager;

class AssetEditor;
class EditorGadget;

class DocumentModel;

class EDITOR_EXPORT Editor : public Object {
A_OBJECT(Editor, Object, General)

public:
Editor();
~Editor();

static void init();

static void backup();
static void restore();

static void addEditor(AssetEditor *editor);
static void closeEditor(AssetEditor *editor);

static AssetEditor *openFile(const TString &path);

static AssetEditor *currentEditor();
static void setCurrentEditor(AssetEditor *editor);

static std::list<AssetEditor *> documents();

static void addGadget(EditorGadget *gadget);
static std::list<EditorGadget *> gadgets();

static EditorSettings *settings();
static ProjectSettings *project();
static AssetManager *assets();
static PluginManager *plugins();

protected:
static std::list<EditorGadget *> s_gadgets;

static AssetEditor *s_currentEditor;

static EditorSettings *s_editorSettings;
static ProjectSettings *s_projectSettings;

static AssetManager *s_assetManager;
static PluginManager *s_pluginManager;

static DocumentModel *s_documentModel;

};

#endif // EDITOR_H
3 changes: 3 additions & 0 deletions editor/includes/editor/asseteditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ class EDITOR_EXPORT AssetEditor : public QWidget {

virtual bool allowSaveAs() const;

virtual void backup();
virtual void restore();

signals:
void updated();

Expand Down
7 changes: 2 additions & 5 deletions editor/includes/editor/assetmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ class EDITOR_EXPORT AssetManager : public QObject {
Q_OBJECT

public:
static AssetManager *instance();
AssetManager();
~AssetManager();

void init();

Expand Down Expand Up @@ -84,10 +85,6 @@ public slots:
protected slots:
void onPerform();

private:
AssetManager();
~AssetManager();

protected:
friend class BaseAssetProvider;

Expand Down
2 changes: 0 additions & 2 deletions editor/includes/editor/editorsettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ class EDITOR_EXPORT EditorSettings : public Object {
public:
EditorSettings();

static EditorSettings *instance();

void registerValue(const TString &name, const Variant &value, const TString &annotation = TString());

Variant value(const TString &name);
Expand Down
8 changes: 2 additions & 6 deletions editor/includes/editor/pluginmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ class EDITOR_EXPORT PluginManager : public QAbstractItemModel {
};

public:
static PluginManager *instance();
static void destroy();
PluginManager();
~PluginManager();

void init(Engine *engine);

Expand Down Expand Up @@ -70,10 +70,6 @@ public slots:
void reloadPlugin(const TString &path);

private:
PluginManager();

~PluginManager();

int columnCount(const QModelIndex &) const override;

QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
Expand Down
2 changes: 0 additions & 2 deletions editor/includes/editor/projectsettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ class EDITOR_EXPORT ProjectSettings : public Object {
ProjectSettings();
~ProjectSettings() {}

static ProjectSettings *instance();

void init(const TString &project, const TString &target = TString());

void loadPlatforms();
Expand Down
6 changes: 3 additions & 3 deletions editor/includes/viewport/tasks/gridrender.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ class GridRender : public PipelineTask {

m_outputs.push_back(std::make_pair("Result", nullptr));

connect(EditorSettings::instance(), _SIGNAL(updated()), this, _SLOT(loadSettings()));
connect(Editor::settings(), _SIGNAL(updated()), this, _SLOT(loadSettings()));

EditorSettings::instance()->registerValue(gGridColor, Vector4(0.4f, 0.4f, 0.4f, 0.4f), "editor=Color");
Editor::settings()->registerValue(gGridColor, Vector4(0.4f, 0.4f, 0.4f, 0.4f), "editor=Color");

loadSettings();
}
Expand All @@ -49,7 +49,7 @@ class GridRender : public PipelineTask {
}

void loadSettings() {
m_gridColor = EditorSettings::instance()->value(gGridColor).toVector4();
m_gridColor = Editor::settings()->value(gGridColor).toVector4();
if(m_grid) {
m_grid->setVector4("mainColor", &m_gridColor);
}
Expand Down
10 changes: 5 additions & 5 deletions editor/includes/viewport/tasks/outlinerender.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,17 @@ class Outline : public PipelineTask {

m_outputs.push_back(std::make_pair("Result", nullptr));

connect(EditorSettings::instance(), _SIGNAL(updated()), this, _SLOT(loadSettings()));
connect(Editor::settings(), _SIGNAL(updated()), this, _SLOT(loadSettings()));

EditorSettings::instance()->registerValue(gOutlineColor, Vector4(1.0f, 0.5f, 0.0f, 1.0f), "editor=Color");
EditorSettings::instance()->registerValue(gOutlineWidth, 1.0f);
Editor::settings()->registerValue(gOutlineColor, Vector4(1.0f, 0.5f, 0.0f, 1.0f), "editor=Color");
Editor::settings()->registerValue(gOutlineWidth, 1.0f);

loadSettings();
}

void loadSettings() {
m_color = EditorSettings::instance()->value(gOutlineColor).toVector4();
m_width = EditorSettings::instance()->value(gOutlineWidth).toFloat();
m_color = Editor::settings()->value(gOutlineColor).toVector4();
m_width = Editor::settings()->value(gOutlineWidth).toFloat();

if(m_combineMaterial) {
m_combineMaterial->setFloat("width", &m_width);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
#include <aprocess.h>

DocumentModel::DocumentModel() {
for(auto &it : PluginManager::instance()->extensions("editor")) {
addEditor(reinterpret_cast<AssetEditor *>(PluginManager::instance()->getPluginObject(it)));
for(auto &it : Editor::plugins()->extensions("editor")) {
addEditor(reinterpret_cast<AssetEditor *>(Editor::plugins()->getPluginObject(it)));
}
}

Expand Down Expand Up @@ -44,22 +44,8 @@ void DocumentModel::addEditor(AssetEditor *editor) {
connect(editor, &AssetEditor::dropAsset, this, &DocumentModel::onLoadAsset);
}

void DocumentModel::newFile(AssetEditor *editor) {
if(editor->checkSave()) {
closeFile(editor);
editor->onNewAsset();
}
}

void DocumentModel::openFile(AssetEditor *editor) {
if(editor->checkSave()) {
closeFile(editor);
editor->onOpenAsset();
}
}

AssetEditor *DocumentModel::openFile(const TString &path) {
AssetConverterSettings *settings = AssetManager::instance()->fetchSettings(path);
AssetConverterSettings *settings = Editor::assets()->fetchSettings(path);

AssetEditor *editor = nullptr;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@

#include <QObject>

#include <object.h>
#include <editor.h>

class AssetEditor;

class DocumentModel : public QObject {
class EDITOR_EXPORT DocumentModel : public QObject {
Q_OBJECT

public:
Expand All @@ -16,9 +14,6 @@ class DocumentModel : public QObject {

void addEditor(AssetEditor *editor);

void newFile(AssetEditor *editor);
void openFile(AssetEditor *editor);

AssetEditor *openFile(const TString &path);

std::list<AssetEditor *> documents();
Expand Down
Loading
Loading