summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin <julien.voisin@dustri.org>2022-10-19 19:02:00 +0200
committerjvoisin <julien.voisin@dustri.org>2022-10-31 21:04:01 +0100
commit1a326294c03c8c243b065d5989ff2f9a2b43ffcf (patch)
tree3f63d126fabf611c0cb0cc284b25a299afac3af5
parent2091a81e1bd03b2915eabcfcb212319bb72a6411 (diff)
Run IWYU on the opencsopencs_iwyu
-rw-r--r--apps/opencs/editor.cpp25
-rw-r--r--apps/opencs/editor.hpp11
-rw-r--r--apps/opencs/main.cpp4
-rw-r--r--apps/opencs/model/doc/blacklist.cpp4
-rw-r--r--apps/opencs/model/doc/document.cpp30
-rw-r--r--apps/opencs/model/doc/document.hpp9
-rw-r--r--apps/opencs/model/doc/documentmanager.cpp6
-rw-r--r--apps/opencs/model/doc/documentmanager.hpp7
-rw-r--r--apps/opencs/model/doc/loader.cpp8
-rw-r--r--apps/opencs/model/doc/loader.hpp2
-rw-r--r--apps/opencs/model/doc/messages.cpp2
-rw-r--r--apps/opencs/model/doc/messages.hpp3
-rw-r--r--apps/opencs/model/doc/operation.cpp4
-rw-r--r--apps/opencs/model/doc/operation.hpp1
-rw-r--r--apps/opencs/model/doc/operationholder.hpp3
-rw-r--r--apps/opencs/model/doc/runner.cpp4
-rw-r--r--apps/opencs/model/doc/saving.cpp26
-rw-r--r--apps/opencs/model/doc/saving.hpp4
-rw-r--r--apps/opencs/model/doc/savingstages.cpp34
-rw-r--r--apps/opencs/model/doc/savingstages.hpp7
-rw-r--r--apps/opencs/model/doc/savingstate.hpp1
-rw-r--r--apps/opencs/model/doc/stage.hpp5
-rw-r--r--apps/opencs/model/filter/andnode.cpp3
-rw-r--r--apps/opencs/model/filter/booleannode.cpp5
-rw-r--r--apps/opencs/model/filter/booleannode.hpp8
-rw-r--r--apps/opencs/model/filter/narynode.cpp3
-rw-r--r--apps/opencs/model/filter/narynode.hpp1
-rw-r--r--apps/opencs/model/filter/textnode.cpp2
-rw-r--r--apps/opencs/model/filter/textnode.hpp6
-rw-r--r--apps/opencs/model/filter/unarynode.cpp2
-rw-r--r--apps/opencs/model/filter/unarynode.hpp4
-rw-r--r--apps/opencs/model/filter/valuenode.cpp1
-rw-r--r--apps/opencs/model/filter/valuenode.hpp6
-rw-r--r--apps/opencs/model/prefs/boolsetting.cpp2
-rw-r--r--apps/opencs/model/prefs/boolsetting.hpp5
-rw-r--r--apps/opencs/model/prefs/coloursetting.cpp2
-rw-r--r--apps/opencs/model/prefs/coloursetting.hpp8
-rw-r--r--apps/opencs/model/prefs/doublesetting.cpp2
-rw-r--r--apps/opencs/model/prefs/doublesetting.hpp2
-rw-r--r--apps/opencs/model/prefs/enumsetting.cpp6
-rw-r--r--apps/opencs/model/prefs/enumsetting.hpp4
-rw-r--r--apps/opencs/model/prefs/intsetting.cpp2
-rw-r--r--apps/opencs/model/prefs/intsetting.hpp5
-rw-r--r--apps/opencs/model/prefs/modifiersetting.cpp3
-rw-r--r--apps/opencs/model/prefs/modifiersetting.hpp3
-rw-r--r--apps/opencs/model/prefs/shortcut.cpp1
-rw-r--r--apps/opencs/model/prefs/shortcutmanager.cpp2
-rw-r--r--apps/opencs/model/prefs/shortcutmanager.hpp2
-rw-r--r--apps/opencs/model/prefs/shortcutsetting.cpp3
-rw-r--r--apps/opencs/model/prefs/shortcutsetting.hpp7
-rw-r--r--apps/opencs/model/prefs/state.cpp13
-rw-r--r--apps/opencs/model/prefs/stringsetting.cpp2
-rw-r--r--apps/opencs/model/prefs/stringsetting.hpp7
-rw-r--r--apps/opencs/model/tools/birthsigncheck.cpp10
-rw-r--r--apps/opencs/model/tools/birthsigncheck.hpp18
-rw-r--r--apps/opencs/model/tools/bodypartcheck.cpp12
-rw-r--r--apps/opencs/model/tools/bodypartcheck.hpp18
-rw-r--r--apps/opencs/model/tools/classcheck.cpp9
-rw-r--r--apps/opencs/model/tools/classcheck.hpp12
-rw-r--r--apps/opencs/model/tools/enchantmentcheck.cpp13
-rw-r--r--apps/opencs/model/tools/enchantmentcheck.hpp12
-rw-r--r--apps/opencs/model/tools/factioncheck.cpp10
-rw-r--r--apps/opencs/model/tools/factioncheck.hpp12
-rw-r--r--apps/opencs/model/tools/gmstcheck.cpp10
-rw-r--r--apps/opencs/model/tools/gmstcheck.hpp14
-rw-r--r--apps/opencs/model/tools/journalcheck.cpp17
-rw-r--r--apps/opencs/model/tools/journalcheck.hpp18
-rw-r--r--apps/opencs/model/tools/magiceffectcheck.cpp15
-rw-r--r--apps/opencs/model/tools/magiceffectcheck.hpp24
-rw-r--r--apps/opencs/model/tools/mandatoryid.cpp5
-rw-r--r--apps/opencs/model/tools/mandatoryid.hpp5
-rw-r--r--apps/opencs/model/tools/mergeoperation.cpp34
-rw-r--r--apps/opencs/model/tools/mergeoperation.hpp2
-rw-r--r--apps/opencs/model/tools/mergestages.cpp20
-rw-r--r--apps/opencs/model/tools/mergestages.hpp11
-rw-r--r--apps/opencs/model/tools/pathgridcheck.cpp8
-rw-r--r--apps/opencs/model/tools/pathgridcheck.hpp10
-rw-r--r--apps/opencs/model/tools/racecheck.cpp9
-rw-r--r--apps/opencs/model/tools/racecheck.hpp12
-rw-r--r--apps/opencs/model/tools/referenceablecheck.cpp39
-rw-r--r--apps/opencs/model/tools/referenceablecheck.hpp14
-rw-r--r--apps/opencs/model/tools/referencecheck.cpp14
-rw-r--r--apps/opencs/model/tools/referencecheck.hpp14
-rw-r--r--apps/opencs/model/tools/regioncheck.cpp11
-rw-r--r--apps/opencs/model/tools/regioncheck.hpp12
-rw-r--r--apps/opencs/model/tools/reportmodel.cpp5
-rw-r--r--apps/opencs/model/tools/reportmodel.hpp7
-rw-r--r--apps/opencs/model/tools/scriptcheck.cpp11
-rw-r--r--apps/opencs/model/tools/scriptcheck.hpp9
-rw-r--r--apps/opencs/model/tools/search.cpp9
-rw-r--r--apps/opencs/model/tools/searchoperation.cpp7
-rw-r--r--apps/opencs/model/tools/searchstage.cpp7
-rw-r--r--apps/opencs/model/tools/searchstage.hpp5
-rw-r--r--apps/opencs/model/tools/skillcheck.cpp9
-rw-r--r--apps/opencs/model/tools/skillcheck.hpp12
-rw-r--r--apps/opencs/model/tools/soundcheck.cpp11
-rw-r--r--apps/opencs/model/tools/soundcheck.hpp18
-rw-r--r--apps/opencs/model/tools/soundgencheck.cpp9
-rw-r--r--apps/opencs/model/tools/soundgencheck.hpp11
-rw-r--r--apps/opencs/model/tools/spellcheck.cpp9
-rw-r--r--apps/opencs/model/tools/spellcheck.hpp12
-rw-r--r--apps/opencs/model/tools/startscriptcheck.cpp15
-rw-r--r--apps/opencs/model/tools/startscriptcheck.hpp12
-rw-r--r--apps/opencs/model/tools/tools.cpp15
-rw-r--r--apps/opencs/model/tools/tools.hpp4
-rw-r--r--apps/opencs/model/tools/topicinfocheck.cpp24
-rw-r--r--apps/opencs/model/tools/topicinfocheck.hpp39
-rw-r--r--apps/opencs/model/world/actoradapter.cpp18
-rw-r--r--apps/opencs/model/world/actoradapter.hpp2
-rw-r--r--apps/opencs/model/world/cell.hpp5
-rw-r--r--apps/opencs/model/world/cellcoordinates.cpp3
-rw-r--r--apps/opencs/model/world/cellselection.cpp1
-rw-r--r--apps/opencs/model/world/cellselection.hpp4
-rw-r--r--apps/opencs/model/world/collection.hpp1
-rw-r--r--apps/opencs/model/world/collectionbase.cpp3
-rw-r--r--apps/opencs/model/world/columnbase.cpp2
-rw-r--r--apps/opencs/model/world/columnbase.hpp5
-rw-r--r--apps/opencs/model/world/columnimp.cpp8
-rw-r--r--apps/opencs/model/world/columnimp.hpp12
-rw-r--r--apps/opencs/model/world/columns.cpp3
-rw-r--r--apps/opencs/model/world/columns.hpp1
-rw-r--r--apps/opencs/model/world/commanddispatcher.cpp18
-rw-r--r--apps/opencs/model/world/commanddispatcher.hpp4
-rw-r--r--apps/opencs/model/world/commands.cpp11
-rw-r--r--apps/opencs/model/world/commands.hpp6
-rw-r--r--apps/opencs/model/world/data.cpp31
-rw-r--r--apps/opencs/model/world/data.hpp32
-rw-r--r--apps/opencs/model/world/idcollection.cpp15
-rw-r--r--apps/opencs/model/world/idcollection.hpp16
-rw-r--r--apps/opencs/model/world/idcompletionmanager.cpp11
-rw-r--r--apps/opencs/model/world/idtable.cpp10
-rw-r--r--apps/opencs/model/world/idtable.hpp8
-rw-r--r--apps/opencs/model/world/idtablebase.hpp4
-rw-r--r--apps/opencs/model/world/idtableproxymodel.cpp12
-rw-r--r--apps/opencs/model/world/idtableproxymodel.hpp19
-rw-r--r--apps/opencs/model/world/idtree.cpp5
-rw-r--r--apps/opencs/model/world/idtree.hpp9
-rw-r--r--apps/opencs/model/world/infocollection.cpp8
-rw-r--r--apps/opencs/model/world/infocollection.hpp9
-rw-r--r--apps/opencs/model/world/infoselectwrapper.cpp2
-rw-r--r--apps/opencs/model/world/infoselectwrapper.hpp9
-rw-r--r--apps/opencs/model/world/infotableproxymodel.cpp9
-rw-r--r--apps/opencs/model/world/infotableproxymodel.hpp6
-rw-r--r--apps/opencs/model/world/land.cpp6
-rw-r--r--apps/opencs/model/world/land.hpp5
-rw-r--r--apps/opencs/model/world/landtexture.cpp1
-rw-r--r--apps/opencs/model/world/landtexture.hpp5
-rw-r--r--apps/opencs/model/world/landtexturetableproxymodel.cpp2
-rw-r--r--apps/opencs/model/world/landtexturetableproxymodel.hpp3
-rw-r--r--apps/opencs/model/world/nestedcoladapterimp.cpp17
-rw-r--r--apps/opencs/model/world/nestedcoladapterimp.hpp16
-rw-r--r--apps/opencs/model/world/nestedcollection.cpp4
-rw-r--r--apps/opencs/model/world/nestedinfocollection.cpp15
-rw-r--r--apps/opencs/model/world/nestedinfocollection.hpp6
-rw-r--r--apps/opencs/model/world/nestedtableproxymodel.cpp3
-rw-r--r--apps/opencs/model/world/nestedtableproxymodel.hpp7
-rw-r--r--apps/opencs/model/world/pathgrid.hpp6
-rw-r--r--apps/opencs/model/world/ref.cpp2
-rw-r--r--apps/opencs/model/world/ref.hpp1
-rw-r--r--apps/opencs/model/world/refcollection.cpp10
-rw-r--r--apps/opencs/model/world/refcollection.hpp11
-rw-r--r--apps/opencs/model/world/refidadapter.hpp2
-rw-r--r--apps/opencs/model/world/refidadapterimp.cpp6
-rw-r--r--apps/opencs/model/world/refidadapterimp.hpp25
-rw-r--r--apps/opencs/model/world/refidcollection.cpp23
-rw-r--r--apps/opencs/model/world/refidcollection.hpp9
-rw-r--r--apps/opencs/model/world/refiddata.cpp10
-rw-r--r--apps/opencs/model/world/refiddata.hpp4
-rw-r--r--apps/opencs/model/world/regionmap.cpp14
-rw-r--r--apps/opencs/model/world/regionmap.hpp11
-rw-r--r--apps/opencs/model/world/resources.cpp5
-rw-r--r--apps/opencs/model/world/resourcesmanager.cpp4
-rw-r--r--apps/opencs/model/world/resourcesmanager.hpp4
-rw-r--r--apps/opencs/model/world/resourcetable.cpp3
-rw-r--r--apps/opencs/model/world/resourcetable.hpp9
-rw-r--r--apps/opencs/model/world/scope.cpp2
-rw-r--r--apps/opencs/model/world/scriptcontext.cpp10
-rw-r--r--apps/opencs/model/world/scriptcontext.hpp1
-rw-r--r--apps/opencs/model/world/tablemimedata.cpp4
-rw-r--r--apps/opencs/model/world/tablemimedata.hpp1
-rw-r--r--apps/opencs/model/world/universalid.cpp3
-rw-r--r--apps/opencs/view/doc/adjusterwidget.cpp6
-rw-r--r--apps/opencs/view/doc/filedialog.cpp7
-rw-r--r--apps/opencs/view/doc/filedialog.hpp6
-rw-r--r--apps/opencs/view/doc/filewidget.hpp2
-rw-r--r--apps/opencs/view/doc/globaldebugprofilemenu.cpp7
-rw-r--r--apps/opencs/view/doc/globaldebugprofilemenu.hpp7
-rw-r--r--apps/opencs/view/doc/loader.cpp8
-rw-r--r--apps/opencs/view/doc/loader.hpp2
-rw-r--r--apps/opencs/view/doc/operation.cpp1
-rw-r--r--apps/opencs/view/doc/operation.hpp1
-rw-r--r--apps/opencs/view/doc/operations.cpp4
-rw-r--r--apps/opencs/view/doc/runlogsubview.cpp2
-rw-r--r--apps/opencs/view/doc/runlogsubview.hpp2
-rw-r--r--apps/opencs/view/doc/subview.cpp2
-rw-r--r--apps/opencs/view/doc/subview.hpp11
-rw-r--r--apps/opencs/view/doc/subviewfactory.cpp6
-rw-r--r--apps/opencs/view/doc/view.cpp13
-rw-r--r--apps/opencs/view/doc/view.hpp15
-rw-r--r--apps/opencs/view/doc/viewmanager.cpp16
-rw-r--r--apps/opencs/view/doc/viewmanager.hpp1
-rw-r--r--apps/opencs/view/filter/editwidget.hpp14
-rw-r--r--apps/opencs/view/filter/filterbox.cpp5
-rw-r--r--apps/opencs/view/filter/filterbox.hpp7
-rw-r--r--apps/opencs/view/filter/recordfilterbox.hpp3
-rw-r--r--apps/opencs/view/prefs/dialogue.cpp7
-rw-r--r--apps/opencs/view/prefs/keybindingpage.cpp5
-rw-r--r--apps/opencs/view/prefs/keybindingpage.hpp2
-rw-r--r--apps/opencs/view/prefs/page.cpp6
-rw-r--r--apps/opencs/view/prefs/page.hpp3
-rw-r--r--apps/opencs/view/render/actor.hpp1
-rw-r--r--apps/opencs/view/render/cameracontroller.cpp5
-rw-r--r--apps/opencs/view/render/cameracontroller.hpp2
-rw-r--r--apps/opencs/view/render/cellarrow.cpp17
-rw-r--r--apps/opencs/view/render/cellarrow.hpp1
-rw-r--r--apps/opencs/view/render/cellwater.cpp14
-rw-r--r--apps/opencs/view/render/cellwater.hpp1
-rw-r--r--apps/opencs/view/render/editmode.cpp10
-rw-r--r--apps/opencs/view/render/editmode.hpp11
-rw-r--r--apps/opencs/view/render/instancemode.cpp31
-rw-r--r--apps/opencs/view/render/instancemode.hpp14
-rw-r--r--apps/opencs/view/render/instancemovemode.cpp8
-rw-r--r--apps/opencs/view/render/lightingday.hpp5
-rw-r--r--apps/opencs/view/render/lightingnight.hpp5
-rw-r--r--apps/opencs/view/render/object.cpp35
-rw-r--r--apps/opencs/view/render/object.hpp1
-rw-r--r--apps/opencs/view/render/orbitcameramode.cpp9
-rw-r--r--apps/opencs/view/render/orbitcameramode.hpp10
-rw-r--r--apps/opencs/view/render/pagedworldspacewidget.cpp37
-rw-r--r--apps/opencs/view/render/pagedworldspacewidget.hpp33
-rw-r--r--apps/opencs/view/render/pathgrid.cpp34
-rw-r--r--apps/opencs/view/render/pathgrid.hpp5
-rw-r--r--apps/opencs/view/render/pathgridmode.hpp7
-rw-r--r--apps/opencs/view/render/pathgridselectionmode.cpp14
-rw-r--r--apps/opencs/view/render/pathgridselectionmode.hpp10
-rw-r--r--apps/opencs/view/render/previewwidget.cpp10
-rw-r--r--apps/opencs/view/render/previewwidget.hpp4
-rw-r--r--apps/opencs/view/render/scenewidget.cpp31
-rw-r--r--apps/opencs/view/render/scenewidget.hpp10
-rw-r--r--apps/opencs/view/render/selectionmode.cpp9
-rw-r--r--apps/opencs/view/render/selectionmode.hpp5
-rw-r--r--apps/opencs/view/render/terrainselection.cpp19
-rw-r--r--apps/opencs/view/render/terrainselection.hpp9
-rw-r--r--apps/opencs/view/render/terrainshapemode.cpp33
-rw-r--r--apps/opencs/view/render/terrainshapemode.hpp32
-rw-r--r--apps/opencs/view/render/terrainstorage.hpp1
-rw-r--r--apps/opencs/view/render/terraintexturemode.cpp23
-rw-r--r--apps/opencs/view/render/terraintexturemode.hpp29
-rw-r--r--apps/opencs/view/render/unpagedworldspacewidget.cpp27
-rw-r--r--apps/opencs/view/render/unpagedworldspacewidget.hpp22
-rw-r--r--apps/opencs/view/render/worldspacewidget.hpp27
-rw-r--r--apps/opencs/view/tools/reportsubview.cpp2
-rw-r--r--apps/opencs/view/tools/reporttable.cpp7
-rw-r--r--apps/opencs/view/tools/reporttable.hpp13
-rw-r--r--apps/opencs/view/tools/searchsubview.cpp5
-rw-r--r--apps/opencs/view/tools/searchsubview.hpp2
-rw-r--r--apps/opencs/view/tools/subviews.cpp4
-rw-r--r--apps/opencs/view/widget/coloreditor.cpp3
-rw-r--r--apps/opencs/view/widget/modebutton.cpp4
-rw-r--r--apps/opencs/view/widget/pushbutton.cpp5
-rw-r--r--apps/opencs/view/widget/pushbutton.hpp5
-rw-r--r--apps/opencs/view/widget/scenetool.cpp2
-rw-r--r--apps/opencs/view/widget/scenetool.hpp4
-rw-r--r--apps/opencs/view/widget/scenetoolbar.cpp2
-rw-r--r--apps/opencs/view/widget/scenetoolmode.cpp7
-rw-r--r--apps/opencs/view/widget/scenetoolmode.hpp6
-rw-r--r--apps/opencs/view/widget/scenetoolrun.cpp10
-rw-r--r--apps/opencs/view/widget/scenetoolrun.hpp5
-rw-r--r--apps/opencs/view/widget/scenetoolshapebrush.cpp9
-rw-r--r--apps/opencs/view/widget/scenetoolshapebrush.hpp23
-rw-r--r--apps/opencs/view/widget/scenetooltexturebrush.cpp19
-rw-r--r--apps/opencs/view/widget/scenetooltexturebrush.hpp29
-rw-r--r--apps/opencs/view/widget/scenetooltoggle.cpp4
-rw-r--r--apps/opencs/view/widget/scenetooltoggle.hpp4
-rw-r--r--apps/opencs/view/widget/scenetooltoggle2.cpp4
-rw-r--r--apps/opencs/view/widget/scenetooltoggle2.hpp5
-rw-r--r--apps/opencs/view/world/bodypartcreator.cpp2
-rw-r--r--apps/opencs/view/world/cellcreator.cpp6
-rw-r--r--apps/opencs/view/world/cellcreator.hpp16
-rw-r--r--apps/opencs/view/world/colordelegate.cpp15
-rw-r--r--apps/opencs/view/world/colordelegate.hpp13
-rw-r--r--apps/opencs/view/world/creator.cpp8
-rw-r--r--apps/opencs/view/world/creator.hpp6
-rw-r--r--apps/opencs/view/world/datadisplaydelegate.cpp25
-rwxr-xr-xapps/opencs/view/world/datadisplaydelegate.hpp22
-rw-r--r--apps/opencs/view/world/dialoguecreator.cpp7
-rw-r--r--apps/opencs/view/world/dialoguecreator.hpp16
-rw-r--r--apps/opencs/view/world/dialoguesubview.cpp21
-rw-r--r--apps/opencs/view/world/dialoguesubview.hpp14
-rw-r--r--apps/opencs/view/world/dragdroputils.cpp3
-rw-r--r--apps/opencs/view/world/dragrecordtable.cpp6
-rw-r--r--apps/opencs/view/world/dragrecordtable.hpp8
-rw-r--r--apps/opencs/view/world/enumdelegate.cpp4
-rw-r--r--apps/opencs/view/world/enumdelegate.hpp14
-rw-r--r--apps/opencs/view/world/extendedcommandconfigurator.cpp4
-rw-r--r--apps/opencs/view/world/extendedcommandconfigurator.hpp4
-rw-r--r--apps/opencs/view/world/genericcreator.cpp3
-rw-r--r--apps/opencs/view/world/genericcreator.hpp7
-rw-r--r--apps/opencs/view/world/globalcreator.cpp6
-rw-r--r--apps/opencs/view/world/globalcreator.hpp11
-rw-r--r--apps/opencs/view/world/idcompletiondelegate.cpp13
-rw-r--r--apps/opencs/view/world/idcompletiondelegate.hpp16
-rwxr-xr-xapps/opencs/view/world/idtypedelegate.cpp17
-rwxr-xr-xapps/opencs/view/world/idtypedelegate.hpp15
-rw-r--r--apps/opencs/view/world/infocreator.cpp8
-rw-r--r--apps/opencs/view/world/infocreator.hpp15
-rw-r--r--apps/opencs/view/world/landcreator.cpp4
-rw-r--r--apps/opencs/view/world/landcreator.hpp12
-rw-r--r--apps/opencs/view/world/landtexturecreator.cpp6
-rw-r--r--apps/opencs/view/world/landtexturecreator.hpp8
-rw-r--r--apps/opencs/view/world/nestedtable.cpp4
-rw-r--r--apps/opencs/view/world/nestedtable.hpp3
-rw-r--r--apps/opencs/view/world/pathgridcreator.cpp9
-rw-r--r--apps/opencs/view/world/pathgridcreator.hpp6
-rw-r--r--apps/opencs/view/world/previewsubview.cpp7
-rw-r--r--apps/opencs/view/world/previewsubview.hpp4
-rw-r--r--apps/opencs/view/world/recordbuttonbar.cpp8
-rw-r--r--apps/opencs/view/world/recordstatusdelegate.cpp19
-rw-r--r--apps/opencs/view/world/recordstatusdelegate.hpp17
-rw-r--r--apps/opencs/view/world/referenceablecreator.cpp11
-rw-r--r--apps/opencs/view/world/referenceablecreator.hpp14
-rw-r--r--apps/opencs/view/world/referencecreator.cpp7
-rw-r--r--apps/opencs/view/world/referencecreator.hpp15
-rw-r--r--apps/opencs/view/world/regionmap.cpp12
-rw-r--r--apps/opencs/view/world/regionmap.hpp9
-rw-r--r--apps/opencs/view/world/regionmapsubview.cpp2
-rw-r--r--apps/opencs/view/world/regionmapsubview.hpp4
-rw-r--r--apps/opencs/view/world/scenesubview.cpp13
-rw-r--r--apps/opencs/view/world/scenesubview.hpp9
-rw-r--r--apps/opencs/view/world/scriptedit.cpp7
-rw-r--r--apps/opencs/view/world/scriptedit.hpp20
-rw-r--r--apps/opencs/view/world/scripterrortable.cpp6
-rw-r--r--apps/opencs/view/world/scripterrortable.hpp7
-rw-r--r--apps/opencs/view/world/scripthighlighter.cpp10
-rw-r--r--apps/opencs/view/world/scripthighlighter.hpp15
-rw-r--r--apps/opencs/view/world/scriptsubview.cpp12
-rw-r--r--apps/opencs/view/world/scriptsubview.hpp8
-rw-r--r--apps/opencs/view/world/startscriptcreator.cpp8
-rw-r--r--apps/opencs/view/world/startscriptcreator.hpp14
-rw-r--r--apps/opencs/view/world/subviews.cpp6
-rw-r--r--apps/opencs/view/world/table.cpp21
-rw-r--r--apps/opencs/view/world/table.hpp13
-rw-r--r--apps/opencs/view/world/tablebottombox.cpp2
-rw-r--r--apps/opencs/view/world/tablebottombox.hpp4
-rw-r--r--apps/opencs/view/world/tableeditidaction.cpp6
-rw-r--r--apps/opencs/view/world/tableeditidaction.hpp3
-rw-r--r--apps/opencs/view/world/tableheadermouseeventhandler.cpp4
-rw-r--r--apps/opencs/view/world/tableheadermouseeventhandler.hpp9
-rw-r--r--apps/opencs/view/world/tablesubview.cpp6
-rw-r--r--apps/opencs/view/world/tablesubview.hpp16
-rw-r--r--apps/opencs/view/world/util.cpp6
-rw-r--r--apps/opencs/view/world/util.hpp9
-rw-r--r--apps/opencs/view/world/vartypedelegate.cpp17
-rw-r--r--apps/opencs/view/world/vartypedelegate.hpp15
354 files changed, 3060 insertions, 295 deletions
diff --git a/apps/opencs/editor.cpp b/apps/opencs/editor.cpp
index 8414e6bfdd..8a2b79caa5 100644
--- a/apps/opencs/editor.cpp
+++ b/apps/opencs/editor.cpp
@@ -5,25 +5,36 @@
#include <QLocalSocket>
#include <QMessageBox>
-#include <boost/program_options/options_description.hpp>
+#include <boost/program_options.hpp>
+#include <exception>
+
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/doc/documentmanager.hpp>
+#include <apps/opencs/view/doc/adjusterwidget.hpp>
+#include <apps/opencs/view/doc/filedialog.hpp>
+#include <apps/opencs/view/doc/newgame.hpp>
+#include <apps/opencs/view/doc/startup.hpp>
+#include <apps/opencs/view/prefs/dialogue.hpp>
+#include <apps/opencs/view/tools/merge.hpp>
+
+#ifdef _WIN32
+#include <components/windows.hpp>
+#endif
#include <components/debug/debugging.hpp>
#include <components/debug/debuglog.hpp>
+#include <components/esm3/esmreader.hpp>
+#include <components/esm3/loadtes3.hpp>
#include <components/fallback/fallback.hpp>
#include <components/fallback/validate.hpp>
#include <components/files/qtconversion.hpp>
#include <components/misc/rng.hpp>
#include <components/nifosg/nifloader.hpp>
#include <components/settings/settings.hpp>
+#include <components/to_utf8/to_utf8.hpp>
#include "view/doc/viewmanager.hpp"
-#include "model/doc/document.hpp"
-
-#ifdef _WIN32
-#include <components/windows.hpp>
-#endif
-
using namespace Fallback;
CS::Editor::Editor(int argc, char** argv)
diff --git a/apps/opencs/editor.hpp b/apps/opencs/editor.hpp
index 1b9b096f4b..6b30738dde 100644
--- a/apps/opencs/editor.hpp
+++ b/apps/opencs/editor.hpp
@@ -1,14 +1,18 @@
#ifndef CS_EDITOR_H
#define CS_EDITOR_H
-#include <fstream>
-
#include <boost/interprocess/sync/file_lock.hpp>
#include <boost/program_options/variables_map.hpp>
#include <QObject>
#include <QString>
+#include <filesystem>
+#include <fstream>
+#include <string>
+#include <utility>
+#include <vector>
+
#ifndef Q_MOC_RUN
#include <components/files/configurationmanager.hpp>
#endif
@@ -16,15 +20,12 @@
#include <components/files/multidircollection.hpp>
#include "model/doc/documentmanager.hpp"
-
#include "model/prefs/state.hpp"
#include "view/doc/filedialog.hpp"
#include "view/doc/newgame.hpp"
#include "view/doc/startup.hpp"
-
#include "view/prefs/dialogue.hpp"
-
#include "view/tools/merge.hpp"
class QLocalServer;
diff --git a/apps/opencs/main.cpp b/apps/opencs/main.cpp
index cb843eb5c9..957987640e 100644
--- a/apps/opencs/main.cpp
+++ b/apps/opencs/main.cpp
@@ -7,6 +7,7 @@
#include <QIcon>
#include <components/debug/debugging.hpp>
+#include <components/debug/debuglog.hpp>
#include <components/platform/platform.hpp>
#include "model/doc/messages.hpp"
@@ -18,6 +19,9 @@
Q_DECLARE_METATYPE(std::string)
+class QEvent;
+class QObject;
+
class Application : public QApplication
{
private:
diff --git a/apps/opencs/model/doc/blacklist.cpp b/apps/opencs/model/doc/blacklist.cpp
index 174459c3b4..9b422cb751 100644
--- a/apps/opencs/model/doc/blacklist.cpp
+++ b/apps/opencs/model/doc/blacklist.cpp
@@ -1,6 +1,10 @@
#include "blacklist.hpp"
#include <algorithm>
+#include <stddef.h>
+#include <utility>
+
+#include <apps/opencs/model/world/universalid.hpp>
#include <components/misc/strings/lower.hpp>
diff --git a/apps/opencs/model/doc/document.cpp b/apps/opencs/model/doc/document.cpp
index 83cadc08c5..698ff60c43 100644
--- a/apps/opencs/model/doc/document.cpp
+++ b/apps/opencs/model/doc/document.cpp
@@ -2,9 +2,33 @@
#include "state.hpp"
+#include <apps/opencs/model/doc/blacklist.hpp>
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/doc/operationholder.hpp>
+#include <apps/opencs/model/doc/runner.hpp>
+#include <apps/opencs/model/doc/saving.hpp>
+#include <apps/opencs/model/tools/tools.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/debug/debuglog.hpp>
+#include <components/esm3/loaddial.hpp>
+#include <components/esm3/loadglob.hpp>
+#include <components/esm3/loadgmst.hpp>
+#include <components/esm3/loadmgef.hpp>
+#include <components/esm3/loadskil.hpp>
+#include <components/esm3/variant.hpp>
+#include <components/files/conversion.hpp>
+
+#include <algorithm>
#include <filesystem>
+#include <fstream>
#include <memory>
+#include <stddef.h>
+#include <stdexcept>
#include <utility>
+#include <variant>
#include "../world/defaultgmsts.hpp"
@@ -12,8 +36,10 @@
#include <components/files/configurationmanager.hpp>
#endif
-#include <components/debug/debuglog.hpp>
-#include <components/files/conversion.hpp>
+namespace CSMWorld
+{
+ class IdCompletionManager;
+}
void CSMDoc::Document::addGmsts()
{
diff --git a/apps/opencs/model/doc/document.hpp b/apps/opencs/model/doc/document.hpp
index 21dac9a2e8..52e4a53ee0 100644
--- a/apps/opencs/model/doc/document.hpp
+++ b/apps/opencs/model/doc/document.hpp
@@ -1,11 +1,16 @@
#ifndef CSM_DOC_DOCUMENT_H
#define CSM_DOC_DOCUMENT_H
-#include <string>
-
#include <QObject>
#include <QUndoStack>
+#include <filesystem>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/files/multidircollection.hpp>
#include <components/to_utf8/to_utf8.hpp>
diff --git a/apps/opencs/model/doc/documentmanager.cpp b/apps/opencs/model/doc/documentmanager.cpp
index b417a3ca8d..d9dd0dd8f2 100644
--- a/apps/opencs/model/doc/documentmanager.cpp
+++ b/apps/opencs/model/doc/documentmanager.cpp
@@ -1,6 +1,12 @@
#include "documentmanager.hpp"
+#include <QWaitCondition>
+
+#include <algorithm>
#include <filesystem>
+#include <stdexcept>
+
+#include <apps/opencs/model/doc/loader.hpp>
#ifndef Q_MOC_RUN
#include <components/files/configurationmanager.hpp>
diff --git a/apps/opencs/model/doc/documentmanager.hpp b/apps/opencs/model/doc/documentmanager.hpp
index 2db67cfc22..31256ca08a 100644
--- a/apps/opencs/model/doc/documentmanager.hpp
+++ b/apps/opencs/model/doc/documentmanager.hpp
@@ -1,12 +1,13 @@
#ifndef CSM_DOC_DOCUMENTMGR_H
#define CSM_DOC_DOCUMENTMGR_H
-#include <string>
-#include <vector>
-
#include <QObject>
#include <QThread>
+#include <filesystem>
+#include <string>
+#include <vector>
+
#include <components/files/multidircollection.hpp>
#include <components/to_utf8/to_utf8.hpp>
diff --git a/apps/opencs/model/doc/loader.cpp b/apps/opencs/model/doc/loader.cpp
index c9fc9d08a1..0a9937d4a5 100644
--- a/apps/opencs/model/doc/loader.cpp
+++ b/apps/opencs/model/doc/loader.cpp
@@ -1,5 +1,13 @@
#include "loader.hpp"
+#include <algorithm>
+#include <exception>
+#include <filesystem>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/files/conversion.hpp>
#include <QTimer>
diff --git a/apps/opencs/model/doc/loader.hpp b/apps/opencs/model/doc/loader.hpp
index 5e06b034d2..56240a91e0 100644
--- a/apps/opencs/model/doc/loader.hpp
+++ b/apps/opencs/model/doc/loader.hpp
@@ -1,6 +1,8 @@
#ifndef CSM_DOC_LOADER_H
#define CSM_DOC_LOADER_H
+#include <string>
+#include <utility>
#include <vector>
#include <QMutex>
diff --git a/apps/opencs/model/doc/messages.cpp b/apps/opencs/model/doc/messages.cpp
index 5d7a6ac6cb..bf28ac1c9f 100644
--- a/apps/opencs/model/doc/messages.cpp
+++ b/apps/opencs/model/doc/messages.cpp
@@ -1,5 +1,7 @@
#include "messages.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+
CSMDoc::Message::Message()
: mSeverity(Severity_Default)
{
diff --git a/apps/opencs/model/doc/messages.hpp b/apps/opencs/model/doc/messages.hpp
index 3186107914..7715a89b33 100644
--- a/apps/opencs/model/doc/messages.hpp
+++ b/apps/opencs/model/doc/messages.hpp
@@ -1,6 +1,9 @@
#ifndef CSM_DOC_MESSAGES_H
#define CSM_DOC_MESSAGES_H
+#include <QMetaType>
+
+#include <algorithm>
#include <string>
#include <vector>
diff --git a/apps/opencs/model/doc/operation.cpp b/apps/opencs/model/doc/operation.cpp
index 523ce3b165..fe08c00231 100644
--- a/apps/opencs/model/doc/operation.cpp
+++ b/apps/opencs/model/doc/operation.cpp
@@ -1,9 +1,13 @@
#include "operation.hpp"
+#include <algorithm>
+#include <exception>
#include <vector>
#include <QTimer>
+#include <apps/opencs/model/doc/messages.hpp>
+
#include "../world/universalid.hpp"
#include "stage.hpp"
diff --git a/apps/opencs/model/doc/operation.hpp b/apps/opencs/model/doc/operation.hpp
index 8b3b409b34..86a28de3cb 100644
--- a/apps/opencs/model/doc/operation.hpp
+++ b/apps/opencs/model/doc/operation.hpp
@@ -1,6 +1,7 @@
#ifndef CSM_DOC_OPERATION_H
#define CSM_DOC_OPERATION_H
+#include <utility>
#include <vector>
#include <QObject>
diff --git a/apps/opencs/model/doc/operationholder.hpp b/apps/opencs/model/doc/operationholder.hpp
index 8434f69052..8056850b96 100644
--- a/apps/opencs/model/doc/operationholder.hpp
+++ b/apps/opencs/model/doc/operationholder.hpp
@@ -4,11 +4,10 @@
#include <QObject>
#include <QThread>
-#include "messages.hpp"
-
namespace CSMDoc
{
class Operation;
+ struct Message;
class OperationHolder : public QObject
{
diff --git a/apps/opencs/model/doc/runner.cpp b/apps/opencs/model/doc/runner.cpp
index c02a506836..d647d6b498 100644
--- a/apps/opencs/model/doc/runner.cpp
+++ b/apps/opencs/model/doc/runner.cpp
@@ -7,10 +7,12 @@
#include <QDir>
#endif
+#include <QProcess>
+#include <QString>
+#include <QStringList>
#include <QTemporaryFile>
#include <QTextStream>
-#include <components/files/conversion.hpp>
#include <components/files/qtconversion.hpp>
#include "operationholder.hpp"
diff --git a/apps/opencs/model/doc/saving.cpp b/apps/opencs/model/doc/saving.cpp
index fb5aaca48d..b2e4d4649a 100644
--- a/apps/opencs/model/doc/saving.cpp
+++ b/apps/opencs/model/doc/saving.cpp
@@ -1,5 +1,31 @@
#include "saving.hpp"
+#include <algorithm>
+#include <variant>
+
+#include <apps/opencs/model/doc/operation.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/scope.hpp>
+
+#include <components/esm3/debugprofile.hpp>
+#include <components/esm3/filter.hpp>
+#include <components/esm3/loadbody.hpp>
+#include <components/esm3/loadbsgn.hpp>
+#include <components/esm3/loadclas.hpp>
+#include <components/esm3/loadench.hpp>
+#include <components/esm3/loadfact.hpp>
+#include <components/esm3/loadglob.hpp>
+#include <components/esm3/loadgmst.hpp>
+#include <components/esm3/loadmgef.hpp>
+#include <components/esm3/loadrace.hpp>
+#include <components/esm3/loadregn.hpp>
+#include <components/esm3/loadscpt.hpp>
+#include <components/esm3/loadskil.hpp>
+#include <components/esm3/loadsndg.hpp>
+#include <components/esm3/loadsoun.hpp>
+#include <components/esm3/loadspel.hpp>
+#include <components/esm3/loadsscr.hpp>
+
#include "../world/data.hpp"
#include "../world/idcollection.hpp"
diff --git a/apps/opencs/model/doc/saving.hpp b/apps/opencs/model/doc/saving.hpp
index cb22c4a62a..5dcdbb6803 100644
--- a/apps/opencs/model/doc/saving.hpp
+++ b/apps/opencs/model/doc/saving.hpp
@@ -1,11 +1,15 @@
#ifndef CSM_DOC_SAVING_H
#define CSM_DOC_SAVING_H
+#include <QObject>
+
#include <components/to_utf8/to_utf8.hpp>
#include "operation.hpp"
#include "savingstate.hpp"
+#include <filesystem>
+
namespace CSMDoc
{
class Document;
diff --git a/apps/opencs/model/doc/savingstages.cpp b/apps/opencs/model/doc/savingstages.cpp
index 6f040b0ca3..c03eb5762c 100644
--- a/apps/opencs/model/doc/savingstages.cpp
+++ b/apps/opencs/model/doc/savingstages.cpp
@@ -1,10 +1,42 @@
#include "savingstages.hpp"
+#include <QUndoStack>
+
#include <filesystem>
+#include <map>
+#include <memory>
#include <sstream>
-
+#include <stdexcept>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/model/doc/savingstate.hpp>
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/landtexture.hpp>
+#include <apps/opencs/model/world/metadata.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm/esmcommon.hpp>
+#include <components/esm3/cellref.hpp>
+#include <components/esm3/esmwriter.hpp>
+#include <components/esm3/loadcell.hpp>
#include <components/esm3/loaddial.hpp>
+#include <components/esm3/loadinfo.hpp>
+#include <components/esm3/loadpgrd.hpp>
#include <components/files/conversion.hpp>
+#include <components/misc/strings/lower.hpp>
#include "../world/cellcoordinates.hpp"
#include "../world/infocollection.hpp"
diff --git a/apps/opencs/model/doc/savingstages.hpp b/apps/opencs/model/doc/savingstages.hpp
index 90ada3d502..b641f9bf7b 100644
--- a/apps/opencs/model/doc/savingstages.hpp
+++ b/apps/opencs/model/doc/savingstages.hpp
@@ -3,17 +3,18 @@
#include "stage.hpp"
+#include <deque>
+
#include "../world/idcollection.hpp"
#include "../world/record.hpp"
#include "../world/scope.hpp"
-#include <components/esm/defs.hpp>
-
#include "savingstate.hpp"
namespace ESM
{
struct Dialogue;
+ class ESMWriter;
}
namespace CSMWorld
@@ -24,7 +25,7 @@ namespace CSMWorld
namespace CSMDoc
{
class Document;
- class SavingState;
+ class Messages;
class OpenSaveStage : public Stage
{
diff --git a/apps/opencs/model/doc/savingstate.hpp b/apps/opencs/model/doc/savingstate.hpp
index 2ddc782a4b..366778e452 100644
--- a/apps/opencs/model/doc/savingstate.hpp
+++ b/apps/opencs/model/doc/savingstate.hpp
@@ -5,6 +5,7 @@
#include <filesystem>
#include <fstream>
#include <map>
+#include <string>
#include <components/esm3/esmwriter.hpp>
diff --git a/apps/opencs/model/doc/stage.hpp b/apps/opencs/model/doc/stage.hpp
index 581b6c808f..1b855becb3 100644
--- a/apps/opencs/model/doc/stage.hpp
+++ b/apps/opencs/model/doc/stage.hpp
@@ -1,12 +1,9 @@
#ifndef CSM_DOC_STAGE_H
#define CSM_DOC_STAGE_H
-#include "messages.hpp"
-
-class QString;
-
namespace CSMDoc
{
+ class Messages;
class Stage
{
public:
diff --git a/apps/opencs/model/filter/andnode.cpp b/apps/opencs/model/filter/andnode.cpp
index c2fd79a7bd..1fbf174350 100644
--- a/apps/opencs/model/filter/andnode.cpp
+++ b/apps/opencs/model/filter/andnode.cpp
@@ -1,5 +1,8 @@
#include "andnode.hpp"
+#include <apps/opencs/model/filter/narynode.hpp>
+#include <apps/opencs/model/filter/node.hpp>
+
CSMFilter::AndNode::AndNode(const std::vector<std::shared_ptr<Node>>& nodes)
: NAryNode(nodes, "and")
{
diff --git a/apps/opencs/model/filter/booleannode.cpp b/apps/opencs/model/filter/booleannode.cpp
index da8470ee7e..793709b8f5 100644
--- a/apps/opencs/model/filter/booleannode.cpp
+++ b/apps/opencs/model/filter/booleannode.cpp
@@ -1,5 +1,10 @@
#include "booleannode.hpp"
+namespace CSMWorld
+{
+ class IdTableBase;
+}
+
CSMFilter::BooleanNode::BooleanNode(bool true_)
: mTrue(true_)
{
diff --git a/apps/opencs/model/filter/booleannode.hpp b/apps/opencs/model/filter/booleannode.hpp
index c1bf3bd644..331899553e 100644
--- a/apps/opencs/model/filter/booleannode.hpp
+++ b/apps/opencs/model/filter/booleannode.hpp
@@ -1,8 +1,16 @@
#ifndef CSM_FILTER_BOOLEANNODE_H
#define CSM_FILTER_BOOLEANNODE_H
+#include <map>
+#include <string>
+
#include "leafnode.hpp"
+namespace CSMWorld
+{
+ class IdTableBase;
+}
+
namespace CSMFilter
{
class BooleanNode : public LeafNode
diff --git a/apps/opencs/model/filter/narynode.cpp b/apps/opencs/model/filter/narynode.cpp
index 622e57182b..baa5eb788c 100644
--- a/apps/opencs/model/filter/narynode.cpp
+++ b/apps/opencs/model/filter/narynode.cpp
@@ -1,7 +1,10 @@
#include "narynode.hpp"
+#include <algorithm>
#include <sstream>
+#include <apps/opencs/model/filter/node.hpp>
+
CSMFilter::NAryNode::NAryNode(const std::vector<std::shared_ptr<Node>>& nodes, const std::string& name)
: mNodes(nodes)
, mName(name)
diff --git a/apps/opencs/model/filter/narynode.hpp b/apps/opencs/model/filter/narynode.hpp
index 8df0c68835..6638f8b84f 100644
--- a/apps/opencs/model/filter/narynode.hpp
+++ b/apps/opencs/model/filter/narynode.hpp
@@ -1,6 +1,7 @@
#ifndef CSM_FILTER_NARYNODE_H
#define CSM_FILTER_NARYNODE_H
+#include <memory>
#include <string>
#include <vector>
diff --git a/apps/opencs/model/filter/textnode.cpp b/apps/opencs/model/filter/textnode.cpp
index 9bef2c2745..61a99b8bf6 100644
--- a/apps/opencs/model/filter/textnode.cpp
+++ b/apps/opencs/model/filter/textnode.cpp
@@ -1,7 +1,9 @@
#include "textnode.hpp"
+#include <memory>
#include <sstream>
#include <stdexcept>
+#include <utility>
#include <QRegExp>
diff --git a/apps/opencs/model/filter/textnode.hpp b/apps/opencs/model/filter/textnode.hpp
index 03b2a473d3..6792c5407b 100644
--- a/apps/opencs/model/filter/textnode.hpp
+++ b/apps/opencs/model/filter/textnode.hpp
@@ -1,6 +1,12 @@
#ifndef CSM_FILTER_TEXTNODE_H
#define CSM_FILTER_TEXTNODE_H
+#include <map>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/idtablebase.hpp>
+
#include "leafnode.hpp"
namespace CSMFilter
diff --git a/apps/opencs/model/filter/unarynode.cpp b/apps/opencs/model/filter/unarynode.cpp
index 9581361f46..277ef406ce 100644
--- a/apps/opencs/model/filter/unarynode.cpp
+++ b/apps/opencs/model/filter/unarynode.cpp
@@ -1,5 +1,7 @@
#include "unarynode.hpp"
+#include <apps/opencs/model/filter/node.hpp>
+
CSMFilter::UnaryNode::UnaryNode(std::shared_ptr<Node> child, const std::string& name)
: mChild(child)
, mName(name)
diff --git a/apps/opencs/model/filter/unarynode.hpp b/apps/opencs/model/filter/unarynode.hpp
index cb3fbdd925..04422d3c0c 100644
--- a/apps/opencs/model/filter/unarynode.hpp
+++ b/apps/opencs/model/filter/unarynode.hpp
@@ -1,6 +1,10 @@
#ifndef CSM_FILTER_UNARYNODE_H
#define CSM_FILTER_UNARYNODE_H
+#include <memory>
+#include <string>
+#include <vector>
+
#include "node.hpp"
namespace CSMFilter
diff --git a/apps/opencs/model/filter/valuenode.cpp b/apps/opencs/model/filter/valuenode.cpp
index eb3d03f00a..fdedf7a17f 100644
--- a/apps/opencs/model/filter/valuenode.cpp
+++ b/apps/opencs/model/filter/valuenode.cpp
@@ -2,6 +2,7 @@
#include <sstream>
#include <stdexcept>
+#include <utility>
#include "../world/columns.hpp"
#include "../world/idtablebase.hpp"
diff --git a/apps/opencs/model/filter/valuenode.hpp b/apps/opencs/model/filter/valuenode.hpp
index ffdf85a05f..caf4f18620 100644
--- a/apps/opencs/model/filter/valuenode.hpp
+++ b/apps/opencs/model/filter/valuenode.hpp
@@ -3,6 +3,12 @@
#include "leafnode.hpp"
+#include <apps/opencs/model/world/idtablebase.hpp>
+
+#include <map>
+#include <string>
+#include <vector>
+
namespace CSMFilter
{
class ValueNode : public LeafNode
diff --git a/apps/opencs/model/prefs/boolsetting.cpp b/apps/opencs/model/prefs/boolsetting.cpp
index 9b557406a5..c668bc0af4 100644
--- a/apps/opencs/model/prefs/boolsetting.cpp
+++ b/apps/opencs/model/prefs/boolsetting.cpp
@@ -5,6 +5,8 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "category.hpp"
#include "state.hpp"
diff --git a/apps/opencs/model/prefs/boolsetting.hpp b/apps/opencs/model/prefs/boolsetting.hpp
index a7fdf5c8ef..e75ea1a346 100644
--- a/apps/opencs/model/prefs/boolsetting.hpp
+++ b/apps/opencs/model/prefs/boolsetting.hpp
@@ -3,10 +3,15 @@
#include "setting.hpp"
+#include <string>
+#include <utility>
+
class QCheckBox;
namespace CSMPrefs
{
+ class Category;
+
class BoolSetting : public Setting
{
Q_OBJECT
diff --git a/apps/opencs/model/prefs/coloursetting.cpp b/apps/opencs/model/prefs/coloursetting.cpp
index b8df0e459e..e33ae78a1a 100644
--- a/apps/opencs/model/prefs/coloursetting.cpp
+++ b/apps/opencs/model/prefs/coloursetting.cpp
@@ -6,6 +6,8 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "../../view/widget/coloreditor.hpp"
#include "category.hpp"
diff --git a/apps/opencs/model/prefs/coloursetting.hpp b/apps/opencs/model/prefs/coloursetting.hpp
index 7365dd51b1..0c22d9cc5d 100644
--- a/apps/opencs/model/prefs/coloursetting.hpp
+++ b/apps/opencs/model/prefs/coloursetting.hpp
@@ -5,6 +5,13 @@
#include <QColor>
+#include <string>
+#include <utility>
+
+class QMutex;
+class QObject;
+class QWidget;
+
namespace CSVWidget
{
class ColorEditor;
@@ -12,6 +19,7 @@ namespace CSVWidget
namespace CSMPrefs
{
+ class Category;
class ColourSetting : public Setting
{
Q_OBJECT
diff --git a/apps/opencs/model/prefs/doublesetting.cpp b/apps/opencs/model/prefs/doublesetting.cpp
index 43f7963429..7e3aadb0c3 100644
--- a/apps/opencs/model/prefs/doublesetting.cpp
+++ b/apps/opencs/model/prefs/doublesetting.cpp
@@ -9,6 +9,8 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "category.hpp"
#include "state.hpp"
diff --git a/apps/opencs/model/prefs/doublesetting.hpp b/apps/opencs/model/prefs/doublesetting.hpp
index 433d7ac8ca..c951d2a88c 100644
--- a/apps/opencs/model/prefs/doublesetting.hpp
+++ b/apps/opencs/model/prefs/doublesetting.hpp
@@ -7,6 +7,8 @@ class QDoubleSpinBox;
namespace CSMPrefs
{
+ class Category;
+
class DoubleSetting : public Setting
{
Q_OBJECT
diff --git a/apps/opencs/model/prefs/enumsetting.cpp b/apps/opencs/model/prefs/enumsetting.cpp
index 7d64e31112..3d35aa5825 100644
--- a/apps/opencs/model/prefs/enumsetting.cpp
+++ b/apps/opencs/model/prefs/enumsetting.cpp
@@ -1,4 +1,3 @@
-
#include "enumsetting.hpp"
#include <QComboBox>
@@ -6,6 +5,11 @@
#include <QMutexLocker>
#include <QString>
+#include <algorithm>
+#include <memory>
+
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include <components/settings/settings.hpp>
#include "category.hpp"
diff --git a/apps/opencs/model/prefs/enumsetting.hpp b/apps/opencs/model/prefs/enumsetting.hpp
index 9acece98e8..57bd2115ce 100644
--- a/apps/opencs/model/prefs/enumsetting.hpp
+++ b/apps/opencs/model/prefs/enumsetting.hpp
@@ -1,6 +1,8 @@
#ifndef CSM_PREFS_ENUMSETTING_H
#define CSM_PREFS_ENUMSETTING_H
+#include <string>
+#include <utility>
#include <vector>
#include "setting.hpp"
@@ -9,6 +11,8 @@ class QComboBox;
namespace CSMPrefs
{
+ class Category;
+
struct EnumValue
{
std::string mValue;
diff --git a/apps/opencs/model/prefs/intsetting.cpp b/apps/opencs/model/prefs/intsetting.cpp
index 36a45bf04e..90cc77c788 100644
--- a/apps/opencs/model/prefs/intsetting.cpp
+++ b/apps/opencs/model/prefs/intsetting.cpp
@@ -9,6 +9,8 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "category.hpp"
#include "state.hpp"
diff --git a/apps/opencs/model/prefs/intsetting.hpp b/apps/opencs/model/prefs/intsetting.hpp
index 8ef811c8fc..8a655178a4 100644
--- a/apps/opencs/model/prefs/intsetting.hpp
+++ b/apps/opencs/model/prefs/intsetting.hpp
@@ -4,9 +4,14 @@
#include "setting.hpp"
class QSpinBox;
+class QMutex;
+class QObject;
+class QWidget;
namespace CSMPrefs
{
+ class Category;
+
class IntSetting : public Setting
{
Q_OBJECT
diff --git a/apps/opencs/model/prefs/modifiersetting.cpp b/apps/opencs/model/prefs/modifiersetting.cpp
index 6b9da562f5..8752a4d51e 100644
--- a/apps/opencs/model/prefs/modifiersetting.cpp
+++ b/apps/opencs/model/prefs/modifiersetting.cpp
@@ -8,6 +8,9 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "shortcutmanager.hpp"
#include "state.hpp"
diff --git a/apps/opencs/model/prefs/modifiersetting.hpp b/apps/opencs/model/prefs/modifiersetting.hpp
index 7c43023f47..ae984243ac 100644
--- a/apps/opencs/model/prefs/modifiersetting.hpp
+++ b/apps/opencs/model/prefs/modifiersetting.hpp
@@ -3,6 +3,9 @@
#include "setting.hpp"
+#include <string>
+#include <utility>
+
class QMutex;
class QObject;
class QWidget;
diff --git a/apps/opencs/model/prefs/shortcut.cpp b/apps/opencs/model/prefs/shortcut.cpp
index ae52df5912..673627e672 100644
--- a/apps/opencs/model/prefs/shortcut.cpp
+++ b/apps/opencs/model/prefs/shortcut.cpp
@@ -1,6 +1,7 @@
#include "shortcut.hpp"
#include <cassert>
+#include <exception>
#include <QAction>
#include <QWidget>
diff --git a/apps/opencs/model/prefs/shortcutmanager.cpp b/apps/opencs/model/prefs/shortcutmanager.cpp
index dfba28bd70..a6f1da4f85 100644
--- a/apps/opencs/model/prefs/shortcutmanager.cpp
+++ b/apps/opencs/model/prefs/shortcutmanager.cpp
@@ -1,6 +1,8 @@
#include "shortcutmanager.hpp"
#include <algorithm>
+#include <string>
+#include <utility>
#include <QStringList>
diff --git a/apps/opencs/model/prefs/shortcutmanager.hpp b/apps/opencs/model/prefs/shortcutmanager.hpp
index 3fe3853f03..fc8db3f2b0 100644
--- a/apps/opencs/model/prefs/shortcutmanager.hpp
+++ b/apps/opencs/model/prefs/shortcutmanager.hpp
@@ -2,6 +2,8 @@
#define CSM_PREFS_SHORTCUTMANAGER_H
#include <map>
+#include <string>
+#include <utility>
#include <QKeySequence>
#include <QObject>
diff --git a/apps/opencs/model/prefs/shortcutsetting.cpp b/apps/opencs/model/prefs/shortcutsetting.cpp
index eb1e398ecd..d8c71d7008 100644
--- a/apps/opencs/model/prefs/shortcutsetting.cpp
+++ b/apps/opencs/model/prefs/shortcutsetting.cpp
@@ -10,6 +10,9 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "shortcutmanager.hpp"
#include "state.hpp"
diff --git a/apps/opencs/model/prefs/shortcutsetting.hpp b/apps/opencs/model/prefs/shortcutsetting.hpp
index f620ae3556..bef140dada 100644
--- a/apps/opencs/model/prefs/shortcutsetting.hpp
+++ b/apps/opencs/model/prefs/shortcutsetting.hpp
@@ -1,15 +1,22 @@
#ifndef CSM_PREFS_SHORTCUTSETTING_H
#define CSM_PREFS_SHORTCUTSETTING_H
+#include <string>
+#include <utility>
+
#include <QKeySequence>
#include "setting.hpp"
class QEvent;
+class QMutex;
+class QObject;
class QPushButton;
+class QWidget;
namespace CSMPrefs
{
+ class Category;
class ShortcutSetting : public Setting
{
Q_OBJECT
diff --git a/apps/opencs/model/prefs/state.cpp b/apps/opencs/model/prefs/state.cpp
index 16fa227629..bf7bf4d2f4 100644
--- a/apps/opencs/model/prefs/state.cpp
+++ b/apps/opencs/model/prefs/state.cpp
@@ -1,9 +1,20 @@
-
#include "state.hpp"
+#include <QColor>
+#include <QKeySequence>
+
+#include <filesystem>
#include <sstream>
#include <stdexcept>
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/enumsetting.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/prefs/shortcutmanager.hpp>
+#include <components/settings/categories.hpp>
#include <components/settings/settings.hpp>
#include "boolsetting.hpp"
diff --git a/apps/opencs/model/prefs/stringsetting.cpp b/apps/opencs/model/prefs/stringsetting.cpp
index 2f8bf089cd..9016e2c8cd 100644
--- a/apps/opencs/model/prefs/stringsetting.cpp
+++ b/apps/opencs/model/prefs/stringsetting.cpp
@@ -6,6 +6,8 @@
#include <components/settings/settings.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "category.hpp"
#include "state.hpp"
diff --git a/apps/opencs/model/prefs/stringsetting.hpp b/apps/opencs/model/prefs/stringsetting.hpp
index 275dfde3c6..4494b1a95b 100644
--- a/apps/opencs/model/prefs/stringsetting.hpp
+++ b/apps/opencs/model/prefs/stringsetting.hpp
@@ -3,10 +3,17 @@
#include "setting.hpp"
+#include <string>
+#include <utility>
+
class QLineEdit;
+class QMutex;
+class QObject;
+class QWidget;
namespace CSMPrefs
{
+ class Category;
class StringSetting : public Setting
{
Q_OBJECT
diff --git a/apps/opencs/model/tools/birthsigncheck.cpp b/apps/opencs/model/tools/birthsigncheck.cpp
index e7408ab2f8..f642ab3a19 100644
--- a/apps/opencs/model/tools/birthsigncheck.cpp
+++ b/apps/opencs/model/tools/birthsigncheck.cpp
@@ -1,5 +1,15 @@
#include "birthsigncheck.hpp"
+#include <string>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/resources.hpp>
+
+#include <components/esm3/loadbsgn.hpp>
#include <components/misc/resourcehelpers.hpp>
#include "../prefs/state.hpp"
diff --git a/apps/opencs/model/tools/birthsigncheck.hpp b/apps/opencs/model/tools/birthsigncheck.hpp
index 01f12cb5f1..d01beb0245 100644
--- a/apps/opencs/model/tools/birthsigncheck.hpp
+++ b/apps/opencs/model/tools/birthsigncheck.hpp
@@ -1,13 +1,25 @@
#ifndef CSM_TOOLS_BIRTHSIGNCHECK_H
#define CSM_TOOLS_BIRTHSIGNCHECK_H
-#include <components/esm3/loadbsgn.hpp>
-
#include "../world/idcollection.hpp"
-#include "../world/resources.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class Resources;
+}
+
+namespace ESM
+{
+ struct BirthSign;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that birthsign records are internally consistent
diff --git a/apps/opencs/model/tools/bodypartcheck.cpp b/apps/opencs/model/tools/bodypartcheck.cpp
index b441f5c544..e53cd9e40a 100644
--- a/apps/opencs/model/tools/bodypartcheck.cpp
+++ b/apps/opencs/model/tools/bodypartcheck.cpp
@@ -1,5 +1,17 @@
#include "bodypartcheck.hpp"
+#include <string>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/resources.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadbody.hpp>
+
#include "../prefs/state.hpp"
CSMTools::BodyPartCheckStage::BodyPartCheckStage(const CSMWorld::IdCollection<ESM::BodyPart>& bodyParts,
diff --git a/apps/opencs/model/tools/bodypartcheck.hpp b/apps/opencs/model/tools/bodypartcheck.hpp
index 7829fd0e6c..b945668e5e 100644
--- a/apps/opencs/model/tools/bodypartcheck.hpp
+++ b/apps/opencs/model/tools/bodypartcheck.hpp
@@ -1,14 +1,28 @@
#ifndef CSM_TOOLS_BODYPARTCHECK_H
#define CSM_TOOLS_BODYPARTCHECK_H
-#include <components/esm3/loadbody.hpp>
#include <components/esm3/loadrace.hpp>
#include "../world/idcollection.hpp"
-#include "../world/resources.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class Resources;
+}
+
+namespace ESM
+{
+ struct BodyPart;
+ struct Race;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that body part records are internally consistent
diff --git a/apps/opencs/model/tools/classcheck.cpp b/apps/opencs/model/tools/classcheck.cpp
index d650e0b192..21b0de8e07 100644
--- a/apps/opencs/model/tools/classcheck.cpp
+++ b/apps/opencs/model/tools/classcheck.cpp
@@ -1,6 +1,15 @@
#include "classcheck.hpp"
#include <map>
+#include <string>
+#include <utility>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include <components/esm3/loadclas.hpp>
#include <components/esm3/loadskil.hpp>
diff --git a/apps/opencs/model/tools/classcheck.hpp b/apps/opencs/model/tools/classcheck.hpp
index 1947fa3072..9830a2b9d9 100644
--- a/apps/opencs/model/tools/classcheck.hpp
+++ b/apps/opencs/model/tools/classcheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_CLASSCHECK_H
#define CSM_TOOLS_CLASSCHECK_H
-#include <components/esm3/loadclas.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Class;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that class records are internally consistent
diff --git a/apps/opencs/model/tools/enchantmentcheck.cpp b/apps/opencs/model/tools/enchantmentcheck.cpp
index 6dc82ef9aa..d6cb22b738 100644
--- a/apps/opencs/model/tools/enchantmentcheck.cpp
+++ b/apps/opencs/model/tools/enchantmentcheck.cpp
@@ -1,5 +1,18 @@
#include "enchantmentcheck.hpp"
+#include <stddef.h>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm3/effectlist.hpp>
+#include <components/esm3/loadench.hpp>
+
#include "../prefs/state.hpp"
#include "../world/universalid.hpp"
diff --git a/apps/opencs/model/tools/enchantmentcheck.hpp b/apps/opencs/model/tools/enchantmentcheck.hpp
index 0d5e31f0b1..3fab99c2a5 100644
--- a/apps/opencs/model/tools/enchantmentcheck.hpp
+++ b/apps/opencs/model/tools/enchantmentcheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_ENCHANTMENTCHECK_H
#define CSM_TOOLS_ENCHANTMENTCHECK_H
-#include <components/esm3/loadench.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Enchantment;
+}
+
namespace CSMTools
{
/// \brief Make sure that enchantment records are correct
diff --git a/apps/opencs/model/tools/factioncheck.cpp b/apps/opencs/model/tools/factioncheck.cpp
index 35fe3bd4a4..094d8bc7f9 100644
--- a/apps/opencs/model/tools/factioncheck.cpp
+++ b/apps/opencs/model/tools/factioncheck.cpp
@@ -1,7 +1,17 @@
#include "factioncheck.hpp"
#include <map>
+#include <string>
+#include <utility>
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadfact.hpp>
#include <components/esm3/loadskil.hpp>
#include "../prefs/state.hpp"
diff --git a/apps/opencs/model/tools/factioncheck.hpp b/apps/opencs/model/tools/factioncheck.hpp
index bc324fc4c2..4339b3a6b1 100644
--- a/apps/opencs/model/tools/factioncheck.hpp
+++ b/apps/opencs/model/tools/factioncheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_FACTIONCHECK_H
#define CSM_TOOLS_FACTIONCHECK_H
-#include <components/esm3/loadfact.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Faction;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that faction records are internally consistent
diff --git a/apps/opencs/model/tools/gmstcheck.cpp b/apps/opencs/model/tools/gmstcheck.cpp
index cbce4f35b1..c32c3e948c 100644
--- a/apps/opencs/model/tools/gmstcheck.cpp
+++ b/apps/opencs/model/tools/gmstcheck.cpp
@@ -1,6 +1,16 @@
#include "gmstcheck.hpp"
#include <sstream>
+#include <stddef.h>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadgmst.hpp>
#include "../prefs/state.hpp"
diff --git a/apps/opencs/model/tools/gmstcheck.hpp b/apps/opencs/model/tools/gmstcheck.hpp
index 45e8d0e0d3..c4c258c8f3 100644
--- a/apps/opencs/model/tools/gmstcheck.hpp
+++ b/apps/opencs/model/tools/gmstcheck.hpp
@@ -1,12 +1,24 @@
#ifndef CSM_TOOLS_GMSTCHECK_H
#define CSM_TOOLS_GMSTCHECK_H
-#include <components/esm3/loadgmst.hpp>
+#include <string>
+
+#include <components/esm3/variant.hpp>
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct GameSetting;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that GMSTs are alright
diff --git a/apps/opencs/model/tools/journalcheck.cpp b/apps/opencs/model/tools/journalcheck.cpp
index c7f0c0df6f..00bf6605d7 100644
--- a/apps/opencs/model/tools/journalcheck.cpp
+++ b/apps/opencs/model/tools/journalcheck.cpp
@@ -1,6 +1,23 @@
#include "journalcheck.hpp"
+#include <memory>
#include <set>
+#include <string>
+#include <utility>
+#include <variant>
+#include <vector>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <apps/opencs/model/world/infocollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loaddial.hpp>
+#include <components/esm3/loadinfo.hpp>
#include "../prefs/state.hpp"
diff --git a/apps/opencs/model/tools/journalcheck.hpp b/apps/opencs/model/tools/journalcheck.hpp
index 855d23092d..fabd3d0c8e 100644
--- a/apps/opencs/model/tools/journalcheck.hpp
+++ b/apps/opencs/model/tools/journalcheck.hpp
@@ -1,13 +1,25 @@
#ifndef CSM_TOOLS_JOURNALCHECK_H
#define CSM_TOOLS_JOURNALCHECK_H
-#include <components/esm3/loaddial.hpp>
-
#include "../world/idcollection.hpp"
-#include "../world/infocollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class InfoCollection;
+}
+
+namespace ESM
+{
+ struct Dialogue;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that journal infos are good
diff --git a/apps/opencs/model/tools/magiceffectcheck.cpp b/apps/opencs/model/tools/magiceffectcheck.cpp
index 4af4636073..f2d19187f5 100644
--- a/apps/opencs/model/tools/magiceffectcheck.cpp
+++ b/apps/opencs/model/tools/magiceffectcheck.cpp
@@ -1,9 +1,24 @@
#include "magiceffectcheck.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+#include <apps/opencs/model/world/resources.hpp>
+
+#include <components/esm3/loadmgef.hpp>
#include <components/misc/resourcehelpers.hpp>
#include "../prefs/state.hpp"
+namespace ESM
+{
+ struct Sound;
+}
+
std::string CSMTools::MagicEffectCheckStage::checkObject(
const std::string& id, const CSMWorld::UniversalId& type, const std::string& column) const
{
diff --git a/apps/opencs/model/tools/magiceffectcheck.hpp b/apps/opencs/model/tools/magiceffectcheck.hpp
index 154a15dc62..5950ee20d8 100644
--- a/apps/opencs/model/tools/magiceffectcheck.hpp
+++ b/apps/opencs/model/tools/magiceffectcheck.hpp
@@ -1,15 +1,33 @@
#ifndef CSM_TOOLS_MAGICEFFECTCHECK_HPP
#define CSM_TOOLS_MAGICEFFECTCHECK_HPP
-#include <components/esm3/loadmgef.hpp>
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/esm3/loadsoun.hpp>
#include "../world/idcollection.hpp"
-#include "../world/refidcollection.hpp"
-#include "../world/resources.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class RefIdCollection;
+ class Resources;
+}
+
+namespace ESM
+{
+ struct MagicEffect;
+ struct Sound;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that magic effect records are internally consistent
diff --git a/apps/opencs/model/tools/mandatoryid.cpp b/apps/opencs/model/tools/mandatoryid.cpp
index 75bea2014d..fd02d8b450 100644
--- a/apps/opencs/model/tools/mandatoryid.cpp
+++ b/apps/opencs/model/tools/mandatoryid.cpp
@@ -1,9 +1,14 @@
#include "mandatoryid.hpp"
+#include <memory>
+
#include "../world/collectionbase.hpp"
#include "../world/record.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
CSMTools::MandatoryIdStage::MandatoryIdStage(const CSMWorld::CollectionBase& idCollection,
const CSMWorld::UniversalId& collectionId, const std::vector<std::string>& ids)
: mIdCollection(idCollection)
diff --git a/apps/opencs/model/tools/mandatoryid.hpp b/apps/opencs/model/tools/mandatoryid.hpp
index 77de77626c..f0ca04671d 100644
--- a/apps/opencs/model/tools/mandatoryid.hpp
+++ b/apps/opencs/model/tools/mandatoryid.hpp
@@ -8,6 +8,11 @@
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
namespace CSMWorld
{
class CollectionBase;
diff --git a/apps/opencs/model/tools/mergeoperation.cpp b/apps/opencs/model/tools/mergeoperation.cpp
index 8fd1232edf..2c7a8bbc4e 100644
--- a/apps/opencs/model/tools/mergeoperation.cpp
+++ b/apps/opencs/model/tools/mergeoperation.cpp
@@ -1,6 +1,38 @@
-
#include "mergeoperation.hpp"
+#include <utility>
+#include <variant>
+
+#include <apps/opencs/model/doc/operation.hpp>
+#include <apps/opencs/model/tools/mergestate.hpp>
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <apps/opencs/model/world/infocollection.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+
+#include <components/esm3/debugprofile.hpp>
+#include <components/esm3/filter.hpp>
+#include <components/esm3/loadbody.hpp>
+#include <components/esm3/loadbsgn.hpp>
+#include <components/esm3/loadclas.hpp>
+#include <components/esm3/loaddial.hpp>
+#include <components/esm3/loadench.hpp>
+#include <components/esm3/loadfact.hpp>
+#include <components/esm3/loadglob.hpp>
+#include <components/esm3/loadgmst.hpp>
+#include <components/esm3/loadmgef.hpp>
+#include <components/esm3/loadrace.hpp>
+#include <components/esm3/loadregn.hpp>
+#include <components/esm3/loadscpt.hpp>
+#include <components/esm3/loadskil.hpp>
+#include <components/esm3/loadsndg.hpp>
+#include <components/esm3/loadsoun.hpp>
+#include <components/esm3/loadspel.hpp>
+#include <components/esm3/loadsscr.hpp>
+
#include "../doc/document.hpp"
#include "../doc/state.hpp"
diff --git a/apps/opencs/model/tools/mergeoperation.hpp b/apps/opencs/model/tools/mergeoperation.hpp
index be06de47fa..2cce2bec0d 100644
--- a/apps/opencs/model/tools/mergeoperation.hpp
+++ b/apps/opencs/model/tools/mergeoperation.hpp
@@ -9,6 +9,8 @@
#include "mergestate.hpp"
+class QObject;
+
namespace CSMDoc
{
class Document;
diff --git a/apps/opencs/model/tools/mergestages.cpp b/apps/opencs/model/tools/mergestages.cpp
index ce52ab9608..501dcf8848 100644
--- a/apps/opencs/model/tools/mergestages.cpp
+++ b/apps/opencs/model/tools/mergestages.cpp
@@ -1,5 +1,20 @@
#include "mergestages.hpp"
+#include <cstdint>
+#include <filesystem>
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/landtexture.hpp>
+#include <apps/opencs/model/world/metadata.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/cellref.hpp>
+#include <components/esm3/esmreader.hpp>
#include <components/misc/strings/lower.hpp>
#include "mergestate.hpp"
@@ -9,6 +24,11 @@
#include "../world/data.hpp"
#include "../world/idtable.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
CSMTools::StartMergeStage::StartMergeStage(MergeState& state)
: mState(state)
{
diff --git a/apps/opencs/model/tools/mergestages.hpp b/apps/opencs/model/tools/mergestages.hpp
index 13a9de2bfe..0763398e9d 100644
--- a/apps/opencs/model/tools/mergestages.hpp
+++ b/apps/opencs/model/tools/mergestages.hpp
@@ -1,9 +1,13 @@
#ifndef CSM_TOOLS_MERGESTAGES_H
#define CSM_TOOLS_MERGESTAGES_H
-#include <algorithm>
#include <map>
#include <memory>
+#include <string>
+
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
#include <components/to_utf8/to_utf8.hpp>
@@ -13,6 +17,11 @@
#include "mergestate.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
namespace CSMTools
{
class StartMergeStage : public CSMDoc::Stage
diff --git a/apps/opencs/model/tools/pathgridcheck.cpp b/apps/opencs/model/tools/pathgridcheck.cpp
index fa5af03d21..54c800e07c 100644
--- a/apps/opencs/model/tools/pathgridcheck.cpp
+++ b/apps/opencs/model/tools/pathgridcheck.cpp
@@ -1,8 +1,16 @@
#include "pathgridcheck.hpp"
#include <algorithm>
+#include <memory>
#include <sstream>
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm3/loadpgrd.hpp>
+
#include "../prefs/state.hpp"
#include "../world/idcollection.hpp"
diff --git a/apps/opencs/model/tools/pathgridcheck.hpp b/apps/opencs/model/tools/pathgridcheck.hpp
index f7b280fe5b..8d43e578f4 100644
--- a/apps/opencs/model/tools/pathgridcheck.hpp
+++ b/apps/opencs/model/tools/pathgridcheck.hpp
@@ -1,15 +1,23 @@
#ifndef CSM_TOOLS_PATHGRIDCHECK_H
#define CSM_TOOLS_PATHGRIDCHECK_H
-#include "../world/collection.hpp"
+#include <algorithm>
+#include <vector>
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
namespace CSMWorld
{
struct Pathgrid;
template <typename T, typename AT>
class SubCellCollection;
+ template <typename ESXRecordT>
+ struct IdAccessor;
}
namespace CSMTools
diff --git a/apps/opencs/model/tools/racecheck.cpp b/apps/opencs/model/tools/racecheck.cpp
index 5fceeaa2e4..78f72f44c5 100644
--- a/apps/opencs/model/tools/racecheck.cpp
+++ b/apps/opencs/model/tools/racecheck.cpp
@@ -1,9 +1,18 @@
#include "racecheck.hpp"
+#include <string>
+
#include "../prefs/state.hpp"
#include "../world/universalid.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <components/esm3/loadrace.hpp>
+
void CSMTools::RaceCheckStage::performPerRecord(int stage, CSMDoc::Messages& messages)
{
const CSMWorld::Record<ESM::Race>& record = mRaces.getRecord(stage);
diff --git a/apps/opencs/model/tools/racecheck.hpp b/apps/opencs/model/tools/racecheck.hpp
index e80f7c12d5..600e0d7fc5 100644
--- a/apps/opencs/model/tools/racecheck.hpp
+++ b/apps/opencs/model/tools/racecheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_RACECHECK_H
#define CSM_TOOLS_RACECHECK_H
-#include <components/esm3/loadrace.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Race;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that race records are internally consistent
diff --git a/apps/opencs/model/tools/referenceablecheck.cpp b/apps/opencs/model/tools/referenceablecheck.cpp
index d95357bc5a..adde19e78f 100644
--- a/apps/opencs/model/tools/referenceablecheck.cpp
+++ b/apps/opencs/model/tools/referenceablecheck.cpp
@@ -1,5 +1,35 @@
#include "referenceablecheck.hpp"
+#include <memory>
+#include <stddef.h>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+#include <apps/opencs/model/world/resources.hpp>
+
+#include <components/esm3/aipackage.hpp>
+#include <components/esm3/loadacti.hpp>
+#include <components/esm3/loadalch.hpp>
+#include <components/esm3/loadappa.hpp>
+#include <components/esm3/loadarmo.hpp>
+#include <components/esm3/loadbook.hpp>
+#include <components/esm3/loadclot.hpp>
+#include <components/esm3/loadcont.hpp>
+#include <components/esm3/loadcrea.hpp>
+#include <components/esm3/loaddoor.hpp>
+#include <components/esm3/loadingr.hpp>
+#include <components/esm3/loadlevlist.hpp>
+#include <components/esm3/loadligh.hpp>
+#include <components/esm3/loadlock.hpp>
+#include <components/esm3/loadmisc.hpp>
+#include <components/esm3/loadnpc.hpp>
+#include <components/esm3/loadprob.hpp>
+#include <components/esm3/loadrepa.hpp>
+#include <components/esm3/loadstat.hpp>
+#include <components/esm3/loadweap.hpp>
#include <components/misc/resourcehelpers.hpp>
#include <components/misc/strings/algorithm.hpp>
@@ -8,6 +38,15 @@
#include "../world/record.hpp"
#include "../world/universalid.hpp"
+namespace ESM
+{
+ class Script;
+ struct BodyPart;
+ struct Class;
+ struct Faction;
+ struct Race;
+}
+
CSMTools::ReferenceableCheckStage::ReferenceableCheckStage(const CSMWorld::RefIdData& referenceable,
const CSMWorld::IdCollection<ESM::Race>& races, const CSMWorld::IdCollection<ESM::Class>& classes,
const CSMWorld::IdCollection<ESM::Faction>& faction, const CSMWorld::IdCollection<ESM::Script>& scripts,
diff --git a/apps/opencs/model/tools/referenceablecheck.hpp b/apps/opencs/model/tools/referenceablecheck.hpp
index 2be0070648..1c578ecedd 100644
--- a/apps/opencs/model/tools/referenceablecheck.hpp
+++ b/apps/opencs/model/tools/referenceablecheck.hpp
@@ -1,11 +1,13 @@
#ifndef REFERENCEABLECHECKSTAGE_H
#define REFERENCEABLECHECKSTAGE_H
+#include <string>
+#include <vector>
+
#include "../doc/stage.hpp"
#include "../world/idcollection.hpp"
#include "../world/refiddata.hpp"
-#include "../world/resources.hpp"
#include <components/esm3/loadbody.hpp>
#include <components/esm3/loadclas.hpp>
@@ -13,6 +15,16 @@
#include <components/esm3/loadrace.hpp>
#include <components/esm3/loadscpt.hpp>
+namespace CSMWorld
+{
+ class Resources;
+}
+
+namespace CSMDoc
+{
+ class Messages;
+}
+
namespace CSMTools
{
class ReferenceableCheckStage : public CSMDoc::Stage
diff --git a/apps/opencs/model/tools/referencecheck.cpp b/apps/opencs/model/tools/referencecheck.cpp
index b1ae8441bd..5497067280 100644
--- a/apps/opencs/model/tools/referencecheck.cpp
+++ b/apps/opencs/model/tools/referencecheck.cpp
@@ -1,9 +1,23 @@
#include "referencecheck.hpp"
+#include <string>
+
#include "../prefs/state.hpp"
#include "../../model/world/cell.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/cellref.hpp>
#include <components/esm3/loadfact.hpp>
CSMTools::ReferenceCheckStage::ReferenceCheckStage(const CSMWorld::RefCollection& references,
diff --git a/apps/opencs/model/tools/referencecheck.hpp b/apps/opencs/model/tools/referencecheck.hpp
index e09df29434..04cca2b803 100644
--- a/apps/opencs/model/tools/referencecheck.hpp
+++ b/apps/opencs/model/tools/referencecheck.hpp
@@ -3,8 +3,6 @@
#include "../world/idcollection.hpp"
#include "../world/refcollection.hpp"
-#include "../world/refidcollection.hpp"
-#include "../world/refiddata.hpp"
#include "../doc/stage.hpp"
@@ -13,6 +11,18 @@ namespace ESM
struct Faction;
}
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class RefIdCollection;
+ class RefIdData;
+ struct Cell;
+}
+
namespace CSMTools
{
class ReferenceCheckStage : public CSMDoc::Stage
diff --git a/apps/opencs/model/tools/regioncheck.cpp b/apps/opencs/model/tools/regioncheck.cpp
index 754905c677..25c5a09986 100644
--- a/apps/opencs/model/tools/regioncheck.cpp
+++ b/apps/opencs/model/tools/regioncheck.cpp
@@ -1,9 +1,20 @@
#include "regioncheck.hpp"
+#include <string>
+#include <vector>
+
#include "../prefs/state.hpp"
#include "../world/universalid.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm3/loadregn.hpp>
+
CSMTools::RegionCheckStage::RegionCheckStage(const CSMWorld::IdCollection<ESM::Region>& regions)
: mRegions(regions)
{
diff --git a/apps/opencs/model/tools/regioncheck.hpp b/apps/opencs/model/tools/regioncheck.hpp
index b9e0fb04f6..9ac6e4e92e 100644
--- a/apps/opencs/model/tools/regioncheck.hpp
+++ b/apps/opencs/model/tools/regioncheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_REGIONCHECK_H
#define CSM_TOOLS_REGIONCHECK_H
-#include <components/esm3/loadregn.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Region;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that region records are internally consistent
diff --git a/apps/opencs/model/tools/reportmodel.cpp b/apps/opencs/model/tools/reportmodel.cpp
index e6afbe486b..d8e99969a7 100644
--- a/apps/opencs/model/tools/reportmodel.cpp
+++ b/apps/opencs/model/tools/reportmodel.cpp
@@ -1,8 +1,13 @@
#include "reportmodel.hpp"
+#include <algorithm>
+#include <memory>
#include <sstream>
#include <stdexcept>
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "../world/columns.hpp"
CSMTools::ReportModel::ReportModel(bool fieldColumn, bool severityColumn)
diff --git a/apps/opencs/model/tools/reportmodel.hpp b/apps/opencs/model/tools/reportmodel.hpp
index b862e5c647..449105cea0 100644
--- a/apps/opencs/model/tools/reportmodel.hpp
+++ b/apps/opencs/model/tools/reportmodel.hpp
@@ -5,10 +5,15 @@
#include <vector>
#include <QAbstractTableModel>
+#include <QModelIndex>
+#include <QVariant>
#include "../doc/messages.hpp"
-#include "../world/universalid.hpp"
+namespace CSMWorld
+{
+ class UniversalId;
+}
namespace CSMTools
{
diff --git a/apps/opencs/model/tools/scriptcheck.cpp b/apps/opencs/model/tools/scriptcheck.cpp
index 9a78db03c0..5244c34640 100644
--- a/apps/opencs/model/tools/scriptcheck.cpp
+++ b/apps/opencs/model/tools/scriptcheck.cpp
@@ -1,12 +1,23 @@
#include "scriptcheck.hpp"
+#include <exception>
#include <sstream>
+#include <string>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/scriptcontext.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include <components/compiler/exception.hpp>
#include <components/compiler/extensions0.hpp>
#include <components/compiler/fileparser.hpp>
#include <components/compiler/scanner.hpp>
#include <components/compiler/tokenloc.hpp>
+#include <components/esm3/loadscpt.hpp>
#include "../doc/document.hpp"
diff --git a/apps/opencs/model/tools/scriptcheck.hpp b/apps/opencs/model/tools/scriptcheck.hpp
index d8d4d45d3a..e83ff4acd1 100644
--- a/apps/opencs/model/tools/scriptcheck.hpp
+++ b/apps/opencs/model/tools/scriptcheck.hpp
@@ -1,9 +1,13 @@
#ifndef CSM_TOOLS_SCRIPTCHECK_H
#define CSM_TOOLS_SCRIPTCHECK_H
+#include <string>
+
#include <components/compiler/errorhandler.hpp>
#include <components/compiler/extensions.hpp>
+#include <apps/opencs/model/doc/messages.hpp>
+
#include "../doc/stage.hpp"
#include "../world/scriptcontext.hpp"
@@ -13,6 +17,11 @@ namespace CSMDoc
class Document;
}
+namespace Compiler
+{
+ struct TokenLoc;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that scripts compile
diff --git a/apps/opencs/model/tools/search.cpp b/apps/opencs/model/tools/search.cpp
index f7f5ff56e9..1a5378ad77 100644
--- a/apps/opencs/model/tools/search.cpp
+++ b/apps/opencs/model/tools/search.cpp
@@ -1,7 +1,16 @@
#include "search.hpp"
+#include <QModelIndex>
+#include <QRegExp>
+#include <QString>
+
+#include <memory>
#include <sstream>
#include <stdexcept>
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/model/world/columns.hpp>
#include "../doc/document.hpp"
#include "../doc/messages.hpp"
diff --git a/apps/opencs/model/tools/searchoperation.cpp b/apps/opencs/model/tools/searchoperation.cpp
index 48247481d6..d7e5dd419d 100644
--- a/apps/opencs/model/tools/searchoperation.cpp
+++ b/apps/opencs/model/tools/searchoperation.cpp
@@ -6,6 +6,13 @@
#include "../world/data.hpp"
#include "../world/idtablebase.hpp"
+#include <vector>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/doc/operation.hpp>
+#include <apps/opencs/model/tools/search.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "searchstage.hpp"
CSMTools::SearchOperation::SearchOperation(CSMDoc::Document& document)
diff --git a/apps/opencs/model/tools/searchstage.cpp b/apps/opencs/model/tools/searchstage.cpp
index 074a846871..c52eed39e4 100644
--- a/apps/opencs/model/tools/searchstage.cpp
+++ b/apps/opencs/model/tools/searchstage.cpp
@@ -2,8 +2,15 @@
#include "../world/idtablebase.hpp"
+#include <apps/opencs/model/tools/search.hpp>
+
#include "searchoperation.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
CSMTools::SearchStage::SearchStage(const CSMWorld::IdTableBase* model)
: mModel(model)
, mOperation(nullptr)
diff --git a/apps/opencs/model/tools/searchstage.hpp b/apps/opencs/model/tools/searchstage.hpp
index 6ce98c84f2..69a5eed464 100644
--- a/apps/opencs/model/tools/searchstage.hpp
+++ b/apps/opencs/model/tools/searchstage.hpp
@@ -5,6 +5,11 @@
#include "search.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
namespace CSMWorld
{
class IdTableBase;
diff --git a/apps/opencs/model/tools/skillcheck.cpp b/apps/opencs/model/tools/skillcheck.cpp
index 8fd1f5f664..b3300c4fae 100644
--- a/apps/opencs/model/tools/skillcheck.cpp
+++ b/apps/opencs/model/tools/skillcheck.cpp
@@ -1,9 +1,18 @@
#include "skillcheck.hpp"
+#include <string>
+
#include "../prefs/state.hpp"
#include "../world/universalid.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <components/esm3/loadskil.hpp>
+
CSMTools::SkillCheckStage::SkillCheckStage(const CSMWorld::IdCollection<ESM::Skill>& skills)
: mSkills(skills)
{
diff --git a/apps/opencs/model/tools/skillcheck.hpp b/apps/opencs/model/tools/skillcheck.hpp
index c88f7e3715..517dfc807d 100644
--- a/apps/opencs/model/tools/skillcheck.hpp
+++ b/apps/opencs/model/tools/skillcheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_SKILLCHECK_H
#define CSM_TOOLS_SKILLCHECK_H
-#include <components/esm3/loadskil.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Skill;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that skill records are internally consistent
diff --git a/apps/opencs/model/tools/soundcheck.cpp b/apps/opencs/model/tools/soundcheck.cpp
index cc57eb6017..b14222523b 100644
--- a/apps/opencs/model/tools/soundcheck.cpp
+++ b/apps/opencs/model/tools/soundcheck.cpp
@@ -1,9 +1,20 @@
#include "soundcheck.hpp"
+#include <string>
+
#include "../prefs/state.hpp"
#include "../world/universalid.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/resources.hpp>
+
+#include <components/esm3/loadsoun.hpp>
+
CSMTools::SoundCheckStage::SoundCheckStage(
const CSMWorld::IdCollection<ESM::Sound>& sounds, const CSMWorld::Resources& soundfiles)
: mSounds(sounds)
diff --git a/apps/opencs/model/tools/soundcheck.hpp b/apps/opencs/model/tools/soundcheck.hpp
index d97ffe9ab4..4f540a6faf 100644
--- a/apps/opencs/model/tools/soundcheck.hpp
+++ b/apps/opencs/model/tools/soundcheck.hpp
@@ -1,13 +1,25 @@
#ifndef CSM_TOOLS_SOUNDCHECK_H
#define CSM_TOOLS_SOUNDCHECK_H
-#include <components/esm3/loadsoun.hpp>
-
#include "../world/idcollection.hpp"
-#include "../world/resources.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class Resources;
+}
+
+namespace ESM
+{
+ struct Sound;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that sound records are internally consistent
diff --git a/apps/opencs/model/tools/soundgencheck.cpp b/apps/opencs/model/tools/soundgencheck.cpp
index 5168931fc1..63b9d9fc91 100644
--- a/apps/opencs/model/tools/soundgencheck.cpp
+++ b/apps/opencs/model/tools/soundgencheck.cpp
@@ -1,10 +1,19 @@
#include "soundgencheck.hpp"
+#include <string>
+
#include "../prefs/state.hpp"
#include "../world/refiddata.hpp"
#include "../world/universalid.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+
#include <components/esm3/loadsndg.hpp>
#include <components/esm3/loadsoun.hpp>
diff --git a/apps/opencs/model/tools/soundgencheck.hpp b/apps/opencs/model/tools/soundgencheck.hpp
index a557f0b7d2..0a23107a6d 100644
--- a/apps/opencs/model/tools/soundgencheck.hpp
+++ b/apps/opencs/model/tools/soundgencheck.hpp
@@ -2,10 +2,19 @@
#define CSM_TOOLS_SOUNDGENCHECK_HPP
#include "../world/idcollection.hpp"
-#include "../world/refidcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class RefIdCollection;
+}
+
namespace ESM
{
struct SoundGenerator;
diff --git a/apps/opencs/model/tools/spellcheck.cpp b/apps/opencs/model/tools/spellcheck.cpp
index 066b50b744..f91438dc22 100644
--- a/apps/opencs/model/tools/spellcheck.cpp
+++ b/apps/opencs/model/tools/spellcheck.cpp
@@ -1,5 +1,14 @@
#include "spellcheck.hpp"
+#include <string>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/esm3/loadspel.hpp>
#include "../prefs/state.hpp"
diff --git a/apps/opencs/model/tools/spellcheck.hpp b/apps/opencs/model/tools/spellcheck.hpp
index 02eabe6f9f..6d1278689d 100644
--- a/apps/opencs/model/tools/spellcheck.hpp
+++ b/apps/opencs/model/tools/spellcheck.hpp
@@ -1,12 +1,20 @@
#ifndef CSM_TOOLS_SPELLCHECK_H
#define CSM_TOOLS_SPELLCHECK_H
-#include <components/esm3/loadspel.hpp>
-
#include "../world/idcollection.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ struct Spell;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: make sure that spell records are internally consistent
diff --git a/apps/opencs/model/tools/startscriptcheck.cpp b/apps/opencs/model/tools/startscriptcheck.cpp
index f41598c43f..2a730cb259 100644
--- a/apps/opencs/model/tools/startscriptcheck.cpp
+++ b/apps/opencs/model/tools/startscriptcheck.cpp
@@ -1,9 +1,24 @@
#include "startscriptcheck.hpp"
+#include <string>
+
#include "../prefs/state.hpp"
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadsscr.hpp>
#include <components/misc/strings/lower.hpp>
+namespace ESM
+{
+ class Script;
+}
+
CSMTools::StartScriptCheckStage::StartScriptCheckStage(
const CSMWorld::IdCollection<ESM::StartScript>& startScripts, const CSMWorld::IdCollection<ESM::Script>& scripts)
: mStartScripts(startScripts)
diff --git a/apps/opencs/model/tools/startscriptcheck.hpp b/apps/opencs/model/tools/startscriptcheck.hpp
index 6283ecfeff..31e5e451df 100644
--- a/apps/opencs/model/tools/startscriptcheck.hpp
+++ b/apps/opencs/model/tools/startscriptcheck.hpp
@@ -2,12 +2,22 @@
#define CSM_TOOLS_STARTSCRIPTCHECK_H
#include <components/esm3/loadscpt.hpp>
-#include <components/esm3/loadsscr.hpp>
#include "../doc/stage.hpp"
#include "../world/idcollection.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace ESM
+{
+ class Script;
+ struct StartScript;
+}
+
namespace CSMTools
{
class StartScriptCheckStage : public CSMDoc::Stage
diff --git a/apps/opencs/model/tools/tools.cpp b/apps/opencs/model/tools/tools.cpp
index e7fc1bf2e1..a2b95f1a30 100644
--- a/apps/opencs/model/tools/tools.cpp
+++ b/apps/opencs/model/tools/tools.cpp
@@ -1,5 +1,11 @@
#include "tools.hpp"
+#include <stdexcept>
+#include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
#include "../doc/document.hpp"
#include "../doc/operation.hpp"
#include "../doc/state.hpp"
@@ -32,6 +38,15 @@
#include "startscriptcheck.hpp"
#include "topicinfocheck.hpp"
+#include <apps/opencs/model/doc/operationholder.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+
+namespace CSMDoc
+{
+ struct Message;
+}
+
CSMDoc::OperationHolder* CSMTools::Tools::get(int type)
{
switch (type)
diff --git a/apps/opencs/model/tools/tools.hpp b/apps/opencs/model/tools/tools.hpp
index 8481b58735..c9e8937c90 100644
--- a/apps/opencs/model/tools/tools.hpp
+++ b/apps/opencs/model/tools/tools.hpp
@@ -4,6 +4,8 @@
#include <map>
#include <memory>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/to_utf8/to_utf8.hpp>
#include <QObject>
@@ -13,13 +15,13 @@
namespace CSMWorld
{
class Data;
- class UniversalId;
}
namespace CSMDoc
{
class Operation;
class Document;
+ struct Message;
}
namespace CSMTools
diff --git a/apps/opencs/model/tools/topicinfocheck.cpp b/apps/opencs/model/tools/topicinfocheck.cpp
index 2577ba1baf..0c1b8b4f4f 100644
--- a/apps/opencs/model/tools/topicinfocheck.cpp
+++ b/apps/opencs/model/tools/topicinfocheck.cpp
@@ -1,6 +1,30 @@
#include "topicinfocheck.hpp"
#include <sstream>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <apps/opencs/model/world/infocollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+#include <apps/opencs/model/world/resources.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadclas.hpp>
+#include <components/esm3/loaddial.hpp>
+#include <components/esm3/loadfact.hpp>
+#include <components/esm3/loadglob.hpp>
+#include <components/esm3/loadgmst.hpp>
+#include <components/esm3/loadinfo.hpp>
+#include <components/esm3/loadrace.hpp>
+#include <components/esm3/loadregn.hpp>
+#include <components/esm3/variant.hpp>
#include "../prefs/state.hpp"
diff --git a/apps/opencs/model/tools/topicinfocheck.hpp b/apps/opencs/model/tools/topicinfocheck.hpp
index 864bca61d2..139e676928 100644
--- a/apps/opencs/model/tools/topicinfocheck.hpp
+++ b/apps/opencs/model/tools/topicinfocheck.hpp
@@ -2,23 +2,40 @@
#define CSM_TOOLS_TOPICINFOCHECK_HPP
#include <set>
+#include <string>
-#include <components/esm3/loadclas.hpp>
-#include <components/esm3/loaddial.hpp>
-#include <components/esm3/loadfact.hpp>
-#include <components/esm3/loadglob.hpp>
-#include <components/esm3/loadgmst.hpp>
-#include <components/esm3/loadrace.hpp>
-#include <components/esm3/loadregn.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadinfo.hpp>
-#include "../world/cell.hpp"
#include "../world/idcollection.hpp"
-#include "../world/infocollection.hpp"
-#include "../world/refiddata.hpp"
-#include "../world/resources.hpp"
#include "../doc/stage.hpp"
+namespace CSMDoc
+{
+ class Messages;
+}
+
+namespace CSMWorld
+{
+ class InfoCollection;
+ class RefIdData;
+ class Resources;
+ struct Cell;
+}
+
+namespace ESM
+{
+ struct Class;
+ struct Dialogue;
+ struct Faction;
+ struct GameSetting;
+ struct Global;
+ struct Race;
+ struct Region;
+}
+
namespace CSMTools
{
/// \brief VerifyStage: check topics
diff --git a/apps/opencs/model/world/actoradapter.cpp b/apps/opencs/model/world/actoradapter.cpp
index 2e40aa1607..d5bcf54270 100644
--- a/apps/opencs/model/world/actoradapter.cpp
+++ b/apps/opencs/model/world/actoradapter.cpp
@@ -1,7 +1,22 @@
#include "actoradapter.hpp"
+#include <QModelIndex>
+
+#include <algorithm>
+#include <string>
+#include <string_view>
+#include <vector>
+
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/esm3/loadarmo.hpp>
#include <components/esm3/loadclot.hpp>
+#include <components/esm3/loadcont.hpp>
+#include <components/esm3/loadcrea.hpp>
#include <components/esm3/loadnpc.hpp>
#include <components/esm3/loadrace.hpp>
#include <components/esm3/mappings.hpp>
@@ -9,9 +24,6 @@
#include "data.hpp"
-#include <string>
-#include <string_view>
-
namespace CSMWorld
{
const std::string& ActorAdapter::RaceData::getId() const
diff --git a/apps/opencs/model/world/actoradapter.hpp b/apps/opencs/model/world/actoradapter.hpp
index c144eb7ff4..363f01c952 100644
--- a/apps/opencs/model/world/actoradapter.hpp
+++ b/apps/opencs/model/world/actoradapter.hpp
@@ -3,9 +3,11 @@
#include <array>
#include <map>
+#include <memory>
#include <string>
#include <string_view>
#include <unordered_set>
+#include <utility>
#include <QModelIndex>
#include <QObject>
diff --git a/apps/opencs/model/world/cell.hpp b/apps/opencs/model/world/cell.hpp
index c68a701e1a..3d057c39c9 100644
--- a/apps/opencs/model/world/cell.hpp
+++ b/apps/opencs/model/world/cell.hpp
@@ -5,6 +5,11 @@
#include <components/esm3/loadcell.hpp>
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
/// \brief Wrapper for Cell record
diff --git a/apps/opencs/model/world/cellcoordinates.cpp b/apps/opencs/model/world/cellcoordinates.cpp
index 14dcadddda..a82d4649a6 100644
--- a/apps/opencs/model/world/cellcoordinates.cpp
+++ b/apps/opencs/model/world/cellcoordinates.cpp
@@ -1,9 +1,8 @@
#include "cellcoordinates.hpp"
#include <cmath>
-
-#include <ostream>
#include <sstream>
+#include <type_traits>
#include <osg/Vec3d>
diff --git a/apps/opencs/model/world/cellselection.cpp b/apps/opencs/model/world/cellselection.cpp
index 7ba2aa3129..e6b346be98 100644
--- a/apps/opencs/model/world/cellselection.cpp
+++ b/apps/opencs/model/world/cellselection.cpp
@@ -5,6 +5,7 @@
#include <cmath>
#include <limits>
#include <stdexcept>
+#include <utility>
CSMWorld::CellSelection::Iterator CSMWorld::CellSelection::begin() const
{
diff --git a/apps/opencs/model/world/cellselection.hpp b/apps/opencs/model/world/cellselection.hpp
index 3119886bd9..5a948aab98 100644
--- a/apps/opencs/model/world/cellselection.hpp
+++ b/apps/opencs/model/world/cellselection.hpp
@@ -5,10 +5,10 @@
#include <QMetaType>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+
namespace CSMWorld
{
- class CellCoordinates;
-
/// \brief Selection of cells in a paged worldspace
///
/// \note The CellSelection does not specify the worldspace it applies to.
diff --git a/apps/opencs/model/world/collection.hpp b/apps/opencs/model/world/collection.hpp
index 8a8cb48dfa..2c33cb18d0 100644
--- a/apps/opencs/model/world/collection.hpp
+++ b/apps/opencs/model/world/collection.hpp
@@ -19,6 +19,7 @@
#include "columnbase.hpp"
#include "land.hpp"
#include "landtexture.hpp"
+#include "record.hpp"
#include "ref.hpp"
namespace CSMWorld
diff --git a/apps/opencs/model/world/collectionbase.cpp b/apps/opencs/model/world/collectionbase.cpp
index 394400e6ed..7795f9cea4 100644
--- a/apps/opencs/model/world/collectionbase.cpp
+++ b/apps/opencs/model/world/collectionbase.cpp
@@ -2,6 +2,9 @@
#include <stdexcept>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "columnbase.hpp"
CSMWorld::CollectionBase::CollectionBase() {}
diff --git a/apps/opencs/model/world/columnbase.cpp b/apps/opencs/model/world/columnbase.cpp
index f9ad35dc3d..cc4ea92f96 100644
--- a/apps/opencs/model/world/columnbase.cpp
+++ b/apps/opencs/model/world/columnbase.cpp
@@ -1,5 +1,7 @@
#include "columnbase.hpp"
+#include <algorithm>
+
#include "columns.hpp"
CSMWorld::ColumnBase::ColumnBase(int columnId, Display displayType, int flags)
diff --git a/apps/opencs/model/world/columnbase.hpp b/apps/opencs/model/world/columnbase.hpp
index 4f0b25c14a..05c0afdf04 100644
--- a/apps/opencs/model/world/columnbase.hpp
+++ b/apps/opencs/model/world/columnbase.hpp
@@ -7,10 +7,11 @@
#include <QVariant>
-#include "record.hpp"
-
namespace CSMWorld
{
+ template <typename ESXRecordT>
+ struct Record;
+
struct ColumnBase
{
enum TableEditModes
diff --git a/apps/opencs/model/world/columnimp.cpp b/apps/opencs/model/world/columnimp.cpp
index 090c19b679..20246d644c 100644
--- a/apps/opencs/model/world/columnimp.cpp
+++ b/apps/opencs/model/world/columnimp.cpp
@@ -1,5 +1,13 @@
#include "columnimp.hpp"
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/landtexture.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm3/loadland.hpp>
+
#include <stdexcept>
namespace CSMWorld
diff --git a/apps/opencs/model/world/columnimp.hpp b/apps/opencs/model/world/columnimp.hpp
index 436b379b52..20042d526d 100644
--- a/apps/opencs/model/world/columnimp.hpp
+++ b/apps/opencs/model/world/columnimp.hpp
@@ -5,19 +5,27 @@
#include <cstdint>
#include <sstream>
#include <stdexcept>
+#include <string>
-#include <QVector>
+#include <osg/Math>
+#include <components/esm/defs.hpp>
#include <components/esm3/loadbody.hpp>
+#include <components/esm3/loadinfo.hpp>
#include <components/esm3/loadrace.hpp>
#include <components/esm3/loadskil.hpp>
+#include <components/esm3/variant.hpp>
+
+#include <QString>
+#include <QVariant>
+#include <QVector>
#include "columnbase.hpp"
#include "columns.hpp"
#include "info.hpp"
-
#include "land.hpp"
#include "landtexture.hpp"
+#include "record.hpp"
namespace CSMWorld
{
diff --git a/apps/opencs/model/world/columns.cpp b/apps/opencs/model/world/columns.cpp
index 517080ce68..4a476b52f3 100644
--- a/apps/opencs/model/world/columns.cpp
+++ b/apps/opencs/model/world/columns.cpp
@@ -1,5 +1,8 @@
#include "columns.hpp"
+#include <algorithm>
+#include <string_view>
+
#include <components/fallback/fallback.hpp>
#include <components/misc/strings/algorithm.hpp>
diff --git a/apps/opencs/model/world/columns.hpp b/apps/opencs/model/world/columns.hpp
index acb7c9b2b7..92f41a2f20 100644
--- a/apps/opencs/model/world/columns.hpp
+++ b/apps/opencs/model/world/columns.hpp
@@ -2,6 +2,7 @@
#define CSM_WOLRD_COLUMNS_H
#include <string>
+#include <utility>
#include <vector>
namespace CSMWorld
diff --git a/apps/opencs/model/world/commanddispatcher.cpp b/apps/opencs/model/world/commanddispatcher.cpp
index e8adb5f3a7..b292f3b7e8 100644
--- a/apps/opencs/model/world/commanddispatcher.cpp
+++ b/apps/opencs/model/world/commanddispatcher.cpp
@@ -1,8 +1,24 @@
#include "commanddispatcher.hpp"
#include <algorithm>
+#include <cmath>
#include <memory>
-
+#include <string>
+
+#include <QAbstractItemModel>
+#include <QModelIndex>
+#include <QObject>
+#include <QVariant>
+
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idtablebase.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loaddial.hpp>
#include <components/misc/constants.hpp>
#include <components/misc/strings/lower.hpp>
diff --git a/apps/opencs/model/world/commanddispatcher.hpp b/apps/opencs/model/world/commanddispatcher.hpp
index 7d931acbca..46faa4524f 100644
--- a/apps/opencs/model/world/commanddispatcher.hpp
+++ b/apps/opencs/model/world/commanddispatcher.hpp
@@ -1,9 +1,13 @@
#ifndef CSM_WOLRD_COMMANDDISPATCHER_H
#define CSM_WOLRD_COMMANDDISPATCHER_H
+#include <string>
#include <vector>
+#include <QAbstractItemModel>
+#include <QModelIndex>
#include <QObject>
+#include <QVariant>
#include "universalid.hpp"
diff --git a/apps/opencs/model/world/commands.cpp b/apps/opencs/model/world/commands.cpp
index c50df8731f..6929ded052 100644
--- a/apps/opencs/model/world/commands.cpp
+++ b/apps/opencs/model/world/commands.cpp
@@ -1,9 +1,20 @@
#include "commands.hpp"
+#include <algorithm>
#include <cmath>
#include <sstream>
#include <unordered_set>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/landtexture.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include <components/esm3/loadland.hpp>
+#include <components/esm3/loadpgrd.hpp>
+#include <components/misc/constants.hpp>
+
#include <QAbstractItemModel>
#include <QAbstractProxyModel>
diff --git a/apps/opencs/model/world/commands.hpp b/apps/opencs/model/world/commands.hpp
index 2a22252514..f9cddd119d 100644
--- a/apps/opencs/model/world/commands.hpp
+++ b/apps/opencs/model/world/commands.hpp
@@ -6,23 +6,21 @@
#include <map>
#include <memory>
#include <string>
+#include <utility>
#include <vector>
+#include <QAbstractItemModel>
#include <QModelIndex>
#include <QUndoCommand>
#include <QVariant>
#include "columnimp.hpp"
-#include "nestedtablewrapper.hpp"
#include "universalid.hpp"
-class QAbstractItemModel;
-
namespace CSMWorld
{
class IdTable;
class IdTree;
- struct RecordBase;
struct NestedTableWrapperBase;
class TouchCommand : public QUndoCommand
diff --git a/apps/opencs/model/world/data.cpp b/apps/opencs/model/world/data.cpp
index bc1d7abe8a..f24d51352c 100644
--- a/apps/opencs/model/world/data.cpp
+++ b/apps/opencs/model/world/data.cpp
@@ -2,13 +2,42 @@
#include <algorithm>
#include <stdexcept>
+#include <type_traits>
+#include <utility>
#include <QAbstractItemModel>
+#include <apps/opencs/model/world/actoradapter.hpp>
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/collectionbase.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/idtablebase.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <apps/opencs/model/world/infocollection.hpp>
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/landtexture.hpp>
+#include <apps/opencs/model/world/metadata.hpp>
+#include <apps/opencs/model/world/nestedidcollection.hpp>
+#include <apps/opencs/model/world/nestedinfocollection.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/esm/defs.hpp>
+#include <components/esm/esmcommon.hpp>
+#include <components/esm3/cellref.hpp>
#include <components/esm3/esmreader.hpp>
+#include <components/esm3/loadcell.hpp>
+#include <components/esm3/loaddoor.hpp>
#include <components/esm3/loadglob.hpp>
-
+#include <components/esm3/loadstat.hpp>
+#include <components/files/collections.hpp>
+#include <components/misc/strings/lower.hpp>
+#include <components/resource/resourcesystem.hpp>
#include <components/resource/scenemanager.hpp>
#include <components/sceneutil/shadow.hpp>
#include <components/shader/shadermanager.hpp>
diff --git a/apps/opencs/model/world/data.hpp b/apps/opencs/model/world/data.hpp
index ce6b4df053..f55046084f 100644
--- a/apps/opencs/model/world/data.hpp
+++ b/apps/opencs/model/world/data.hpp
@@ -1,11 +1,17 @@
#ifndef CSM_WOLRD_DATA_H
#define CSM_WOLRD_DATA_H
+#include <QObject>
+
+#include <filesystem>
#include <map>
+#include <memory>
+#include <string>
+#include <variant>
#include <vector>
-#include <QModelIndex>
-#include <QObject>
+#include <apps/opencs/model/world/collection.hpp>
+#include <apps/opencs/model/world/record.hpp>
#include <components/esm3/debugprofile.hpp>
#include <components/esm3/filter.hpp>
@@ -26,13 +32,9 @@
#include <components/esm3/loadsoun.hpp>
#include <components/esm3/loadspel.hpp>
#include <components/esm3/loadsscr.hpp>
-
-#include <components/resource/resourcesystem.hpp>
-
#include <components/files/multidircollection.hpp>
#include <components/to_utf8/to_utf8.hpp>
-#include "actoradapter.hpp"
#include "cell.hpp"
#include "idcollection.hpp"
#include "infocollection.hpp"
@@ -51,26 +53,32 @@
#endif
class QAbstractItemModel;
+class QModelIndex;
-namespace VFS
+namespace Resource
{
- class Manager;
+ class ResourceSystem;
}
-namespace Fallback
+namespace VFS
{
- class Map;
+ class Manager;
}
namespace ESM
{
class ESMReader;
- struct Dialogue;
+}
+
+namespace CSMDoc
+{
+ class Messages;
}
namespace CSMWorld
{
- class ResourcesManager;
+ class ActorAdapter;
+ class CollectionBase;
class Resources;
class Data : public QObject
diff --git a/apps/opencs/model/world/idcollection.cpp b/apps/opencs/model/world/idcollection.cpp
index 13877be3d1..fb00f766f0 100644
--- a/apps/opencs/model/world/idcollection.cpp
+++ b/apps/opencs/model/world/idcollection.cpp
@@ -1,5 +1,20 @@
#include "idcollection.hpp"
+#include <memory>
+#include <string>
+#include <utility>
+
+#include <apps/opencs/model/world/collection.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm3/loadpgrd.hpp>
+
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
template <>
diff --git a/apps/opencs/model/world/idcollection.hpp b/apps/opencs/model/world/idcollection.hpp
index f40ead044b..a716bc88cc 100644
--- a/apps/opencs/model/world/idcollection.hpp
+++ b/apps/opencs/model/world/idcollection.hpp
@@ -1,14 +1,28 @@
#ifndef CSM_WOLRD_IDCOLLECTION_H
#define CSM_WOLRD_IDCOLLECTION_H
-#include <components/esm3/esmreader.hpp>
+#include <filesystem>
+#include <memory>
+#include <string>
+
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm/esmcommon.hpp>
+#include <components/esm3/loadland.hpp>
#include "collection.hpp"
#include "land.hpp"
#include "pathgrid.hpp"
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
+ struct Pathgrid;
+
/// \brief Single type collection of top level records
template <typename ESXRecordT, typename IdAccessorT = IdAccessor<ESXRecordT>>
class IdCollection : public Collection<ESXRecordT, IdAccessorT>
diff --git a/apps/opencs/model/world/idcompletionmanager.cpp b/apps/opencs/model/world/idcompletionmanager.cpp
index 722463681a..263f462b6e 100644
--- a/apps/opencs/model/world/idcompletionmanager.cpp
+++ b/apps/opencs/model/world/idcompletionmanager.cpp
@@ -1,12 +1,23 @@
#include "idcompletionmanager.hpp"
+#include <QAbstractItemModel>
#include <QCompleter>
+#include <algorithm>
+#include <stdexcept>
+#include <utility>
+
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "../../view/widget/completerpopup.hpp"
#include "data.hpp"
#include "idtablebase.hpp"
+class QAbstractItemView;
+
namespace
{
std::map<CSMWorld::ColumnBase::Display, CSMWorld::UniversalId::Type> generateModelTypes()
diff --git a/apps/opencs/model/world/idtable.cpp b/apps/opencs/model/world/idtable.cpp
index 531d3404bf..708740f9ed 100644
--- a/apps/opencs/model/world/idtable.cpp
+++ b/apps/opencs/model/world/idtable.cpp
@@ -1,10 +1,20 @@
#include "idtable.hpp"
+#include <QModelIndex>
+#include <QVariant>
+
#include <algorithm>
#include <cstdint>
#include <limits>
#include <map>
+#include <stddef.h>
#include <stdexcept>
+#include <type_traits>
+
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idtablebase.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include <components/esm3/cellid.hpp>
#include <components/misc/strings/lower.hpp>
diff --git a/apps/opencs/model/world/idtable.hpp b/apps/opencs/model/world/idtable.hpp
index 71cf42f605..0a6a6e4caf 100644
--- a/apps/opencs/model/world/idtable.hpp
+++ b/apps/opencs/model/world/idtable.hpp
@@ -1,13 +1,21 @@
#ifndef CSM_WOLRD_IDTABLE_H
#define CSM_WOLRD_IDTABLE_H
+#include <QModelIndex>
+#include <QVariant>
+
+#include <map>
#include <memory>
+#include <string>
+#include <utility>
#include <vector>
#include "columns.hpp"
#include "idtablebase.hpp"
#include "universalid.hpp"
+class QObject;
+
namespace CSMWorld
{
class CollectionBase;
diff --git a/apps/opencs/model/world/idtablebase.hpp b/apps/opencs/model/world/idtablebase.hpp
index d4ef5d7770..af84ff480d 100644
--- a/apps/opencs/model/world/idtablebase.hpp
+++ b/apps/opencs/model/world/idtablebase.hpp
@@ -2,6 +2,10 @@
#define CSM_WOLRD_IDTABLEBASE_H
#include <QAbstractItemModel>
+#include <QModelIndex>
+
+#include <string>
+#include <utility>
#include "columns.hpp"
diff --git a/apps/opencs/model/world/idtableproxymodel.cpp b/apps/opencs/model/world/idtableproxymodel.cpp
index 4d68c03ce2..d4e342f5de 100644
--- a/apps/opencs/model/world/idtableproxymodel.cpp
+++ b/apps/opencs/model/world/idtableproxymodel.cpp
@@ -1,10 +1,22 @@
#include "idtableproxymodel.hpp"
+#include <QAbstractItemModel>
+#include <QModelIndex>
+#include <QSortFilterProxyModel>
+#include <QString>
+
+#include <compare>
+#include <type_traits>
#include <vector>
+#include <apps/opencs/model/filter/node.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+
#include "columnbase.hpp"
#include "idtablebase.hpp"
+class QObject;
+
namespace
{
std::string getEnumValue(const std::vector<std::pair<int, std::string>>& values, int index)
diff --git a/apps/opencs/model/world/idtableproxymodel.hpp b/apps/opencs/model/world/idtableproxymodel.hpp
index 2af94f4ccf..639cf47287 100644
--- a/apps/opencs/model/world/idtableproxymodel.hpp
+++ b/apps/opencs/model/world/idtableproxymodel.hpp
@@ -1,18 +1,29 @@
#ifndef CSM_WOLRD_IDTABLEPROXYMODEL_H
#define CSM_WOLRD_IDTABLEPROXYMODEL_H
-#include <string>
-
#include <map>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+#include <QModelIndex>
#include <QSortFilterProxyModel>
-
-#include "../filter/node.hpp"
+#include <QString>
#include "columns.hpp"
+class QObject;
+
+namespace CSMFilter
+{
+ class Node;
+}
+
namespace CSMWorld
{
+ class IdTableBase;
+
class IdTableProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
diff --git a/apps/opencs/model/world/idtree.cpp b/apps/opencs/model/world/idtree.cpp
index 35792ad532..10c103ed12 100644
--- a/apps/opencs/model/world/idtree.cpp
+++ b/apps/opencs/model/world/idtree.cpp
@@ -6,6 +6,11 @@
#include "columnbase.hpp"
#include "nestedcollection.hpp"
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idtable.hpp>
+
+#include <stdexcept>
+
// NOTE: parent class still needs idCollection
CSMWorld::IdTree::IdTree(NestedCollection* nestedCollection, CollectionBase* idCollection, unsigned int features)
: IdTable(idCollection, features)
diff --git a/apps/opencs/model/world/idtree.hpp b/apps/opencs/model/world/idtree.hpp
index 1da219ecdf..502ece5339 100644
--- a/apps/opencs/model/world/idtree.hpp
+++ b/apps/opencs/model/world/idtree.hpp
@@ -4,6 +4,13 @@
#include "columns.hpp"
#include "idtable.hpp"
+#include <QModelIndex>
+#include <QString>
+#include <QVariant>
+
+#include <string>
+#include <utility>
+
/*! \brief
* Class for holding the model. Uses typical qt table abstraction/interface for granting access
* to the individiual fields of the records, Some records are holding nested data (for instance
@@ -17,8 +24,8 @@
namespace CSMWorld
{
+ class CollectionBase;
class NestedCollection;
- struct RecordBase;
struct NestedTableWrapperBase;
class IdTree : public IdTable
diff --git a/apps/opencs/model/world/infocollection.cpp b/apps/opencs/model/world/infocollection.cpp
index a136b7c402..b90ce2a711 100644
--- a/apps/opencs/model/world/infocollection.cpp
+++ b/apps/opencs/model/world/infocollection.cpp
@@ -1,12 +1,16 @@
#include "infocollection.hpp"
+#include <algorithm>
#include <cassert>
#include <iterator>
+#include <limits.h>
#include <stdexcept>
-#include <components/esm3/esmreader.hpp>
-#include <components/esm3/loaddial.hpp>
+#include <apps/opencs/model/world/collection.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <components/misc/strings/lower.hpp>
+#include <components/esm3/loaddial.hpp>
#include <components/misc/strings/algorithm.hpp>
namespace CSMWorld
diff --git a/apps/opencs/model/world/infocollection.hpp b/apps/opencs/model/world/infocollection.hpp
index 4174d5f15c..14f92262fc 100644
--- a/apps/opencs/model/world/infocollection.hpp
+++ b/apps/opencs/model/world/infocollection.hpp
@@ -1,8 +1,16 @@
#ifndef CSM_WOLRD_INFOCOLLECTION_H
#define CSM_WOLRD_INFOCOLLECTION_H
+#include <memory>
+#include <string>
#include <string_view>
#include <unordered_map>
+#include <utility>
+#include <variant>
+#include <vector>
+
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include "collection.hpp"
#include "info.hpp"
@@ -10,6 +18,7 @@
namespace ESM
{
struct Dialogue;
+ class ESMReader;
}
namespace CSMWorld
diff --git a/apps/opencs/model/world/infoselectwrapper.cpp b/apps/opencs/model/world/infoselectwrapper.cpp
index 1fdff35dfe..fb1adf16d4 100644
--- a/apps/opencs/model/world/infoselectwrapper.cpp
+++ b/apps/opencs/model/world/infoselectwrapper.cpp
@@ -4,6 +4,8 @@
#include <sstream>
#include <stdexcept>
+#include <components/esm3/variant.hpp>
+
const size_t CSMWorld::ConstInfoSelectWrapper::RuleMinSize = 5;
const size_t CSMWorld::ConstInfoSelectWrapper::FunctionPrefixOffset = 1;
diff --git a/apps/opencs/model/world/infoselectwrapper.hpp b/apps/opencs/model/world/infoselectwrapper.hpp
index 6df763c345..4ecdc676dc 100644
--- a/apps/opencs/model/world/infoselectwrapper.hpp
+++ b/apps/opencs/model/world/infoselectwrapper.hpp
@@ -1,8 +1,17 @@
#ifndef CSM_WORLD_INFOSELECTWRAPPER_H
#define CSM_WORLD_INFOSELECTWRAPPER_H
+#include <stddef.h>
+#include <string>
+#include <utility>
+
#include <components/esm3/loadinfo.hpp>
+namespace ESM
+{
+ class Variant;
+}
+
namespace CSMWorld
{
// ESM::DialInfo::SelectStruct.mSelectRule
diff --git a/apps/opencs/model/world/infotableproxymodel.cpp b/apps/opencs/model/world/infotableproxymodel.cpp
index 9446ba6b86..171fbd9ffd 100644
--- a/apps/opencs/model/world/infotableproxymodel.cpp
+++ b/apps/opencs/model/world/infotableproxymodel.cpp
@@ -1,7 +1,16 @@
#include "infotableproxymodel.hpp"
+#include <QModelIndex>
+#include <QObject>
+#include <QString>
+
+#include <apps/opencs/model/world/idtableproxymodel.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/misc/strings/lower.hpp>
+#include <string>
+
#include "columns.hpp"
#include "idtablebase.hpp"
diff --git a/apps/opencs/model/world/infotableproxymodel.hpp b/apps/opencs/model/world/infotableproxymodel.hpp
index 5bf0c86039..63f67e8591 100644
--- a/apps/opencs/model/world/infotableproxymodel.hpp
+++ b/apps/opencs/model/world/infotableproxymodel.hpp
@@ -7,10 +7,12 @@
#include "idtableproxymodel.hpp"
#include "universalid.hpp"
+class QAbstractItemModel;
+class QModelIndex;
+class QObject;
+
namespace CSMWorld
{
- class IdTableBase;
-
class InfoTableProxyModel : public IdTableProxyModel
{
Q_OBJECT
diff --git a/apps/opencs/model/world/land.cpp b/apps/opencs/model/world/land.cpp
index e5264039e7..f6073ea512 100644
--- a/apps/opencs/model/world/land.cpp
+++ b/apps/opencs/model/world/land.cpp
@@ -1,8 +1,14 @@
#include "land.hpp"
#include <sstream>
+#include <stddef.h>
#include <stdexcept>
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
void Land::load(ESM::ESMReader& esm, bool& isDeleted)
diff --git a/apps/opencs/model/world/land.hpp b/apps/opencs/model/world/land.hpp
index 67261066f4..69a3e1b12f 100644
--- a/apps/opencs/model/world/land.hpp
+++ b/apps/opencs/model/world/land.hpp
@@ -5,6 +5,11 @@
#include <components/esm3/loadland.hpp>
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
/// \brief Wrapper for Land record. Encodes X and Y cell index in the ID.
diff --git a/apps/opencs/model/world/landtexture.cpp b/apps/opencs/model/world/landtexture.cpp
index 9b11b348fc..1ef8d9cad4 100644
--- a/apps/opencs/model/world/landtexture.cpp
+++ b/apps/opencs/model/world/landtexture.cpp
@@ -1,6 +1,7 @@
#include "landtexture.hpp"
#include <sstream>
+#include <stddef.h>
#include <stdexcept>
#include <components/esm3/esmreader.hpp>
diff --git a/apps/opencs/model/world/landtexture.hpp b/apps/opencs/model/world/landtexture.hpp
index 27e9d0d4f1..d3cac5d3d7 100644
--- a/apps/opencs/model/world/landtexture.hpp
+++ b/apps/opencs/model/world/landtexture.hpp
@@ -5,6 +5,11 @@
#include <components/esm3/loadltex.hpp>
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
/// \brief Wrapper for LandTexture record, providing info which plugin the LandTexture was loaded from.
diff --git a/apps/opencs/model/world/landtexturetableproxymodel.cpp b/apps/opencs/model/world/landtexturetableproxymodel.cpp
index 4929b25eab..438dba4678 100644
--- a/apps/opencs/model/world/landtexturetableproxymodel.cpp
+++ b/apps/opencs/model/world/landtexturetableproxymodel.cpp
@@ -1,5 +1,7 @@
#include "landtexturetableproxymodel.hpp"
+#include <apps/opencs/model/world/idtableproxymodel.hpp>
+
namespace CSMWorld
{
LandTextureTableProxyModel::LandTextureTableProxyModel(QObject* parent)
diff --git a/apps/opencs/model/world/landtexturetableproxymodel.hpp b/apps/opencs/model/world/landtexturetableproxymodel.hpp
index 8609381585..b53c35c235 100644
--- a/apps/opencs/model/world/landtexturetableproxymodel.hpp
+++ b/apps/opencs/model/world/landtexturetableproxymodel.hpp
@@ -3,6 +3,9 @@
#include "idtableproxymodel.hpp"
+class QModelIndex;
+class QObject;
+
namespace CSMWorld
{
/// \brief Removes base records from filtered results.
diff --git a/apps/opencs/model/world/nestedcoladapterimp.cpp b/apps/opencs/model/world/nestedcoladapterimp.cpp
index 8951a97c1e..8ba70e80e3 100644
--- a/apps/opencs/model/world/nestedcoladapterimp.cpp
+++ b/apps/opencs/model/world/nestedcoladapterimp.cpp
@@ -1,9 +1,24 @@
#include "nestedcoladapterimp.hpp"
+#include <map>
+#include <stdint.h>
+#include <type_traits>
+#include <utility>
+#include <variant>
+
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/nestedtablewrapper.hpp>
+#include <apps/opencs/model/world/record.hpp>
+
+#include <components/esm/attr.hpp>
+#include <components/esm3/loadcell.hpp>
#include <components/esm3/loadfact.hpp>
+#include <components/esm3/loadinfo.hpp>
+#include <components/esm3/loadpgrd.hpp>
+#include <components/esm3/loadrace.hpp>
#include <components/esm3/loadregn.hpp>
+#include <components/esm3/variant.hpp>
-#include "idcollection.hpp"
#include "info.hpp"
#include "infoselectwrapper.hpp"
#include "pathgrid.hpp"
diff --git a/apps/opencs/model/world/nestedcoladapterimp.hpp b/apps/opencs/model/world/nestedcoladapterimp.hpp
index a5d2d34eb4..cfeac2500d 100644
--- a/apps/opencs/model/world/nestedcoladapterimp.hpp
+++ b/apps/opencs/model/world/nestedcoladapterimp.hpp
@@ -1,16 +1,17 @@
#ifndef CSM_WOLRD_NESTEDCOLADAPTERIMP_H
#define CSM_WOLRD_NESTEDCOLADAPTERIMP_H
+#include <QString>
#include <QVariant>
-#include <components/esm/attr.hpp> // for converting attributes
+#include <algorithm>
+#include <stdexcept>
+#include <string>
+#include <vector>
+
#include <components/esm3/effectlist.hpp>
#include <components/esm3/loadmgef.hpp> // for converting magic effect id to string & back
-#include <components/esm3/loadpgrd.hpp>
-#include <components/esm3/loadrace.hpp>
-#include <components/esm3/loadskil.hpp> // for converting skill names
-#include "cell.hpp"
#include "nestedcolumnadapter.hpp"
#include "nestedtablewrapper.hpp"
@@ -18,12 +19,17 @@ namespace ESM
{
struct Faction;
struct Region;
+ struct Race;
}
namespace CSMWorld
{
struct Pathgrid;
struct Info;
+ struct Cell;
+
+ template <typename ESXRecordT>
+ struct Record;
class PathgridPointListAdapter : public NestedColumnAdapter<Pathgrid>
{
diff --git a/apps/opencs/model/world/nestedcollection.cpp b/apps/opencs/model/world/nestedcollection.cpp
index c114dacaa3..877fb394cb 100644
--- a/apps/opencs/model/world/nestedcollection.cpp
+++ b/apps/opencs/model/world/nestedcollection.cpp
@@ -1,5 +1,9 @@
#include "nestedcollection.hpp"
+#include <apps/opencs/model/world/columns.hpp>
+
+#include <stdexcept>
+
#include "columnbase.hpp"
CSMWorld::NestedCollection::NestedCollection() {}
diff --git a/apps/opencs/model/world/nestedinfocollection.cpp b/apps/opencs/model/world/nestedinfocollection.cpp
index e8fe5da1c1..dbcf7f6c81 100644
--- a/apps/opencs/model/world/nestedinfocollection.cpp
+++ b/apps/opencs/model/world/nestedinfocollection.cpp
@@ -1,6 +1,19 @@
#include "nestedinfocollection.hpp"
-#include "nestedcoladapterimp.hpp"
+#include <algorithm>
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <variant>
+#include <vector>
+
+#include <apps/opencs/model/world/collection.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/info.hpp>
+#include <apps/opencs/model/world/infocollection.hpp>
+#include <apps/opencs/model/world/nestedcolumnadapter.hpp>
+#include <apps/opencs/model/world/nestedtablewrapper.hpp>
+#include <apps/opencs/model/world/record.hpp>
namespace CSMWorld
{
diff --git a/apps/opencs/model/world/nestedinfocollection.hpp b/apps/opencs/model/world/nestedinfocollection.hpp
index 76db3a1186..333f19bc85 100644
--- a/apps/opencs/model/world/nestedinfocollection.hpp
+++ b/apps/opencs/model/world/nestedinfocollection.hpp
@@ -1,7 +1,10 @@
#ifndef CSM_WOLRD_NESTEDINFOCOLLECTION_H
#define CSM_WOLRD_NESTEDINFOCOLLECTION_H
+#include <QVariant>
+
#include <map>
+#include <utility>
#include "infocollection.hpp"
#include "nestedcollection.hpp"
@@ -9,6 +12,9 @@
namespace CSMWorld
{
struct NestedTableWrapperBase;
+ class NestableColumn;
+ struct ColumnBase;
+ struct Info;
template <typename ESXRecordT>
class NestedColumnAdapter;
diff --git a/apps/opencs/model/world/nestedtableproxymodel.cpp b/apps/opencs/model/world/nestedtableproxymodel.cpp
index ef89a13af7..f542ce4def 100644
--- a/apps/opencs/model/world/nestedtableproxymodel.cpp
+++ b/apps/opencs/model/world/nestedtableproxymodel.cpp
@@ -1,8 +1,11 @@
#include "nestedtableproxymodel.hpp"
#include "idtree.hpp"
+
#include <cassert>
+#include <apps/opencs/model/world/columnbase.hpp>
+
CSMWorld::NestedTableProxyModel::NestedTableProxyModel(
const QModelIndex& parent, ColumnBase::Display columnId, CSMWorld::IdTree* parentModel)
: mParentColumn(parent.column())
diff --git a/apps/opencs/model/world/nestedtableproxymodel.hpp b/apps/opencs/model/world/nestedtableproxymodel.hpp
index bac6b7ebdc..46737537e7 100644
--- a/apps/opencs/model/world/nestedtableproxymodel.hpp
+++ b/apps/opencs/model/world/nestedtableproxymodel.hpp
@@ -1,9 +1,12 @@
#ifndef CSM_WOLRD_NESTEDTABLEPROXYMODEL_H
#define CSM_WOLRD_NESTEDTABLEPROXYMODEL_H
-#include <vector>
+#include <string>
#include <QAbstractProxyModel>
+#include <QModelIndex>
+#include <QString>
+#include <QVariant>
#include "columnbase.hpp"
@@ -13,8 +16,6 @@
namespace CSMWorld
{
- class CollectionBase;
- struct RecordBase;
class IdTree;
class NestedTableProxyModel : public QAbstractProxyModel
diff --git a/apps/opencs/model/world/pathgrid.hpp b/apps/opencs/model/world/pathgrid.hpp
index 6317e2fd9e..86f19c816c 100644
--- a/apps/opencs/model/world/pathgrid.hpp
+++ b/apps/opencs/model/world/pathgrid.hpp
@@ -2,10 +2,14 @@
#define CSM_WOLRD_PATHGRID_H
#include <string>
-#include <vector>
#include <components/esm3/loadpgrd.hpp>
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMWorld
{
struct Cell;
diff --git a/apps/opencs/model/world/ref.cpp b/apps/opencs/model/world/ref.cpp
index 00957bb3ed..328d205106 100644
--- a/apps/opencs/model/world/ref.cpp
+++ b/apps/opencs/model/world/ref.cpp
@@ -1,5 +1,7 @@
#include "ref.hpp"
+#include <components/esm/defs.hpp>
+
#include "cellcoordinates.hpp"
CSMWorld::CellRef::CellRef()
diff --git a/apps/opencs/model/world/ref.hpp b/apps/opencs/model/world/ref.hpp
index 1eefe79f67..b572c4f01e 100644
--- a/apps/opencs/model/world/ref.hpp
+++ b/apps/opencs/model/world/ref.hpp
@@ -1,6 +1,7 @@
#ifndef CSM_WOLRD_REF_H
#define CSM_WOLRD_REF_H
+#include <string>
#include <utility>
#include <components/esm3/cellref.hpp>
diff --git a/apps/opencs/model/world/refcollection.cpp b/apps/opencs/model/world/refcollection.cpp
index 0fb199b68f..580fe166b6 100644
--- a/apps/opencs/model/world/refcollection.cpp
+++ b/apps/opencs/model/world/refcollection.cpp
@@ -1,5 +1,13 @@
#include "refcollection.hpp"
+#include <algorithm>
+#include <stdexcept>
+#include <string_view>
+#include <utility>
+
+#include <apps/opencs/model/world/collection.hpp>
+
+#include <components/esm3/cellref.hpp>
#include <components/esm3/loadcell.hpp>
#include "cell.hpp"
@@ -9,8 +17,6 @@
#include "../doc/messages.hpp"
-#include <string_view>
-
namespace CSMWorld
{
template <>
diff --git a/apps/opencs/model/world/refcollection.hpp b/apps/opencs/model/world/refcollection.hpp
index 749b5167f6..b31abf33e4 100644
--- a/apps/opencs/model/world/refcollection.hpp
+++ b/apps/opencs/model/world/refcollection.hpp
@@ -2,12 +2,22 @@
#define CSM_WOLRD_REFCOLLECTION_H
#include <map>
+#include <memory>
+#include <string>
#include <string_view>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
#include "collection.hpp"
#include "record.hpp"
#include "ref.hpp"
+namespace ESM
+{
+ class ESMReader;
+}
+
namespace CSMDoc
{
class Messages;
@@ -16,7 +26,6 @@ namespace CSMDoc
namespace CSMWorld
{
struct Cell;
- class UniversalId;
template <>
void Collection<CellRef, IdAccessor<CellRef>>::removeRows(int index, int count);
diff --git a/apps/opencs/model/world/refidadapter.hpp b/apps/opencs/model/world/refidadapter.hpp
index c98090e7ee..83f495a41f 100644
--- a/apps/opencs/model/world/refidadapter.hpp
+++ b/apps/opencs/model/world/refidadapter.hpp
@@ -2,7 +2,6 @@
#define CSM_WOLRD_REFIDADAPTER_H
#include <string>
-#include <vector>
/*! \brief
* Adapters acts as indirection layer, abstracting details of the record types (in the wrappers) from the higher levels
@@ -21,7 +20,6 @@ namespace CSMWorld
class RefIdData;
struct RecordBase;
struct NestedTableWrapperBase;
- class HelperBase;
class RefIdAdapter
{
diff --git a/apps/opencs/model/world/refidadapterimp.cpp b/apps/opencs/model/world/refidadapterimp.cpp
index 4e9c5d3c78..82d92b9ab3 100644
--- a/apps/opencs/model/world/refidadapterimp.cpp
+++ b/apps/opencs/model/world/refidadapterimp.cpp
@@ -2,8 +2,14 @@
#include <stdexcept>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/esm3/loadcont.hpp>
#include <components/esm3/loadmgef.hpp>
+#include <components/esm3/loadskil.hpp>
#include "nestedtablewrapper.hpp"
diff --git a/apps/opencs/model/world/refidadapterimp.hpp b/apps/opencs/model/world/refidadapterimp.hpp
index 6d154a0437..75552ae7be 100644
--- a/apps/opencs/model/world/refidadapterimp.hpp
+++ b/apps/opencs/model/world/refidadapterimp.hpp
@@ -1,15 +1,35 @@
#ifndef CSM_WOLRD_REFIDADAPTERIMP_H
#define CSM_WOLRD_REFIDADAPTERIMP_H
+#include <algorithm>
#include <map>
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <string_view>
+#include <utility>
+#include <vector>
#include <QVariant>
+#include <components/esm/defs.hpp>
+#include <components/esm/esmcommon.hpp>
+#include <components/esm3/aipackage.hpp>
#include <components/esm3/loadalch.hpp>
#include <components/esm3/loadappa.hpp>
+#include <components/esm3/loadarmo.hpp>
+#include <components/esm3/loadbook.hpp>
+#include <components/esm3/loadclot.hpp>
+#include <components/esm3/loadcont.hpp>
#include <components/esm3/loadcrea.hpp>
-#include <components/esm3/loadench.hpp>
+#include <components/esm3/loaddoor.hpp>
+#include <components/esm3/loadingr.hpp>
+#include <components/esm3/loadlevlist.hpp>
+#include <components/esm3/loadligh.hpp>
+#include <components/esm3/loadmisc.hpp>
#include <components/esm3/loadnpc.hpp>
+#include <components/esm3/loadweap.hpp>
+#include <components/esm3/transport.hpp>
#include "columnbase.hpp"
#include "nestedtablewrapper.hpp"
@@ -20,6 +40,7 @@
namespace CSMWorld
{
+ class RefIdColumn;
struct BaseColumns
{
const RefIdColumn* mId;
@@ -918,8 +939,6 @@ namespace CSMWorld
///< If the data type does not match an exception is thrown.
};
- class NestedRefIdAdapterBase;
-
class NpcAttributesRefIdAdapter : public NestedRefIdAdapterBase
{
public:
diff --git a/apps/opencs/model/world/refidcollection.cpp b/apps/opencs/model/world/refidcollection.cpp
index 818dc6a644..7c68d7619e 100644
--- a/apps/opencs/model/world/refidcollection.cpp
+++ b/apps/opencs/model/world/refidcollection.cpp
@@ -1,10 +1,29 @@
#include "refidcollection.hpp"
+#include <algorithm>
#include <memory>
#include <stdexcept>
#include <string_view>
-
-#include <components/esm3/esmreader.hpp>
+#include <type_traits>
+
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refiddata.hpp>
+
+#include <components/esm3/loadacti.hpp>
+#include <components/esm3/loadalch.hpp>
+#include <components/esm3/loadarmo.hpp>
+#include <components/esm3/loadclot.hpp>
+#include <components/esm3/loadcont.hpp>
+#include <components/esm3/loadcrea.hpp>
+#include <components/esm3/loadlevlist.hpp>
+#include <components/esm3/loadligh.hpp>
+#include <components/esm3/loadlock.hpp>
+#include <components/esm3/loadnpc.hpp>
+#include <components/esm3/loadprob.hpp>
+#include <components/esm3/loadrepa.hpp>
+#include <components/esm3/loadstat.hpp>
+#include <components/esm3/loadweap.hpp>
#include "columns.hpp"
#include "nestedcoladapterimp.hpp"
diff --git a/apps/opencs/model/world/refidcollection.hpp b/apps/opencs/model/world/refidcollection.hpp
index 63271db77f..4f4849b9e5 100644
--- a/apps/opencs/model/world/refidcollection.hpp
+++ b/apps/opencs/model/world/refidcollection.hpp
@@ -1,11 +1,18 @@
#ifndef CSM_WOLRD_REFIDCOLLECTION_H
#define CSM_WOLRD_REFIDCOLLECTION_H
+#include <QVariant>
+
#include <deque>
#include <map>
+#include <memory>
+#include <string>
#include <string_view>
+#include <utility>
#include <vector>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "collectionbase.hpp"
#include "columnbase.hpp"
#include "nestedcollection.hpp"
@@ -13,12 +20,14 @@
namespace ESM
{
+ class ESMReader;
class ESMWriter;
}
namespace CSMWorld
{
class RefIdAdapter;
+ struct RecordBase;
struct NestedTableWrapperBase;
class NestedRefIdAdapterBase;
diff --git a/apps/opencs/model/world/refiddata.cpp b/apps/opencs/model/world/refiddata.cpp
index 5f453ed1c6..d633744f2b 100644
--- a/apps/opencs/model/world/refiddata.cpp
+++ b/apps/opencs/model/world/refiddata.cpp
@@ -1,10 +1,18 @@
#include "refiddata.hpp"
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/misc/strings/lower.hpp>
-#include <cassert>
#include <memory>
#include <string_view>
+#include <type_traits>
+
+namespace ESM
+{
+ class ESMWriter;
+}
CSMWorld::RefIdDataContainerBase::~RefIdDataContainerBase() {}
diff --git a/apps/opencs/model/world/refiddata.hpp b/apps/opencs/model/world/refiddata.hpp
index 0df62a8041..513b3bdac9 100644
--- a/apps/opencs/model/world/refiddata.hpp
+++ b/apps/opencs/model/world/refiddata.hpp
@@ -1,10 +1,14 @@
#ifndef CSM_WOLRD_REFIDDATA_H
#define CSM_WOLRD_REFIDDATA_H
+#include <algorithm>
#include <cassert>
#include <map>
#include <memory>
+#include <stdexcept>
+#include <string>
#include <string_view>
+#include <utility>
#include <vector>
#include <components/esm3/esmwriter.hpp>
diff --git a/apps/opencs/model/world/regionmap.cpp b/apps/opencs/model/world/regionmap.cpp
index 383394bece..c65ba7b510 100644
--- a/apps/opencs/model/world/regionmap.cpp
+++ b/apps/opencs/model/world/regionmap.cpp
@@ -1,11 +1,21 @@
#include "regionmap.hpp"
+#include <QBrush>
+#include <QModelIndex>
+#include <QSize>
+#include <QVariant>
+
#include <algorithm>
-#include <cmath>
#include <sstream>
+#include <stdexcept>
+#include <type_traits>
-#include <QBrush>
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <components/esm3/loadregn.hpp>
#include <components/misc/strings/lower.hpp>
#include "data.hpp"
diff --git a/apps/opencs/model/world/regionmap.hpp b/apps/opencs/model/world/regionmap.hpp
index 5ccda4956c..9a7821e4b4 100644
--- a/apps/opencs/model/world/regionmap.hpp
+++ b/apps/opencs/model/world/regionmap.hpp
@@ -3,17 +3,24 @@
#include <map>
#include <string>
+#include <utility>
#include <vector>
#include <QAbstractTableModel>
+#include <QModelIndex>
+#include <QVariant>
-#include "cell.hpp"
#include "cellcoordinates.hpp"
-#include "record.hpp"
+
+class QObject;
namespace CSMWorld
{
class Data;
+ struct Cell;
+
+ template <typename ESXRecordT>
+ struct Record;
/// \brief Model for the region map
///
diff --git a/apps/opencs/model/world/resources.cpp b/apps/opencs/model/world/resources.cpp
index 4a600f5d32..bfab0193b0 100644
--- a/apps/opencs/model/world/resources.cpp
+++ b/apps/opencs/model/world/resources.cpp
@@ -2,12 +2,15 @@
#include <algorithm>
#include <sstream>
+#include <stddef.h>
#include <stdexcept>
#include <string_view>
+#include <utility>
-#include <components/vfs/manager.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include <components/misc/strings/lower.hpp>
+#include <components/vfs/manager.hpp>
CSMWorld::Resources::Resources(
const VFS::Manager* vfs, const std::string& baseDirectory, UniversalId::Type type, const char* const* extensions)
diff --git a/apps/opencs/model/world/resourcesmanager.cpp b/apps/opencs/model/world/resourcesmanager.cpp
index f35557c995..2b6ed2f8f3 100644
--- a/apps/opencs/model/world/resourcesmanager.cpp
+++ b/apps/opencs/model/world/resourcesmanager.cpp
@@ -2,7 +2,11 @@
#include "resources.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <stdexcept>
+#include <type_traits>
+#include <utility>
CSMWorld::ResourcesManager::ResourcesManager()
: mVFS(nullptr)
diff --git a/apps/opencs/model/world/resourcesmanager.hpp b/apps/opencs/model/world/resourcesmanager.hpp
index f6e04d4d03..0bc1c86410 100644
--- a/apps/opencs/model/world/resourcesmanager.hpp
+++ b/apps/opencs/model/world/resourcesmanager.hpp
@@ -3,6 +3,8 @@
#include <map>
+#include <apps/opencs/model/world/resources.hpp>
+
#include "universalid.hpp"
namespace VFS
@@ -12,8 +14,6 @@ namespace VFS
namespace CSMWorld
{
- class Resources;
-
class ResourcesManager
{
std::map<UniversalId::Type, Resources> mResources;
diff --git a/apps/opencs/model/world/resourcetable.cpp b/apps/opencs/model/world/resourcetable.cpp
index f6fae9275d..bf86f4f159 100644
--- a/apps/opencs/model/world/resourcetable.cpp
+++ b/apps/opencs/model/world/resourcetable.cpp
@@ -1,6 +1,9 @@
#include "resourcetable.hpp"
#include <stdexcept>
+#include <type_traits>
+
+#include <apps/opencs/model/world/idtablebase.hpp>
#include "columnbase.hpp"
#include "resources.hpp"
diff --git a/apps/opencs/model/world/resourcetable.hpp b/apps/opencs/model/world/resourcetable.hpp
index eea3d5c711..4cb227e66c 100644
--- a/apps/opencs/model/world/resourcetable.hpp
+++ b/apps/opencs/model/world/resourcetable.hpp
@@ -3,9 +3,18 @@
#include "idtablebase.hpp"
+#include <QModelIndex>
+#include <QVariant>
+
+#include <string>
+#include <utility>
+
+#include <apps/opencs/model/world/columns.hpp>
+
namespace CSMWorld
{
class Resources;
+ class UniversalId;
class ResourceTable : public IdTableBase
{
diff --git a/apps/opencs/model/world/scope.cpp b/apps/opencs/model/world/scope.cpp
index 0cf522a392..b54b186084 100644
--- a/apps/opencs/model/world/scope.cpp
+++ b/apps/opencs/model/world/scope.cpp
@@ -1,6 +1,6 @@
#include "scope.hpp"
-#include <stdexcept>
+#include <string_view>
#include <components/misc/strings/lower.hpp>
diff --git a/apps/opencs/model/world/scriptcontext.cpp b/apps/opencs/model/world/scriptcontext.cpp
index 392052b051..e7473d25be 100644
--- a/apps/opencs/model/world/scriptcontext.cpp
+++ b/apps/opencs/model/world/scriptcontext.cpp
@@ -2,12 +2,20 @@
#include <algorithm>
#include <sstream>
+#include <type_traits>
-#include <components/misc/strings/lower.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
#include <components/compiler/nullerrorhandler.hpp>
#include <components/compiler/quickfileparser.hpp>
#include <components/compiler/scanner.hpp>
+#include <components/esm3/loadglob.hpp>
+#include <components/esm3/loadscpt.hpp>
+#include <components/esm3/variant.hpp>
+#include <components/misc/strings/lower.hpp>
#include "data.hpp"
diff --git a/apps/opencs/model/world/scriptcontext.hpp b/apps/opencs/model/world/scriptcontext.hpp
index a1ad54882a..1e1f411639 100644
--- a/apps/opencs/model/world/scriptcontext.hpp
+++ b/apps/opencs/model/world/scriptcontext.hpp
@@ -3,6 +3,7 @@
#include <map>
#include <string>
+#include <utility>
#include <vector>
#include <components/compiler/context.hpp>
diff --git a/apps/opencs/model/world/tablemimedata.cpp b/apps/opencs/model/world/tablemimedata.cpp
index bbede2175c..0b6dadfae4 100644
--- a/apps/opencs/model/world/tablemimedata.cpp
+++ b/apps/opencs/model/world/tablemimedata.cpp
@@ -1,8 +1,12 @@
#include "tablemimedata.hpp"
+#include <algorithm>
+#include <memory>
+#include <stdexcept>
#include <string>
#include <QDebug>
+#include <QString>
#include "columnbase.hpp"
#include "universalid.hpp"
diff --git a/apps/opencs/model/world/tablemimedata.hpp b/apps/opencs/model/world/tablemimedata.hpp
index e76dd930d7..e32a16617d 100644
--- a/apps/opencs/model/world/tablemimedata.hpp
+++ b/apps/opencs/model/world/tablemimedata.hpp
@@ -1,6 +1,7 @@
#ifndef TABLEMIMEDATA_H
#define TABLEMIMEDATA_H
+#include <string>
#include <vector>
#include <QStringList>
diff --git a/apps/opencs/model/world/universalid.cpp b/apps/opencs/model/world/universalid.cpp
index 95da6aaa38..4dc38c7aba 100644
--- a/apps/opencs/model/world/universalid.cpp
+++ b/apps/opencs/model/world/universalid.cpp
@@ -1,8 +1,11 @@
#include "universalid.hpp"
+#include <algorithm>
+#include <compare>
#include <iostream>
#include <sstream>
#include <stdexcept>
+#include <vector>
namespace
{
diff --git a/apps/opencs/view/doc/adjusterwidget.cpp b/apps/opencs/view/doc/adjusterwidget.cpp
index d3014c9f09..d4cfdc6d3e 100644
--- a/apps/opencs/view/doc/adjusterwidget.cpp
+++ b/apps/opencs/view/doc/adjusterwidget.cpp
@@ -1,12 +1,14 @@
#include "adjusterwidget.hpp"
-#include <filesystem>
#include <QHBoxLayout>
#include <QLabel>
#include <QStyle>
+#include <filesystem>
+#include <stdexcept>
+#include <string>
+
#include <components/files/qtconversion.hpp>
-#include <components/misc/strings/conversion.hpp>
#include <components/misc/strings/lower.hpp>
CSVDoc::AdjusterWidget::AdjusterWidget(QWidget* parent)
diff --git a/apps/opencs/view/doc/filedialog.cpp b/apps/opencs/view/doc/filedialog.cpp
index ee52f153c7..4292367131 100644
--- a/apps/opencs/view/doc/filedialog.cpp
+++ b/apps/opencs/view/doc/filedialog.cpp
@@ -3,8 +3,11 @@
#include <QDialogButtonBox>
#include <QPushButton>
-#include "components/contentselector/model/esmfile.hpp"
-#include "components/contentselector/view/contentselector.hpp"
+#include <components/contentselector/model/contentmodel.hpp>
+#include <components/contentselector/model/esmfile.hpp>
+#include <components/contentselector/view/contentselector.hpp>
+
+#include <string>
#include "adjusterwidget.hpp"
#include "filewidget.hpp"
diff --git a/apps/opencs/view/doc/filedialog.hpp b/apps/opencs/view/doc/filedialog.hpp
index 4855297bf5..d660f22f75 100644
--- a/apps/opencs/view/doc/filedialog.hpp
+++ b/apps/opencs/view/doc/filedialog.hpp
@@ -2,7 +2,6 @@
#define FILEDIALOG_HPP
#include <QDialog>
-#include <QModelIndex>
#ifndef Q_MOC_RUN
@@ -17,6 +16,11 @@ Q_DECLARE_METATYPE(std::filesystem::path)
#include "ui_filedialog.h"
+#include <filesystem>
+#include <vector>
+
+class QModelIndex;
+
namespace ContentSelectorView
{
class ContentSelector;
diff --git a/apps/opencs/view/doc/filewidget.hpp b/apps/opencs/view/doc/filewidget.hpp
index e50d6f34e0..1d90afd362 100644
--- a/apps/opencs/view/doc/filewidget.hpp
+++ b/apps/opencs/view/doc/filewidget.hpp
@@ -1,12 +1,12 @@
#ifndef CSV_DOC_FILEWIDGET_H
#define CSV_DOC_FILEWIDGET_H
+#include <QString>
#include <QWidget>
#include <string>
class QLabel;
-class QString;
class QLineEdit;
namespace CSVDoc
diff --git a/apps/opencs/view/doc/globaldebugprofilemenu.cpp b/apps/opencs/view/doc/globaldebugprofilemenu.cpp
index 7a91000c10..87b148c5ec 100644
--- a/apps/opencs/view/doc/globaldebugprofilemenu.cpp
+++ b/apps/opencs/view/doc/globaldebugprofilemenu.cpp
@@ -3,11 +3,18 @@
#include <algorithm>
#include <vector>
+#include <QAction>
#include <QActionGroup>
+#include <QMenu>
+#include <QModelIndex>
+
+#include <apps/opencs/model/world/columns.hpp>
#include "../../model/world/idtable.hpp"
#include "../../model/world/record.hpp"
+class QWidget;
+
void CSVDoc::GlobalDebugProfileMenu::rebuild()
{
clear();
diff --git a/apps/opencs/view/doc/globaldebugprofilemenu.hpp b/apps/opencs/view/doc/globaldebugprofilemenu.hpp
index 02b26712de..797fda3e88 100644
--- a/apps/opencs/view/doc/globaldebugprofilemenu.hpp
+++ b/apps/opencs/view/doc/globaldebugprofilemenu.hpp
@@ -3,8 +3,13 @@
#include <QMenu>
-class QModelIndex;
+#include <string>
+
+class QAction;
class QActionGroup;
+class QModelIndex;
+class QObject;
+class QWidget;
namespace CSMWorld
{
diff --git a/apps/opencs/view/doc/loader.cpp b/apps/opencs/view/doc/loader.cpp
index 44e056a5bf..2c3c3b73cc 100644
--- a/apps/opencs/view/doc/loader.cpp
+++ b/apps/opencs/view/doc/loader.cpp
@@ -8,9 +8,15 @@
#include <QProgressBar>
#include <QVBoxLayout>
-#include <components/files/conversion.hpp>
+#include <apps/opencs/model/world/data.hpp>
#include <components/files/qtconversion.hpp>
+#include <filesystem>
+#include <stddef.h>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
#include "../../model/doc/document.hpp"
void CSVDoc::LoadingDocument::closeEvent(QCloseEvent* event)
diff --git a/apps/opencs/view/doc/loader.hpp b/apps/opencs/view/doc/loader.hpp
index 6cdac2be28..d28f1b902a 100644
--- a/apps/opencs/view/doc/loader.hpp
+++ b/apps/opencs/view/doc/loader.hpp
@@ -2,10 +2,12 @@
#define CSV_DOC_LOADER_H
#include <map>
+#include <string>
#include <QObject>
#include <QWidget>
+class QCloseEvent;
class QLabel;
class QProgressBar;
class QDialogButtonBox;
diff --git a/apps/opencs/view/doc/operation.cpp b/apps/opencs/view/doc/operation.cpp
index 8d8a389f0d..4825f87ff3 100644
--- a/apps/opencs/view/doc/operation.cpp
+++ b/apps/opencs/view/doc/operation.cpp
@@ -1,6 +1,7 @@
#include "operation.hpp"
#include <sstream>
+#include <string>
#include <QHBoxLayout>
#include <QProgressBar>
diff --git a/apps/opencs/view/doc/operation.hpp b/apps/opencs/view/doc/operation.hpp
index 7f7f4f016e..b508330603 100644
--- a/apps/opencs/view/doc/operation.hpp
+++ b/apps/opencs/view/doc/operation.hpp
@@ -6,6 +6,7 @@
class QHBoxLayout;
class QPushButton;
class QProgressBar;
+class QWidget;
namespace CSVDoc
{
diff --git a/apps/opencs/view/doc/operations.cpp b/apps/opencs/view/doc/operations.cpp
index 103acf5211..4fe53d6297 100644
--- a/apps/opencs/view/doc/operations.cpp
+++ b/apps/opencs/view/doc/operations.cpp
@@ -1,6 +1,10 @@
#include "operations.hpp"
+#include <algorithm>
+
+#include <QDockWidget>
#include <QVBoxLayout>
+#include <QWidget>
#include "operation.hpp"
diff --git a/apps/opencs/view/doc/runlogsubview.cpp b/apps/opencs/view/doc/runlogsubview.cpp
index ba7fa20a87..7affd73810 100644
--- a/apps/opencs/view/doc/runlogsubview.cpp
+++ b/apps/opencs/view/doc/runlogsubview.cpp
@@ -2,6 +2,8 @@
#include "../../model/doc/document.hpp"
+#include <apps/opencs/view/doc/subview.hpp>
+
#include <QTextEdit>
CSVDoc::RunLogSubView::RunLogSubView(const CSMWorld::UniversalId& id, CSMDoc::Document& document)
diff --git a/apps/opencs/view/doc/runlogsubview.hpp b/apps/opencs/view/doc/runlogsubview.hpp
index 3bc234a780..8ff9cd7a5a 100644
--- a/apps/opencs/view/doc/runlogsubview.hpp
+++ b/apps/opencs/view/doc/runlogsubview.hpp
@@ -3,6 +3,8 @@
#include "subview.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+
namespace CSMDoc
{
class Document;
diff --git a/apps/opencs/view/doc/subview.cpp b/apps/opencs/view/doc/subview.cpp
index d47234b3a0..c619302913 100644
--- a/apps/opencs/view/doc/subview.cpp
+++ b/apps/opencs/view/doc/subview.cpp
@@ -3,6 +3,8 @@
#include <QEvent>
#include <QKeyEvent>
+#include <apps/opencs/model/world/universalid.hpp>
+
bool CSVDoc::SubView::event(QEvent* event)
{
if (event->type() == QEvent::ShortcutOverride)
diff --git a/apps/opencs/view/doc/subview.hpp b/apps/opencs/view/doc/subview.hpp
index 04950ab48a..d8b30cce6e 100644
--- a/apps/opencs/view/doc/subview.hpp
+++ b/apps/opencs/view/doc/subview.hpp
@@ -5,17 +5,14 @@
#include <QDockWidget>
-class QUndoStack;
+#include <string>
-namespace CSMWorld
-{
- class Data;
-}
+class QCloseEvent;
+class QEvent;
+class QObject;
namespace CSVDoc
{
- class View;
-
class SubView : public QDockWidget
{
Q_OBJECT
diff --git a/apps/opencs/view/doc/subviewfactory.cpp b/apps/opencs/view/doc/subviewfactory.cpp
index 7ab16df5c2..e353b53f8a 100644
--- a/apps/opencs/view/doc/subviewfactory.cpp
+++ b/apps/opencs/view/doc/subviewfactory.cpp
@@ -1,8 +1,12 @@
#include "subviewfactory.hpp"
#include <cassert>
-
#include <stdexcept>
+#include <string>
+#include <type_traits>
+#include <utility>
+
+#include <apps/opencs/model/world/universalid.hpp>
CSVDoc::SubViewFactoryBase::SubViewFactoryBase() {}
diff --git a/apps/opencs/view/doc/view.cpp b/apps/opencs/view/doc/view.cpp
index 7b68573665..1b5e34130f 100644
--- a/apps/opencs/view/doc/view.cpp
+++ b/apps/opencs/view/doc/view.cpp
@@ -1,8 +1,5 @@
#include "view.hpp"
-#include <sstream>
-#include <stdexcept>
-
#include <QApplication>
#include <QCloseEvent>
#include <QDesktopWidget>
@@ -12,6 +9,10 @@
#include <QScrollArea>
#include <QScrollBar>
+#include <algorithm>
+#include <filesystem>
+#include <sstream>
+
#include "../../model/doc/document.hpp"
#include "../../model/doc/state.hpp"
@@ -28,6 +29,12 @@
#include "../tools/subviews.hpp"
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/prefs/shortcutmanager.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/view/doc/subviewfactory.hpp>
+
#include <components/files/conversion.hpp>
#include <components/misc/helpviewer.hpp>
#include <components/misc/timeconvert.hpp>
diff --git a/apps/opencs/view/doc/view.hpp b/apps/opencs/view/doc/view.hpp
index 5c1cc6d5e9..4654635160 100644
--- a/apps/opencs/view/doc/view.hpp
+++ b/apps/opencs/view/doc/view.hpp
@@ -1,15 +1,20 @@
#ifndef CSV_DOC_VIEW_H
#define CSV_DOC_VIEW_H
-#include <map>
+#include <string>
#include <vector>
+#include <QList>
#include <QMainWindow>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "subviewfactory.hpp"
class QAction;
-class QDockWidget;
+class QCloseEvent;
+class QMenu;
+class QObject;
class QScrollArea;
namespace CSMDoc
@@ -17,11 +22,6 @@ namespace CSMDoc
class Document;
}
-namespace CSMWorld
-{
- class UniversalId;
-}
-
namespace CSMPrefs
{
class Setting;
@@ -30,6 +30,7 @@ namespace CSMPrefs
namespace CSVDoc
{
class ViewManager;
+ class SubView;
class Operations;
class GlobalDebugProfileMenu;
diff --git a/apps/opencs/view/doc/viewmanager.cpp b/apps/opencs/view/doc/viewmanager.cpp
index b26952ee34..4812ff7e9c 100644
--- a/apps/opencs/view/doc/viewmanager.cpp
+++ b/apps/opencs/view/doc/viewmanager.cpp
@@ -1,14 +1,26 @@
#include "viewmanager.hpp"
+#include <algorithm>
+#include <cstddef>
+#include <filesystem>
#include <map>
+#include <type_traits>
+#include <utility>
#include <vector>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/doc/loader.hpp>
+
+#include <components/esm3/variant.hpp>
+#include <components/files/qtconversion.hpp>
+
#include <QApplication>
#include <QMessageBox>
#include <QPushButton>
-#include <components/files/qtconversion.hpp>
-
#include "../../model/doc/document.hpp"
#include "../../model/doc/documentmanager.hpp"
#include "../../model/doc/state.hpp"
diff --git a/apps/opencs/view/doc/viewmanager.hpp b/apps/opencs/view/doc/viewmanager.hpp
index 8034b99f29..779d059ba7 100644
--- a/apps/opencs/view/doc/viewmanager.hpp
+++ b/apps/opencs/view/doc/viewmanager.hpp
@@ -1,6 +1,7 @@
#ifndef CSV_DOC_VIEWMANAGER_H
#define CSV_DOC_VIEWMANAGER_H
+#include <string>
#include <vector>
#include <QObject>
diff --git a/apps/opencs/view/filter/editwidget.hpp b/apps/opencs/view/filter/editwidget.hpp
index 0f1838ea96..c3039c2327 100644
--- a/apps/opencs/view/filter/editwidget.hpp
+++ b/apps/opencs/view/filter/editwidget.hpp
@@ -4,9 +4,23 @@
#include <QLineEdit>
#include <QPalette>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
#include "../../model/filter/parser.hpp"
class QModelIndex;
+class QAction;
+class QContextMenuEvent;
+class QObject;
+class QWidget;
+
+namespace CSMFilter
+{
+ class Node;
+}
namespace CSMWorld
{
diff --git a/apps/opencs/view/filter/filterbox.cpp b/apps/opencs/view/filter/filterbox.cpp
index 00edfe04ad..040c3604de 100644
--- a/apps/opencs/view/filter/filterbox.cpp
+++ b/apps/opencs/view/filter/filterbox.cpp
@@ -1,11 +1,16 @@
#include "filterbox.hpp"
+#include <string>
+#include <utility>
+#include <vector>
+
#include <QDragEnterEvent>
#include <QHBoxLayout>
#include "recordfilterbox.hpp"
#include <apps/opencs/model/world/tablemimedata.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
CSVFilter::FilterBox::FilterBox(CSMWorld::Data& data, QWidget* parent)
: QWidget(parent)
diff --git a/apps/opencs/view/filter/filterbox.hpp b/apps/opencs/view/filter/filterbox.hpp
index f9a71de434..d8baabd874 100644
--- a/apps/opencs/view/filter/filterbox.hpp
+++ b/apps/opencs/view/filter/filterbox.hpp
@@ -2,10 +2,17 @@
#define CSV_FILTER_FILTERBOX_H
#include <memory>
+#include <string>
+#include <utility>
#include <vector>
#include <QWidget>
+class QDragEnterEvent;
+class QDragMoveEvent;
+class QDropEvent;
+class QObject;
+
namespace CSMFilter
{
class Node;
diff --git a/apps/opencs/view/filter/recordfilterbox.hpp b/apps/opencs/view/filter/recordfilterbox.hpp
index 79940b7dcd..0c514512f4 100644
--- a/apps/opencs/view/filter/recordfilterbox.hpp
+++ b/apps/opencs/view/filter/recordfilterbox.hpp
@@ -2,6 +2,9 @@
#define CSV_FILTER_RECORDFILTERBOX_H
#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
#include <QWidget>
diff --git a/apps/opencs/view/prefs/dialogue.cpp b/apps/opencs/view/prefs/dialogue.cpp
index 6be85cda0b..fe066641d1 100644
--- a/apps/opencs/view/prefs/dialogue.cpp
+++ b/apps/opencs/view/prefs/dialogue.cpp
@@ -1,5 +1,9 @@
#include "dialogue.hpp"
+#include <exception>
+#include <map>
+#include <utility>
+
#include <QApplication>
#include <QListWidgetItem>
#include <QScreen>
@@ -8,6 +12,9 @@
#include <components/debug/debuglog.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/view/prefs/pagebase.hpp>
+
#include "../../model/prefs/state.hpp"
#include "contextmenulist.hpp"
diff --git a/apps/opencs/view/prefs/keybindingpage.cpp b/apps/opencs/view/prefs/keybindingpage.cpp
index 8af2ff2ea4..d3cc1ff889 100644
--- a/apps/opencs/view/prefs/keybindingpage.cpp
+++ b/apps/opencs/view/prefs/keybindingpage.cpp
@@ -1,6 +1,9 @@
#include "keybindingpage.hpp"
#include <cassert>
+#include <string>
+#include <utility>
+#include <vector>
#include <QComboBox>
#include <QGridLayout>
@@ -8,6 +11,8 @@
#include <QStackedLayout>
#include <QVBoxLayout>
+#include <apps/opencs/view/prefs/pagebase.hpp>
+
#include "../../model/prefs/category.hpp"
#include "../../model/prefs/setting.hpp"
#include "../../model/prefs/state.hpp"
diff --git a/apps/opencs/view/prefs/keybindingpage.hpp b/apps/opencs/view/prefs/keybindingpage.hpp
index ad8e125032..d674e965bb 100644
--- a/apps/opencs/view/prefs/keybindingpage.hpp
+++ b/apps/opencs/view/prefs/keybindingpage.hpp
@@ -6,10 +6,12 @@
class QComboBox;
class QGridLayout;
class QStackedLayout;
+class QWidget;
namespace CSMPrefs
{
class Setting;
+ class Category;
}
namespace CSVPrefs
diff --git a/apps/opencs/view/prefs/page.cpp b/apps/opencs/view/prefs/page.cpp
index e2fa057fc6..4f04a39f00 100644
--- a/apps/opencs/view/prefs/page.cpp
+++ b/apps/opencs/view/prefs/page.cpp
@@ -1,6 +1,10 @@
-
#include "page.hpp"
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/view/prefs/pagebase.hpp>
+
#include <QGridLayout>
#include "../../model/prefs/category.hpp"
diff --git a/apps/opencs/view/prefs/page.hpp b/apps/opencs/view/prefs/page.hpp
index 32b057071e..8968b3d599 100644
--- a/apps/opencs/view/prefs/page.hpp
+++ b/apps/opencs/view/prefs/page.hpp
@@ -4,9 +4,12 @@
#include "pagebase.hpp"
class QGridLayout;
+class QWidget;
+class QObject;
namespace CSMPrefs
{
+ class Category;
class Setting;
}
diff --git a/apps/opencs/view/render/actor.hpp b/apps/opencs/view/render/actor.hpp
index 00f3b2c775..9ebd9bf157 100644
--- a/apps/opencs/view/render/actor.hpp
+++ b/apps/opencs/view/render/actor.hpp
@@ -4,6 +4,7 @@
#include <string>
#include <string_view>
+#include <osg/Group>
#include <osg/ref_ptr>
#include <QObject>
diff --git a/apps/opencs/view/render/cameracontroller.cpp b/apps/opencs/view/render/cameracontroller.cpp
index 9aa418baa0..bd22ec744f 100644
--- a/apps/opencs/view/render/cameracontroller.cpp
+++ b/apps/opencs/view/render/cameracontroller.cpp
@@ -1,8 +1,8 @@
#include "cameracontroller.hpp"
+#include <algorithm>
#include <cmath>
#include <set>
-#include <string>
#include <QWidget>
@@ -10,8 +10,11 @@
#include <osg/Camera>
#include <osg/ComputeBoundsVisitor>
#include <osg/Group>
+#include <osg/Math>
#include <osg/Matrixd>
#include <osg/Quat>
+#include <osg/Vec3>
+#include <osg/ref_ptr>
#include <osgUtil/IntersectionVisitor>
#include <osgUtil/LineSegmentIntersector>
diff --git a/apps/opencs/view/render/cameracontroller.hpp b/apps/opencs/view/render/cameracontroller.hpp
index c5108f900f..d6dce9f695 100644
--- a/apps/opencs/view/render/cameracontroller.hpp
+++ b/apps/opencs/view/render/cameracontroller.hpp
@@ -20,8 +20,6 @@ namespace CSMPrefs
namespace CSVRender
{
- class SceneWidget;
-
class CameraController : public QObject
{
Q_OBJECT
diff --git a/apps/opencs/view/render/cellarrow.cpp b/apps/opencs/view/render/cellarrow.cpp
index 62549a301b..d31df99a11 100644
--- a/apps/opencs/view/render/cellarrow.cpp
+++ b/apps/opencs/view/render/cellarrow.cpp
@@ -1,16 +1,33 @@
#include "cellarrow.hpp"
+#include <osg/Array>
+#include <osg/GL>
#include <osg/Geometry>
#include <osg/Group>
+#include <osg/Math>
#include <osg/PositionAttitudeTransform>
#include <osg/PrimitiveSet>
+#include <osg/Quat>
+#include <osg/StateAttribute>
+#include <osg/StateSet>
+#include <osg/Vec3f>
+#include <osg/Vec4f>
#include "../../model/prefs/state.hpp"
+#include <apps/opencs/model/prefs/shortcutmanager.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/view/render/tagbase.hpp>
+
#include <components/misc/constants.hpp>
#include "mask.hpp"
+namespace CSVRender
+{
+ struct WorldspaceHitResult;
+}
+
CSVRender::CellArrowTag::CellArrowTag(CellArrow* arrow)
: TagBase(Mask_CellArrow)
, mArrow(arrow)
diff --git a/apps/opencs/view/render/cellarrow.hpp b/apps/opencs/view/render/cellarrow.hpp
index 8f175ca999..7bb39e02da 100644
--- a/apps/opencs/view/render/cellarrow.hpp
+++ b/apps/opencs/view/render/cellarrow.hpp
@@ -18,6 +18,7 @@ namespace osg
namespace CSVRender
{
class CellArrow;
+ struct WorldspaceHitResult;
class CellArrowTag : public TagBase
{
diff --git a/apps/opencs/view/render/cellwater.cpp b/apps/opencs/view/render/cellwater.cpp
index cb55e48daa..e56ddd7238 100644
--- a/apps/opencs/view/render/cellwater.cpp
+++ b/apps/opencs/view/render/cellwater.cpp
@@ -1,8 +1,22 @@
#include "cellwater.hpp"
+#include <memory>
+#include <string_view>
+
#include <osg/Geometry>
#include <osg/Group>
#include <osg/PositionAttitudeTransform>
+#include <osg/StateAttribute>
+#include <osg/StateSet>
+#include <osg/Texture2D>
+#include <osg/Texture>
+#include <osg/Vec3d>
+#include <osg/Vec3f>
+
+#include <apps/opencs/model/world/collection.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include <components/esm3/loadland.hpp>
#include <components/fallback/fallback.hpp>
diff --git a/apps/opencs/view/render/cellwater.hpp b/apps/opencs/view/render/cellwater.hpp
index 72e6a712b0..249849d784 100644
--- a/apps/opencs/view/render/cellwater.hpp
+++ b/apps/opencs/view/render/cellwater.hpp
@@ -5,6 +5,7 @@
#include <osg/ref_ptr>
+#include <QModelIndex>
#include <QObject>
class QModelIndex;
diff --git a/apps/opencs/view/render/editmode.cpp b/apps/opencs/view/render/editmode.cpp
index 5aa10aef88..f4fcb5d25e 100644
--- a/apps/opencs/view/render/editmode.cpp
+++ b/apps/opencs/view/render/editmode.cpp
@@ -1,7 +1,17 @@
#include "editmode.hpp"
+#include <apps/opencs/view/widget/modebutton.hpp>
+
#include "worldspacewidget.hpp"
+class QMouseEvent;
+class QWidget;
+
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
CSVRender::WorldspaceWidget& CSVRender::EditMode::getWorldspaceWidget()
{
return *mWorldspaceWidget;
diff --git a/apps/opencs/view/render/editmode.hpp b/apps/opencs/view/render/editmode.hpp
index 3de1d26916..d21a2c3fa3 100644
--- a/apps/opencs/view/render/editmode.hpp
+++ b/apps/opencs/view/render/editmode.hpp
@@ -1,20 +1,25 @@
#ifndef CSV_RENDER_EDITMODE_H
#define CSV_RENDER_EDITMODE_H
-#include <osg/ref_ptr>
-
#include "../widget/modebutton.hpp"
class QDragEnterEvent;
class QDropEvent;
class QDragMoveEvent;
class QPoint;
+class QMouseEvent;
+class QObject;
+class QWidget;
+
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
namespace CSVRender
{
class WorldspaceWidget;
struct WorldspaceHitResult;
- class TagBase;
class EditMode : public CSVWidget::ModeButton
{
diff --git a/apps/opencs/view/render/instancemode.cpp b/apps/opencs/view/render/instancemode.cpp
index 6b47e4b1e8..b62e667c38 100644
--- a/apps/opencs/view/render/instancemode.cpp
+++ b/apps/opencs/view/render/instancemode.cpp
@@ -1,17 +1,46 @@
-
#include "instancemode.hpp"
#include <QDragEnterEvent>
#include <QPoint>
#include <QString>
+#include <algorithm>
+#include <cmath>
+#include <limits>
+#include <map>
+#include <memory>
+#include <utility>
+
#include "../../model/prefs/state.hpp"
+#include <osg/BoundingBox>
+#include <osg/Camera>
#include <osg/ComputeBoundsVisitor>
#include <osg/Group>
+#include <osg/Math>
+#include <osg/Matrix>
+#include <osg/Matrixd>
#include <osg/Vec3d>
+#include <osg/Viewport>
+#include <osgUtil/IntersectionVisitor>
#include <osgUtil/LineSegmentIntersector>
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/model/world/cellselection.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/render/editmode.hpp>
+#include <apps/opencs/view/render/instancedragmodes.hpp>
+#include <apps/opencs/view/render/tagbase.hpp>
+
+#include <components/esm/defs.hpp>
+
#include "../../model/prefs/shortcut.hpp"
#include "../../model/world/commandmacro.hpp"
#include "../../model/world/commands.hpp"
diff --git a/apps/opencs/view/render/instancemode.hpp b/apps/opencs/view/render/instancemode.hpp
index 814afd2293..4ddd8601a8 100644
--- a/apps/opencs/view/render/instancemode.hpp
+++ b/apps/opencs/view/render/instancemode.hpp
@@ -3,17 +3,29 @@
#include <QString>
+#include <string>
+#include <vector>
+
#include <osg/Group>
+#include <osg/Node>
#include <osg/Quat>
+#include <osg/Vec3d>
#include <osg/Vec3f>
#include <osg/ref_ptr>
#include "editmode.hpp"
#include "instancedragmodes.hpp"
+class QDragEnterEvent;
+class QDropEvent;
+class QObject;
+class QPoint;
+class QWidget;
+
namespace CSVWidget
{
class SceneToolMode;
+ class SceneToolbar;
}
namespace CSVRender
@@ -21,6 +33,8 @@ namespace CSVRender
class TagBase;
class InstanceSelectionMode;
class Object;
+ class WorldspaceWidget;
+ struct WorldspaceHitResult;
class InstanceMode : public EditMode
{
diff --git a/apps/opencs/view/render/instancemovemode.cpp b/apps/opencs/view/render/instancemovemode.cpp
index a4582ec252..e4004a1537 100644
--- a/apps/opencs/view/render/instancemovemode.cpp
+++ b/apps/opencs/view/render/instancemovemode.cpp
@@ -1,6 +1,12 @@
-
#include "instancemovemode.hpp"
+#include <QIcon>
+#include <QPixmap>
+
+#include <apps/opencs/view/widget/modebutton.hpp>
+
+class QWidget;
+
CSVRender::InstanceMoveMode::InstanceMoveMode(QWidget* parent)
: ModeButton(QIcon(QPixmap(":scenetoolbar/transform-move")),
"Move selected instances"
diff --git a/apps/opencs/view/render/lightingday.hpp b/apps/opencs/view/render/lightingday.hpp
index aeff1c5078..925eda5847 100644
--- a/apps/opencs/view/render/lightingday.hpp
+++ b/apps/opencs/view/render/lightingday.hpp
@@ -5,6 +5,11 @@
#include <osg/Vec4f>
+namespace osg
+{
+ class Group;
+}
+
namespace CSVRender
{
class LightingDay : public Lighting
diff --git a/apps/opencs/view/render/lightingnight.hpp b/apps/opencs/view/render/lightingnight.hpp
index 6232f8d496..7fd4739f12 100644
--- a/apps/opencs/view/render/lightingnight.hpp
+++ b/apps/opencs/view/render/lightingnight.hpp
@@ -5,6 +5,11 @@
#include <osg/Vec4f>
+namespace osg
+{
+ class Group;
+}
+
namespace CSVRender
{
class LightingNight : public Lighting
diff --git a/apps/opencs/view/render/object.cpp b/apps/opencs/view/render/object.cpp
index 87e91844bf..9030e0d8dd 100644
--- a/apps/opencs/view/render/object.cpp
+++ b/apps/opencs/view/render/object.cpp
@@ -3,17 +3,37 @@
#include <algorithm>
#include <cmath>
#include <exception>
+#include <stddef.h>
#include <stdexcept>
#include <string>
#include <utility>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/render/tagbase.hpp>
+
+#include <osg/Array>
+#include <osg/BoundingSphere>
+#include <osg/GL>
+#include <osg/Geometry>
#include <osg/Group>
+#include <osg/Math>
+#include <osg/Node>
#include <osg/PositionAttitudeTransform>
-
-#include <osg/Geometry>
#include <osg/PrimitiveSet>
+#include <osg/Quat>
#include <osg/Shape>
#include <osg/ShapeDrawable>
+#include <osg/StateAttribute>
+#include <osg/StateSet>
+#include <osg/Vec3>
+#include <osg/Vec4f>
#include <osgFX/Scribe>
@@ -24,6 +44,7 @@
#include "../../model/world/data.hpp"
#include <components/debug/debuglog.hpp>
+#include <components/resource/resourcesystem.hpp>
#include <components/resource/scenemanager.hpp>
#include <components/sceneutil/lightmanager.hpp>
#include <components/sceneutil/lightutil.hpp>
@@ -31,6 +52,16 @@
#include "actor.hpp"
#include "mask.hpp"
+namespace CSVRender
+{
+ struct WorldspaceHitResult;
+}
+
+namespace ESM
+{
+ struct Light;
+}
+
const float CSVRender::Object::MarkerShaftWidth = 30;
const float CSVRender::Object::MarkerShaftBaseLength = 70;
const float CSVRender::Object::MarkerHeadWidth = 50;
diff --git a/apps/opencs/view/render/object.hpp b/apps/opencs/view/render/object.hpp
index 1c1f069845..16a0a24f93 100644
--- a/apps/opencs/view/render/object.hpp
+++ b/apps/opencs/view/render/object.hpp
@@ -42,6 +42,7 @@ namespace CSVRender
{
class Actor;
class Object;
+ struct WorldspaceHitResult;
// An object to attach as user data to the osg::Node, allows us to get an Object back from a Node when we are doing
// a ray query
diff --git a/apps/opencs/view/render/orbitcameramode.cpp b/apps/opencs/view/render/orbitcameramode.cpp
index 670b4af8a1..c387eb6957 100644
--- a/apps/opencs/view/render/orbitcameramode.cpp
+++ b/apps/opencs/view/render/orbitcameramode.cpp
@@ -2,10 +2,19 @@
#include <QMenu>
+#include <memory>
+
#include "../../model/prefs/shortcut.hpp"
+#include <apps/opencs/view/widget/modebutton.hpp>
+
#include "worldspacewidget.hpp"
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSVRender
{
OrbitCameraMode::OrbitCameraMode(
diff --git a/apps/opencs/view/render/orbitcameramode.hpp b/apps/opencs/view/render/orbitcameramode.hpp
index 41480de215..4c230ffebb 100644
--- a/apps/opencs/view/render/orbitcameramode.hpp
+++ b/apps/opencs/view/render/orbitcameramode.hpp
@@ -3,6 +3,16 @@
#include "../widget/modebutton.hpp"
+class QAction;
+class QMenu;
+class QObject;
+class QWidget;
+
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSMPrefs
{
class Shortcut;
diff --git a/apps/opencs/view/render/pagedworldspacewidget.cpp b/apps/opencs/view/render/pagedworldspacewidget.cpp
index a32189b80c..7716e1b929 100644
--- a/apps/opencs/view/render/pagedworldspacewidget.cpp
+++ b/apps/opencs/view/render/pagedworldspacewidget.cpp
@@ -1,11 +1,34 @@
#include "pagedworldspacewidget.hpp"
+#include <algorithm>
+#include <cmath>
#include <memory>
#include <sstream>
#include <string>
-
+#include <type_traits>
+
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/world/cellselection.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/render/cell.hpp>
+#include <apps/opencs/view/render/instancedragmodes.hpp>
+#include <apps/opencs/view/render/tagbase.hpp>
+#include <apps/opencs/view/render/worldspacewidget.hpp>
+
+#include <components/esm3/loadpgrd.hpp>
#include <components/misc/constants.hpp>
+#include <osg/Camera>
+#include <osg/Vec3f>
+#include <osg/ref_ptr>
+#include <osgViewer/View>
+
#include "../../model/prefs/shortcut.hpp"
#include "../../model/world/idtable.hpp"
@@ -19,6 +42,18 @@
#include "terrainshapemode.hpp"
#include "terraintexturemode.hpp"
+class QWidget;
+
+namespace CSMWorld
+{
+ struct Cell;
+}
+
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
bool CSVRender::PagedWorldspaceWidget::adjustCells()
{
bool modified = false;
diff --git a/apps/opencs/view/render/pagedworldspacewidget.hpp b/apps/opencs/view/render/pagedworldspacewidget.hpp
index 697fbb62e4..d1724b20a3 100644
--- a/apps/opencs/view/render/pagedworldspacewidget.hpp
+++ b/apps/opencs/view/render/pagedworldspacewidget.hpp
@@ -2,6 +2,11 @@
#define OPENCS_VIEW_PAGEDWORLDSPACEWIDGET_H
#include <map>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/model/world/cellcoordinates.hpp>
#include "../../model/world/cellselection.hpp"
@@ -9,16 +14,38 @@
#include "instancedragmodes.hpp"
#include "worldspacewidget.hpp"
+class QModelIndex;
+class QObject;
+class QWidget;
+
+namespace osg
+{
+ class Vec3f;
+ template <class T>
+ class ref_ptr;
+}
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class UniversalId;
+}
+
namespace CSVWidget
{
- class SceneToolToggle;
class SceneToolToggle2;
+ class SceneToolMode;
+ class SceneToolBar;
}
namespace CSVRender
{
- class TextOverlay;
- class OverlayMask;
+ class Cell;
+ class TagBase;
class PagedWorldspaceWidget : public WorldspaceWidget
{
diff --git a/apps/opencs/view/render/pathgrid.cpp b/apps/opencs/view/render/pathgrid.cpp
index 8fcd3ac82b..f8d5eec346 100644
--- a/apps/opencs/view/render/pathgrid.cpp
+++ b/apps/opencs/view/render/pathgrid.cpp
@@ -1,12 +1,39 @@
#include "pathgrid.hpp"
#include <algorithm>
+#include <functional>
+#include <memory>
+#include <set>
+#include <stddef.h>
#include <osg/Array>
+#include <osg/Callback>
+#include <osg/GL>
#include <osg/Geometry>
#include <osg/Group>
+#include <osg/MixinVector>
+#include <osg/Node>
#include <osg/PositionAttitudeTransform>
-
+#include <osg/PrimitiveSet>
+#include <osg/StateAttribute>
+#include <osg/StateSet>
+#include <osg/Vec3f>
+#include <osg/Vec4f>
+
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/render/mask.hpp>
+#include <apps/opencs/view/render/tagbase.hpp>
+
+#include <components/esm3/loadcell.hpp>
+#include <components/esm3/loadland.hpp>
+#include <components/esm3/loadpgrd.hpp>
#include <components/sceneutil/pathgridutil.hpp>
#include "../../model/world/commandmacro.hpp"
@@ -15,6 +42,11 @@
#include "../../model/world/idtree.hpp"
#include "worldspacewidget.hpp"
+namespace osg
+{
+ class NodeVisitor;
+}
+
namespace CSVRender
{
class PathgridNodeCallback : public osg::NodeCallback
diff --git a/apps/opencs/view/render/pathgrid.hpp b/apps/opencs/view/render/pathgrid.hpp
index 1e3ce081cb..e25f18ec0c 100644
--- a/apps/opencs/view/render/pathgrid.hpp
+++ b/apps/opencs/view/render/pathgrid.hpp
@@ -1,6 +1,8 @@
#ifndef CSV_RENDER_PATHGRID_H
#define CSV_RENDER_PATHGRID_H
+#include <algorithm>
+#include <string>
#include <vector>
#include <QString>
@@ -14,6 +16,7 @@
namespace osg
{
+ class Vec3f;
class Geometry;
class Group;
class PositionAttitudeTransform;
@@ -30,6 +33,8 @@ namespace CSVRender
{
class Pathgrid;
+ struct WorldspaceHitResult;
+
class PathgridTag : public TagBase
{
public:
diff --git a/apps/opencs/view/render/pathgridmode.hpp b/apps/opencs/view/render/pathgridmode.hpp
index 5273838e5c..39ba5158d3 100644
--- a/apps/opencs/view/render/pathgridmode.hpp
+++ b/apps/opencs/view/render/pathgridmode.hpp
@@ -5,9 +5,16 @@
#include "editmode.hpp"
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSVRender
{
class PathgridSelectionMode;
+ class WorldspaceWidget;
+ struct WorldspaceHitResult;
class PathgridMode : public EditMode
{
diff --git a/apps/opencs/view/render/pathgridselectionmode.cpp b/apps/opencs/view/render/pathgridselectionmode.cpp
index 82906c927b..1e154197a4 100644
--- a/apps/opencs/view/render/pathgridselectionmode.cpp
+++ b/apps/opencs/view/render/pathgridselectionmode.cpp
@@ -3,11 +3,25 @@
#include <QAction>
#include <QMenu>
+#include <vector>
+
+#include <osg/ref_ptr>
+
#include "../../model/world/commandmacro.hpp"
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/view/render/mask.hpp>
+#include <apps/opencs/view/render/selectionmode.hpp>
+#include <apps/opencs/view/render/tagbase.hpp>
+
#include "pathgrid.hpp"
#include "worldspacewidget.hpp"
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSVRender
{
PathgridSelectionMode::PathgridSelectionMode(CSVWidget::SceneToolbar* parent, WorldspaceWidget& worldspaceWidget)
diff --git a/apps/opencs/view/render/pathgridselectionmode.hpp b/apps/opencs/view/render/pathgridselectionmode.hpp
index 1227501ec8..8c13ba495f 100644
--- a/apps/opencs/view/render/pathgridselectionmode.hpp
+++ b/apps/opencs/view/render/pathgridselectionmode.hpp
@@ -5,6 +5,16 @@
namespace CSVRender
{
+ class WorldspaceWidget;
+}
+
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
+namespace CSVRender
+{
class PathgridSelectionMode : public SelectionMode
{
Q_OBJECT
diff --git a/apps/opencs/view/render/previewwidget.cpp b/apps/opencs/view/render/previewwidget.cpp
index ffc3be193a..12a4cbb1a7 100644
--- a/apps/opencs/view/render/previewwidget.cpp
+++ b/apps/opencs/view/render/previewwidget.cpp
@@ -1,8 +1,18 @@
#include "previewwidget.hpp"
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/render/object.hpp>
+#include <apps/opencs/view/render/scenewidget.hpp>
+
+#include <osg/ref_ptr>
+
#include "../../model/world/data.hpp"
#include "../../model/world/idtable.hpp"
+class QWidget;
+
CSVRender::PreviewWidget::PreviewWidget(
CSMWorld::Data& data, const std::string& id, bool referenceable, QWidget* parent)
: SceneWidget(data.getResourceSystem(), parent)
diff --git a/apps/opencs/view/render/previewwidget.hpp b/apps/opencs/view/render/previewwidget.hpp
index 4d9c9a0bf8..9f926d4640 100644
--- a/apps/opencs/view/render/previewwidget.hpp
+++ b/apps/opencs/view/render/previewwidget.hpp
@@ -3,9 +3,13 @@
#include "scenewidget.hpp"
+#include <string>
+
#include "object.hpp"
class QModelIndex;
+class QObject;
+class QWidget;
namespace CSMWorld
{
diff --git a/apps/opencs/view/render/scenewidget.cpp b/apps/opencs/view/render/scenewidget.cpp
index 7f8ea94da6..9efbdcca5e 100644
--- a/apps/opencs/view/render/scenewidget.cpp
+++ b/apps/opencs/view/render/scenewidget.cpp
@@ -1,16 +1,47 @@
#include "scenewidget.hpp"
#include <chrono>
+#include <exception>
#include <thread>
#include <QLayout>
#include <QMouseEvent>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/view/render/lightingbright.hpp>
+#include <apps/opencs/view/render/lightingday.hpp>
+#include <apps/opencs/view/render/lightingnight.hpp>
+
#include <extern/osgQt/GraphicsWindowQt>
+
+#include <osg/Array>
+#include <osg/Camera>
+#include <osg/DisplaySettings>
+#include <osg/GL>
+#include <osg/Geometry>
#include <osg/GraphicsContext>
+#include <osg/Group>
#include <osg/LightModel>
#include <osg/Material>
+#include <osg/Matrix>
+#include <osg/PrimitiveSet>
+#include <osg/StateAttribute>
+#include <osg/StateSet>
+#include <osg/Transform>
+#include <osg/Vec3>
+#include <osg/Vec4>
+#include <osg/Vec4ub>
+#include <osg/View>
+#include <osg/Viewport>
+
+#include <osgGA/EventQueue>
+#include <osgGA/GUIEventAdapter>
+
#include <osgViewer/CompositeViewer>
+#include <osgViewer/GraphicsWindow>
+#include <osgViewer/View>
+#include <osgViewer/ViewerBase>
#include <osgViewer/ViewerEventHandlers>
#include <components/debug/debuglog.hpp>
diff --git a/apps/opencs/view/render/scenewidget.hpp b/apps/opencs/view/render/scenewidget.hpp
index d6aad24290..0b5c8f2969 100644
--- a/apps/opencs/view/render/scenewidget.hpp
+++ b/apps/opencs/view/render/scenewidget.hpp
@@ -9,6 +9,7 @@
#include <QTimer>
#include <QWidget>
+#include <osg/Timer>
#include <osg/Vec4f>
#include <osg/ref_ptr>
@@ -18,6 +19,9 @@
#include "lightingday.hpp"
#include "lightingnight.hpp"
+class QMouseEvent;
+class QWheelEvent;
+
namespace Resource
{
class ResourceSystem;
@@ -27,6 +31,12 @@ namespace osg
{
class Group;
class Camera;
+ class Geometry;
+}
+
+namespace osg
+{
+ class View;
}
namespace CSVWidget
diff --git a/apps/opencs/view/render/selectionmode.cpp b/apps/opencs/view/render/selectionmode.cpp
index 23eb0cd75a..1dabaed35b 100644
--- a/apps/opencs/view/render/selectionmode.cpp
+++ b/apps/opencs/view/render/selectionmode.cpp
@@ -3,8 +3,17 @@
#include <QAction>
#include <QMenu>
+#include <memory>
+
+#include <apps/opencs/view/widget/scenetoolmode.hpp>
+
#include "worldspacewidget.hpp"
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSVRender
{
SelectionMode::SelectionMode(
diff --git a/apps/opencs/view/render/selectionmode.hpp b/apps/opencs/view/render/selectionmode.hpp
index 8aa82f24b6..34d186c940 100644
--- a/apps/opencs/view/render/selectionmode.hpp
+++ b/apps/opencs/view/render/selectionmode.hpp
@@ -5,6 +5,11 @@
class QAction;
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSVRender
{
class WorldspaceWidget;
diff --git a/apps/opencs/view/render/terrainselection.cpp b/apps/opencs/view/render/terrainselection.cpp
index 655606e7a0..3e4813f7b4 100644
--- a/apps/opencs/view/render/terrainselection.cpp
+++ b/apps/opencs/view/render/terrainselection.cpp
@@ -1,15 +1,34 @@
#include "terrainselection.hpp"
#include <algorithm>
+#include <cmath>
+#include <osg/GL>
#include <osg/Geometry>
#include <osg/Group>
+#include <osg/PositionAttitudeTransform>
+#include <osg/PrimitiveSet>
+#include <osg/StateAttribute>
+#include <osg/StateSet>
+#include <osg/Vec3f>
+
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/record.hpp>
#include <components/esm3/loadland.hpp>
#include "cell.hpp"
#include "worldspacewidget.hpp"
+namespace CSMWorld
+{
+ struct Cell;
+}
+
CSVRender::TerrainSelection::TerrainSelection(
osg::Group* parentNode, WorldspaceWidget* worldspaceWidget, TerrainSelectionType type)
: mParentNode(parentNode)
diff --git a/apps/opencs/view/render/terrainselection.hpp b/apps/opencs/view/render/terrainselection.hpp
index e0fbbd28f3..b451a007b8 100644
--- a/apps/opencs/view/render/terrainselection.hpp
+++ b/apps/opencs/view/render/terrainselection.hpp
@@ -1,23 +1,22 @@
#ifndef CSV_RENDER_TERRAINSELECTION_H
#define CSV_RENDER_TERRAINSELECTION_H
+#include <string>
#include <utility>
#include <vector>
-#include <osg/PositionAttitudeTransform>
-#include <osg/Vec3d>
+#include <osg/Array>
#include <osg/ref_ptr>
-#include <components/esm3/loadland.hpp>
-
namespace osg
{
class Group;
+ class Geometry;
+ class PositionAttitudeTransform;
}
namespace CSVRender
{
- struct WorldspaceHitResult;
class WorldspaceWidget;
enum class TerrainSelectionType
diff --git a/apps/opencs/view/render/terrainshapemode.cpp b/apps/opencs/view/render/terrainshapemode.cpp
index 72bca9648f..cf14bee901 100644
--- a/apps/opencs/view/render/terrainshapemode.cpp
+++ b/apps/opencs/view/render/terrainshapemode.cpp
@@ -1,15 +1,34 @@
#include "terrainshapemode.hpp"
#include <algorithm>
+#include <cmath>
#include <memory>
#include <string>
+#include <QComboBox>
#include <QDropEvent>
#include <QEvent>
#include <QIcon>
#include <QWidget>
+#include <osg/Camera>
#include <osg/Vec3f>
+#include <osg/ref_ptr>
+
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/cellselection.hpp>
+#include <apps/opencs/model/world/columnimp.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/idtable.hpp>
+#include <apps/opencs/model/world/land.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/widget/brushshapes.hpp>
+#include <apps/opencs/view/widget/scenetool.hpp>
#include <components/debug/debuglog.hpp>
#include <components/esm3/loadland.hpp>
@@ -26,10 +45,22 @@
#include "editmode.hpp"
#include "mask.hpp"
#include "pagedworldspacewidget.hpp"
-#include "tagbase.hpp"
#include "terrainselection.hpp"
#include "worldspacewidget.hpp"
+class QPoint;
+class QWidget;
+
+namespace CSMWorld
+{
+ struct Cell;
+}
+
+namespace osg
+{
+ class Group;
+}
+
CSVRender::TerrainShapeMode::TerrainShapeMode(
WorldspaceWidget* worldspaceWidget, osg::Group* parentNode, QWidget* parent)
: EditMode(
diff --git a/apps/opencs/view/render/terrainshapemode.hpp b/apps/opencs/view/render/terrainshapemode.hpp
index ed3cfa2f99..e772621c4c 100644
--- a/apps/opencs/view/render/terrainshapemode.hpp
+++ b/apps/opencs/view/render/terrainshapemode.hpp
@@ -5,19 +5,35 @@
#include <memory>
#include <string>
+#include <utility>
+#include <vector>
-#include <QEvent>
-#include <QWidget>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+
+#include <osg/Vec3d>
#ifndef Q_MOC_RUN
-#include "../../model/doc/document.hpp"
#include "../../model/world/columnimp.hpp"
-#include "../../model/world/idtable.hpp"
#include "../widget/brushshapes.hpp"
#endif
#include "brushdraw.hpp"
-#include "terrainselection.hpp"
+
+class QDragMoveEvent;
+class QMouseEvent;
+class QObject;
+class QPoint;
+class QWidget;
+
+namespace osg
+{
+ class Group;
+}
+
+namespace CSMDoc
+{
+ class Document;
+}
namespace CSVWidget
{
@@ -26,12 +42,16 @@ namespace CSVWidget
namespace CSMWorld
{
- class CellCoordinates;
+ class IdTable;
}
namespace CSVRender
{
class PagedWorldspaceWidget;
+ class TerrainSelection;
+ class WorldspaceWidget;
+ struct WorldspaceHitResult;
+ class SceneToolbar;
/// \brief EditMode for handling the terrain shape editing
class TerrainShapeMode : public EditMode
diff --git a/apps/opencs/view/render/terrainstorage.hpp b/apps/opencs/view/render/terrainstorage.hpp
index 18f38effbf..17eb1af9a8 100644
--- a/apps/opencs/view/render/terrainstorage.hpp
+++ b/apps/opencs/view/render/terrainstorage.hpp
@@ -4,6 +4,7 @@
#include <array>
#include <components/esm3/loadland.hpp>
+#include <components/esm3/loadltex.hpp>
#include <components/esm3terrain/storage.hpp>
#include <osg/ref_ptr>
diff --git a/apps/opencs/view/render/terraintexturemode.cpp b/apps/opencs/view/render/terraintexturemode.cpp
index 9a7b76f110..97f81e2511 100644
--- a/apps/opencs/view/render/terraintexturemode.cpp
+++ b/apps/opencs/view/render/terraintexturemode.cpp
@@ -1,14 +1,32 @@
#include "terraintexturemode.hpp"
+#include <algorithm>
+#include <cmath>
+#include <cstdlib>
+#include <exception>
+#include <limits>
#include <string>
#include <QDropEvent>
#include <QIcon>
+#include <QSlider>
#include <QWidget>
-#include <osg/Group>
+#include <osg/Vec2f>
+#include <osg/Vec3d>
+#include <osg/ref_ptr>
+
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/model/world/cellselection.hpp>
+#include <apps/opencs/model/world/columnimp.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/view/render/terrainselection.hpp>
+#include <apps/opencs/view/widget/scenetool.hpp>
-#include "../widget/modebutton.hpp"
#include "../widget/scenetoolbar.hpp"
#include "../widget/scenetooltexturebrush.hpp"
@@ -26,7 +44,6 @@
#include "brushdraw.hpp"
#include "editmode.hpp"
#include "mask.hpp"
-#include "object.hpp" // Something small needed regarding pointers from here ()
#include "pagedworldspacewidget.hpp"
#include "worldspacewidget.hpp"
diff --git a/apps/opencs/view/render/terraintexturemode.hpp b/apps/opencs/view/render/terraintexturemode.hpp
index f3a44c09ed..3fc2e3796e 100644
--- a/apps/opencs/view/render/terraintexturemode.hpp
+++ b/apps/opencs/view/render/terraintexturemode.hpp
@@ -5,32 +5,53 @@
#include <memory>
#include <string>
+#include <utility>
+#include <vector>
-#include <QEvent>
#include <QWidget>
#ifndef Q_MOC_RUN
-#include "../../model/doc/document.hpp"
#include "../../model/world/columnimp.hpp"
-#include "../../model/world/idtable.hpp"
#include "../widget/brushshapes.hpp"
#include "brushdraw.hpp"
#endif
-#include "terrainselection.hpp"
+#include <components/esm3/loadland.hpp>
+
+class QDragMoveEvent;
+class QDropEvent;
+class QMouseEvent;
+class QObject;
+class QPoint;
+class QWidget;
namespace osg
{
class Group;
}
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class IdTable;
+}
+
namespace CSVWidget
{
class SceneToolTextureBrush;
+ class SceneToolbar;
}
namespace CSVRender
{
+ class TerrainSelection;
+ class WorldspaceWidget;
+ struct WorldspaceHitResult;
+
class TerrainTextureMode : public EditMode
{
Q_OBJECT
diff --git a/apps/opencs/view/render/unpagedworldspacewidget.cpp b/apps/opencs/view/render/unpagedworldspacewidget.cpp
index 1ba45a0bf8..6e666918b4 100644
--- a/apps/opencs/view/render/unpagedworldspacewidget.cpp
+++ b/apps/opencs/view/render/unpagedworldspacewidget.cpp
@@ -4,6 +4,22 @@
#include <components/sceneutil/util.hpp>
+#include <apps/opencs/model/world/cell.hpp>
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/pathgrid.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+#include <apps/opencs/view/render/cell.hpp>
+#include <apps/opencs/view/render/worldspacewidget.hpp>
+
+#include <components/esm3/loadcell.hpp>
+
+#include <osg/Camera>
+#include <osg/Vec4f>
+#include <osg/ref_ptr>
+#include <osgViewer/View>
+
#include "../../model/doc/document.hpp"
#include "../../model/world/data.hpp"
@@ -13,7 +29,16 @@
#include "cameracontroller.hpp"
#include "mask.hpp"
-#include "tagbase.hpp"
+
+namespace CSVRender
+{
+ class TagBase;
+}
+
+namespace osg
+{
+ class Vec3f;
+}
void CSVRender::UnpagedWorldspaceWidget::update()
{
diff --git a/apps/opencs/view/render/unpagedworldspacewidget.hpp b/apps/opencs/view/render/unpagedworldspacewidget.hpp
index 776dfae5f9..28fcc289e5 100644
--- a/apps/opencs/view/render/unpagedworldspacewidget.hpp
+++ b/apps/opencs/view/render/unpagedworldspacewidget.hpp
@@ -3,17 +3,37 @@
#include <memory>
#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/render/instancedragmodes.hpp>
+
+#include <osg/Vec3d>
#include "cell.hpp"
#include "worldspacewidget.hpp"
class QModelIndex;
+class QObject;
+class QWidget;
+
+namespace osg
+{
+ class Vec3f;
+ template <class T>
+ class ref_ptr;
+}
namespace CSMDoc
{
class Document;
}
+namespace CSVWidget
+{
+ class SceneToolToggle2;
+}
+
namespace CSMWorld
{
class IdTable;
@@ -22,6 +42,8 @@ namespace CSMWorld
namespace CSVRender
{
+ class TagBase;
+
class UnpagedWorldspaceWidget : public WorldspaceWidget
{
Q_OBJECT
diff --git a/apps/opencs/view/render/worldspacewidget.hpp b/apps/opencs/view/render/worldspacewidget.hpp
index 752c42615c..e676a214df 100644
--- a/apps/opencs/view/render/worldspacewidget.hpp
+++ b/apps/opencs/view/render/worldspacewidget.hpp
@@ -1,16 +1,39 @@
#ifndef OPENCS_VIEW_WORLDSPACEWIDGET_H
#define OPENCS_VIEW_WORLDSPACEWIDGET_H
+#include <QPoint>
#include <QTimer>
-#include <osg/Vec3>
-#include "../../model/doc/document.hpp"
+#include <osg/Vec3d>
+#include <osg/ref_ptr>
+
+#include <string>
+#include <vector>
#include <apps/opencs/view/render/tagbase.hpp>
#include "instancedragmodes.hpp"
#include "scenewidget.hpp"
+class QDragEnterEvent;
+class QDragMoveEvent;
+class QDropEvent;
+class QModelIndex;
+class QMouseEvent;
+class QObject;
+class QWheelEvent;
+class QWidget;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace osg
+{
+ class Vec3f;
+}
+
namespace CSMPrefs
{
class Setting;
diff --git a/apps/opencs/view/tools/reportsubview.cpp b/apps/opencs/view/tools/reportsubview.cpp
index d55217bf8e..f9603aca6a 100644
--- a/apps/opencs/view/tools/reportsubview.cpp
+++ b/apps/opencs/view/tools/reportsubview.cpp
@@ -2,6 +2,8 @@
#include "reporttable.hpp"
+#include <apps/opencs/view/doc/subview.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/doc/state.hpp"
diff --git a/apps/opencs/view/tools/reporttable.cpp b/apps/opencs/view/tools/reporttable.cpp
index 25276bba62..b7599a272c 100644
--- a/apps/opencs/view/tools/reporttable.cpp
+++ b/apps/opencs/view/tools/reporttable.cpp
@@ -1,6 +1,7 @@
#include "reporttable.hpp"
#include <algorithm>
+#include <utility>
#include <QAction>
#include <QContextMenuEvent>
@@ -12,6 +13,12 @@
#include <QStyledItemDelegate>
#include <QTextDocument>
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/view/world/dragrecordtable.hpp>
+#include <apps/opencs/view/world/util.hpp>
+
#include "../../model/tools/reportmodel.hpp"
#include "../../model/prefs/shortcut.hpp"
diff --git a/apps/opencs/view/tools/reporttable.hpp b/apps/opencs/view/tools/reporttable.hpp
index a65d06456f..25f8d1b017 100644
--- a/apps/opencs/view/tools/reporttable.hpp
+++ b/apps/opencs/view/tools/reporttable.hpp
@@ -2,11 +2,24 @@
#define CSV_TOOLS_REPORTTABLE_H
#include <map>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
#include "../world/dragrecordtable.hpp"
class QAction;
class QSortFilterProxyModel;
+class QContextMenuEvent;
+class QMouseEvent;
+class QObject;
+class QWidget;
+
+namespace CSMDoc
+{
+ class Document;
+}
namespace CSMTools
{
diff --git a/apps/opencs/view/tools/searchsubview.cpp b/apps/opencs/view/tools/searchsubview.cpp
index 8567384e97..98fd97e7ae 100644
--- a/apps/opencs/view/tools/searchsubview.cpp
+++ b/apps/opencs/view/tools/searchsubview.cpp
@@ -12,6 +12,11 @@
#include "../world/creator.hpp"
#include "../world/tablebottombox.hpp"
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/view/doc/subview.hpp>
+
#include "reporttable.hpp"
#include "searchbox.hpp"
diff --git a/apps/opencs/view/tools/searchsubview.hpp b/apps/opencs/view/tools/searchsubview.hpp
index f3fafbcd0a..270706d7aa 100644
--- a/apps/opencs/view/tools/searchsubview.hpp
+++ b/apps/opencs/view/tools/searchsubview.hpp
@@ -5,6 +5,8 @@
#include "../doc/subview.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "searchbox.hpp"
namespace CSMDoc
diff --git a/apps/opencs/view/tools/subviews.cpp b/apps/opencs/view/tools/subviews.cpp
index d0f44e0033..417eba61a0 100644
--- a/apps/opencs/view/tools/subviews.cpp
+++ b/apps/opencs/view/tools/subviews.cpp
@@ -2,6 +2,10 @@
#include "../doc/subviewfactoryimp.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/doc/subview.hpp>
+#include <apps/opencs/view/doc/subviewfactory.hpp>
+
#include "reportsubview.hpp"
#include "searchsubview.hpp"
diff --git a/apps/opencs/view/widget/coloreditor.cpp b/apps/opencs/view/widget/coloreditor.cpp
index 477c36c91f..a8e5f670a0 100644
--- a/apps/opencs/view/widget/coloreditor.cpp
+++ b/apps/opencs/view/widget/coloreditor.cpp
@@ -3,10 +3,11 @@
#include <QGuiApplication>
#include <QPainter>
#include <QScreen>
-#include <QShowEvent>
#include "colorpickerpopup.hpp"
+class QShowEvent;
+
CSVWidget::ColorEditor::ColorEditor(const QColor& color, QWidget* parent, const bool popupOnStart)
: ColorEditor(parent, popupOnStart)
{
diff --git a/apps/opencs/view/widget/modebutton.cpp b/apps/opencs/view/widget/modebutton.cpp
index 042f845575..f19baf6098 100644
--- a/apps/opencs/view/widget/modebutton.cpp
+++ b/apps/opencs/view/widget/modebutton.cpp
@@ -1,5 +1,9 @@
#include "modebutton.hpp"
+#include <apps/opencs/view/widget/pushbutton.hpp>
+
+class QWidget;
+
CSVWidget::ModeButton::ModeButton(const QIcon& icon, const QString& tooltip, QWidget* parent)
: PushButton(icon, Type_Mode, tooltip, parent)
{
diff --git a/apps/opencs/view/widget/pushbutton.cpp b/apps/opencs/view/widget/pushbutton.cpp
index c1c3f9d285..6eab07dccf 100644
--- a/apps/opencs/view/widget/pushbutton.cpp
+++ b/apps/opencs/view/widget/pushbutton.cpp
@@ -3,6 +3,11 @@
#include <QKeyEvent>
#include <QMouseEvent>
+#include <string>
+
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+
#include "../../model/prefs/shortcutmanager.hpp"
#include "../../model/prefs/state.hpp"
diff --git a/apps/opencs/view/widget/pushbutton.hpp b/apps/opencs/view/widget/pushbutton.hpp
index b5a07173af..584d311b57 100644
--- a/apps/opencs/view/widget/pushbutton.hpp
+++ b/apps/opencs/view/widget/pushbutton.hpp
@@ -3,6 +3,11 @@
#include <QPushButton>
+class QKeyEvent;
+class QMouseEvent;
+class QObject;
+class QWidget;
+
namespace CSMPrefs
{
class Setting;
diff --git a/apps/opencs/view/widget/scenetool.cpp b/apps/opencs/view/widget/scenetool.cpp
index 3eecf6d95d..36c902f952 100644
--- a/apps/opencs/view/widget/scenetool.cpp
+++ b/apps/opencs/view/widget/scenetool.cpp
@@ -2,6 +2,8 @@
#include <QMouseEvent>
+#include <apps/opencs/view/widget/pushbutton.hpp>
+
#include "scenetoolbar.hpp"
CSVWidget::SceneTool::SceneTool(SceneToolbar* parent, Type type)
diff --git a/apps/opencs/view/widget/scenetool.hpp b/apps/opencs/view/widget/scenetool.hpp
index b4f7fbeb1b..bd37ed9b35 100644
--- a/apps/opencs/view/widget/scenetool.hpp
+++ b/apps/opencs/view/widget/scenetool.hpp
@@ -3,6 +3,10 @@
#include "pushbutton.hpp"
+class QMouseEvent;
+class QObject;
+class QPoint;
+
namespace CSVWidget
{
class SceneToolbar;
diff --git a/apps/opencs/view/widget/scenetoolbar.cpp b/apps/opencs/view/widget/scenetoolbar.cpp
index bd6ce827a0..09d99e3677 100644
--- a/apps/opencs/view/widget/scenetoolbar.cpp
+++ b/apps/opencs/view/widget/scenetoolbar.cpp
@@ -2,6 +2,8 @@
#include <QVBoxLayout>
+#include <memory>
+
#include "../../model/prefs/shortcut.hpp"
#include "scenetool.hpp"
diff --git a/apps/opencs/view/widget/scenetoolmode.cpp b/apps/opencs/view/widget/scenetoolmode.cpp
index c415216978..a691e3a83b 100644
--- a/apps/opencs/view/widget/scenetoolmode.cpp
+++ b/apps/opencs/view/widget/scenetoolmode.cpp
@@ -4,8 +4,15 @@
#include <QEvent>
#include <QFrame>
#include <QHBoxLayout>
+#include <QIcon>
#include <QMenu>
+#include <apps/opencs/view/widget/pushbutton.hpp>
+#include <apps/opencs/view/widget/scenetool.hpp>
+
+#include <type_traits>
+#include <utility>
+
#include "modebutton.hpp"
#include "scenetoolbar.hpp"
diff --git a/apps/opencs/view/widget/scenetoolmode.hpp b/apps/opencs/view/widget/scenetoolmode.hpp
index ee19f678be..33e1996592 100644
--- a/apps/opencs/view/widget/scenetoolmode.hpp
+++ b/apps/opencs/view/widget/scenetoolmode.hpp
@@ -4,15 +4,21 @@
#include "scenetool.hpp"
#include <map>
+#include <string>
class QHBoxLayout;
class QMenu;
class QEvent;
+class QContextMenuEvent;
+class QObject;
+class QPoint;
+class QWidget;
namespace CSVWidget
{
class SceneToolbar;
class ModeButton;
+ class PushButton;
///< \brief Mode selector tool
class SceneToolMode : public SceneTool
diff --git a/apps/opencs/view/widget/scenetoolrun.cpp b/apps/opencs/view/widget/scenetoolrun.cpp
index 4b60e6845e..6313f10fa9 100644
--- a/apps/opencs/view/widget/scenetoolrun.cpp
+++ b/apps/opencs/view/widget/scenetoolrun.cpp
@@ -8,6 +8,16 @@
#include <QHeaderView>
#include <QTableWidget>
+#include <apps/opencs/view/widget/pushbutton.hpp>
+#include <apps/opencs/view/widget/scenetool.hpp>
+
+class QPoint;
+
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
void CSVWidget::SceneToolRun::adjustToolTips()
{
QString toolTip = mToolTip;
diff --git a/apps/opencs/view/widget/scenetoolrun.hpp b/apps/opencs/view/widget/scenetoolrun.hpp
index 83142bd1e6..6fd3c3822a 100644
--- a/apps/opencs/view/widget/scenetoolrun.hpp
+++ b/apps/opencs/view/widget/scenetoolrun.hpp
@@ -3,15 +3,20 @@
#include <set>
#include <string>
+#include <vector>
#include "scenetool.hpp"
class QFrame;
class QTableWidget;
class QModelIndex;
+class QObject;
+class QPoint;
namespace CSVWidget
{
+ class SceneToolbar;
+
class SceneToolRun : public SceneTool
{
Q_OBJECT
diff --git a/apps/opencs/view/widget/scenetoolshapebrush.cpp b/apps/opencs/view/widget/scenetoolshapebrush.cpp
index 7ed1bfc9a7..57b78ffc71 100644
--- a/apps/opencs/view/widget/scenetoolshapebrush.cpp
+++ b/apps/opencs/view/widget/scenetoolshapebrush.cpp
@@ -16,11 +16,20 @@
#include <QVBoxLayout>
#include <QWidget>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/view/widget/pushbutton.hpp>
+
#include "brushshapes.hpp"
#include "scenetool.hpp"
#include "../../model/prefs/state.hpp"
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
namespace CSMDoc
{
class Document;
diff --git a/apps/opencs/view/widget/scenetoolshapebrush.hpp b/apps/opencs/view/widget/scenetoolshapebrush.hpp
index 7dc4b2e6a6..6143c8959f 100644
--- a/apps/opencs/view/widget/scenetoolshapebrush.hpp
+++ b/apps/opencs/view/widget/scenetoolshapebrush.hpp
@@ -2,22 +2,29 @@
#define CSV_WIDGET_SCENETOOLSHAPEBRUSH_H
#include <QFrame>
-#include <QModelIndex>
-
-#include <QComboBox>
#include <QGroupBox>
-#include <QPushButton>
#include <QSlider>
#include <QSpinBox>
-#include <QWidget>
#ifndef Q_MOC_RUN
#include "brushshapes.hpp"
#include "scenetool.hpp"
-
-#include "../../model/doc/document.hpp"
#endif
+class QComboBox;
+class QDragEnterEvent;
+class QDropEvent;
+class QModelIndex;
+class QObject;
+class QPoint;
+class QPushButton;
+class QWidget;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
class QTableWidget;
namespace CSVRender
@@ -27,6 +34,8 @@ namespace CSVRender
namespace CSVWidget
{
+ class SceneToolbar;
+
/// \brief Layout-box for some brush button settings
class ShapeBrushSizeControls : public QGroupBox
{
diff --git a/apps/opencs/view/widget/scenetooltexturebrush.cpp b/apps/opencs/view/widget/scenetooltexturebrush.cpp
index e3e47677c2..6b97f25772 100644
--- a/apps/opencs/view/widget/scenetooltexturebrush.cpp
+++ b/apps/opencs/view/widget/scenetooltexturebrush.cpp
@@ -8,6 +8,9 @@
#include <QHBoxLayout>
#include <QHeaderView>
#include <QIcon>
+#include <QLabel>
+#include <QMargins>
+#include <QModelIndex>
#include <QSizePolicy>
#include <QSlider>
#include <QSpinBox>
@@ -15,8 +18,19 @@
#include <QVBoxLayout>
#include <QWidget>
+#include <algorithm>
+#include <limits>
+#include <memory>
+
#include "scenetool.hpp"
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/view/widget/brushshapes.hpp>
+#include <apps/opencs/view/widget/pushbutton.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/prefs/state.hpp"
#include "../../model/world/commands.hpp"
@@ -26,6 +40,11 @@
#include "../../model/world/landtexture.hpp"
#include "../../model/world/universalid.hpp"
+namespace CSVWidget
+{
+ class SceneToolbar;
+}
+
CSVWidget::BrushSizeControls::BrushSizeControls(const QString& title, QWidget* parent)
: QGroupBox(title, parent)
, mLayoutSliderSize(new QHBoxLayout)
diff --git a/apps/opencs/view/widget/scenetooltexturebrush.hpp b/apps/opencs/view/widget/scenetooltexturebrush.hpp
index f08b1dcabe..940ab60ee7 100644
--- a/apps/opencs/view/widget/scenetooltexturebrush.hpp
+++ b/apps/opencs/view/widget/scenetooltexturebrush.hpp
@@ -3,31 +3,38 @@
#include <QFrame>
#include <QGroupBox>
-#include <QHBoxLayout>
-#include <QLabel>
-#include <QModelIndex>
-#include <QPushButton>
-#include <QSlider>
-#include <QSpinBox>
-#include <QWidget>
#ifndef Q_MOC_RUN
#include "brushshapes.hpp"
#include "scenetool.hpp"
-
-#include "../../model/doc/document.hpp"
#endif
class QTableWidget;
+class QDragEnterEvent;
+class QDropEvent;
+class QHBoxLayout;
+class QLabel;
+class QModelIndex;
+class QObject;
+class QPoint;
+class QPushButton;
+class QSlider;
+class QSpinBox;
+class QWidget;
namespace CSVRender
{
class TerrainTextureMode;
}
+namespace CSMDoc
+{
+ class Document;
+}
+
namespace CSVWidget
{
- class SceneToolTextureBrush;
+ class SceneToolbar;
/// \brief Layout-box for some brush button settings
class BrushSizeControls : public QGroupBox
@@ -46,8 +53,6 @@ namespace CSVWidget
friend class CSVRender::TerrainTextureMode;
};
- class SceneToolTextureBrush;
-
/// \brief Brush settings window
class TextureBrushWindow : public QFrame
{
diff --git a/apps/opencs/view/widget/scenetooltoggle.cpp b/apps/opencs/view/widget/scenetooltoggle.cpp
index 01dfb7582e..f32992f3ab 100644
--- a/apps/opencs/view/widget/scenetooltoggle.cpp
+++ b/apps/opencs/view/widget/scenetooltoggle.cpp
@@ -1,12 +1,16 @@
#include "scenetooltoggle.hpp"
#include <stdexcept>
+#include <type_traits>
+#include <utility>
#include <QFrame>
#include <QHBoxLayout>
#include <QIcon>
#include <QPainter>
+#include <apps/opencs/view/widget/scenetool.hpp>
+
#include "pushbutton.hpp"
#include "scenetoolbar.hpp"
diff --git a/apps/opencs/view/widget/scenetooltoggle.hpp b/apps/opencs/view/widget/scenetooltoggle.hpp
index 039355e348..2a3b71bce0 100644
--- a/apps/opencs/view/widget/scenetooltoggle.hpp
+++ b/apps/opencs/view/widget/scenetooltoggle.hpp
@@ -4,9 +4,13 @@
#include "scenetool.hpp"
#include <map>
+#include <string>
class QHBoxLayout;
class QRect;
+class QObject;
+class QPoint;
+class QWidget;
namespace CSVWidget
{
diff --git a/apps/opencs/view/widget/scenetooltoggle2.cpp b/apps/opencs/view/widget/scenetooltoggle2.cpp
index da15a9a0a7..8dbd1e804c 100644
--- a/apps/opencs/view/widget/scenetooltoggle2.cpp
+++ b/apps/opencs/view/widget/scenetooltoggle2.cpp
@@ -1,11 +1,15 @@
#include "scenetooltoggle2.hpp"
#include <sstream>
+#include <type_traits>
+#include <utility>
#include <QFrame>
#include <QHBoxLayout>
#include <QIcon>
+#include <apps/opencs/view/widget/scenetool.hpp>
+
#include "pushbutton.hpp"
#include "scenetoolbar.hpp"
diff --git a/apps/opencs/view/widget/scenetooltoggle2.hpp b/apps/opencs/view/widget/scenetooltoggle2.hpp
index c300243e1e..44fb4411f4 100644
--- a/apps/opencs/view/widget/scenetooltoggle2.hpp
+++ b/apps/opencs/view/widget/scenetooltoggle2.hpp
@@ -4,9 +4,12 @@
#include "scenetool.hpp"
#include <map>
+#include <string>
class QHBoxLayout;
-class QRect;
+class QObject;
+class QPoint;
+class QWidget;
namespace CSVWidget
{
diff --git a/apps/opencs/view/world/bodypartcreator.cpp b/apps/opencs/view/world/bodypartcreator.cpp
index 2df61bb7e4..9c26b84465 100644
--- a/apps/opencs/view/world/bodypartcreator.cpp
+++ b/apps/opencs/view/world/bodypartcreator.cpp
@@ -5,6 +5,8 @@
#include "../../model/world/data.hpp"
#include "../../model/world/universalid.hpp"
+#include <apps/opencs/view/world/genericcreator.hpp>
+
std::string CSVWorld::BodyPartCreator::getId() const
{
std::string id = CSVWorld::GenericCreator::getId();
diff --git a/apps/opencs/view/world/cellcreator.cpp b/apps/opencs/view/world/cellcreator.cpp
index 808d28c79a..7545a5c082 100644
--- a/apps/opencs/view/world/cellcreator.cpp
+++ b/apps/opencs/view/world/cellcreator.cpp
@@ -7,9 +7,15 @@
#include <QLabel>
#include <QSpinBox>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/world/commands.hpp"
#include "../../model/world/idtree.hpp"
+class QUndoStack;
+
std::string CSVWorld::CellCreator::getId() const
{
if (mType->currentIndex() == 0)
diff --git a/apps/opencs/view/world/cellcreator.hpp b/apps/opencs/view/world/cellcreator.hpp
index 4e68b1bf3e..0e0b4324a5 100644
--- a/apps/opencs/view/world/cellcreator.hpp
+++ b/apps/opencs/view/world/cellcreator.hpp
@@ -1,11 +1,23 @@
#ifndef CSV_WORLD_CELLCREATOR_H
#define CSV_WORLD_CELLCREATOR_H
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
+#include "genericcreator.hpp"
+
+class QComboBox;
class QLabel;
+class QObject;
class QSpinBox;
-class QComboBox;
+class QUndoStack;
-#include "genericcreator.hpp"
+namespace CSMWorld
+{
+ class CreateCommand;
+ class Data;
+}
namespace CSVWorld
{
diff --git a/apps/opencs/view/world/colordelegate.cpp b/apps/opencs/view/world/colordelegate.cpp
index cf2af1ae3a..18dd108648 100644
--- a/apps/opencs/view/world/colordelegate.cpp
+++ b/apps/opencs/view/world/colordelegate.cpp
@@ -1,6 +1,21 @@
#include "colordelegate.hpp"
+#include <QColor>
+#include <QModelIndex>
#include <QPainter>
+#include <QRect>
+
+#include <apps/opencs/view/world/util.hpp>
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
CSVWorld::ColorDelegate::ColorDelegate(
CSMWorld::CommandDispatcher* dispatcher, CSMDoc::Document& document, QObject* parent)
diff --git a/apps/opencs/view/world/colordelegate.hpp b/apps/opencs/view/world/colordelegate.hpp
index b1f2a7f00e..669fa5a4c5 100644
--- a/apps/opencs/view/world/colordelegate.hpp
+++ b/apps/opencs/view/world/colordelegate.hpp
@@ -3,11 +3,18 @@
#include "util.hpp"
-class QRect;
+class QModelIndex;
+class QObject;
+class QPainter;
-namespace CSVWidget
+namespace CSMDoc
{
- class ColorEditButton;
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
}
namespace CSVWorld
diff --git a/apps/opencs/view/world/creator.cpp b/apps/opencs/view/world/creator.cpp
index 86f5034dd5..3e34e4f811 100644
--- a/apps/opencs/view/world/creator.cpp
+++ b/apps/opencs/view/world/creator.cpp
@@ -1,9 +1,15 @@
#include "creator.hpp"
-#include <MyGUI_TextIterator.h>
+#include <apps/opencs/model/world/scope.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
#include <stdexcept>
+namespace CSMDoc
+{
+ class Document;
+}
+
CSVWorld::Creator::~Creator() {}
void CSVWorld::Creator::setScope(unsigned int scope)
diff --git a/apps/opencs/view/world/creator.hpp b/apps/opencs/view/world/creator.hpp
index 67f68ee6fb..e52aea0508 100644
--- a/apps/opencs/view/world/creator.hpp
+++ b/apps/opencs/view/world/creator.hpp
@@ -2,6 +2,7 @@
#define CSV_WORLD_CREATOR_H
#include <memory>
+#include <string>
#include <QWidget>
@@ -12,11 +13,6 @@
#include "../../model/world/universalid.hpp"
#endif
-namespace CSMDoc
-{
- class Document;
-}
-
namespace CSVWorld
{
/// \brief Record creator UI base class
diff --git a/apps/opencs/view/world/datadisplaydelegate.cpp b/apps/opencs/view/world/datadisplaydelegate.cpp
index bbf7cf863f..55bc50fe79 100644
--- a/apps/opencs/view/world/datadisplaydelegate.cpp
+++ b/apps/opencs/view/world/datadisplaydelegate.cpp
@@ -3,7 +3,32 @@
#include "../../model/prefs/state.hpp"
#include <QApplication>
+#include <QIcon>
#include <QPainter>
+#include <QRect>
+#include <QSize>
+#include <QString>
+#include <QStyle>
+
+#include <memory>
+
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/view/world/enumdelegate.hpp>
+#include <apps/opencs/view/world/util.hpp>
+
+class QModelIndex;
+class QObject;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
CSVWorld::DataDisplayDelegate::DataDisplayDelegate(const ValueList& values, const IconList& icons,
CSMWorld::CommandDispatcher* dispatcher, CSMDoc::Document& document, const std::string& pageName,
diff --git a/apps/opencs/view/world/datadisplaydelegate.hpp b/apps/opencs/view/world/datadisplaydelegate.hpp
index e80760bb73..7fa69d113c 100755
--- a/apps/opencs/view/world/datadisplaydelegate.hpp
+++ b/apps/opencs/view/world/datadisplaydelegate.hpp
@@ -3,6 +3,26 @@
#include "enumdelegate.hpp"
+#include <algorithm>
+#include <string>
+#include <utility>
+#include <vector>
+
+class QModelIndex;
+class QObject;
+class QPainter;
+class QPixmap;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
namespace CSMPrefs
{
class Setting;
@@ -10,6 +30,8 @@ namespace CSMPrefs
namespace CSVWorld
{
+ class CommandDelegate;
+
struct Icon
{
int mValue;
diff --git a/apps/opencs/view/world/dialoguecreator.cpp b/apps/opencs/view/world/dialoguecreator.cpp
index 9656e43d13..db78c35245 100644
--- a/apps/opencs/view/world/dialoguecreator.cpp
+++ b/apps/opencs/view/world/dialoguecreator.cpp
@@ -1,10 +1,17 @@
#include "dialoguecreator.hpp"
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include <components/esm3/loaddial.hpp>
#include "../../model/world/commands.hpp"
#include "../../model/world/idtable.hpp"
+class QUndoStack;
+
void CSVWorld::DialogueCreator::configureCreateCommand(CSMWorld::CreateCommand& command) const
{
int index = dynamic_cast<CSMWorld::IdTable&>(*getData().getTableModel(getCollectionId()))
diff --git a/apps/opencs/view/world/dialoguecreator.hpp b/apps/opencs/view/world/dialoguecreator.hpp
index 74a1ab6b4f..6a89387b88 100644
--- a/apps/opencs/view/world/dialoguecreator.hpp
+++ b/apps/opencs/view/world/dialoguecreator.hpp
@@ -3,6 +3,22 @@
#include "genericcreator.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/world/creator.hpp>
+
+class QUndoStack;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CreateCommand;
+ class Data;
+}
+
namespace CSVWorld
{
class DialogueCreator : public GenericCreator
diff --git a/apps/opencs/view/world/dialoguesubview.cpp b/apps/opencs/view/world/dialoguesubview.cpp
index a828a923c8..c20692ba9f 100644
--- a/apps/opencs/view/world/dialoguesubview.cpp
+++ b/apps/opencs/view/world/dialoguesubview.cpp
@@ -1,21 +1,38 @@
#include "dialoguesubview.hpp"
+#include <algorithm>
#include <memory>
#include <stdexcept>
+#include <type_traits>
#include <utility>
#include <QAbstractItemModel>
#include <QCheckBox>
#include <QComboBox>
#include <QDataWidgetMapper>
+#include <QFrame>
#include <QGridLayout>
#include <QHeaderView>
#include <QLabel>
#include <QLineEdit>
#include <QMenu>
+#include <QModelIndex>
#include <QPlainTextEdit>
+#include <QRect>
#include <QScrollBar>
#include <QSize>
+#include <QSizePolicy>
+#include <QVBoxLayout>
+#include <QVariant>
+#include <QWidget>
+
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/commanddispatcher.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idtablebase.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/doc/subview.hpp>
#include "../../model/doc/document.hpp"
#include "../../model/world/columnbase.hpp"
@@ -35,6 +52,10 @@
#include "recordbuttonbar.hpp"
#include "tablebottombox.hpp"
#include "util.hpp"
+
+class QPainter;
+class QPoint;
+
/*
==============================NotEditableSubDelegate==========================================
*/
diff --git a/apps/opencs/view/world/dialoguesubview.hpp b/apps/opencs/view/world/dialoguesubview.hpp
index 598f701f91..b5108f3b0e 100644
--- a/apps/opencs/view/world/dialoguesubview.hpp
+++ b/apps/opencs/view/world/dialoguesubview.hpp
@@ -4,9 +4,13 @@
#include <map>
#include <memory>
#include <set>
+#include <string>
+#include <vector>
#include <QAbstractItemDelegate>
+#include <QObject>
#include <QScrollArea>
+#include <QStyleOptionViewItem>
#ifndef Q_MOC_RUN
#include "../doc/subview.hpp"
@@ -16,12 +20,16 @@
#include "../../model/world/universalid.hpp"
#endif
+class QAbstractItemModel;
+class QAction;
class QDataWidgetMapper;
+class QMenu;
+class QModelIndex;
+class QPainter;
+class QPoint;
class QSize;
-class QEvent;
-class QLabel;
class QVBoxLayout;
-class QMenu;
+class QWidget;
namespace CSMWorld
{
diff --git a/apps/opencs/view/world/dragdroputils.cpp b/apps/opencs/view/world/dragdroputils.cpp
index 819f6fadc3..2336c14924 100644
--- a/apps/opencs/view/world/dragdroputils.cpp
+++ b/apps/opencs/view/world/dragdroputils.cpp
@@ -2,6 +2,9 @@
#include <QDropEvent>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "../../model/world/tablemimedata.hpp"
const CSMWorld::TableMimeData* CSVWorld::DragDropUtils::getTableMimeData(const QDropEvent& event)
diff --git a/apps/opencs/view/world/dragrecordtable.cpp b/apps/opencs/view/world/dragrecordtable.cpp
index 50878af074..1a35e02d79 100644
--- a/apps/opencs/view/world/dragrecordtable.cpp
+++ b/apps/opencs/view/world/dragrecordtable.cpp
@@ -3,11 +3,17 @@
#include <QDrag>
#include <QDragEnterEvent>
+#include <algorithm>
+#include <string>
+
#include "../../model/doc/document.hpp"
#include "../../model/world/commands.hpp"
#include "../../model/world/tablemimedata.hpp"
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "dragdroputils.hpp"
void CSVWorld::DragRecordTable::startDragFromTable(const CSVWorld::DragRecordTable& table)
diff --git a/apps/opencs/view/world/dragrecordtable.hpp b/apps/opencs/view/world/dragrecordtable.hpp
index 361cc071cb..7634c0e650 100644
--- a/apps/opencs/view/world/dragrecordtable.hpp
+++ b/apps/opencs/view/world/dragrecordtable.hpp
@@ -3,10 +3,16 @@
#include <QTableView>
+#include <vector>
+
#include "../../model/world/columnbase.hpp"
+class QDragEnterEvent;
+class QDragMoveEvent;
+class QDropEvent;
+class QModelIndex;
+class QObject;
class QWidget;
-class QAction;
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/enumdelegate.cpp b/apps/opencs/view/world/enumdelegate.cpp
index 42ce0c5005..1dcadd7fe5 100644
--- a/apps/opencs/view/world/enumdelegate.cpp
+++ b/apps/opencs/view/world/enumdelegate.cpp
@@ -1,13 +1,15 @@
#include "enumdelegate.hpp"
#include <cassert>
-#include <stdexcept>
+#include <memory>
#include <QApplication>
#include <QComboBox>
#include "../../model/world/commands.hpp"
+#include <apps/opencs/view/world/util.hpp>
+
int CSVWorld::EnumDelegate::getValueIndex(const QModelIndex& index, int role) const
{
if (index.isValid() && index.data(role).isValid())
diff --git a/apps/opencs/view/world/enumdelegate.hpp b/apps/opencs/view/world/enumdelegate.hpp
index 6fcf746500..44d1360aba 100644
--- a/apps/opencs/view/world/enumdelegate.hpp
+++ b/apps/opencs/view/world/enumdelegate.hpp
@@ -1,14 +1,26 @@
#ifndef CSV_WORLD_ENUMDELEGATE_H
#define CSV_WORLD_ENUMDELEGATE_H
+#include <string>
+#include <utility>
#include <vector>
#include <QString>
-#include <components/esm/defs.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
#include "util.hpp"
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
namespace CSVWorld
{
/// \brief Integer value that represents an enum and is interacted with via a combobox
diff --git a/apps/opencs/view/world/extendedcommandconfigurator.cpp b/apps/opencs/view/world/extendedcommandconfigurator.cpp
index c0a1097ab7..69659be8a6 100644
--- a/apps/opencs/view/world/extendedcommandconfigurator.cpp
+++ b/apps/opencs/view/world/extendedcommandconfigurator.cpp
@@ -1,6 +1,8 @@
#include "extendedcommandconfigurator.hpp"
#include <algorithm>
+#include <type_traits>
+#include <utility>
#include <QCheckBox>
#include <QGroupBox>
@@ -12,6 +14,8 @@
#include "../../model/world/commanddispatcher.hpp"
#include "../../model/world/data.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+
CSVWorld::ExtendedCommandConfigurator::ExtendedCommandConfigurator(
CSMDoc::Document& document, const CSMWorld::UniversalId& id, QWidget* parent)
: QWidget(parent)
diff --git a/apps/opencs/view/world/extendedcommandconfigurator.hpp b/apps/opencs/view/world/extendedcommandconfigurator.hpp
index d3354a5e5d..e441cc3937 100644
--- a/apps/opencs/view/world/extendedcommandconfigurator.hpp
+++ b/apps/opencs/view/world/extendedcommandconfigurator.hpp
@@ -2,6 +2,7 @@
#define CSVWORLD_EXTENDEDCOMMANDCONFIGURATOR_HPP
#include <map>
+#include <vector>
#include <QWidget>
@@ -10,8 +11,7 @@
class QPushButton;
class QGroupBox;
class QCheckBox;
-class QLabel;
-class QHBoxLayout;
+class QResizeEvent;
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/genericcreator.cpp b/apps/opencs/view/world/genericcreator.cpp
index f12783e294..e4c084e46b 100644
--- a/apps/opencs/view/world/genericcreator.cpp
+++ b/apps/opencs/view/world/genericcreator.cpp
@@ -1,6 +1,7 @@
#include "genericcreator.hpp"
#include <memory>
+#include <utility>
#include <QComboBox>
#include <QHBoxLayout>
@@ -9,6 +10,8 @@
#include <QPushButton>
#include <QUndoStack>
+#include <apps/opencs/model/world/universalid.hpp>
+
#include <components/misc/strings/lower.hpp>
#include "../../model/world/commands.hpp"
diff --git a/apps/opencs/view/world/genericcreator.hpp b/apps/opencs/view/world/genericcreator.hpp
index 5423bb96c5..a39b530ef2 100644
--- a/apps/opencs/view/world/genericcreator.hpp
+++ b/apps/opencs/view/world/genericcreator.hpp
@@ -1,13 +1,18 @@
#ifndef CSV_WORLD_GENERICCREATOR_H
#define CSV_WORLD_GENERICCREATOR_H
+#include <QString>
+
#include <memory>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/scope.hpp>
#include "../../model/world/universalid.hpp"
#include "creator.hpp"
-class QString;
class QPushButton;
class QLineEdit;
class QHBoxLayout;
diff --git a/apps/opencs/view/world/globalcreator.cpp b/apps/opencs/view/world/globalcreator.cpp
index df4ac31c26..43c1210590 100644
--- a/apps/opencs/view/world/globalcreator.cpp
+++ b/apps/opencs/view/world/globalcreator.cpp
@@ -1,10 +1,16 @@
#include "globalcreator.hpp"
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include <components/esm3/variant.hpp>
#include "../../model/world/commands.hpp"
#include "../../model/world/idtable.hpp"
+class QUndoStack;
+
namespace CSVWorld
{
void GlobalCreator::configureCreateCommand(CSMWorld::CreateCommand& command) const
diff --git a/apps/opencs/view/world/globalcreator.hpp b/apps/opencs/view/world/globalcreator.hpp
index 09100d8cc8..81f4c7c88e 100644
--- a/apps/opencs/view/world/globalcreator.hpp
+++ b/apps/opencs/view/world/globalcreator.hpp
@@ -3,6 +3,17 @@
#include "genericcreator.hpp"
+class QObject;
+class QUndoStack;
+
+#include <apps/opencs/model/world/universalid.hpp>
+
+namespace CSMWorld
+{
+ class CreateCommand;
+ class Data;
+}
+
namespace CSVWorld
{
class GlobalCreator : public GenericCreator
diff --git a/apps/opencs/view/world/idcompletiondelegate.cpp b/apps/opencs/view/world/idcompletiondelegate.cpp
index a4171241a7..3e26ed9250 100644
--- a/apps/opencs/view/world/idcompletiondelegate.cpp
+++ b/apps/opencs/view/world/idcompletiondelegate.cpp
@@ -3,8 +3,21 @@
#include "../../model/world/idcompletionmanager.hpp"
#include "../../model/world/infoselectwrapper.hpp"
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/view/world/util.hpp>
+
+#include <memory>
+
#include "../widget/droplineedit.hpp"
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
+class QObject;
+class QWidget;
+
CSVWorld::IdCompletionDelegate::IdCompletionDelegate(
CSMWorld::CommandDispatcher* dispatcher, CSMDoc::Document& document, QObject* parent)
: CommandDelegate(dispatcher, document, parent)
diff --git a/apps/opencs/view/world/idcompletiondelegate.hpp b/apps/opencs/view/world/idcompletiondelegate.hpp
index 680a9bd3f2..9326e3b69c 100644
--- a/apps/opencs/view/world/idcompletiondelegate.hpp
+++ b/apps/opencs/view/world/idcompletiondelegate.hpp
@@ -3,6 +3,22 @@
#include "util.hpp"
+#include <apps/opencs/model/world/columnbase.hpp>
+
+class QModelIndex;
+class QObject;
+class QWidget;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
namespace CSVWorld
{
/// \brief Enables the Id completion for a column
diff --git a/apps/opencs/view/world/idtypedelegate.cpp b/apps/opencs/view/world/idtypedelegate.cpp
index 1a84b8c573..6aa77b38f7 100755
--- a/apps/opencs/view/world/idtypedelegate.cpp
+++ b/apps/opencs/view/world/idtypedelegate.cpp
@@ -2,6 +2,23 @@
#include "../../model/world/universalid.hpp"
+#include <apps/opencs/view/world/datadisplaydelegate.hpp>
+#include <apps/opencs/view/world/util.hpp>
+
+#include <string>
+
+class QObject;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
CSVWorld::IdTypeDelegate::IdTypeDelegate(const ValueList& values, const IconList& icons,
CSMWorld::CommandDispatcher* dispatcher, CSMDoc::Document& document, QObject* parent)
: DataDisplayDelegate(values, icons, dispatcher, document, "Records", "type-format", parent)
diff --git a/apps/opencs/view/world/idtypedelegate.hpp b/apps/opencs/view/world/idtypedelegate.hpp
index db7fb46b5c..4a138910c5 100755
--- a/apps/opencs/view/world/idtypedelegate.hpp
+++ b/apps/opencs/view/world/idtypedelegate.hpp
@@ -2,10 +2,23 @@
#define IDTYPEDELEGATE_HPP
#include "datadisplaydelegate.hpp"
-#include "util.hpp"
+
+class QObject;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
namespace CSVWorld
{
+ class CommandDelegate;
+
class IdTypeDelegate : public DataDisplayDelegate
{
public:
diff --git a/apps/opencs/view/world/infocreator.cpp b/apps/opencs/view/world/infocreator.cpp
index b7d467e2f2..00e0399f9b 100644
--- a/apps/opencs/view/world/infocreator.cpp
+++ b/apps/opencs/view/world/infocreator.cpp
@@ -1,10 +1,16 @@
#include "infocreator.hpp"
#include <algorithm>
+#include <memory>
#include <QLabel>
+#include <QString>
#include <QUuid>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include <components/misc/strings/lower.hpp>
#include "../../model/doc/document.hpp"
@@ -17,6 +23,8 @@
#include "../widget/droplineedit.hpp"
+class QUndoStack;
+
std::string CSVWorld::InfoCreator::getId() const
{
std::string id = Misc::StringUtils::lowerCase(mTopic->text().toUtf8().constData());
diff --git a/apps/opencs/view/world/infocreator.hpp b/apps/opencs/view/world/infocreator.hpp
index 5288ddbd1b..2227b5bc9e 100644
--- a/apps/opencs/view/world/infocreator.hpp
+++ b/apps/opencs/view/world/infocreator.hpp
@@ -3,10 +3,18 @@
#include "genericcreator.hpp"
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/world/creator.hpp>
+
+class QUndoStack;
+
namespace CSMWorld
{
- class InfoCollection;
class IdCompletionManager;
+ class CreateCommand;
+ class Data;
}
namespace CSVWidget
@@ -14,6 +22,11 @@ namespace CSVWidget
class DropLineEdit;
}
+namespace CSMDoc
+{
+ class Document;
+}
+
namespace CSVWorld
{
class InfoCreator : public GenericCreator
diff --git a/apps/opencs/view/world/landcreator.cpp b/apps/opencs/view/world/landcreator.cpp
index b229966ac7..bc8d4d2d06 100644
--- a/apps/opencs/view/world/landcreator.cpp
+++ b/apps/opencs/view/world/landcreator.cpp
@@ -5,6 +5,10 @@
#include <QLabel>
#include <QSpinBox>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/world/commands.hpp"
#include "../../model/world/idtable.hpp"
#include "../../model/world/land.hpp"
diff --git a/apps/opencs/view/world/landcreator.hpp b/apps/opencs/view/world/landcreator.hpp
index 0ba4633cf7..ae7eecf758 100644
--- a/apps/opencs/view/world/landcreator.hpp
+++ b/apps/opencs/view/world/landcreator.hpp
@@ -3,6 +3,18 @@
#include "genericcreator.hpp"
+#include <memory>
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
+namespace CSMWorld
+{
+ class CreateCommand;
+ class Data;
+}
+
class QLabel;
class QSpinBox;
diff --git a/apps/opencs/view/world/landtexturecreator.cpp b/apps/opencs/view/world/landtexturecreator.cpp
index ca21c449d4..f82a6a1298 100644
--- a/apps/opencs/view/world/landtexturecreator.cpp
+++ b/apps/opencs/view/world/landtexturecreator.cpp
@@ -2,11 +2,17 @@
#include <cstdint>
#include <limits>
+#include <stddef.h>
#include <QLabel>
#include <QLineEdit>
#include <QSpinBox>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/world/commands.hpp"
#include "../../model/world/idtable.hpp"
#include "../../model/world/landtexture.hpp"
diff --git a/apps/opencs/view/world/landtexturecreator.hpp b/apps/opencs/view/world/landtexturecreator.hpp
index b71b05ba20..a2ebf093fb 100644
--- a/apps/opencs/view/world/landtexturecreator.hpp
+++ b/apps/opencs/view/world/landtexturecreator.hpp
@@ -5,6 +5,14 @@
#include "genericcreator.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+
+namespace CSMWorld
+{
+ class CreateCommand;
+ class Data;
+}
+
class QLineEdit;
class QSpinBox;
diff --git a/apps/opencs/view/world/nestedtable.cpp b/apps/opencs/view/world/nestedtable.cpp
index d56204d652..3e1b16248d 100644
--- a/apps/opencs/view/world/nestedtable.cpp
+++ b/apps/opencs/view/world/nestedtable.cpp
@@ -12,6 +12,10 @@
#include "../../model/world/nestedtableproxymodel.hpp"
#include "../../model/world/universalid.hpp"
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/view/world/dragrecordtable.hpp>
+
#include "tableeditidaction.hpp"
#include "util.hpp"
diff --git a/apps/opencs/view/world/nestedtable.hpp b/apps/opencs/view/world/nestedtable.hpp
index e53bc31f94..2520f45a05 100644
--- a/apps/opencs/view/world/nestedtable.hpp
+++ b/apps/opencs/view/world/nestedtable.hpp
@@ -3,6 +3,9 @@
#include "dragrecordtable.hpp"
+#include <string>
+#include <vector>
+
class QAction;
class QContextMenuEvent;
diff --git a/apps/opencs/view/world/pathgridcreator.cpp b/apps/opencs/view/world/pathgridcreator.cpp
index 9a8b51199d..582ef46e9d 100644
--- a/apps/opencs/view/world/pathgridcreator.cpp
+++ b/apps/opencs/view/world/pathgridcreator.cpp
@@ -2,6 +2,13 @@
#include <QLabel>
+#include <memory>
+
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/subcellcollection.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/world/columns.hpp"
@@ -11,6 +18,8 @@
#include "../widget/droplineedit.hpp"
+class QUndoStack;
+
std::string CSVWorld::PathgridCreator::getId() const
{
return mCell->text().toUtf8().constData();
diff --git a/apps/opencs/view/world/pathgridcreator.hpp b/apps/opencs/view/world/pathgridcreator.hpp
index 42a39cd504..ce26dc370e 100644
--- a/apps/opencs/view/world/pathgridcreator.hpp
+++ b/apps/opencs/view/world/pathgridcreator.hpp
@@ -1,8 +1,13 @@
#ifndef PATHGRIDCREATOR_HPP
#define PATHGRIDCREATOR_HPP
+#include <string>
+
#include "genericcreator.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/world/creator.hpp>
+
namespace CSMDoc
{
class Document;
@@ -13,7 +18,6 @@ namespace CSMWorld
class Data;
class IdCompletionManager;
class IdTable;
- class UniversalId;
}
namespace CSVWidget
diff --git a/apps/opencs/view/world/previewsubview.cpp b/apps/opencs/view/world/previewsubview.cpp
index 075c786c2b..9a9c7ea9cf 100644
--- a/apps/opencs/view/world/previewsubview.cpp
+++ b/apps/opencs/view/world/previewsubview.cpp
@@ -2,6 +2,13 @@
#include <QHBoxLayout>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/ref.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/model/world/refidcollection.hpp>
+#include <apps/opencs/view/doc/subview.hpp>
+
#include "../render/previewwidget.hpp"
#include "../widget/scenetoolbar.hpp"
diff --git a/apps/opencs/view/world/previewsubview.hpp b/apps/opencs/view/world/previewsubview.hpp
index a767cc3365..8ae3c9dbad 100644
--- a/apps/opencs/view/world/previewsubview.hpp
+++ b/apps/opencs/view/world/previewsubview.hpp
@@ -3,6 +3,10 @@
#include "../doc/subview.hpp"
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
namespace CSMDoc
{
class Document;
diff --git a/apps/opencs/view/world/recordbuttonbar.cpp b/apps/opencs/view/world/recordbuttonbar.cpp
index 7e986877fa..67270bd1ed 100644
--- a/apps/opencs/view/world/recordbuttonbar.cpp
+++ b/apps/opencs/view/world/recordbuttonbar.cpp
@@ -3,6 +3,8 @@
#include <QHBoxLayout>
#include <QToolButton>
+#include <memory>
+
#include "../../model/world/commanddispatcher.hpp"
#include "../../model/world/idtable.hpp"
@@ -10,6 +12,12 @@
#include "../world/tablebottombox.hpp"
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/idtablebase.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
void CSVWorld::RecordButtonBar::updateModificationButtons()
{
bool createAndDeleteDisabled = !mBottom || !mBottom->canCreateAndDelete() || mLocked;
diff --git a/apps/opencs/view/world/recordstatusdelegate.cpp b/apps/opencs/view/world/recordstatusdelegate.cpp
index 8804d8c177..9e172f3362 100644
--- a/apps/opencs/view/world/recordstatusdelegate.cpp
+++ b/apps/opencs/view/world/recordstatusdelegate.cpp
@@ -2,6 +2,25 @@
#include "../../model/world/columns.hpp"
+#include <apps/opencs/view/world/datadisplaydelegate.hpp>
+#include <apps/opencs/view/world/util.hpp>
+
+#include <string>
+#include <utility>
+#include <vector>
+
+class QObject;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
CSVWorld::RecordStatusDelegate::RecordStatusDelegate(const ValueList& values, const IconList& icons,
CSMWorld::CommandDispatcher* dispatcher, CSMDoc::Document& document, QObject* parent)
: DataDisplayDelegate(values, icons, dispatcher, document, "Records", "status-format", parent)
diff --git a/apps/opencs/view/world/recordstatusdelegate.hpp b/apps/opencs/view/world/recordstatusdelegate.hpp
index a3aa9f5d50..9afac71295 100644
--- a/apps/opencs/view/world/recordstatusdelegate.hpp
+++ b/apps/opencs/view/world/recordstatusdelegate.hpp
@@ -1,15 +1,24 @@
#ifndef RECORDSTATUSDELEGATE_H
#define RECORDSTATUSDELEGATE_H
-#include "util.hpp"
-
#include "datadisplaydelegate.hpp"
-class QIcon;
-class QFont;
+class QObject;
+
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
namespace CSVWorld
{
+ class CommandDelegate;
+
class RecordStatusDelegate : public DataDisplayDelegate
{
public:
diff --git a/apps/opencs/view/world/referenceablecreator.cpp b/apps/opencs/view/world/referenceablecreator.cpp
index 48227397a0..e13648d637 100644
--- a/apps/opencs/view/world/referenceablecreator.cpp
+++ b/apps/opencs/view/world/referenceablecreator.cpp
@@ -1,11 +1,22 @@
#include "referenceablecreator.hpp"
+#include <vector>
+
#include <QComboBox>
#include <QLabel>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/world/commands.hpp"
#include "../../model/world/universalid.hpp"
+class QUndoStack;
+
+namespace CSMWorld
+{
+ class Data;
+}
+
void CSVWorld::ReferenceableCreator::configureCreateCommand(CSMWorld::CreateCommand& command) const
{
command.setType(static_cast<CSMWorld::UniversalId::Type>(mType->itemData(mType->currentIndex()).toInt()));
diff --git a/apps/opencs/view/world/referenceablecreator.hpp b/apps/opencs/view/world/referenceablecreator.hpp
index 15ad4f6865..9858327968 100644
--- a/apps/opencs/view/world/referenceablecreator.hpp
+++ b/apps/opencs/view/world/referenceablecreator.hpp
@@ -1,9 +1,21 @@
#ifndef CSV_WORLD_REFERENCEABLECREATOR_H
#define CSV_WORLD_REFERENCEABLECREATOR_H
+#include "genericcreator.hpp"
+
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
class QComboBox;
+class QObject;
+class QUndoStack;
-#include "genericcreator.hpp"
+namespace CSMWorld
+{
+ class CreateCommand;
+ class Data;
+}
namespace CSVWorld
{
diff --git a/apps/opencs/view/world/referencecreator.cpp b/apps/opencs/view/world/referencecreator.cpp
index 08d6e766b8..9228f0f87a 100644
--- a/apps/opencs/view/world/referencecreator.cpp
+++ b/apps/opencs/view/world/referencecreator.cpp
@@ -2,6 +2,13 @@
#include <QLabel>
+#include <memory>
+
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/refcollection.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/world/columns.hpp"
diff --git a/apps/opencs/view/world/referencecreator.hpp b/apps/opencs/view/world/referencecreator.hpp
index 29135d6eb2..1e6ab5a746 100644
--- a/apps/opencs/view/world/referencecreator.hpp
+++ b/apps/opencs/view/world/referencecreator.hpp
@@ -1,11 +1,26 @@
#ifndef CSV_WORLD_REFERENCECREATOR_H
#define CSV_WORLD_REFERENCECREATOR_H
+#include <string>
+
#include "genericcreator.hpp"
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/world/creator.hpp>
+
+class QObject;
+class QUndoStack;
+
namespace CSMWorld
{
class IdCompletionManager;
+ class CreateCommand;
+ class Data;
+}
+
+namespace CSMDoc
+{
+ class Document;
}
namespace CSVWidget
diff --git a/apps/opencs/view/world/regionmap.cpp b/apps/opencs/view/world/regionmap.cpp
index 6fe8b20c02..cf6cdf9104 100644
--- a/apps/opencs/view/world/regionmap.cpp
+++ b/apps/opencs/view/world/regionmap.cpp
@@ -1,12 +1,22 @@
#include "regionmap.hpp"
#include <algorithm>
+#include <iterator>
#include <set>
#include <sstream>
-#include <QContextMenuEvent>
+#include <QAbstractItemModel>
+#include <QAction>
+#include <QBrush>
+#include <QDropEvent>
#include <QHeaderView>
+#include <QItemSelectionModel>
#include <QMenu>
+#include <QTableView>
+
+#include <apps/opencs/view/world/dragrecordtable.hpp>
+
+#include <components/esm3/cellid.hpp>
#include "../../model/doc/document.hpp"
diff --git a/apps/opencs/view/world/regionmap.hpp b/apps/opencs/view/world/regionmap.hpp
index 356e86074f..b6c5078ea3 100644
--- a/apps/opencs/view/world/regionmap.hpp
+++ b/apps/opencs/view/world/regionmap.hpp
@@ -1,12 +1,19 @@
#ifndef CSV_WORLD_REGIONMAP_H
#define CSV_WORLD_REGIONMAP_H
-#include <cstddef>
+#include <QModelIndexList>
+
+#include <string>
#include <vector>
#include "./dragrecordtable.hpp"
class QAction;
+class QContextMenuEvent;
+class QDropEvent;
+class QMouseEvent;
+class QObject;
+class QWidget;
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/regionmapsubview.cpp b/apps/opencs/view/world/regionmapsubview.cpp
index 5d76c9459b..7b07f2b65d 100644
--- a/apps/opencs/view/world/regionmapsubview.cpp
+++ b/apps/opencs/view/world/regionmapsubview.cpp
@@ -1,5 +1,7 @@
#include "regionmapsubview.hpp"
+#include <apps/opencs/view/doc/subview.hpp>
+
#include "regionmap.hpp"
CSVWorld::RegionMapSubView::RegionMapSubView(CSMWorld::UniversalId universalId, CSMDoc::Document& document)
diff --git a/apps/opencs/view/world/regionmapsubview.hpp b/apps/opencs/view/world/regionmapsubview.hpp
index 1874236a30..3ac607a28a 100644
--- a/apps/opencs/view/world/regionmapsubview.hpp
+++ b/apps/opencs/view/world/regionmapsubview.hpp
@@ -1,9 +1,11 @@
#ifndef CSV_WORLD_REGIONMAPSUBVIEW_H
#define CSV_WORLD_REGIONMAPSUBVIEW_H
+#include <string>
+
#include "../doc/subview.hpp"
-class QAction;
+#include <apps/opencs/model/world/universalid.hpp>
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/scenesubview.cpp b/apps/opencs/view/world/scenesubview.cpp
index b52658b608..a0ff807ba9 100644
--- a/apps/opencs/view/world/scenesubview.cpp
+++ b/apps/opencs/view/world/scenesubview.cpp
@@ -1,11 +1,20 @@
#include "scenesubview.hpp"
+#include <algorithm>
+#include <cassert>
+#include <map>
#include <sstream>
#include <QHBoxLayout>
-#include <QLabel>
+#include <QMargins>
#include <QVBoxLayout>
-#include <cassert>
+#include <QWidget>
+
+#include <apps/opencs/model/world/cellcoordinates.hpp>
+#include <apps/opencs/view/doc/subview.hpp>
+#include <apps/opencs/view/render/worldspacewidget.hpp>
+
+#include <components/esm3/cellid.hpp>
#include "../../model/doc/document.hpp"
diff --git a/apps/opencs/view/world/scenesubview.hpp b/apps/opencs/view/world/scenesubview.hpp
index 446a7a5e89..7248efd145 100644
--- a/apps/opencs/view/world/scenesubview.hpp
+++ b/apps/opencs/view/world/scenesubview.hpp
@@ -3,9 +3,12 @@
#include <QHBoxLayout>
-#include "../doc/subview.hpp"
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
-class QModelIndex;
+#include "../doc/subview.hpp"
namespace CSMWorld
{
@@ -27,13 +30,11 @@ namespace CSVRender
namespace CSVWidget
{
class SceneToolbar;
- class SceneToolMode;
}
namespace CSVWorld
{
class TableBottomBox;
- class CreatorFactoryBase;
class SceneSubView : public CSVDoc::SubView
{
diff --git a/apps/opencs/view/world/scriptedit.cpp b/apps/opencs/view/world/scriptedit.cpp
index 142e559a26..5844cbd53d 100644
--- a/apps/opencs/view/world/scriptedit.cpp
+++ b/apps/opencs/view/world/scriptedit.cpp
@@ -1,6 +1,6 @@
#include "scriptedit.hpp"
-#include <algorithm>
+#include <vector>
#include <QDragEnterEvent>
#include <QMenu>
@@ -8,6 +8,11 @@
#include <QString>
#include <QTextDocumentFragment>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/view/world/scripthighlighter.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/prefs/shortcut.hpp"
diff --git a/apps/opencs/view/world/scriptedit.hpp b/apps/opencs/view/world/scriptedit.hpp
index bb7018efd0..2c16d64868 100644
--- a/apps/opencs/view/world/scriptedit.hpp
+++ b/apps/opencs/view/world/scriptedit.hpp
@@ -1,18 +1,34 @@
#ifndef SCRIPTEDIT_H
#define SCRIPTEDIT_H
-#include <QAction>
#include <QFont>
#include <QPlainTextEdit>
+#include <QRegExp>
#include <QTimer>
#include <QVector>
#include <QWidget>
+#include <string>
+
#include "../../model/world/universalid.hpp"
#include "scripthighlighter.hpp"
-class QRegExp;
+class QAction;
+class QContextMenuEvent;
+class QDragEnterEvent;
+class QDragMoveEvent;
+class QDropEvent;
+class QEvent;
+class QObject;
+class QPaintEvent;
+class QRect;
+class QResizeEvent;
+
+namespace CSMPrefs
+{
+ class Setting;
+}
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/scripterrortable.cpp b/apps/opencs/view/world/scripterrortable.cpp
index 6467913a7d..4bd8c3f390 100644
--- a/apps/opencs/view/world/scripterrortable.cpp
+++ b/apps/opencs/view/world/scripterrortable.cpp
@@ -1,9 +1,15 @@
#include "scripterrortable.hpp"
+#include <exception>
#include <sstream>
#include <QHeaderView>
+#include <apps/opencs/model/doc/messages.hpp>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/scriptcontext.hpp>
+
#include <components/compiler/exception.hpp>
#include <components/compiler/extensions0.hpp>
#include <components/compiler/fileparser.hpp>
diff --git a/apps/opencs/view/world/scripterrortable.hpp b/apps/opencs/view/world/scripterrortable.hpp
index c002d3c632..d05449a4f5 100644
--- a/apps/opencs/view/world/scripterrortable.hpp
+++ b/apps/opencs/view/world/scripterrortable.hpp
@@ -3,12 +3,19 @@
#include <QTableWidget>
+#include <string>
+
#include <components/compiler/errorhandler.hpp>
#include <components/compiler/extensions.hpp>
#include "../../model/doc/messages.hpp"
#include "../../model/world/scriptcontext.hpp"
+namespace Compiler
+{
+ struct TokenLoc;
+}
+
namespace CSMDoc
{
class Document;
diff --git a/apps/opencs/view/world/scripthighlighter.cpp b/apps/opencs/view/world/scripthighlighter.cpp
index 68f5faefdc..6e98fa695e 100644
--- a/apps/opencs/view/world/scripthighlighter.cpp
+++ b/apps/opencs/view/world/scripthighlighter.cpp
@@ -1,13 +1,23 @@
#include "scripthighlighter.hpp"
#include <sstream>
+#include <utility>
+#include <apps/opencs/model/world/scriptcontext.hpp>
#include <components/compiler/extensions0.hpp>
#include <components/compiler/scanner.hpp>
+#include <components/compiler/tokenloc.hpp>
#include "../../model/prefs/category.hpp"
#include "../../model/prefs/setting.hpp"
+class QTextDocument;
+
+namespace CSMWorld
+{
+ class Data;
+}
+
bool CSVWorld::ScriptHighlighter::parseInt(int value, const Compiler::TokenLoc& loc, Compiler::Scanner& scanner)
{
highlight(loc, Type_Int);
diff --git a/apps/opencs/view/world/scripthighlighter.hpp b/apps/opencs/view/world/scripthighlighter.hpp
index cefe7e1fef..517db52244 100644
--- a/apps/opencs/view/world/scripthighlighter.hpp
+++ b/apps/opencs/view/world/scripthighlighter.hpp
@@ -4,7 +4,9 @@
#include <map>
#include <string>
+#include <QString>
#include <QSyntaxHighlighter>
+#include <QTextCharFormat>
#include <components/compiler/extensions.hpp>
#include <components/compiler/nullerrorhandler.hpp>
@@ -12,6 +14,19 @@
#include "../../model/world/scriptcontext.hpp"
+class QTextDocument;
+
+namespace CSMWorld
+{
+ class Data;
+}
+
+namespace Compiler
+{
+ class Scanner;
+ struct TokenLoc;
+}
+
namespace CSMPrefs
{
class Setting;
diff --git a/apps/opencs/view/world/scriptsubview.cpp b/apps/opencs/view/world/scriptsubview.cpp
index a9bccd394c..793f2e58c1 100644
--- a/apps/opencs/view/world/scriptsubview.cpp
+++ b/apps/opencs/view/world/scriptsubview.cpp
@@ -1,10 +1,20 @@
#include "scriptsubview.hpp"
-#include <stdexcept>
+#include <istream>
+#include <vector>
#include <QSplitter>
#include <QTimer>
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/commanddispatcher.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/view/doc/subview.hpp>
+#include <apps/opencs/view/world/creator.hpp>
+#include <apps/opencs/view/world/scripthighlighter.hpp>
+
#include <components/debug/debuglog.hpp>
#include "../../model/doc/document.hpp"
diff --git a/apps/opencs/view/world/scriptsubview.hpp b/apps/opencs/view/world/scriptsubview.hpp
index 3fe0b4dbe9..2f53295f6b 100644
--- a/apps/opencs/view/world/scriptsubview.hpp
+++ b/apps/opencs/view/world/scriptsubview.hpp
@@ -3,14 +3,18 @@
#include <QVBoxLayout>
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
#include "../../model/world/commanddispatcher.hpp"
#include "../doc/subview.hpp"
class QModelIndex;
-class QLabel;
+class QObject;
class QSplitter;
-class QTime;
+class QTimer;
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/startscriptcreator.cpp b/apps/opencs/view/world/startscriptcreator.cpp
index f8552e39d6..8145438039 100644
--- a/apps/opencs/view/world/startscriptcreator.cpp
+++ b/apps/opencs/view/world/startscriptcreator.cpp
@@ -2,6 +2,12 @@
#include <QLabel>
+#include <memory>
+
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/view/world/genericcreator.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/world/columns.hpp"
@@ -11,6 +17,8 @@
#include "../widget/droplineedit.hpp"
+class QUndoStack;
+
std::string CSVWorld::StartScriptCreator::getId() const
{
return mScript->text().toUtf8().constData();
diff --git a/apps/opencs/view/world/startscriptcreator.hpp b/apps/opencs/view/world/startscriptcreator.hpp
index f13cd1cec4..8d8f51bd8e 100644
--- a/apps/opencs/view/world/startscriptcreator.hpp
+++ b/apps/opencs/view/world/startscriptcreator.hpp
@@ -3,12 +3,26 @@
#include "genericcreator.hpp"
+#include <string>
+
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/world/creator.hpp>
+
+class QObject;
+class QUndoStack;
+
namespace CSMWorld
{
+ class Data;
class IdCompletionManager;
class IdTable;
}
+namespace CSMDoc
+{
+ class Document;
+}
+
namespace CSVWidget
{
class DropLineEdit;
diff --git a/apps/opencs/view/world/subviews.cpp b/apps/opencs/view/world/subviews.cpp
index 307ff0de51..0e1f34d2dd 100644
--- a/apps/opencs/view/world/subviews.cpp
+++ b/apps/opencs/view/world/subviews.cpp
@@ -21,6 +21,12 @@
#include "startscriptcreator.hpp"
#include "tablesubview.hpp"
+#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>
+
void CSVWorld::addSubViewFactories(CSVDoc::SubViewFactoryManager& manager)
{
// Regular record tables (including references which are actually sub-records, but are promoted
diff --git a/apps/opencs/view/world/table.cpp b/apps/opencs/view/world/table.cpp
index 1c059ce490..12aec5ab92 100644
--- a/apps/opencs/view/world/table.cpp
+++ b/apps/opencs/view/world/table.cpp
@@ -7,6 +7,22 @@
#include <QMetaObject>
#include <QString>
+#include <algorithm>
+#include <stdexcept>
+#include <type_traits>
+#include <utility>
+
+#include <apps/opencs/model/prefs/category.hpp>
+#include <apps/opencs/model/prefs/setting.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/columns.hpp>
+#include <apps/opencs/model/world/data.hpp>
+#include <apps/opencs/model/world/idcollection.hpp>
+#include <apps/opencs/model/world/idtableproxymodel.hpp>
+#include <apps/opencs/model/world/record.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+#include <apps/opencs/view/world/dragrecordtable.hpp>
+
#include <components/debug/debuglog.hpp>
#include <components/misc/helpviewer.hpp>
#include <components/misc/strings/algorithm.hpp>
@@ -27,6 +43,11 @@
#include "tableheadermouseeventhandler.hpp"
#include "util.hpp"
+namespace CSMFilter
+{
+ class Node;
+}
+
void CSVWorld::Table::contextMenuEvent(QContextMenuEvent* event)
{
// configure dispatcher
diff --git a/apps/opencs/view/world/table.hpp b/apps/opencs/view/world/table.hpp
index 6834e5827a..c5d0e47f53 100644
--- a/apps/opencs/view/world/table.hpp
+++ b/apps/opencs/view/world/table.hpp
@@ -1,15 +1,26 @@
#ifndef CSV_WORLD_TABLE_H
#define CSV_WORLD_TABLE_H
+#include <map>
+#include <memory>
#include <string>
#include <vector>
-#include "../../model/filter/node.hpp"
#include "../../model/world/columnbase.hpp"
#include "../../model/world/universalid.hpp"
#include "dragrecordtable.hpp"
class QAction;
+class QContextMenuEvent;
+class QDropEvent;
+class QModelIndex;
+class QMouseEvent;
+class QObject;
+
+namespace CSMFilter
+{
+ class Node;
+}
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/tablebottombox.cpp b/apps/opencs/view/world/tablebottombox.cpp
index 217e4308c9..de84229421 100644
--- a/apps/opencs/view/world/tablebottombox.cpp
+++ b/apps/opencs/view/world/tablebottombox.cpp
@@ -8,6 +8,8 @@
#include <QStackedLayout>
#include <QStatusBar>
+#include <apps/opencs/view/world/extendedcommandconfigurator.hpp>
+
#include "creator.hpp"
void CSVWorld::TableBottomBox::updateSize()
diff --git a/apps/opencs/view/world/tablebottombox.hpp b/apps/opencs/view/world/tablebottombox.hpp
index c8b11b0edf..073d0b42e1 100644
--- a/apps/opencs/view/world/tablebottombox.hpp
+++ b/apps/opencs/view/world/tablebottombox.hpp
@@ -1,7 +1,11 @@
#ifndef CSV_WORLD_BOTTOMBOX_H
#define CSV_WORLD_BOTTOMBOX_H
+#include <string>
+#include <vector>
+
#include <QWidget>
+
#include <apps/opencs/model/world/universalid.hpp>
#include "extendedcommandconfigurator.hpp"
diff --git a/apps/opencs/view/world/tableeditidaction.cpp b/apps/opencs/view/world/tableeditidaction.cpp
index 427734b2f5..27064a93c9 100644
--- a/apps/opencs/view/world/tableeditidaction.cpp
+++ b/apps/opencs/view/world/tableeditidaction.cpp
@@ -2,8 +2,14 @@
#include <QTableView>
+#include <memory>
+#include <type_traits>
+
#include "../../model/world/tablemimedata.hpp"
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/model/world/universalid.hpp>
+
CSVWorld::TableEditIdAction::CellData CSVWorld::TableEditIdAction::getCellData(int row, int column) const
{
QModelIndex index = mTable.model()->index(row, column);
diff --git a/apps/opencs/view/world/tableeditidaction.hpp b/apps/opencs/view/world/tableeditidaction.hpp
index ca1d2a794c..fb88516bb6 100644
--- a/apps/opencs/view/world/tableeditidaction.hpp
+++ b/apps/opencs/view/world/tableeditidaction.hpp
@@ -2,6 +2,9 @@
#define CSVWORLD_TABLEEDITIDACTION_HPP
#include <QAction>
+#include <QString>
+
+#include <utility>
#include "../../model/world/columnbase.hpp"
#include "../../model/world/universalid.hpp"
diff --git a/apps/opencs/view/world/tableheadermouseeventhandler.cpp b/apps/opencs/view/world/tableheadermouseeventhandler.cpp
index 5f786f77a6..cce93a1f11 100644
--- a/apps/opencs/view/world/tableheadermouseeventhandler.cpp
+++ b/apps/opencs/view/world/tableheadermouseeventhandler.cpp
@@ -1,8 +1,12 @@
#include "tableheadermouseeventhandler.hpp"
#include "dragrecordtable.hpp"
+#include <QAction>
+#include <QEvent>
+#include <QHeaderView>
#include <QMenu>
#include <QMouseEvent>
+#include <QObject>
#include <QPoint>
namespace CSVWorld
diff --git a/apps/opencs/view/world/tableheadermouseeventhandler.hpp b/apps/opencs/view/world/tableheadermouseeventhandler.hpp
index 737e4d5367..bef0b3389a 100644
--- a/apps/opencs/view/world/tableheadermouseeventhandler.hpp
+++ b/apps/opencs/view/world/tableheadermouseeventhandler.hpp
@@ -1,7 +1,12 @@
#pragma once
-#include <QEvent>
-#include <QHeaderView>
+#include <QWidget>
+
+class QEvent;
+class QHeaderView;
+class QMenu;
+class QObject;
+class QPoint;
namespace CSVWorld
{
diff --git a/apps/opencs/view/world/tablesubview.cpp b/apps/opencs/view/world/tablesubview.cpp
index 0fafd0c29c..9c5d110c50 100644
--- a/apps/opencs/view/world/tablesubview.cpp
+++ b/apps/opencs/view/world/tablesubview.cpp
@@ -10,12 +10,16 @@
#include <QPushButton>
#include <QVBoxLayout>
+#include <algorithm>
+#include <utility>
+
+#include <apps/opencs/view/doc/subview.hpp>
+
#include "../../model/doc/document.hpp"
#include "../../model/world/tablemimedata.hpp"
#include "../doc/sizehint.hpp"
#include "../filter/filterbox.hpp"
-#include "creator.hpp"
#include "table.hpp"
#include "tablebottombox.hpp"
diff --git a/apps/opencs/view/world/tablesubview.hpp b/apps/opencs/view/world/tablesubview.hpp
index 3f7188f2ac..b24b3c4623 100644
--- a/apps/opencs/view/world/tablesubview.hpp
+++ b/apps/opencs/view/world/tablesubview.hpp
@@ -3,13 +3,17 @@
#include "../doc/subview.hpp"
-class QModelIndex;
-class QWidget;
+#include <QModelIndex>
+#include <QWidget>
-namespace CSMWorld
-{
- class IdTable;
-}
+#include <string>
+#include <vector>
+
+#include <apps/opencs/model/world/universalid.hpp>
+
+class QEvent;
+class QObject;
+class QWidget;
namespace CSMDoc
{
diff --git a/apps/opencs/view/world/util.cpp b/apps/opencs/view/world/util.cpp
index d1ddbe1d89..f827470781 100644
--- a/apps/opencs/view/world/util.cpp
+++ b/apps/opencs/view/world/util.cpp
@@ -2,6 +2,8 @@
#include <limits>
#include <stdexcept>
+#include <type_traits>
+#include <utility>
#include <QCheckBox>
#include <QItemEditorFactory>
@@ -10,6 +12,10 @@
#include <QStyledItemDelegate>
#include <QUndoStack>
+#include <apps/opencs/model/doc/document.hpp>
+#include <apps/opencs/model/world/columnbase.hpp>
+#include <apps/opencs/view/world/scripthighlighter.hpp>
+
#include "../../model/world/commanddispatcher.hpp"
#include "../widget/coloreditor.hpp"
diff --git a/apps/opencs/view/world/util.hpp b/apps/opencs/view/world/util.hpp
index 50ebfc7311..d584b0ad9f 100644
--- a/apps/opencs/view/world/util.hpp
+++ b/apps/opencs/view/world/util.hpp
@@ -7,16 +7,19 @@
#include <QStyledItemDelegate>
#ifndef Q_MOC_RUN
-#include "../../model/doc/document.hpp"
#include "../../model/world/columnbase.hpp"
#endif
class QUndoStack;
+class QWidget;
+
+namespace CSMDoc
+{
+ class Document;
+}
namespace CSMWorld
{
- class TableMimeData;
- class UniversalId;
class CommandDispatcher;
}
diff --git a/apps/opencs/view/world/vartypedelegate.cpp b/apps/opencs/view/world/vartypedelegate.cpp
index b5b1be2543..acc94004c9 100644
--- a/apps/opencs/view/world/vartypedelegate.cpp
+++ b/apps/opencs/view/world/vartypedelegate.cpp
@@ -1,9 +1,26 @@
#include "vartypedelegate.hpp"
+#include <algorithm>
+#include <memory>
+#include <stdexcept>
+#include <string>
+
+#include <apps/opencs/view/world/enumdelegate.hpp>
+
#include "../../model/world/columns.hpp"
#include "../../model/world/commandmacro.hpp"
#include "../../model/world/commands.hpp"
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
void CSVWorld::VarTypeDelegate::addCommands(QAbstractItemModel* model, const QModelIndex& index, int type) const
{
QModelIndex next = model->index(index.row(), index.column() + 1);
diff --git a/apps/opencs/view/world/vartypedelegate.hpp b/apps/opencs/view/world/vartypedelegate.hpp
index d841c0435e..4398d4e4bd 100644
--- a/apps/opencs/view/world/vartypedelegate.hpp
+++ b/apps/opencs/view/world/vartypedelegate.hpp
@@ -1,10 +1,25 @@
#ifndef CSV_WORLD_VARTYPEDELEGATE_H
#define CSV_WORLD_VARTYPEDELEGATE_H
+#include <utility>
+#include <vector>
+
+#include <apps/opencs/view/world/util.hpp>
+
#include <components/esm3/variant.hpp>
#include "enumdelegate.hpp"
+namespace CSMDoc
+{
+ class Document;
+}
+
+namespace CSMWorld
+{
+ class CommandDispatcher;
+}
+
namespace CSVWorld
{
class VarTypeDelegate : public EnumDelegate