1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-15 09:39:53 +00:00
OpenMW/apps/opencs/view/world/subviews.cpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

212 lines
9.6 KiB
C++
Raw Normal View History

2012-12-11 13:22:43 +01:00
#include "subviews.hpp"
#include "../doc/subviewfactoryimp.hpp"
#include "bodypartcreator.hpp"
2013-07-28 18:08:57 +02:00
#include "cellcreator.hpp"
#include "dialoguecreator.hpp"
#include "dialoguesubview.hpp"
#include "genericcreator.hpp"
#include "globalcreator.hpp"
2013-11-08 11:51:59 +01:00
#include "infocreator.hpp"
2017-09-04 01:06:58 -04:00
#include "landcreator.hpp"
#include "pathgridcreator.hpp"
2014-03-16 12:44:01 +01:00
#include "previewsubview.hpp"
#include "referenceablecreator.hpp"
#include "referencecreator.hpp"
#include "regionmapsubview.hpp"
#include "scenesubview.hpp"
2013-04-10 20:14:10 +02:00
#include "scriptsubview.hpp"
#include "startscriptcreator.hpp"
#include "tablesubview.hpp"
2012-12-11 13:22:43 +01:00
2022-10-19 19:02:00 +02:00
#include <apps/opencs/model/world/scope.hpp>
#include <apps/opencs/model/world/universalid.hpp>
#include <apps/opencs/view/doc/subview.hpp>
#include <apps/opencs/view/doc/subviewfactory.hpp>
#include <apps/opencs/view/world/creator.hpp>
2012-12-11 13:22:43 +01:00
void CSVWorld::addSubViewFactories(CSVDoc::SubViewFactoryManager& manager)
{
// Regular record tables (including references which are actually sub-records, but are promoted
// to top-level records within the editor)
2013-02-08 09:58:19 +01:00
manager.add(
CSMWorld::UniversalId::Type_Gmsts, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
2013-02-08 09:58:19 +01:00
manager.add(
CSMWorld::UniversalId::Type_Skills, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
2014-09-26 13:12:17 +02:00
manager.add(CSMWorld::UniversalId::Type_MagicEffects,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
static const CSMWorld::UniversalId::Type sTableTypes[] = {
CSMWorld::UniversalId::Type_Classes,
CSMWorld::UniversalId::Type_Factions,
2013-04-04 14:34:39 +02:00
CSMWorld::UniversalId::Type_Races,
2013-04-06 21:21:10 +02:00
CSMWorld::UniversalId::Type_Sounds,
2013-04-07 16:32:06 +02:00
CSMWorld::UniversalId::Type_Regions,
2013-04-07 20:26:39 +02:00
CSMWorld::UniversalId::Type_Birthsigns,
2013-04-09 11:40:36 +02:00
CSMWorld::UniversalId::Type_Spells,
2014-06-30 20:40:34 +02:00
CSMWorld::UniversalId::Type_Enchantments,
2014-09-23 13:21:54 +02:00
CSMWorld::UniversalId::Type_SoundGens,
// end marker
CSMWorld::UniversalId::Type_None,
};
for (int i = 0; sTableTypes[i] != CSMWorld::UniversalId::Type_None; ++i)
manager.add(
sTableTypes[i], new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<GenericCreator>>);
2013-03-25 13:22:06 +01:00
manager.add(CSMWorld::UniversalId::Type_BodyParts,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<BodyPartCreator>>);
manager.add(CSMWorld::UniversalId::Type_StartScripts,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, StartScriptCreatorFactory>);
2013-07-28 18:08:57 +02:00
manager.add(CSMWorld::UniversalId::Type_Cells,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<CellCreator>>);
manager.add(CSMWorld::UniversalId::Type_Referenceables,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<ReferenceableCreator>>);
manager.add(CSMWorld::UniversalId::Type_References,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, ReferenceCreatorFactory>);
manager.add(
CSMWorld::UniversalId::Type_Topics, new CSVDoc::SubViewFactoryWithCreator<TableSubView, TopicCreatorFactory>);
manager.add(CSMWorld::UniversalId::Type_Journals,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, JournalCreatorFactory>);
manager.add(CSMWorld::UniversalId::Type_TopicInfos,
2021-01-11 13:43:44 +02:00
new CSVDoc::SubViewFactoryWithCreator<TableSubView, InfoCreatorFactory>(false));
manager.add(CSMWorld::UniversalId::Type_JournalInfos,
2021-01-11 13:43:44 +02:00
new CSVDoc::SubViewFactoryWithCreator<TableSubView, InfoCreatorFactory>(false));
manager.add(CSMWorld::UniversalId::Type_Pathgrids,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, PathgridCreatorFactory>);
manager.add(CSMWorld::UniversalId::Type_Lands,
2017-09-04 01:06:58 -04:00
new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<LandCreator>>);
manager.add(CSMWorld::UniversalId::Type_LandTextures,
2024-06-12 17:09:28 +02:00
new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<GenericCreator>>);
manager.add(CSMWorld::UniversalId::Type_Globals,
new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<GlobalCreator>>);
2014-07-05 15:51:17 +02:00
// Subviews for resources tables
manager.add(
CSMWorld::UniversalId::Type_Meshes, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
manager.add(
CSMWorld::UniversalId::Type_Icons, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
manager.add(
CSMWorld::UniversalId::Type_Musics, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
manager.add(
CSMWorld::UniversalId::Type_SoundsRes, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
manager.add(
CSMWorld::UniversalId::Type_Textures, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
manager.add(
CSMWorld::UniversalId::Type_Videos, new CSVDoc::SubViewFactoryWithCreator<TableSubView, NullCreatorFactory>);
// Subviews for editing/viewing individual records
2013-04-10 20:14:10 +02:00
manager.add(CSMWorld::UniversalId::Type_Script, new CSVDoc::SubViewFactory<ScriptSubView>);
2013-04-02 12:00:45 +02:00
// Other stuff (combined record tables)
manager.add(CSMWorld::UniversalId::Type_RegionMap, new CSVDoc::SubViewFactory<RegionMapSubView>);
2013-08-08 15:55:23 +02:00
2014-09-14 11:41:28 +02:00
manager.add(CSMWorld::UniversalId::Type_Scene, new CSVDoc::SubViewFactory<SceneSubView>);
// More other stuff
2013-08-08 15:55:23 +02:00
manager.add(CSMWorld::UniversalId::Type_Filters,
new CSVDoc::SubViewFactoryWithCreator<TableSubView,
CreatorFactory<GenericCreator, CSMWorld::Scope_Project | CSMWorld::Scope_Session>>);
2013-08-08 15:55:23 +02:00
2014-08-04 13:36:01 +02:00
manager.add(CSMWorld::UniversalId::Type_DebugProfiles,
new CSVDoc::SubViewFactoryWithCreator<TableSubView,
2014-08-15 12:03:07 +02:00
CreatorFactory<GenericCreator, CSMWorld::Scope_Project | CSMWorld::Scope_Session>>);
2014-08-04 13:36:01 +02:00
2014-09-14 11:41:28 +02:00
manager.add(CSMWorld::UniversalId::Type_Scripts,
new CSVDoc::SubViewFactoryWithCreator<TableSubView,
CreatorFactory<GenericCreator, CSMWorld::Scope_Project | CSMWorld::Scope_Content>>);
2014-03-06 20:10:13 +01:00
// Dialogue subviews
static const CSMWorld::UniversalId::Type sTableTypes2[] = {
CSMWorld::UniversalId::Type_Region,
CSMWorld::UniversalId::Type_Spell,
CSMWorld::UniversalId::Type_Birthsign,
CSMWorld::UniversalId::Type_Global,
CSMWorld::UniversalId::Type_Race,
CSMWorld::UniversalId::Type_Class,
CSMWorld::UniversalId::Type_Sound,
CSMWorld::UniversalId::Type_Faction,
CSMWorld::UniversalId::Type_Enchantment,
2014-09-23 13:21:54 +02:00
CSMWorld::UniversalId::Type_SoundGen,
// end marker
CSMWorld::UniversalId::Type_None,
};
2014-03-18 09:36:22 +01:00
for (int i = 0; sTableTypes2[i] != CSMWorld::UniversalId::Type_None; ++i)
manager.add(sTableTypes2[i],
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, CreatorFactory<GenericCreator>>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_BodyPart,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, CreatorFactory<BodyPartCreator>>(false));
manager.add(CSMWorld::UniversalId::Type_StartScript,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, StartScriptCreatorFactory>(false));
manager.add(CSMWorld::UniversalId::Type_Skill,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, NullCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
2014-09-26 13:12:17 +02:00
manager.add(CSMWorld::UniversalId::Type_MagicEffect,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, NullCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_Gmst,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, NullCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_Referenceable,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, CreatorFactory<ReferenceableCreator>>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_Reference,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, ReferenceCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_Cell,
2014-03-18 20:53:21 +01:00
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, CreatorFactory<CellCreator>>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_JournalInfo,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, InfoCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_TopicInfo,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, InfoCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_Topic,
2014-03-18 20:56:55 +01:00
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, TopicCreatorFactory>(false));
2014-03-18 09:36:22 +01:00
manager.add(CSMWorld::UniversalId::Type_Journal,
2014-03-18 20:53:21 +01:00
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, JournalCreatorFactory>(false));
manager.add(CSMWorld::UniversalId::Type_Pathgrid,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, PathgridCreatorFactory>(false));
manager.add(CSMWorld::UniversalId::Type_Land,
2017-09-04 01:06:58 -04:00
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, CreatorFactory<LandCreator>>(false));
manager.add(CSMWorld::UniversalId::Type_LandTexture,
2024-06-12 17:09:28 +02:00
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView, CreatorFactory<GenericCreator>>(false));
manager.add(CSMWorld::UniversalId::Type_DebugProfile,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView,
CreatorFactory<GenericCreator, CSMWorld::Scope_Project | CSMWorld::Scope_Session>>(false));
manager.add(CSMWorld::UniversalId::Type_Filter,
new CSVDoc::SubViewFactoryWithCreator<DialogueSubView,
CreatorFactory<GenericCreator, CSMWorld::Scope_Project | CSMWorld::Scope_Session>>(false));
2015-06-26 16:11:00 +02:00
manager.add(CSMWorld::UniversalId::Type_MetaData, new CSVDoc::SubViewFactory<SimpleDialogueSubView>);
// preview
2014-03-16 12:44:01 +01:00
manager.add(CSMWorld::UniversalId::Type_Preview, new CSVDoc::SubViewFactory<PreviewSubView>);
2015-03-11 10:54:45 -04:00
}