diff --git a/stuff/profiles/layouts/OpenToonz/layouts.txt b/stuff/profiles/layouts/OpenToonz/layouts.txt
deleted file mode 100644
index 21ed22c..0000000
--- a/stuff/profiles/layouts/OpenToonz/layouts.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-room1.ini
-room2.ini
-room3.ini
-room4.ini
-room5.ini
-room6.ini
diff --git a/stuff/profiles/layouts/OpenToonz/menubar_template.xml b/stuff/profiles/layouts/OpenToonz/menubar_template.xml
deleted file mode 100644
index 7b9c58b..0000000
--- a/stuff/profiles/layouts/OpenToonz/menubar_template.xml
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/OpenToonz/room1.ini b/stuff/profiles/layouts/OpenToonz/room1.ini
deleted file mode 100644
index 9b976c3..0000000
--- a/stuff/profiles/layouts/OpenToonz/room1.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[room]
-pane_0\name=ComboViewer
-pane_0\geometry=@Rect(0 0 851 452)
-pane_1\name=CleanupSettings
-pane_1\geometry=@Rect(859 0 251 611)
-pane_2\name=Xsheet
-pane_2\geometry=@Rect(0 460 851 151)
-hierarchy="-1 0 [ [ 0 2 ] 1 ] "
-name=Cleanup
diff --git a/stuff/profiles/layouts/OpenToonz/room1_menubar.xml b/stuff/profiles/layouts/OpenToonz/room1_menubar.xml
deleted file mode 100644
index 373e4b1..0000000
--- a/stuff/profiles/layouts/OpenToonz/room1_menubar.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-
- MI_Preferences
- MI_ShortcutPopup
- MI_SceneSettings
-
- MI_ViewCamera
- MI_ViewTable
- MI_FieldGuide
- MI_SafeArea
- MI_ViewBBox
- MI_ViewColorcard
-
-
- MI_DockingCheck
-
- MI_RunScript
- MI_OpenScriptConsole
- MI_ReloadStyle
-
-
- MI_About
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/OpenToonz/room2.ini b/stuff/profiles/layouts/OpenToonz/room2.ini
deleted file mode 100644
index 3ecf3f4..0000000
--- a/stuff/profiles/layouts/OpenToonz/room2.ini
+++ /dev/null
@@ -1,14 +0,0 @@
-[room]
-pane_0\name=ComboViewer
-pane_0\geometry=@Rect(0 0 700 600)
-pane_1\name=LevelPalette
-pane_1\geometry=@Rect(0 0 100 50)
-pane_1\viewtype=2
-pane_2\name=StyleEditor
-pane_2\geometry=@Rect(0 0 340 630)
-pane_3\name=Xsheet
-pane_3\geometry=@Rect(0 0 500 300)
-pane_4\name=StudioPalette
-pane_4\geometry=@Rect(0 0 100 50)
-hierarchy="-1 1 [ [ 2 0 ] [ 4 3 1 ] ] "
-name=PltEdit
diff --git a/stuff/profiles/layouts/OpenToonz/room2_menubar.xml b/stuff/profiles/layouts/OpenToonz/room2_menubar.xml
deleted file mode 100644
index 64f3972..0000000
--- a/stuff/profiles/layouts/OpenToonz/room2_menubar.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
- MI_LoadLevel
- MI_LoadFolder
- MI_SaveLevel
- MI_SaveLevelAs
- MI_ExportLevel
- MI_OpenRecentLevel
- MI_LevelSettings
-
- MI_NewLevel
-
- MI_OverwritePalette
- MI_SavePaletteAs
-
- MI_LoadScene
- MI_SaveScene
- MI_SaveSceneAs
- MI_SaveAll
- MI_OpenRecentScene
- MI_RevertScene
-
- MI_ConvertFileWithInput
-
- MI_NewScene
-
- MI_Quit
-
-
- T_StylePicker
- T_RGBPicker
- T_Tape
-
- T_Fill
- T_Brush
- T_PaintBrush
- T_Geometric
- T_Type
-
- T_Eraser
-
- T_Edit
- T_Selection
-
- T_ControlPointEditor
- T_Pinch
- T_Pump
- T_Magnet
- T_Bender
- T_Iron
- T_Cutter
-
- T_Skeleton
- T_Tracker
- T_Hook
- T_Plastic
-
- T_Zoom
- T_Rotate
- T_Hand
-
-
-
- MI_Undo
- MI_Redo
-
- MI_NextFrame
- MI_PrevFrame
- MI_FirstFrame
- MI_LastFrame
- MI_TestAnimation
-
- MI_Copy
- MI_Cut
- MI_Paste
- MI_PasteInto
-
- MI_Clear
- MI_Insert
- MI_SelectAll
- MI_InvertSelection
-
-
- MI_TCheck
- MI_BCheck
- MI_ICheck
- MI_Ink1Check
- MI_PCheck
-
-
- MI_PreviewSettings
- MI_Preview
- MI_SavePreviewedFrames
-
- MI_OutputSettings
- MI_Render
-
-
- MI_OpenFileBrowser
- MI_OpenFileViewer
- MI_OpenFilmStrip
- MI_OpenPalette
- MI_OpenStudioPalette
- MI_OpenStyleControl
- MI_OpenLevelView
- MI_OpenComboViewer
- MI_OpenXshView
-
-
- MI_OpenBatchServers
- MI_OpenColorModel
- MI_OpenFunctionEditor
- MI_OpenFileBrowser2
- MI_OpenSchematic
- MI_OpenTasks
- MI_OpenToolbar
- MI_OpenToolOptionBar
- MI_OpenHistoryPanel
- MI_OpenTMessage
-
-
-
- MI_Preferences
- MI_ShortcutPopup
- MI_SceneSettings
-
-
- MI_ViewCamera
- MI_ViewTable
- MI_FieldGuide
- MI_SafeArea
- MI_ViewColorcard
-
-
- MI_DockingCheck
-
- MI_RunScript
- MI_OpenScriptConsole
- MI_ReloadStyle
-
-
- MI_About
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/OpenToonz/room3.ini b/stuff/profiles/layouts/OpenToonz/room3.ini
deleted file mode 100644
index a82ba30..0000000
--- a/stuff/profiles/layouts/OpenToonz/room3.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[room]
-pane_0\name=ComboViewer
-pane_0\geometry=@Rect(0 0 700 600)
-pane_1\name=LevelPalette
-pane_1\geometry=@Rect(0 0 100 50)
-pane_1\viewtype=2
-pane_2\name=FilmStrip
-pane_2\geometry=@Rect(0 0 201 50)
-hierarchy="-1 1 [ [ 0 2 ] 1 ] "
-name=InknPaint
diff --git a/stuff/profiles/layouts/OpenToonz/room3_menubar.xml b/stuff/profiles/layouts/OpenToonz/room3_menubar.xml
deleted file mode 100644
index b090854..0000000
--- a/stuff/profiles/layouts/OpenToonz/room3_menubar.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-
-
- MI_LoadLevel
- MI_LoadFolder
- MI_SaveLevel
- MI_SaveLevelAs
- MI_SaveAll
- MI_OpenRecentLevel
- MI_ExportLevel
- MI_LevelSettings
- MI_CanvasSize
-
- MI_NewLevel
-
- MI_OverwritePalette
- MI_SavePaletteAs
-
- MI_LoadColorModel
-
- MI_ApplyMatchLines
- MI_DeleteMatchLines
- MI_DeleteInk
- MI_MergeCmapped
- MI_MergeColumns
-
- MI_LoadScene
- MI_SaveScene
- MI_SaveSceneAs
- MI_OpenRecentScene
-
- MI_NewScene
-
- MI_Quit
-
-
- T_StylePicker
- T_RGBPicker
- T_Tape
-
- T_Fill
- T_Brush
- T_PaintBrush
- T_Geometric
- T_Type
-
- T_Eraser
-
-
- T_Edit
- T_Selection
-
- T_ControlPointEditor
- T_Pinch
- T_Pump
- T_Magnet
- T_Bender
- T_Iron
- T_Cutter
-
- T_Skeleton
- T_Tracker
- T_Hook
- T_Plastic
-
- T_Zoom
- T_Rotate
- T_Hand
-
-
-
- MI_ShiftTrace
- MI_EditShift
- MI_NoShift
- MI_ResetShift
-
- MI_RasterizePli
-
-
- MI_Undo
- MI_Redo
-
- MI_NextFrame
- MI_PrevFrame
- MI_FirstFrame
- MI_LastFrame
- MI_TestAnimation
-
- MI_Copy
- MI_Cut
- MI_Paste
- MI_PasteInto
-
- MI_Clear
- MI_Insert
- MI_SelectAll
- MI_InvertSelection
-
-
- MI_TCheck
- MI_BCheck
- MI_ICheck
- MI_Ink1Check
- MI_PCheck
- MI_GCheck
- MI_ACheck
- MI_IOnly
-
-
- MI_OpenStyleControl
- MI_OpenPltGizmo
- MI_OpenPalette
- MI_OpenStudioPalette
- MI_OpenComboViewer
- MI_OpenXshView
- MI_OpenColorModel
- MI_OpenFileBrowser
- MI_OpenFilmStrip
- MI_OpenToolbar
- MI_OpenToolOptionBar
-
-
- MI_OpenBatchServers
- MI_OpenFileViewer
- MI_OpenFunctionEditor
- MI_OpenFileBrowser2
- MI_OpenSchematic
- MI_OpenTasks
- MI_OpenHistoryPanel
- MI_OpenTMessage
-
-
-
- MI_Preferences
- MI_ShortcutPopup
- MI_SceneSettings
-
-
- MI_ViewCamera
- MI_ViewTable
- MI_FieldGuide
- MI_SafeArea
- MI_ViewColorcard
-
-
- MI_DockingCheck
-
- MI_RunScript
- MI_OpenScriptConsole
- MI_ReloadStyle
-
-
- MI_About
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/OpenToonz/room4.ini b/stuff/profiles/layouts/OpenToonz/room4.ini
deleted file mode 100644
index 97e1552..0000000
--- a/stuff/profiles/layouts/OpenToonz/room4.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[room]
-pane_0\name=Xsheet
-pane_0\geometry=@Rect(0 0 500 300)
-pane_1\name=FunctionEditor
-pane_1\geometry=@Rect(0 0 100 50)
-hierarchy="-1 0 [ 0 1 ] "
-name=Xsheet
diff --git a/stuff/profiles/layouts/OpenToonz/room4_menubar.xml b/stuff/profiles/layouts/OpenToonz/room4_menubar.xml
deleted file mode 100644
index e869102..0000000
--- a/stuff/profiles/layouts/OpenToonz/room4_menubar.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
- MI_LoadScene
- MI_SaveScene
- MI_SaveSceneAs
- MI_SaveAll
- MI_OpenRecentScene
- MI_RevertScene
-
- MI_NewScene
-
- MI_PrintXsheet
- MI_Export
-
- MI_Quit
-
-
- MI_OpenChild
- MI_CloseChild
- MI_Collapse
- MI_Resequence
- MI_SaveSubxsheetAs
- MI_LoadSubSceneFile
- MI_CloneChild
- MI_ExplodeChild
- MI_ToggleEditInPlace
-
-
- MI_LoadLevel
- MI_LoadFolder
- MI_SaveLevel
- MI_SaveLevelAs
- MI_ExportLevel
- MI_OpenRecentLevel
- MI_LevelSettings
- MI_CanvasSize
-
- MI_NewLevel
-
- MI_ViewFile
- MI_FileInfo
-
- MI_CloneLevel
- MI_ReplaceLevel
-
- MI_AddFrames
- MI_Renumber
- MI_RevertToCleanedUp
- MI_ConvertToVectors
- MI_ConvertFileWithInput
- MI_Tracking
- MI_ExposeResource
- MI_EditLevel
- MI_RemoveUnused
-
-
- MI_Dup
- MI_Reverse
- MI_Rollup
- MI_Rolldown
- MI_Swing
- MI_Random
- MI_TimeStretch
-
-
- MI_Reframe1
- MI_Reframe2
- MI_Reframe3
- MI_Reframe4
-
-
- MI_Step2
- MI_Step3
- MI_Step4
-
-
- MI_Each2
- MI_Each3
- MI_Each4
-
-
-
- MI_Undo
- MI_Redo
-
- MI_Copy
- MI_Cut
- MI_Paste
- MI_PasteInto
-
- MI_Clear
- MI_Insert
- MI_SelectAll
- MI_InvertSelection
-
- MI_InsertSceneFrame
- MI_RemoveSceneFrame
- MI_InsertGlobalKeyframe
- MI_RemoveGlobalKeyframe
-
-
- MI_PreviewSettings
- MI_Preview
- MI_SavePreviewedFrames
-
- MI_OutputSettings
- MI_Render
-
- MI_Link
-
-
- MI_OpenSchematic
- MI_OpenComboViewer
- MI_OpenFileBrowser
- MI_OpenFunctionEditor
- MI_OpenFileViewer
- MI_OpenFilmStrip
- MI_OpenLevelView
- MI_OpenXshView
-
-
- MI_OpenBatchServers
- MI_OpenColorModel
- MI_OpenPalette
- MI_OpenFileBrowser2
- MI_OpenStudioPalette
- MI_OpenStyleControl
- MI_OpenTasks
- MI_OpenToolbar
- MI_OpenToolOptionBar
- MI_OpenHistoryPanel
- MI_OpenTMessage
-
-
-
- MI_Preferences
- MI_ShortcutPopup
- MI_SceneSettings
-
-
- MI_ViewCamera
- MI_ViewTable
- MI_FieldGuide
- MI_SafeArea
- MI_ViewBBox
- MI_ViewColorcard
-
-
- MI_DockingCheck
-
- MI_RunScript
- MI_OpenScriptConsole
- MI_ReloadStyle
-
-
- MI_About
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/OpenToonz/room5.ini b/stuff/profiles/layouts/OpenToonz/room5.ini
deleted file mode 100644
index c428f02..0000000
--- a/stuff/profiles/layouts/OpenToonz/room5.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[room]
-pane_0\name=Tasks
-pane_0\geometry=@Rect(0 0 100 50)
-pane_1\name=BatchServers
-pane_1\geometry=@Rect(0 0 100 50)
-hierarchy="-1 0 [ 0 1 ] "
-name=Batches
diff --git a/stuff/profiles/layouts/OpenToonz/room5_menubar.xml b/stuff/profiles/layouts/OpenToonz/room5_menubar.xml
deleted file mode 100644
index 67f381e..0000000
--- a/stuff/profiles/layouts/OpenToonz/room5_menubar.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- MI_Quit
-
-
- MI_OpenFileBrowser
- MI_OpenBatchServers
- MI_OpenTasks
-
-
- MI_Preferences
- MI_ShortcutPopup
-
- MI_DockingCheck
-
- "MI_RunScript"
- "MI_OpenScriptConsole"
- "MI_ReloadStyle"
-
-
- MI_About
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/OpenToonz/room6.ini b/stuff/profiles/layouts/OpenToonz/room6.ini
deleted file mode 100644
index b2ee247..0000000
--- a/stuff/profiles/layouts/OpenToonz/room6.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[room]
-pane_0\name=Browser
-pane_0\geometry=@Rect(0 0 100 50)
-pane_1\name=SceneCast
-pane_1\geometry=@Rect(0 0 100 50)
-hierarchy="-1 1 [ 0 1 ] "
-name=Browser
diff --git a/stuff/profiles/layouts/OpenToonz/room6_menubar.xml b/stuff/profiles/layouts/OpenToonz/room6_menubar.xml
deleted file mode 100644
index 46eab24..0000000
--- a/stuff/profiles/layouts/OpenToonz/room6_menubar.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- MI_NewProject
- MI_ProjectSettings
- MI_SaveDefaultSettings
-
- MI_Quit
-
-
- MI_Preferences
- MI_ShortcutPopup
-
- MI_DockingCheck
-
- "MI_RunScript"
- "MI_OpenScriptConsole"
- "MI_ReloadStyle"
-
-
- MI_About
-
-
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/Default/layouts.txt b/stuff/profiles/layouts/rooms/Default/layouts.txt
new file mode 100644
index 0000000..cf0377e
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/layouts.txt
@@ -0,0 +1,8 @@
+room1.ini
+room2.ini
+room3.ini
+room4.ini
+room5.ini
+room6.ini
+room7.ini
+room8.ini
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/Default/menubar_template.xml b/stuff/profiles/layouts/rooms/Default/menubar_template.xml
new file mode 100644
index 0000000..7b9c58b
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/menubar_template.xml
@@ -0,0 +1,222 @@
+
+
+ MI_NewScene
+ MI_LoadScene
+ MI_SaveScene
+ MI_SaveSceneAs
+ MI_SaveAll
+ MI_OpenRecentScene
+ MI_RevertScene
+
+ MI_LoadFolder
+ MI_LoadSubSceneFile
+
+ MI_NewLevel
+ MI_LoadLevel
+ MI_SaveLevel
+ MI_SaveLevelAs
+ MI_ExportLevel
+ MI_OpenRecentLevel
+
+ MI_ConvertFileWithInput
+
+ MI_LoadColorModel
+
+ MI_ImportMagpieFile
+
+ MI_NewProject
+ MI_ProjectSettings
+ MI_SaveDefaultSettings
+
+ MI_PreviewSettings
+ MI_Preview
+
+ MI_OutputSettings
+ MI_Render
+
+ MI_PrintXsheet
+ MI_Print
+
+ MI_Preferences
+ MI_ShortcutPopup
+
+ MI_RunScript
+ MI_OpenScriptConsole
+
+ MI_Quit
+ MI_ReloadStyle
+
+
+ MI_Undo
+ MI_Redo
+
+ MI_Cut
+ MI_Copy
+ MI_Paste
+ MI_PasteInto
+
+ MI_Clear
+ MI_Insert
+
+ MI_SelectAll
+ MI_InvertSelection
+
+ MI_RemoveEndpoints
+
+ MI_Group
+ MI_Ungroup
+ MI_EnterGroup
+ MI_ExitGroup
+
+ MI_BringToFront
+ MI_BringForward
+ MI_SendBack
+ MI_SendBackward
+
+
+ MI_DefineScanner
+ MI_ScanSettings
+ MI_Scan
+ MI_SetScanCropbox
+ MI_ResetScanCropbox
+
+ MI_CleanupSettings
+ MI_CleanupPreview
+ MI_CameraTest
+ MI_Cleanup
+
+
+ MI_AddFrames
+ MI_Renumber
+ MI_ReplaceLevel
+ MI_RevertToCleanedUp
+ MI_RevertToLastSaved
+ MI_ConvertToVectors
+ MI_Tracking
+
+ MI_ExposeResource
+ MI_EditLevel
+
+ MI_LevelSettings
+ MI_FileInfo
+
+ MI_AdjustLevels
+ MI_AdjustThickness
+ MI_Antialias
+ MI_Binarize
+ MI_BrightnessAndContrast
+ MI_CanvasSize
+ MI_LinesFade
+
+ MI_RemoveUnused
+
+
+ MI_SceneSettings
+ MI_CameraSettings
+
+ MI_OpenChild
+ MI_CloseChild
+ MI_SaveSubxsheetAs
+ MI_Collapse
+ MI_Resequence
+ MI_CloneChild
+ MI_ExplodeChild
+
+ MI_ApplyMatchLines
+ MI_MergeCmapped
+
+ MI_MergeColumns
+ MI_DeleteMatchLines
+ MI_DeleteInk
+
+ MI_InsertFx
+ MI_NewOutputFx
+
+ MI_InsertSceneFrame
+ MI_RemoveSceneFrame
+ MI_InsertGlobalKeyframe
+ MI_RemoveGlobalKeyframe
+
+
+ MI_Reverse
+ MI_Swing
+ MI_Random
+ MI_Increment
+ MI_Dup
+
+ MI_ResetStep
+ MI_IncreaseStep
+ MI_DecreaseStep
+ MI_Step2
+ MI_Step3
+ MI_Step4
+ MI_Each2
+ MI_Each3
+ MI_Each4
+ MI_Rollup
+ MI_Rolldown
+ MI_TimeStretch
+
+ MI_Autorenumber
+ MI_Duplicate
+ MI_MergeFrames
+ MI_CloneLevel
+
+
+ MI_ViewCamera
+ MI_ViewTable
+ MI_FieldGuide
+ MI_SafeArea
+ MI_ViewBBox
+ MI_ViewColorcard
+ MI_ViewGuide
+ MI_ViewRuler
+
+ MI_TCheck
+ MI_ICheck
+ MI_Ink1Check
+ MI_PCheck
+ MI_IOnly
+ MI_BCheck
+ MI_GCheck
+ MI_ACheck
+
+ MI_ShiftTrace
+ MI_EditShift
+ MI_NoShift
+ MI_ResetShift
+
+ MI_RasterizePli
+
+ MI_Link
+
+
+ MI_DockingCheck
+
+ MI_OpenBatchServers
+ MI_OpenCleanupSettings
+ MI_OpenColorModel
+ MI_OpenFileBrowser
+ MI_OpenFileViewer
+ MI_OpenFunctionEditor
+ MI_OpenFilmStrip
+ MI_OpenPalette
+ MI_OpenFileBrowser2
+ MI_OpenSchematic
+ MI_OpenStudioPalette
+ MI_OpenStyleControl
+ MI_OpenTasks
+ MI_OpenTMessage
+ MI_OpenToolbar
+ MI_OpenToolOptionBar
+ MI_OpenLevelView
+ MI_OpenComboViewer
+ MI_OpenXshView
+ MI_OpenHistoryPanel
+
+ MI_ResetRoomLayout
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/Default/room1.ini b/stuff/profiles/layouts/rooms/Default/room1.ini
new file mode 100644
index 0000000..0089f65
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room1.ini
@@ -0,0 +1,18 @@
+[room]
+hierarchy="-1 0 [ [ [ 5 [ 6 4 ] ] 2 ] [ 1 3 ] 0 ] "
+pane_0\name=Xsheet
+name=Basics
+pane_0\geometry=@Rect(1667 0 253 996)
+pane_1\name=FilmStrip
+pane_1\geometry=@Rect(1254 0 405 530)
+pane_2\name=LevelPalette
+pane_2\geometry=@Rect(0 808 1246 188)
+pane_3\name=StyleEditor
+pane_3\geometry=@Rect(1254 538 405 458)
+pane_4\name=SceneViewer
+pane_4\geometry=@Rect(43 34 1203 766)
+pane_2\viewtype=0
+pane_5\name=ToolBar
+pane_5\geometry=@Rect(0 0 35 800)
+pane_6\name=ToolOptions
+pane_6\geometry=@Rect(43 0 1203 26)
diff --git a/stuff/profiles/layouts/rooms/Default/room2.ini b/stuff/profiles/layouts/rooms/Default/room2.ini
new file mode 100644
index 0000000..f927586
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room2.ini
@@ -0,0 +1,11 @@
+[room]
+pane_0\name=ComboViewer
+pane_0\geometry=@Rect(0 0 1075 558)
+pane_1\name=CleanupSettings
+pane_1\geometry=@Rect(1083 0 455 857)
+pane_2\name=Xsheet
+pane_2\geometry=@Rect(0 600 1075 257)
+hierarchy="-1 0 [ [ 0 3 2 ] 1 ] "
+pane_3\name=ToolOptions
+name=Cleanup
+pane_3\geometry=@Rect(0 566 1075 26)
diff --git a/stuff/profiles/layouts/rooms/Default/room3.ini b/stuff/profiles/layouts/rooms/Default/room3.ini
new file mode 100644
index 0000000..521c253
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room3.ini
@@ -0,0 +1,16 @@
+[room]
+pane_0\name=SceneViewer
+pane_0\geometry=@Rect(43 34 984 823)
+pane_1\name=ToolBar
+pane_1\geometry=@Rect(0 0 35 857)
+pane_2\name=FilmStrip
+pane_2\geometry=@Rect(1344 0 194 857)
+pane_3\name=ToolOptions
+pane_3\geometry=@Rect(43 0 1293 26)
+pane_4\name=LevelPalette
+pane_4\geometry=@Rect(1035 34 301 147)
+pane_4\viewtype=0
+pane_5\name=StyleEditor
+pane_5\geometry=@Rect(1035 189 301 668)
+hierarchy="-1 0 [ 1 [ 3 [ 0 [ 4 5 ] ] ] 2 ] "
+name=Drawing
diff --git a/stuff/profiles/layouts/rooms/Default/room4.ini b/stuff/profiles/layouts/rooms/Default/room4.ini
new file mode 100644
index 0000000..170d35d
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room4.ini
@@ -0,0 +1,18 @@
+[room]
+pane_0\name=SceneViewer
+pane_0\geometry=@Rect(43 34 904 487)
+pane_1\name=ToolBar
+pane_1\geometry=@Rect(0 0 35 857)
+pane_2\name=ToolOptions
+pane_2\geometry=@Rect(43 0 904 26)
+pane_3\name=Xsheet
+pane_3\geometry=@Rect(955 0 384 522)
+pane_4\name=FunctionEditor
+pane_4\geometry=@Rect(43 529 904 328)
+pane_5\name=Schematic
+pane_5\geometry=@Rect(955 530 583 327)
+hierarchy="-1 0 [ 1 [ 2 0 4 ] [ [ 3 6 ] 5 ] ] "
+name=Animation
+pane_5\viewtype=1
+pane_6\name=FilmStrip
+pane_6\geometry=@Rect(1347 0 191 522)
diff --git a/stuff/profiles/layouts/rooms/Default/room5.ini b/stuff/profiles/layouts/rooms/Default/room5.ini
new file mode 100644
index 0000000..56dd4a7
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room5.ini
@@ -0,0 +1,20 @@
+[room]
+pane_0\name=SceneViewer
+pane_0\geometry=@Rect(43 34 990 534)
+pane_1\name=ToolBar
+pane_1\geometry=@Rect(0 0 35 857)
+pane_2\name=ToolOptions
+pane_2\geometry=@Rect(43 0 1495 26)
+pane_3\name=ColorModel
+pane_3\geometry=@Rect(1041 34 245 228)
+pane_4\name=Xsheet
+pane_4\geometry=@Rect(43 576 990 281)
+pane_5\name=LevelPalette
+pane_5\geometry=@Rect(1041 270 497 87)
+pane_5\viewtype=0
+pane_6\name=StyleEditor
+pane_6\geometry=@Rect(1041 365 497 492)
+pane_7\name=StudioPalette
+pane_7\geometry=@Rect(1294 34 244 228)
+hierarchy="-1 0 [ 1 [ 2 [ [ 0 4 ] [ [ 3 7 ] 5 6 ] ] ] ] "
+name=Pltedit
diff --git a/stuff/profiles/layouts/rooms/Default/room6.ini b/stuff/profiles/layouts/rooms/Default/room6.ini
new file mode 100644
index 0000000..582fbad
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room6.ini
@@ -0,0 +1,9 @@
+[room]
+pane_0\name=Xsheet
+pane_0\geometry=@Rect(0 0 913 857)
+pane_1\name=FunctionEditor
+pane_1\geometry=@Rect(921 417 617 440)
+hierarchy="-1 0 [ 0 [ 2 1 ] ] "
+name=Xsheet
+pane_2\name=SceneViewer
+pane_2\geometry=@Rect(921 0 617 409)
diff --git a/stuff/profiles/layouts/rooms/Default/room7.ini b/stuff/profiles/layouts/rooms/Default/room7.ini
new file mode 100644
index 0000000..43f4a25
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room7.ini
@@ -0,0 +1,7 @@
+[room]
+pane_0\name=Browser
+pane_0\geometry=@Rect(0 0 1538 425)
+pane_1\name=SceneCast
+pane_1\geometry=@Rect(0 433 1538 424)
+hierarchy="-1 1 [ 0 1 ] "
+name=Browser
diff --git a/stuff/profiles/layouts/rooms/Default/room8.ini b/stuff/profiles/layouts/rooms/Default/room8.ini
new file mode 100644
index 0000000..62fadef
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/Default/room8.ini
@@ -0,0 +1,7 @@
+[room]
+pane_0\name=Tasks
+pane_0\geometry=@Rect(0 0 765 857)
+pane_1\name=BatchServers
+pane_1\geometry=@Rect(773 0 765 857)
+hierarchy="-1 0 [ 0 1 ] "
+name=Farm
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/layouts.txt b/stuff/profiles/layouts/rooms/StudioGhibli/layouts.txt
new file mode 100644
index 0000000..21ed22c
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/layouts.txt
@@ -0,0 +1,6 @@
+room1.ini
+room2.ini
+room3.ini
+room4.ini
+room5.ini
+room6.ini
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/menubar_template.xml b/stuff/profiles/layouts/rooms/StudioGhibli/menubar_template.xml
new file mode 100644
index 0000000..7b9c58b
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/menubar_template.xml
@@ -0,0 +1,222 @@
+
+
+ MI_NewScene
+ MI_LoadScene
+ MI_SaveScene
+ MI_SaveSceneAs
+ MI_SaveAll
+ MI_OpenRecentScene
+ MI_RevertScene
+
+ MI_LoadFolder
+ MI_LoadSubSceneFile
+
+ MI_NewLevel
+ MI_LoadLevel
+ MI_SaveLevel
+ MI_SaveLevelAs
+ MI_ExportLevel
+ MI_OpenRecentLevel
+
+ MI_ConvertFileWithInput
+
+ MI_LoadColorModel
+
+ MI_ImportMagpieFile
+
+ MI_NewProject
+ MI_ProjectSettings
+ MI_SaveDefaultSettings
+
+ MI_PreviewSettings
+ MI_Preview
+
+ MI_OutputSettings
+ MI_Render
+
+ MI_PrintXsheet
+ MI_Print
+
+ MI_Preferences
+ MI_ShortcutPopup
+
+ MI_RunScript
+ MI_OpenScriptConsole
+
+ MI_Quit
+ MI_ReloadStyle
+
+
+ MI_Undo
+ MI_Redo
+
+ MI_Cut
+ MI_Copy
+ MI_Paste
+ MI_PasteInto
+
+ MI_Clear
+ MI_Insert
+
+ MI_SelectAll
+ MI_InvertSelection
+
+ MI_RemoveEndpoints
+
+ MI_Group
+ MI_Ungroup
+ MI_EnterGroup
+ MI_ExitGroup
+
+ MI_BringToFront
+ MI_BringForward
+ MI_SendBack
+ MI_SendBackward
+
+
+ MI_DefineScanner
+ MI_ScanSettings
+ MI_Scan
+ MI_SetScanCropbox
+ MI_ResetScanCropbox
+
+ MI_CleanupSettings
+ MI_CleanupPreview
+ MI_CameraTest
+ MI_Cleanup
+
+
+ MI_AddFrames
+ MI_Renumber
+ MI_ReplaceLevel
+ MI_RevertToCleanedUp
+ MI_RevertToLastSaved
+ MI_ConvertToVectors
+ MI_Tracking
+
+ MI_ExposeResource
+ MI_EditLevel
+
+ MI_LevelSettings
+ MI_FileInfo
+
+ MI_AdjustLevels
+ MI_AdjustThickness
+ MI_Antialias
+ MI_Binarize
+ MI_BrightnessAndContrast
+ MI_CanvasSize
+ MI_LinesFade
+
+ MI_RemoveUnused
+
+
+ MI_SceneSettings
+ MI_CameraSettings
+
+ MI_OpenChild
+ MI_CloseChild
+ MI_SaveSubxsheetAs
+ MI_Collapse
+ MI_Resequence
+ MI_CloneChild
+ MI_ExplodeChild
+
+ MI_ApplyMatchLines
+ MI_MergeCmapped
+
+ MI_MergeColumns
+ MI_DeleteMatchLines
+ MI_DeleteInk
+
+ MI_InsertFx
+ MI_NewOutputFx
+
+ MI_InsertSceneFrame
+ MI_RemoveSceneFrame
+ MI_InsertGlobalKeyframe
+ MI_RemoveGlobalKeyframe
+
+
+ MI_Reverse
+ MI_Swing
+ MI_Random
+ MI_Increment
+ MI_Dup
+
+ MI_ResetStep
+ MI_IncreaseStep
+ MI_DecreaseStep
+ MI_Step2
+ MI_Step3
+ MI_Step4
+ MI_Each2
+ MI_Each3
+ MI_Each4
+ MI_Rollup
+ MI_Rolldown
+ MI_TimeStretch
+
+ MI_Autorenumber
+ MI_Duplicate
+ MI_MergeFrames
+ MI_CloneLevel
+
+
+ MI_ViewCamera
+ MI_ViewTable
+ MI_FieldGuide
+ MI_SafeArea
+ MI_ViewBBox
+ MI_ViewColorcard
+ MI_ViewGuide
+ MI_ViewRuler
+
+ MI_TCheck
+ MI_ICheck
+ MI_Ink1Check
+ MI_PCheck
+ MI_IOnly
+ MI_BCheck
+ MI_GCheck
+ MI_ACheck
+
+ MI_ShiftTrace
+ MI_EditShift
+ MI_NoShift
+ MI_ResetShift
+
+ MI_RasterizePli
+
+ MI_Link
+
+
+ MI_DockingCheck
+
+ MI_OpenBatchServers
+ MI_OpenCleanupSettings
+ MI_OpenColorModel
+ MI_OpenFileBrowser
+ MI_OpenFileViewer
+ MI_OpenFunctionEditor
+ MI_OpenFilmStrip
+ MI_OpenPalette
+ MI_OpenFileBrowser2
+ MI_OpenSchematic
+ MI_OpenStudioPalette
+ MI_OpenStyleControl
+ MI_OpenTasks
+ MI_OpenTMessage
+ MI_OpenToolbar
+ MI_OpenToolOptionBar
+ MI_OpenLevelView
+ MI_OpenComboViewer
+ MI_OpenXshView
+ MI_OpenHistoryPanel
+
+ MI_ResetRoomLayout
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room1.ini b/stuff/profiles/layouts/rooms/StudioGhibli/room1.ini
new file mode 100644
index 0000000..9b976c3
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room1.ini
@@ -0,0 +1,9 @@
+[room]
+pane_0\name=ComboViewer
+pane_0\geometry=@Rect(0 0 851 452)
+pane_1\name=CleanupSettings
+pane_1\geometry=@Rect(859 0 251 611)
+pane_2\name=Xsheet
+pane_2\geometry=@Rect(0 460 851 151)
+hierarchy="-1 0 [ [ 0 2 ] 1 ] "
+name=Cleanup
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room1_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room1_menubar.xml
new file mode 100644
index 0000000..373e4b1
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room1_menubar.xml
@@ -0,0 +1,106 @@
+
+
+ MI_LoadLevel
+ MI_LoadFolder
+ MI_SaveLevelAs
+ MI_ExportLevel
+ MI_OpenRecentLevel
+
+ MI_LoadScene
+ MI_SaveScene
+ MI_SaveSceneAs
+ MI_SaveAll
+ MI_OpenRecentScene
+ MI_RevertScene
+
+ MI_ConvertFileWithInput
+
+ MI_NewScene
+
+ MI_Quit
+
+
+ MI_DefineScanner
+ MI_ScanSettings
+ MI_Scan
+ MI_SetScanCropbox
+ MI_ResetScanCropbox
+
+
+ MI_CleanupSettings
+
+ MI_OutputSettings
+ MI_LevelSettings
+
+
+ MI_CameraTest
+ MI_OpacityCheck
+ MI_CleanupPreview
+ MI_Cleanup
+
+
+ MI_Undo
+ MI_Redo
+
+ MI_NextFrame
+ MI_PrevFrame
+ MI_FirstFrame
+ MI_LastFrame
+ MI_TestAnimation
+
+ MI_Copy
+ MI_Cut
+ MI_Paste
+ MI_PasteInto
+
+ MI_Clear
+ MI_Insert
+ MI_SelectAll
+ MI_InvertSelection
+
+
+ MI_OpenFileBrowser
+ MI_OpenStyleControl
+ MI_OpenComboViewer
+ MI_OpenXshView
+
+
+ MI_OpenBatchServers
+ MI_OpenTasks
+ MI_OpenColorModel
+ MI_OpenFileViewer
+ MI_OpenFunctionEditor
+ MI_OpenFilmStrip
+ MI_OpenPalette
+ MI_OpenFileBrowser2
+ MI_OpenSchematic
+ MI_OpenStudioPalette
+ MI_OpenToolbar
+ MI_OpenToolOptionBar
+ MI_OpenHistoryPanel
+ MI_OpenTMessage
+
+
+
+ MI_Preferences
+ MI_ShortcutPopup
+ MI_SceneSettings
+
+ MI_ViewCamera
+ MI_ViewTable
+ MI_FieldGuide
+ MI_SafeArea
+ MI_ViewBBox
+ MI_ViewColorcard
+
+
+ MI_DockingCheck
+
+ MI_RunScript
+ MI_OpenScriptConsole
+ MI_ReloadStyle
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room2.ini b/stuff/profiles/layouts/rooms/StudioGhibli/room2.ini
new file mode 100644
index 0000000..3ecf3f4
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room2.ini
@@ -0,0 +1,14 @@
+[room]
+pane_0\name=ComboViewer
+pane_0\geometry=@Rect(0 0 700 600)
+pane_1\name=LevelPalette
+pane_1\geometry=@Rect(0 0 100 50)
+pane_1\viewtype=2
+pane_2\name=StyleEditor
+pane_2\geometry=@Rect(0 0 340 630)
+pane_3\name=Xsheet
+pane_3\geometry=@Rect(0 0 500 300)
+pane_4\name=StudioPalette
+pane_4\geometry=@Rect(0 0 100 50)
+hierarchy="-1 1 [ [ 2 0 ] [ 4 3 1 ] ] "
+name=PltEdit
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room2_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room2_menubar.xml
new file mode 100644
index 0000000..64f3972
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room2_menubar.xml
@@ -0,0 +1,144 @@
+
+
+ MI_LoadLevel
+ MI_LoadFolder
+ MI_SaveLevel
+ MI_SaveLevelAs
+ MI_ExportLevel
+ MI_OpenRecentLevel
+ MI_LevelSettings
+
+ MI_NewLevel
+
+ MI_OverwritePalette
+ MI_SavePaletteAs
+
+ MI_LoadScene
+ MI_SaveScene
+ MI_SaveSceneAs
+ MI_SaveAll
+ MI_OpenRecentScene
+ MI_RevertScene
+
+ MI_ConvertFileWithInput
+
+ MI_NewScene
+
+ MI_Quit
+
+
+ T_StylePicker
+ T_RGBPicker
+ T_Tape
+
+ T_Fill
+ T_Brush
+ T_PaintBrush
+ T_Geometric
+ T_Type
+
+ T_Eraser
+
+ T_Edit
+ T_Selection
+
+ T_ControlPointEditor
+ T_Pinch
+ T_Pump
+ T_Magnet
+ T_Bender
+ T_Iron
+ T_Cutter
+
+ T_Skeleton
+ T_Tracker
+ T_Hook
+ T_Plastic
+
+ T_Zoom
+ T_Rotate
+ T_Hand
+
+
+
+ MI_Undo
+ MI_Redo
+
+ MI_NextFrame
+ MI_PrevFrame
+ MI_FirstFrame
+ MI_LastFrame
+ MI_TestAnimation
+
+ MI_Copy
+ MI_Cut
+ MI_Paste
+ MI_PasteInto
+
+ MI_Clear
+ MI_Insert
+ MI_SelectAll
+ MI_InvertSelection
+
+
+ MI_TCheck
+ MI_BCheck
+ MI_ICheck
+ MI_Ink1Check
+ MI_PCheck
+
+
+ MI_PreviewSettings
+ MI_Preview
+ MI_SavePreviewedFrames
+
+ MI_OutputSettings
+ MI_Render
+
+
+ MI_OpenFileBrowser
+ MI_OpenFileViewer
+ MI_OpenFilmStrip
+ MI_OpenPalette
+ MI_OpenStudioPalette
+ MI_OpenStyleControl
+ MI_OpenLevelView
+ MI_OpenComboViewer
+ MI_OpenXshView
+
+
+ MI_OpenBatchServers
+ MI_OpenColorModel
+ MI_OpenFunctionEditor
+ MI_OpenFileBrowser2
+ MI_OpenSchematic
+ MI_OpenTasks
+ MI_OpenToolbar
+ MI_OpenToolOptionBar
+ MI_OpenHistoryPanel
+ MI_OpenTMessage
+
+
+
+ MI_Preferences
+ MI_ShortcutPopup
+ MI_SceneSettings
+
+
+ MI_ViewCamera
+ MI_ViewTable
+ MI_FieldGuide
+ MI_SafeArea
+ MI_ViewColorcard
+
+
+ MI_DockingCheck
+
+ MI_RunScript
+ MI_OpenScriptConsole
+ MI_ReloadStyle
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room3.ini b/stuff/profiles/layouts/rooms/StudioGhibli/room3.ini
new file mode 100644
index 0000000..a82ba30
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room3.ini
@@ -0,0 +1,10 @@
+[room]
+pane_0\name=ComboViewer
+pane_0\geometry=@Rect(0 0 700 600)
+pane_1\name=LevelPalette
+pane_1\geometry=@Rect(0 0 100 50)
+pane_1\viewtype=2
+pane_2\name=FilmStrip
+pane_2\geometry=@Rect(0 0 201 50)
+hierarchy="-1 1 [ [ 0 2 ] 1 ] "
+name=InknPaint
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room3_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room3_menubar.xml
new file mode 100644
index 0000000..b090854
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room3_menubar.xml
@@ -0,0 +1,154 @@
+
+
+ MI_LoadLevel
+ MI_LoadFolder
+ MI_SaveLevel
+ MI_SaveLevelAs
+ MI_SaveAll
+ MI_OpenRecentLevel
+ MI_ExportLevel
+ MI_LevelSettings
+ MI_CanvasSize
+
+ MI_NewLevel
+
+ MI_OverwritePalette
+ MI_SavePaletteAs
+
+ MI_LoadColorModel
+
+ MI_ApplyMatchLines
+ MI_DeleteMatchLines
+ MI_DeleteInk
+ MI_MergeCmapped
+ MI_MergeColumns
+
+ MI_LoadScene
+ MI_SaveScene
+ MI_SaveSceneAs
+ MI_OpenRecentScene
+
+ MI_NewScene
+
+ MI_Quit
+
+
+ T_StylePicker
+ T_RGBPicker
+ T_Tape
+
+ T_Fill
+ T_Brush
+ T_PaintBrush
+ T_Geometric
+ T_Type
+
+ T_Eraser
+
+
+ T_Edit
+ T_Selection
+
+ T_ControlPointEditor
+ T_Pinch
+ T_Pump
+ T_Magnet
+ T_Bender
+ T_Iron
+ T_Cutter
+
+ T_Skeleton
+ T_Tracker
+ T_Hook
+ T_Plastic
+
+ T_Zoom
+ T_Rotate
+ T_Hand
+
+
+
+ MI_ShiftTrace
+ MI_EditShift
+ MI_NoShift
+ MI_ResetShift
+
+ MI_RasterizePli
+
+
+ MI_Undo
+ MI_Redo
+
+ MI_NextFrame
+ MI_PrevFrame
+ MI_FirstFrame
+ MI_LastFrame
+ MI_TestAnimation
+
+ MI_Copy
+ MI_Cut
+ MI_Paste
+ MI_PasteInto
+
+ MI_Clear
+ MI_Insert
+ MI_SelectAll
+ MI_InvertSelection
+
+
+ MI_TCheck
+ MI_BCheck
+ MI_ICheck
+ MI_Ink1Check
+ MI_PCheck
+ MI_GCheck
+ MI_ACheck
+ MI_IOnly
+
+
+ MI_OpenStyleControl
+ MI_OpenPltGizmo
+ MI_OpenPalette
+ MI_OpenStudioPalette
+ MI_OpenComboViewer
+ MI_OpenXshView
+ MI_OpenColorModel
+ MI_OpenFileBrowser
+ MI_OpenFilmStrip
+ MI_OpenToolbar
+ MI_OpenToolOptionBar
+
+
+ MI_OpenBatchServers
+ MI_OpenFileViewer
+ MI_OpenFunctionEditor
+ MI_OpenFileBrowser2
+ MI_OpenSchematic
+ MI_OpenTasks
+ MI_OpenHistoryPanel
+ MI_OpenTMessage
+
+
+
+ MI_Preferences
+ MI_ShortcutPopup
+ MI_SceneSettings
+
+
+ MI_ViewCamera
+ MI_ViewTable
+ MI_FieldGuide
+ MI_SafeArea
+ MI_ViewColorcard
+
+
+ MI_DockingCheck
+
+ MI_RunScript
+ MI_OpenScriptConsole
+ MI_ReloadStyle
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room4.ini b/stuff/profiles/layouts/rooms/StudioGhibli/room4.ini
new file mode 100644
index 0000000..97e1552
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room4.ini
@@ -0,0 +1,7 @@
+[room]
+pane_0\name=Xsheet
+pane_0\geometry=@Rect(0 0 500 300)
+pane_1\name=FunctionEditor
+pane_1\geometry=@Rect(0 0 100 50)
+hierarchy="-1 0 [ 0 1 ] "
+name=Xsheet
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room4_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room4_menubar.xml
new file mode 100644
index 0000000..e869102
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room4_menubar.xml
@@ -0,0 +1,158 @@
+
+
+ MI_LoadScene
+ MI_SaveScene
+ MI_SaveSceneAs
+ MI_SaveAll
+ MI_OpenRecentScene
+ MI_RevertScene
+
+ MI_NewScene
+
+ MI_PrintXsheet
+ MI_Export
+
+ MI_Quit
+
+
+ MI_OpenChild
+ MI_CloseChild
+ MI_Collapse
+ MI_Resequence
+ MI_SaveSubxsheetAs
+ MI_LoadSubSceneFile
+ MI_CloneChild
+ MI_ExplodeChild
+ MI_ToggleEditInPlace
+
+
+ MI_LoadLevel
+ MI_LoadFolder
+ MI_SaveLevel
+ MI_SaveLevelAs
+ MI_ExportLevel
+ MI_OpenRecentLevel
+ MI_LevelSettings
+ MI_CanvasSize
+
+ MI_NewLevel
+
+ MI_ViewFile
+ MI_FileInfo
+
+ MI_CloneLevel
+ MI_ReplaceLevel
+
+ MI_AddFrames
+ MI_Renumber
+ MI_RevertToCleanedUp
+ MI_ConvertToVectors
+ MI_ConvertFileWithInput
+ MI_Tracking
+ MI_ExposeResource
+ MI_EditLevel
+ MI_RemoveUnused
+
+
+ MI_Dup
+ MI_Reverse
+ MI_Rollup
+ MI_Rolldown
+ MI_Swing
+ MI_Random
+ MI_TimeStretch
+
+
+ MI_Reframe1
+ MI_Reframe2
+ MI_Reframe3
+ MI_Reframe4
+
+
+ MI_Step2
+ MI_Step3
+ MI_Step4
+
+
+ MI_Each2
+ MI_Each3
+ MI_Each4
+
+
+
+ MI_Undo
+ MI_Redo
+
+ MI_Copy
+ MI_Cut
+ MI_Paste
+ MI_PasteInto
+
+ MI_Clear
+ MI_Insert
+ MI_SelectAll
+ MI_InvertSelection
+
+ MI_InsertSceneFrame
+ MI_RemoveSceneFrame
+ MI_InsertGlobalKeyframe
+ MI_RemoveGlobalKeyframe
+
+
+ MI_PreviewSettings
+ MI_Preview
+ MI_SavePreviewedFrames
+
+ MI_OutputSettings
+ MI_Render
+
+ MI_Link
+
+
+ MI_OpenSchematic
+ MI_OpenComboViewer
+ MI_OpenFileBrowser
+ MI_OpenFunctionEditor
+ MI_OpenFileViewer
+ MI_OpenFilmStrip
+ MI_OpenLevelView
+ MI_OpenXshView
+
+
+ MI_OpenBatchServers
+ MI_OpenColorModel
+ MI_OpenPalette
+ MI_OpenFileBrowser2
+ MI_OpenStudioPalette
+ MI_OpenStyleControl
+ MI_OpenTasks
+ MI_OpenToolbar
+ MI_OpenToolOptionBar
+ MI_OpenHistoryPanel
+ MI_OpenTMessage
+
+
+
+ MI_Preferences
+ MI_ShortcutPopup
+ MI_SceneSettings
+
+
+ MI_ViewCamera
+ MI_ViewTable
+ MI_FieldGuide
+ MI_SafeArea
+ MI_ViewBBox
+ MI_ViewColorcard
+
+
+ MI_DockingCheck
+
+ MI_RunScript
+ MI_OpenScriptConsole
+ MI_ReloadStyle
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room5.ini b/stuff/profiles/layouts/rooms/StudioGhibli/room5.ini
new file mode 100644
index 0000000..c428f02
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room5.ini
@@ -0,0 +1,7 @@
+[room]
+pane_0\name=Tasks
+pane_0\geometry=@Rect(0 0 100 50)
+pane_1\name=BatchServers
+pane_1\geometry=@Rect(0 0 100 50)
+hierarchy="-1 0 [ 0 1 ] "
+name=Batches
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room5_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room5_menubar.xml
new file mode 100644
index 0000000..67f381e
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room5_menubar.xml
@@ -0,0 +1,23 @@
+
+
+ MI_Quit
+
+
+ MI_OpenFileBrowser
+ MI_OpenBatchServers
+ MI_OpenTasks
+
+
+ MI_Preferences
+ MI_ShortcutPopup
+
+ MI_DockingCheck
+
+ "MI_RunScript"
+ "MI_OpenScriptConsole"
+ "MI_ReloadStyle"
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room6.ini b/stuff/profiles/layouts/rooms/StudioGhibli/room6.ini
new file mode 100644
index 0000000..b2ee247
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room6.ini
@@ -0,0 +1,7 @@
+[room]
+pane_0\name=Browser
+pane_0\geometry=@Rect(0 0 100 50)
+pane_1\name=SceneCast
+pane_1\geometry=@Rect(0 0 100 50)
+hierarchy="-1 1 [ 0 1 ] "
+name=Browser
diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml
new file mode 100644
index 0000000..46eab24
--- /dev/null
+++ b/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml
@@ -0,0 +1,22 @@
+
+
+ MI_NewProject
+ MI_ProjectSettings
+ MI_SaveDefaultSettings
+
+ MI_Quit
+
+
+ MI_Preferences
+ MI_ShortcutPopup
+
+ MI_DockingCheck
+
+ "MI_RunScript"
+ "MI_OpenScriptConsole"
+ "MI_ReloadStyle"
+
+
+ MI_About
+
+
\ No newline at end of file
diff --git a/toonz/sources/include/toonz/preferences.h b/toonz/sources/include/toonz/preferences.h
index f1cbeba..b51c5d5 100644
--- a/toonz/sources/include/toonz/preferences.h
+++ b/toonz/sources/include/toonz/preferences.h
@@ -140,6 +140,15 @@ public:
void setCameraUnits(std::string s);
QString getCameraUnits() const { return m_cameraUnits; }
+ //void setRoomChoice(std::string s);
+ //QString getRoomChoice() const { return m_roomChoice; }
+
+ void setCurrentRoomChoice(int currentRoomChoice);
+ void setCurrentRoomChoice(QString currentRoomChoice);
+ QString getCurrentRoomChoice() const;
+ int getRoomChoiceCount() const;
+ QString getRoomChoice(int index) const;
+
void enableGeneratedMovieView(bool on);
bool isGeneratedMovieViewEnabled() const
{
@@ -440,13 +449,15 @@ private:
std::unique_ptr m_settings;
QMap m_languageMaps,
- m_styleSheetMaps;
+ m_styleSheetMaps,
+ m_roomMaps;
std::vector m_levelFormats;
QString m_units,
m_cameraUnits,
- m_scanLevelType;
+ m_scanLevelType,
+ m_currentRoomChoice;
double m_defLevelWidth,
m_defLevelHeight,
@@ -471,6 +482,7 @@ private:
m_autocreationType,
m_keyframeType,
m_animationStep;
+
int m_currentLanguage,
m_currentStyleSheet,
m_undoMemorySize, // in megabytes
diff --git a/toonz/sources/include/toonz/toonzfolders.h b/toonz/sources/include/toonz/toonzfolders.h
index 1435b9b..99a6770 100644
--- a/toonz/sources/include/toonz/toonzfolders.h
+++ b/toonz/sources/include/toonz/toonzfolders.h
@@ -24,6 +24,12 @@ DVAPI TFilePath getModulesDir();
DVAPI TFilePath getTemplateModuleDir();
DVAPI TFilePath getMyModuleDir();
+DVAPI TFilePath getRoomsDir();
+DVAPI TFilePath getTemplateRoomsDir();
+DVAPI TFilePath getMyRoomsDir();
+DVAPI TFilePath getRoomsFile(TFilePath filename);
+DVAPI TFilePath getRoomsFile(std::string fn);
+
// restituisce getMyModuleDir() + filename
// o getTemplateModuleDir() + filename
DVAPI TFilePath getModuleFile(TFilePath filename);
diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp
index 55e749e..6378b39 100644
--- a/toonz/sources/toonz/mainwindow.cpp
+++ b/toonz/sources/toonz/mainwindow.cpp
@@ -102,16 +102,16 @@ bool readRoomList(std::vector &roomPaths,
TFilePath fp;
/*-レイアウトファイルが指定されている場合--*/
if (!argumentLayoutFileName.isEmpty()) {
- fp = ToonzFolder::getModuleFile(argumentLayoutFileName.toStdString());
+ fp = ToonzFolder::getRoomsFile(argumentLayoutFileName.toStdString());
if (!TFileStatus(fp).doesExist()) {
DVGui::warning("Room layout file " + argumentLayoutFileName + " not found!");
- fp = ToonzFolder::getModuleFile(layoutsFileName);
+ fp = ToonzFolder::getRoomsFile(layoutsFileName);
if (!TFileStatus(fp).doesExist())
return false;
} else
argumentLayoutFileLoaded = true;
} else {
- fp = ToonzFolder::getModuleFile(layoutsFileName);
+ fp = ToonzFolder::getRoomsFile(layoutsFileName);
if (!TFileStatus(fp).doesExist())
return false;
}
@@ -144,7 +144,7 @@ bool readRoomList(std::vector &roomPaths,
void writeRoomList(std::vector &roomPaths)
{
- TFilePath fp = ToonzFolder::getMyModuleDir() + layoutsFileName;
+ TFilePath fp = ToonzFolder::getMyRoomsDir() + layoutsFileName;
TSystem::touchParentDir(fp);
Tofstream os(fp);
if (!os)
@@ -170,7 +170,7 @@ void writeRoomList(std::vector &rooms)
void makePrivate(Room *room)
{
- TFilePath layoutDir = ToonzFolder::getMyModuleDir();
+ TFilePath layoutDir = ToonzFolder::getMyRoomsDir();
TFilePath roomPath = room->getPath();
std::string mbSrcFileName = roomPath.getName() + "_menubar.xml";
if (roomPath == TFilePath() || roomPath.getParentDir() != layoutDir) {
@@ -189,12 +189,12 @@ void makePrivate(Room *room)
TFilePath myMBPath = layoutDir + mbDstFileName;
if (!TFileStatus(myMBPath).isReadable())
{
- TFilePath templateRoomMBPath = ToonzFolder::getTemplateModuleDir() + mbSrcFileName;
+ TFilePath templateRoomMBPath = ToonzFolder::getTemplateRoomsDir() + mbSrcFileName;
if (TFileStatus(templateRoomMBPath).doesExist())
TSystem::copyFile(myMBPath, templateRoomMBPath);
else
{
- TFilePath templateFullMBPath = ToonzFolder::getTemplateModuleDir() + "menubar_template.xml";
+ TFilePath templateFullMBPath = ToonzFolder::getTemplateRoomsDir() + "menubar_template.xml";
if (TFileStatus(templateFullMBPath).doesExist())
TSystem::copyFile(myMBPath, templateFullMBPath);
else
@@ -379,7 +379,7 @@ MainWindow::MainWindow(const QString &argumentLayoutFileName, QWidget *parent, Q
{
m_toolsActionGroup = new QActionGroup(this);
m_toolsActionGroup->setExclusive(true);
-
+ m_currentRoomsChoice = Preferences::instance()->getCurrentRoomChoice();
defineActions();
TApp::instance()->getCurrentScene()->setDirtyFlag(false);
@@ -527,6 +527,13 @@ int MainWindow::getRoomCount() const
//-----------------------------------------------------------------------------
+void MainWindow::refreshWriteSettings()
+{
+ writeSettings();
+}
+
+//-----------------------------------------------------------------------------
+
void MainWindow::readSettings(const QString &argumentLayoutFileName)
{
@@ -570,7 +577,7 @@ void MainWindow::readSettings(const QString &argumentLayoutFileName)
/*- ここでMenuBarファイルをロードする -*/
std::string mbFileName = roomPath.getName() + "_menubar.xml";
- stackedMenuBar->loadAndAddMenubar(ToonzFolder::getModuleFile(mbFileName));
+ stackedMenuBar->loadAndAddMenubar(ToonzFolder::getRoomsFile(mbFileName));
//room->setDockOptions(QMainWindow::DockOptions(
// (QMainWindow::AnimatedDocks | QMainWindow::AllowNestedDocks) & ~QMainWindow::AllowTabbedDocks));
@@ -627,7 +634,7 @@ void MainWindow::readSettings(const QString &argumentLayoutFileName)
writeRoomList(rooms);
// Imposto la stanza corrente
- fp = ToonzFolder::getModuleFile(currentRoomFileName);
+ fp = ToonzFolder::getRoomsFile(currentRoomFileName);
Tifstream is(fp);
std::string currentRoomName;
is >> currentRoomName;
@@ -705,10 +712,13 @@ void MainWindow::writeSettings()
rooms.push_back(room);
room->save();
}
- writeRoomList(rooms);
+ if (m_currentRoomsChoice == Preferences::instance()->getCurrentRoomChoice())
+ {
+ writeRoomList(rooms);
+ }
//Current room settings
- Tofstream os(ToonzFolder::getMyModuleDir() + currentRoomFileName);
+ Tofstream os(ToonzFolder::getMyRoomsDir() + currentRoomFileName);
os << getCurrentRoom()->getName().toStdString();
//Main window settings
@@ -1094,8 +1104,12 @@ void MainWindow::resetRoomsLayout()
m_saveSettingsOnQuit = false;
- TFilePath layoutDir = ToonzFolder::getMyModuleDir();
+ TFilePath layoutDir = ToonzFolder::getMyRoomsDir();
if (layoutDir != TFilePath()) {
+ //TSystem::deleteFile(layoutDir);
+ TSystem::rmDirTree(layoutDir);
+ }
+ /*if (layoutDir != TFilePath()) {
try {
TFilePathSet fpset;
TSystem::readDirectory(fpset, layoutDir, true, false);
@@ -1107,7 +1121,7 @@ void MainWindow::resetRoomsLayout()
}
} catch (...) {
}
- }
+ }*/
DVGui::info(QObject::tr("The rooms will be reset the next time you run Toonz."));
}
diff --git a/toonz/sources/toonz/mainwindow.h b/toonz/sources/toonz/mainwindow.h
index e178be5..fb8793f 100644
--- a/toonz/sources/toonz/mainwindow.h
+++ b/toonz/sources/toonz/mainwindow.h
@@ -71,6 +71,8 @@ class MainWindow : public QMainWindow
bool m_saveSettingsOnQuit;
int m_oldRoomIndex;
+ QString m_currentRoomsChoice;
+
UpdateChecker *m_updateChecker;
TopBar *m_topBar;
@@ -108,7 +110,7 @@ public:
Room *getRoomByName(QString &roomName);
Room *getCurrentRoom() const;
-
+ void refreshWriteSettings();
/*-- FillAreas,FillLinesに直接切り替えるコマンド --*/
void toggleFillAreas();
void toggleFillLines();
@@ -127,9 +129,9 @@ private:
/*!Must be call before readSettings().*/
void defineActions();
/*
- Room *createPaintRoom();
- Room *createAnimationRoom();
- Room *createBrowserRoom();
+ Room *createPaintRoom();
+ Room *createAnimationRoom();
+ Room *createBrowserRoom();
Room *createPltEditRoom();
Room *createFarmRoom();
*/
diff --git a/toonz/sources/toonz/menubar.cpp b/toonz/sources/toonz/menubar.cpp
index fff63ae..48f9671 100644
--- a/toonz/sources/toonz/menubar.cpp
+++ b/toonz/sources/toonz/menubar.cpp
@@ -1442,7 +1442,7 @@ void StackedMenuBar::doCustomizeMenuBar(int index)
/*- OKが押され、roomname_menubar.xmlが更新された状態 -*/
/*- xmlファイルからメニューバーを作り直して格納 -*/
std::string mbFileName = room->getPath().getName() + "_menubar.xml";
- TFilePath mbPath = ToonzFolder::getMyModuleDir() + mbFileName;
+ TFilePath mbPath = ToonzFolder::getMyRoomsDir() + mbFileName;
if (!TFileStatus(mbPath).isReadable())
{
DVGui::warning(tr("Cannot open menubar settings file %1").arg(QString::fromStdString(mbFileName)));
diff --git a/toonz/sources/toonz/preferencespopup.cpp b/toonz/sources/toonz/preferencespopup.cpp
index f4aa12f..a842f7f 100644
--- a/toonz/sources/toonz/preferencespopup.cpp
+++ b/toonz/sources/toonz/preferencespopup.cpp
@@ -53,7 +53,7 @@ namespace
static const int unitsCount = 5, inchIdx = 2;
static const QString units[unitsCount] = {"cm", "mm", "inch", "field", "pixel"};
-
+static const QString rooms[2] = { "standard", "studioGhibli" };
enum DpiPolicy { DP_ImageDpi,
DP_CustomDpi };
@@ -220,6 +220,15 @@ void PreferencesPopup::onCameraUnitChanged(int index)
//-----------------------------------------------------------------------------
+void PreferencesPopup::onRoomChoiceChanged(int index)
+{
+ TApp::instance()->writeSettings();
+ m_pref->setCurrentRoomChoice(index);
+
+}
+
+//-----------------------------------------------------------------------------
+
void PreferencesPopup::onScanLevelTypeChanged(const QString &text)
{
m_pref->setScanLevelType(text.toStdString());
@@ -879,6 +888,10 @@ PreferencesPopup::PreferencesPopup()
QComboBox *styleSheetType = new QComboBox(this);
QComboBox *unitOm = new QComboBox(this);
QComboBox *cameraUnitOm = new QComboBox(this);
+ //Choose between standard and Studio Ghibli rooms
+ QComboBox *roomChoice = new QComboBox(this);
+
+
m_iconSizeLx = new DVGui::IntLineEdit(this, 80, 10, 400);
m_iconSizeLy = new DVGui::IntLineEdit(this, 60, 10, 400);
m_viewShrink = new DVGui::IntLineEdit(this, 1, 1, 20);
@@ -1038,6 +1051,20 @@ PreferencesPopup::PreferencesPopup()
idx = std::find(::units, ::units + ::unitsCount, m_pref->getCameraUnits()) - ::units;
cameraUnitOm->setCurrentIndex((idx < ::unitsCount) ? idx : ::inchIdx);
+ QStringList roomList;
+ int currentRoomIndex = 0;
+ for (int i = 0; i < m_pref->getRoomChoiceCount(); i++) {
+ QString string = m_pref->getRoomChoice(i);
+ if (string == m_pref->getCurrentRoomChoice())
+ currentRoomIndex = i;
+ roomList.push_back(string);
+ }
+
+ if (roomList.size() > 1) {
+ roomChoice->addItems(roomList);
+ roomChoice->setCurrentIndex(currentRoomIndex);
+ }
+
m_iconSizeLx->setValue(m_pref->getIconSize().lx);
m_iconSizeLy->setValue(m_pref->getIconSize().ly);
int shrink, step;
@@ -1245,6 +1272,9 @@ PreferencesPopup::PreferencesPopup()
styleLay->addWidget(new QLabel(tr("Camera Unit:"), this), 2, 0, Qt::AlignRight | Qt::AlignVCenter);
styleLay->addWidget(cameraUnitOm, 2, 1);
+
+ styleLay->addWidget(new QLabel(tr("Rooms *:"), this), 3, 0, Qt::AlignRight | Qt::AlignVCenter);
+ styleLay->addWidget(roomChoice, 3, 1);
}
styleLay->setColumnStretch(0, 0);
styleLay->setColumnStretch(1, 0);
@@ -1575,6 +1605,7 @@ PreferencesPopup::PreferencesPopup()
ret = ret && connect(styleSheetType, SIGNAL(currentIndexChanged(int)), SLOT(onStyleSheetTypeChanged(int)));
ret = ret && connect(unitOm, SIGNAL(currentIndexChanged(int)), SLOT(onUnitChanged(int)));
ret = ret && connect(cameraUnitOm, SIGNAL(currentIndexChanged(int)), SLOT(onCameraUnitChanged(int)));
+ ret = ret && connect(roomChoice, SIGNAL(currentIndexChanged(int)), SLOT(onRoomChoiceChanged(int)));
ret = ret && connect(openFlipbookAfterCB, SIGNAL(stateChanged(int)), this, SLOT(onViewGeneratedMovieChanged(int)));
ret = ret && connect(m_iconSizeLx, SIGNAL(editingFinished()), SLOT(onIconSizeChanged()));
ret = ret && connect(m_iconSizeLy, SIGNAL(editingFinished()), SLOT(onIconSizeChanged()));
diff --git a/toonz/sources/toonz/preferencespopup.h b/toonz/sources/toonz/preferencespopup.h
index e4616c9..f22845c 100644
--- a/toonz/sources/toonz/preferencespopup.h
+++ b/toonz/sources/toonz/preferencespopup.h
@@ -99,6 +99,7 @@ private slots:
void onUnitChanged(int index);
void onCameraUnitChanged(int index);
+ void onRoomChoiceChanged(int index);
void onScanLevelTypeChanged(const QString &text);
void onMinuteChanged();
void onIconSizeChanged();
diff --git a/toonz/sources/toonz/tapp.cpp b/toonz/sources/toonz/tapp.cpp
index 35c8f48..d081ab1 100644
--- a/toonz/sources/toonz/tapp.cpp
+++ b/toonz/sources/toonz/tapp.cpp
@@ -234,6 +234,16 @@ TMainWindow *TApp::getCurrentRoom() const
//-----------------------------------------------------------------------------
+void TApp::writeSettings()
+{
+ MainWindow *mainWindow = dynamic_cast(getMainWindow());
+ if (mainWindow)
+ mainWindow->refreshWriteSettings();
+}
+
+//-----------------------------------------------------------------------------
+
+
TPaletteHandle *TApp::getCurrentPalette() const
{
return m_paletteController->getCurrentPalette();
diff --git a/toonz/sources/toonz/tapp.h b/toonz/sources/toonz/tapp.h
index 9e8ffac..29b9b6b 100644
--- a/toonz/sources/toonz/tapp.h
+++ b/toonz/sources/toonz/tapp.h
@@ -177,6 +177,8 @@ public:
bool isPenCloseToTablet() const { return m_isPenCloseToTablet; }
+ void writeSettings();
+
protected:
bool eventFilter(QObject *obj, QEvent *event);
diff --git a/toonz/sources/toonzlib/preferences.cpp b/toonz/sources/toonzlib/preferences.cpp
index aabe6c0..4a6be30 100644
--- a/toonz/sources/toonzlib/preferences.cpp
+++ b/toonz/sources/toonzlib/preferences.cpp
@@ -227,7 +227,7 @@ bool Preferences::LevelFormat::matches(const TFilePath &fp) const
//**********************************************************************************
Preferences::Preferences()
- : m_units("mm"), m_cameraUnits("inch"), m_scanLevelType("tif"), m_defLevelWidth(0.0), m_defLevelHeight(0.0), m_defLevelDpi(0.0), m_iconSize(160, 120), m_blankColor(TPixel32::White), m_frontOnionColor(TPixel::Black), m_backOnionColor(TPixel::Black), m_transpCheckBg(TPixel::White), m_transpCheckInk(TPixel::Black), m_transpCheckPaint(TPixel(127, 127, 127)), m_autosavePeriod(15), m_chunkSize(10), m_rasterOptimizedMemory(0), m_shrink(1), m_step(1), m_blanksCount(0), m_keyframeType(3), m_animationStep(1), m_textureSize(0), m_xsheetStep(10), m_shmmax(-1), m_shmseg(-1), m_shmall(-1), m_shmmni(-1), m_onionPaperThickness(50), m_currentLanguage(0), m_currentStyleSheet(0), m_undoMemorySize(100), m_dragCellsBehaviour(0), m_lineTestFpsCapture(25), m_defLevelType(0), m_autocreationType(1), m_autoExposeEnabled(true), m_autoCreateEnabled(true), m_subsceneFolderEnabled(true), m_generatedMovieViewEnabled(true), m_xsheetAutopanEnabled(true), m_ignoreAlphaonColumn1Enabled(false), m_rewindAfterPlaybackEnabled(true), m_fitToFlipbookEnabled(false), m_previewAlwaysOpenNewFlipEnabled(false), m_autosaveEnabled(false), m_defaultViewerEnabled(false), m_saveUnpaintedInCleanup(true), m_askForOverrideRender(true), m_automaticSVNFolderRefreshEnabled(true), m_SVNEnabled(false), m_minimizeSaveboxAfterEditing(true), m_levelsBackupEnabled(false), m_sceneNumberingEnabled(false), m_animationSheetEnabled(false), m_inksOnly(false), m_fillOnlySavebox(false), m_show0ThickLines(true), m_regionAntialias(false), m_viewerBGColor(128, 128, 128, 255), m_previewBGColor(64, 64, 64, 255), m_chessboardColor1(180, 180, 180), m_chessboardColor2(230, 230, 230), m_showRasterImagesDarkenBlendedInViewer(false), m_actualPixelViewOnSceneEditingMode(false), m_viewerZoomCenter(0), m_initialLoadTlvCachingBehavior(0), m_removeSceneNumberFromLoadedLevelName(false), m_replaceAfterSaveLevelAs(true), m_showFrameNumberWithLetters(false), m_levelNameOnEachMarker(false), m_columnIconLoadingPolicy((int)LoadAtOnce), m_moveCurrentFrameByClickCellArea(true), m_onionSkinEnabled(true), m_multiLayerStylePickerEnabled(false), m_paletteTypeOnLoadRasterImageAsColorModel(0), m_showKeyframesOnXsheetCellArea(true)
+ : m_units("mm"), m_cameraUnits("inch"), m_currentRoomChoice("Default"), m_scanLevelType("tif"), m_defLevelWidth(0.0), m_defLevelHeight(0.0), m_defLevelDpi(0.0), m_iconSize(160, 120), m_blankColor(TPixel32::White), m_frontOnionColor(TPixel::Black), m_backOnionColor(TPixel::Black), m_transpCheckBg(TPixel::White), m_transpCheckInk(TPixel::Black), m_transpCheckPaint(TPixel(127, 127, 127)), m_autosavePeriod(15), m_chunkSize(10), m_rasterOptimizedMemory(0), m_shrink(1), m_step(1), m_blanksCount(0), m_keyframeType(3), m_animationStep(1), m_textureSize(0), m_xsheetStep(10), m_shmmax(-1), m_shmseg(-1), m_shmall(-1), m_shmmni(-1), m_onionPaperThickness(50), m_currentLanguage(0), m_currentStyleSheet(0), m_undoMemorySize(100), m_dragCellsBehaviour(0), m_lineTestFpsCapture(25), m_defLevelType(0), m_autocreationType(1), m_autoExposeEnabled(true), m_autoCreateEnabled(true), m_subsceneFolderEnabled(true), m_generatedMovieViewEnabled(true), m_xsheetAutopanEnabled(true), m_ignoreAlphaonColumn1Enabled(false), m_rewindAfterPlaybackEnabled(true), m_fitToFlipbookEnabled(false), m_previewAlwaysOpenNewFlipEnabled(false), m_autosaveEnabled(false), m_defaultViewerEnabled(false), m_saveUnpaintedInCleanup(true), m_askForOverrideRender(true), m_automaticSVNFolderRefreshEnabled(true), m_SVNEnabled(false), m_minimizeSaveboxAfterEditing(true), m_levelsBackupEnabled(false), m_sceneNumberingEnabled(false), m_animationSheetEnabled(false), m_inksOnly(false), m_fillOnlySavebox(false), m_show0ThickLines(true), m_regionAntialias(false), m_viewerBGColor(128, 128, 128, 255), m_previewBGColor(64, 64, 64, 255), m_chessboardColor1(180, 180, 180), m_chessboardColor2(230, 230, 230), m_showRasterImagesDarkenBlendedInViewer(false), m_actualPixelViewOnSceneEditingMode(false), m_viewerZoomCenter(0), m_initialLoadTlvCachingBehavior(0), m_removeSceneNumberFromLoadedLevelName(false), m_replaceAfterSaveLevelAs(true), m_showFrameNumberWithLetters(false), m_levelNameOnEachMarker(false), m_columnIconLoadingPolicy((int)LoadAtOnce), m_moveCurrentFrameByClickCellArea(true), m_onionSkinEnabled(true), m_multiLayerStylePickerEnabled(false), m_paletteTypeOnLoadRasterImageAsColorModel(0), m_showKeyframesOnXsheetCellArea(true)
{
TCamera camera;
m_defLevelType = PLI_XSHLEVEL;
@@ -345,6 +345,7 @@ Preferences::Preferences()
std::sort(m_levelFormats.begin(), m_levelFormats.end(), // Format sorting must be
formatLess); // enforced
+ //load languages
TFilePath lang_path = TEnv::getConfigDir() + "loc";
TFilePathSet lang_fpset;
m_languageMaps[0] = "English";
@@ -369,6 +370,7 @@ Preferences::Preferences()
} catch (...) {
}
+ //load styles
TFilePath path(TEnv::getConfigDir() + "qss");
TFilePathSet fpset;
try {
@@ -391,8 +393,50 @@ Preferences::Preferences()
} catch (...) {
}
+ //load rooms or layouts
+ QString rooms;
+ bool roomsExist = false;
+ rooms = m_settings->value("CurrentRoomChoice").toString();
+
+ TFilePath room_path(TEnv::getStuffDir() + "profiles/layouts/rooms");
+ TFilePathSet room_fpset;
+ try {
+ TSystem::readDirectory(room_fpset, room_path, true, false);
+ TFilePathSet::iterator it = room_fpset.begin();
+ int i = 0;
+ for (it; it != room_fpset.end(); it++) {
+ TFilePath newPath = *it;
+ if (newPath == room_path)
+ continue;
+ if (TFileStatus(newPath).isDirectory()) {
+ QString string = QString::fromStdWString(newPath.getWideName());
+ if (string == rooms)
+ roomsExist = true;
+ m_roomMaps[i] = string;
+ i++;
+ }
+ }
+ }
+ catch (...) {
+ }
+ //make sure the selected rooms exists
+ if (rooms != "" && roomsExist)
+ {
+ m_currentRoomChoice = rooms;
+ setCurrentRoomChoice(rooms);
+ }
+ //or set the selected rooms to the first ones in the folder
+ else
+ {
+ m_currentRoomChoice = m_roomMaps[0];
+ setCurrentRoomChoice(0);
+ }
+
getValue(*m_settings, "CurrentLanguage", m_currentLanguage);
getValue(*m_settings, "CurrentStyleSheet", m_currentStyleSheet);
+
+
+
getValue(*m_settings, "DragCellsBehaviour", m_dragCellsBehaviour);
getValue(*m_settings, "LineTestFpsCapture", m_lineTestFpsCapture);
@@ -886,6 +930,44 @@ void Preferences::setCameraUnits(std::string units)
setCurrentUnits("camera.lx", units);
setCurrentUnits("camera.ly", units);
}
+
+//-----------------------------------------------------------------
+
+void Preferences::setCurrentRoomChoice(int currentRoomChoice)
+{
+ m_currentRoomChoice = getRoomChoice(currentRoomChoice);
+ m_settings->setValue("CurrentRoomChoice", m_currentRoomChoice);
+}
+
+//-----------------------------------------------------------------
+
+void Preferences::setCurrentRoomChoice(QString currentRoomChoice)
+{
+ m_currentRoomChoice = currentRoomChoice;
+ m_settings->setValue("CurrentRoomChoice", m_currentRoomChoice);
+}
+
+//-----------------------------------------------------------------
+
+QString Preferences::getCurrentRoomChoice() const
+{
+ return m_currentRoomChoice;
+}
+
+//-----------------------------------------------------------------
+
+int Preferences::getRoomChoiceCount() const
+{
+ return m_roomMaps.size();
+}
+
+//-----------------------------------------------------------------
+
+QString Preferences::getRoomChoice(int index) const
+{
+ return m_roomMaps[index];
+}
+
//-----------------------------------------------------------------
void Preferences::setScanLevelType(std::string type)
diff --git a/toonz/sources/toonzlib/toonzfolders.cpp b/toonz/sources/toonzlib/toonzfolders.cpp
index 560dc08..a40d9b0 100644
--- a/toonz/sources/toonzlib/toonzfolders.cpp
+++ b/toonz/sources/toonzlib/toonzfolders.cpp
@@ -5,6 +5,7 @@
#include "tenv.h"
//#include "appmainshell.h"
#include "tconvert.h"
+#include "toonz/preferences.h"
using namespace TEnv;
@@ -77,7 +78,8 @@ TFilePath ToonzFolder::getReslistPath(bool forCleanup)
TFilePath ToonzFolder::getTemplateModuleDir()
{
- return getModulesDir() + getModuleName();
+ //return getModulesDir() + getModuleName();
+ return getModulesDir() + "settings";
}
TFilePath ToonzFolder::getMyModuleDir()
@@ -100,6 +102,40 @@ TFilePath ToonzFolder::getModuleFile(std::string fn)
return ToonzFolder::getModuleFile(TFilePath(fn));
}
+//turtle
+TFilePath ToonzFolder::getRoomsDir()
+{
+ return getProfileFolder() + "layouts/rooms";
+}
+
+TFilePath ToonzFolder::getTemplateRoomsDir()
+{
+ return getRoomsDir() + Preferences::instance()->getCurrentRoomChoice().toStdWString();
+ //TFilePath fp(getMyModuleDir() + TFilePath(mySettingsFileName));
+ //return getRoomsDir() + getModuleName();
+}
+
+TFilePath ToonzFolder::getMyRoomsDir()
+{
+ //TFilePath fp(getTemplateRoomsDir());
+ TFilePath fp(getProfileFolder());
+ return fp.withName(fp.getWideName() + L"/layouts/personal/" + Preferences::instance()->getCurrentRoomChoice().toStdWString() + L"." + TSystem::getUserName().toStdWString());
+}
+
+TFilePath ToonzFolder::getRoomsFile(TFilePath filename)
+{
+ TFilePath fp = getMyRoomsDir() + filename;
+ if (TFileStatus(fp).doesExist())
+ return fp;
+ fp = getTemplateRoomsDir() + filename;
+ return fp;
+}
+
+TFilePath ToonzFolder::getRoomsFile(std::string fn)
+{
+ return ToonzFolder::getRoomsFile(TFilePath(fn));
+}
+
//===================================================================
FolderListenerManager::FolderListenerManager()