diff --git a/stuff/profiles/layouts/shortcuts/defopentoonz.ini b/stuff/profiles/layouts/shortcuts/defopentoonz.ini new file mode 100644 index 0000000..ebb88c6 --- /dev/null +++ b/stuff/profiles/layouts/shortcuts/defopentoonz.ini @@ -0,0 +1,366 @@ +[shortcuts] +MI_Clear=Del +MI_OnionSkin=/ +A_DecreaseBrushHardness= +A_DecreaseMaxBrushThickness=U +A_DecreaseMinBrushThickness=H +A_FxSchematicToggle= +A_IncreaseBrushHardness= +A_IncreaseMaxBrushThickness=I +A_IncreaseMinBrushThickness=J +A_ToolOption_AutoGroup= +A_ToolOption_AutoSelect%3AColumn= +A_ToolOption_AutoSelect%3ANone= +A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutoSelectDrawing= +A_ToolOption_Autofill= +A_ToolOption_BreakSharpAngles= +A_ToolOption_BrushPreset= +A_ToolOption_EditToolActiveAxis= +A_ToolOption_EditToolActiveAxis%3ACenter= +A_ToolOption_EditToolActiveAxis%3APosition= +A_ToolOption_EditToolActiveAxis%3ARotation= +A_ToolOption_EditToolActiveAxis%3AScale= +A_ToolOption_EditToolActiveAxis%3AShear= +A_ToolOption_FrameRange=F6 +A_ToolOption_GeometricEdge= +A_ToolOption_GeometricShape= +A_ToolOption_GlobalKey= +A_ToolOption_IK= +A_ToolOption_Invert= +A_ToolOption_JoinVectors= +A_ToolOption_Manual= +A_ToolOption_Meshify= +A_ToolOption_Mode= +A_ToolOption_Mode%3AAreas= +A_ToolOption_Mode%3ALines= +A_ToolOption_Mode%3ALines%20%26%20Areas= +A_ToolOption_OnionSkin= +A_ToolOption_Orientation= +A_ToolOption_PencilMode= +A_ToolOption_PickScreen= +A_ToolOption_PreserveThickness= +A_ToolOption_PressureSensitivity=Shift+P +A_ToolOption_SegmentInk=F8 +A_ToolOption_Selective=F7 +A_ToolOption_ShowOnlyActiveSkeleton= +A_ToolOption_SkeletonMode%3AAnimate= +A_ToolOption_SkeletonMode%3ABuild%20Skeleton= +A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_Smooth= +A_ToolOption_Snap= +A_ToolOption_Type= +A_ToolOption_Type%3AFreehand= +A_ToolOption_Type%3ANormal= +A_ToolOption_Type%3APolyline= +A_ToolOption_Type%3ARectangular=F5 +A_ToolOption_TypeFont= +A_ToolOption_TypeSize= +A_ToolOption_TypeStyle= +MI_ACheck= +MI_About= +MI_ActivateAllColumns= +MI_ActivateSelectedColumns= +MI_ActivateThisColumnOnly= +MI_AddFrames= +MI_AddToBatchCleanupList= +MI_AddToBatchRenderList= +MI_AdjustLevels= +MI_AdjustThickness= +MI_Antialias= +MI_ApplyMatchLines= +MI_AutoFillToggle=Shift+A +MI_Autocenter= +MI_Autorenumber= +MI_BCheck= +MI_Binarize= +MI_BlendColors= +MI_BlueChannel= +MI_BlueChannelGreyscale= +MI_BrightnessAndContrast= +MI_BringForward=] +MI_BringToFront=Ctrl+] +MI_CameraSettings= +MI_CameraStage= +MI_CameraTest= +MI_CanvasSize= +MI_Cleanup= +MI_CleanupPreview= +MI_CleanupSettings= +MI_ClearRecentImage= +MI_ClearRecentLevel= +MI_ClearRecentScene= +MI_CloneChild= +MI_CloneLevel= +MI_ClonePreview= +MI_CloseChild= +MI_Collapse= +MI_CollectAssets= +MI_CompareToSnapshot= +MI_ConvertFileWithInput= +MI_ConvertFiles= +MI_ConvertToVectors= +MI_Copy=Ctrl+C +MI_Cut=Ctrl+X +MI_DeactivateAllColumns= +MI_DeactivateSelectedColumns= +MI_DeactivateUpperColumns= +MI_DecreaseStep=";" +MI_DefineScanner= +MI_DeleteInk= +MI_DeleteMatchLines= +MI_DisableAllColumns= +MI_DisableSelectedColumns= +MI_DockingCheck= +MI_DrawingSubBackward=Q +MI_DrawingSubForward=W +MI_DrawingSubGroupBackward=Alt+Q +MI_DrawingSubGroupForward=Alt+W +MI_Dup= +MI_Duplicate=D +MI_DuplicateFile= +MI_Each2= +MI_Each3= +MI_Each4= +MI_EditLevel= +MI_EditShift= +MI_EnableAllColumns= +MI_EnableSelectedColumns= +MI_EnableThisColumnOnly= +MI_EnterGroup= +MI_EraseUnusedStyles= +MI_ExitGroup= +MI_ExplodeChild= +MI_ExportLevel= +MI_ExportScenes= +MI_ExposeResource= +MI_FieldGuide=Shift+G +MI_FileInfo= +MI_FillAreas= +MI_FillLines= +MI_FirstFrame="Alt+," +MI_FoldColumns= +MI_FrezzePreview= +MI_FullScreenWindow=Ctrl+` +MI_FxParamEditor=Ctrl+K +MI_GCheck= +MI_GetColorFromStudioPalette= +MI_GreenChannel= +MI_GreenChannelGreyscale= +MI_Group=Ctrl+G +MI_Histogram= +MI_ICheck= +MI_IOnly= +MI_ImportMagpieFile= +MI_ImportScenes= +MI_IncreaseStep="'" +MI_Increment= +MI_Ink1Check= +MI_Insert=Ins +MI_InsertFx=Ctrl+F +MI_InsertGlobalKeyframe= +MI_InsertSceneFrame= +MI_InvertKeyframeSelection= +MI_InvertSelection= +MI_LastFrame=Alt+. +MI_LevelSettings= +MI_LinesFade= +MI_Link= +MI_LoadColorModel= +MI_LoadFolder= +MI_LoadLevel= +MI_LoadScene=Ctrl+L +MI_LoadSubSceneFile= +MI_LockAllColumns=Ctrl+Alt+Shift+L +MI_LockSelectedColumns=Ctrl+Shift+L +MI_LockThisColumnOnly=Shift+L +MI_Loop=L +MI_MatteChannel= +MI_MaximizePanel=` +MI_MergeCmapped= +MI_MergeColumns= +MI_MergeFrames= +MI_NewLevel=Alt+N +MI_NewOutputFx= +MI_NewProject= +MI_NewScene=Ctrl+N +MI_NextDrawing=. +MI_NextFrame=Shift+. +MI_NextStep= +MI_NoShift= +MI_OpacityCheck=1 +MI_OpenBatchServers= +MI_OpenChild= +MI_OpenCleanupSettings= +MI_OpenColorModel= +MI_OpenComboViewer= +MI_OpenFileBrowser= +MI_OpenFileBrowser2= +MI_OpenFileViewer= +MI_OpenFilmStrip= +MI_OpenFunctionEditor= +MI_OpenHistoryPanel=Ctrl+H +MI_OpenLevelView= +MI_OpenPalette= +MI_OpenPltGizmo= +MI_OpenRecentLevel= +MI_OpenRecentScene= +MI_OpenSchematic= +MI_OpenScriptConsole= +MI_OpenStudioPalette= +MI_OpenStyleControl= +MI_OpenTMessage= +MI_OpenTasks= +MI_OpenToolOptionBar= +MI_OpenToolbar= +MI_OpenXshView= +MI_OutputSettings=Ctrl+O +MI_OverwritePalette= +MI_PCheck= +MI_Paste=Ctrl+V +MI_PasteColors= +MI_PasteInto= +MI_PasteNames= +MI_PasteValues= +MI_Pause= +MI_PencilTest= +MI_PickStyleAreas= +MI_PickStyleLines= +MI_Play=P +MI_Preferences=Ctrl+U +MI_PrevDrawing="," +MI_PrevFrame="Shift+," +MI_PrevStep= +MI_Preview=Ctrl+R +MI_PreviewFx= +MI_PreviewSettings= +MI_Print=Ctrl+P +MI_PrintXsheet= +MI_ProjectSettings= +MI_Quit=Ctrl+Q +MI_Random= +MI_RasterizePli= +MI_RedChannel= +MI_RedChannelGreyscale= +MI_Redo=Ctrl+Y +MI_Reframe1= +MI_Reframe2= +MI_Reframe3= +MI_Reframe4= +MI_RefreshTree= +MI_RegenerateFramePr= +MI_RegeneratePreview= +MI_ReloadStyle= +MI_RemoveEndpoints= +MI_RemoveGlobalKeyframe= +MI_RemoveLevel= +MI_RemoveSceneFrame= +MI_RemoveUnused= +MI_Render=Ctrl+Shift+R +MI_Renumber= +MI_ReplaceLevel= +MI_ReplaceParentDirectory= +MI_Resequence= +MI_ResetInterpolation= +MI_ResetRoomLayout= +MI_ResetScanCropbox= +MI_ResetShift= +MI_ResetStep= +MI_Reverse= +MI_RevertScene= +MI_RevertToCleanedUp= +MI_RevertToLastSaved= +MI_Rolldown= +MI_Rollup= +MI_RunScript= +MI_SafeArea= +MI_SaveAll=Ctrl+S +MI_SaveDefaultSettings= +MI_SaveLevel= +MI_SaveLevelAs= +MI_SavePaletteAs= +MI_SavePreset= +MI_SavePreviewedFrames= +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs= +MI_SaveSubxsheetAs= +MI_Scan= +MI_ScanSettings= +MI_SceneSettings= +MI_SelectAll=Ctrl+A +MI_SelectAllKeyframes= +MI_SelectAllKeyframesNotAfter= +MI_SelectAllKeyframesNotBefore= +MI_SelectColumnKeyframes= +MI_SelectFollowingKeysInColumn= +MI_SelectFollowingKeysInRow= +MI_SelectPreviousKeysInColumn= +MI_SelectPreviousKeysInRow= +MI_SelectRowKeyframes= +MI_SendBack=Ctrl+[ +MI_SendBackward=[ +MI_SetAcceleration= +MI_SetConstantSpeed= +MI_SetDeceleration= +MI_SetKeyframes=Z +MI_SetScanCropbox= +MI_ShiftTrace= +MI_ShortcutPopup= +MI_ShowFolderContents= +MI_Step2= +MI_Step3= +MI_Step4= +MI_SwapEnabledColumns= +MI_Swing= +MI_TCheck= +MI_TimeStretch= +MI_ToggleColumnLocks= +MI_ToggleColumnsActivation= +MI_ToggleEditInPlace= +MI_Tracking= +MI_Undo=Ctrl+Z +MI_Ungroup=Ctrl+Shift+G +MI_UnlockAllColumns=Ctrl+Alt+Shift+U +MI_UnlockSelectedColumns=Ctrl+Shift+U +MI_ViewBBox= +MI_ViewCamera= +MI_ViewColorcard= +MI_ViewFile= +MI_ViewGuide= +MI_ViewRuler= +MI_ViewTable= +MI_ZeroThick=Shift+/ +T_ActualPixelSize=N +T_Bender= +T_Brush=B +T_ControlPointEditor=C +T_Cutter= +T_Edit=E +T_Eraser=A +T_Fill=F +T_Finger= +T_Geometric=G +T_Hand=Space +T_Hook=O +T_Iron= +T_Magnet= +T_PaintBrush= +T_Pinch=M +T_Plastic=X +T_Pump= +T_RGBPicker=R +T_Rotate=Ctrl+Space +T_Ruler= +T_Selection=S +T_ShowHideFullScreen=Alt+F +T_Skeleton=V +T_StylePicker=K +T_Tape=T +T_Tracker= +T_Type=Y +T_Zoom=Shift+Space +T_ZoomFit=9 +T_ZoomReset=0 +T_Zoomin=+ +T_Zoomout=- +MI_LoadRecentImage= diff --git a/stuff/profiles/layouts/shortcuts/otadobe.ini b/stuff/profiles/layouts/shortcuts/otadobe.ini new file mode 100644 index 0000000..7a1b172 --- /dev/null +++ b/stuff/profiles/layouts/shortcuts/otadobe.ini @@ -0,0 +1,366 @@ +[shortcuts] +MI_LoadRecentImage= +A_ToolOption_FrameRange= +A_ToolOption_SegmentInk= +A_ToolOption_Selective= +A_ToolOption_Type%3ARectangular= +MI_BringForward=Ctrl+Up +MI_BringToFront=Ctrl+Shift+Up +MI_Clear=Delete +MI_Copy=Ctrl+C +MI_Cut=Ctrl+X +MI_DrawingSubBackward=[ +MI_DrawingSubForward=] +MI_DrawingSubGroupBackward=Ctrl+[ +MI_DrawingSubGroupForward=Ctrl+] +MI_Duplicate= +MI_FullScreenWindow=Ctrl+F +MI_FxParamEditor= +MI_Group=Ctrl+G +MI_Insert=Ins +MI_InsertFx= +MI_LoadScene=Ctrl+O +MI_MaximizePanel= +MI_NewScene=Ctrl+N +MI_NextDrawing=G +MI_NextFrame=. +MI_OpacityCheck= +MI_Paste=Ctrl+V +MI_PrevDrawing=F +MI_PrevFrame="," +MI_Preview=Alt+P +MI_Quit=Ctrl+Q +MI_Redo=Ctrl+Y +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs=Ctrl+Alt+Shift+S +MI_SelectAll=Shift+A +MI_SendBack=Ctrl+Shift+Down +MI_SendBackward=Ctrl+Down +MI_Undo=Ctrl+Z +MI_ZeroThick=D +T_ActualPixelSize= +T_Brush=Alt+B +T_ControlPointEditor=Alt+A +T_Edit=Alt+Q +T_Eraser=Alt+E +T_Fill=Alt+K +T_Geometric=Atl+R +T_Hand= +T_Pinch= +T_Rotate= +T_Selection=Alt+V +T_StylePicker=Alt+I +T_Tape=Alt+C +T_Type= +T_Zoom=Alt+Z +T_ZoomReset=Shift+Z +T_Zoomin=Ctrl+= +T_Zoomout=Ctrl+- +A_DecreaseBrushHardness= +A_DecreaseMaxBrushThickness= +A_DecreaseMinBrushThickness= +A_FxSchematicToggle= +A_IncreaseBrushHardness= +A_IncreaseMaxBrushThickness= +A_IncreaseMinBrushThickness= +A_ToolOption_AutoGroup= +A_ToolOption_AutoSelect%3AColumn= +A_ToolOption_AutoSelect%3ANone= +A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutoSelectDrawing= +A_ToolOption_Autofill= +A_ToolOption_BreakSharpAngles= +A_ToolOption_BrushPreset= +A_ToolOption_EditToolActiveAxis= +A_ToolOption_EditToolActiveAxis%3ACenter= +A_ToolOption_EditToolActiveAxis%3APosition= +A_ToolOption_EditToolActiveAxis%3ARotation= +A_ToolOption_EditToolActiveAxis%3AScale= +A_ToolOption_EditToolActiveAxis%3AShear= +A_ToolOption_GeometricEdge= +A_ToolOption_GeometricShape= +A_ToolOption_GlobalKey= +A_ToolOption_IK=Alt+8 +A_ToolOption_Invert= +A_ToolOption_JoinVectors= +A_ToolOption_Manual= +A_ToolOption_Meshify= +A_ToolOption_Mode= +A_ToolOption_Mode%3AAreas= +A_ToolOption_Mode%3ALines= +A_ToolOption_Mode%3ALines%20%26%20Areas= +A_ToolOption_OnionSkin= +A_ToolOption_Orientation= +A_ToolOption_PencilMode= +A_ToolOption_PickScreen= +A_ToolOption_PreserveThickness= +A_ToolOption_PressureSensitivity= +A_ToolOption_ShowOnlyActiveSkeleton= +A_ToolOption_SkeletonMode%3AAnimate= +A_ToolOption_SkeletonMode%3ABuild%20Skeleton= +A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_Smooth= +A_ToolOption_Snap= +A_ToolOption_Type= +A_ToolOption_Type%3AFreehand= +A_ToolOption_Type%3ANormal= +A_ToolOption_Type%3APolyline= +A_ToolOption_TypeFont= +A_ToolOption_TypeSize= +A_ToolOption_TypeStyle= +MI_ACheck= +MI_About= +MI_ActivateAllColumns= +MI_ActivateSelectedColumns= +MI_ActivateThisColumnOnly= +MI_AddFrames=Ctrl+H +MI_AddToBatchCleanupList= +MI_AddToBatchRenderList= +MI_AdjustLevels= +MI_AdjustThickness= +MI_Antialias= +MI_ApplyMatchLines= +MI_AutoFillToggle= +MI_Autocenter= +MI_Autorenumber= +MI_BCheck= +MI_Binarize= +MI_BlendColors= +MI_BlueChannel= +MI_BlueChannelGreyscale= +MI_BrightnessAndContrast= +MI_CameraSettings= +MI_CameraStage= +MI_CameraTest= +MI_CanvasSize= +MI_Cleanup= +MI_CleanupPreview= +MI_CleanupSettings= +MI_ClearRecentImage= +MI_ClearRecentLevel= +MI_ClearRecentScene= +MI_CloneChild= +MI_CloneLevel= +MI_ClonePreview= +MI_CloseChild= +MI_Collapse= +MI_CollectAssets= +MI_CompareToSnapshot= +MI_ConvertFileWithInput= +MI_ConvertFiles= +MI_ConvertToVectors= +MI_DeactivateAllColumns= +MI_DeactivateSelectedColumns=Alt+H +MI_DeactivateUpperColumns= +MI_DecreaseStep= +MI_DefineScanner= +MI_DeleteInk= +MI_DeleteMatchLines= +MI_DisableAllColumns= +MI_DisableSelectedColumns= +MI_DockingCheck= +MI_Dup= +MI_DuplicateFile= +MI_Each2= +MI_Each3= +MI_Each4= +MI_EditLevel= +MI_EditShift= +MI_EnableAllColumns=Alt+Shift+H +MI_EnableSelectedColumns= +MI_EnableThisColumnOnly= +MI_EnterGroup=Ctrl+Return +MI_EraseUnusedStyles= +MI_ExitGroup=Backspace +MI_ExplodeChild=Ctrl+B +MI_ExportLevel= +MI_ExportScenes= +MI_ExposeResource= +MI_FieldGuide="Ctrl+'" +MI_FileInfo= +MI_FillAreas= +MI_FillLines= +MI_FirstFrame=Home +MI_FoldColumns= +MI_FrezzePreview= +MI_GCheck= +MI_GetColorFromStudioPalette= +MI_GreenChannel= +MI_GreenChannelGreyscale= +MI_Histogram= +MI_ICheck= +MI_IOnly= +MI_ImportMagpieFile= +MI_ImportScenes= +MI_IncreaseStep="+" +MI_Increment= +MI_Ink1Check= +MI_InsertGlobalKeyframe= +MI_InsertSceneFrame= +MI_InvertKeyframeSelection= +MI_InvertSelection= +MI_LastFrame=End +MI_LevelSettings= +MI_LinesFade= +MI_Link= +MI_LoadColorModel= +MI_LoadFolder= +MI_LoadLevel= +MI_LoadSubSceneFile= +MI_LockAllColumns= +MI_LockSelectedColumns= +MI_LockThisColumnOnly= +MI_Loop= +MI_MatteChannel= +MI_MergeCmapped= +MI_MergeColumns= +MI_MergeFrames= +MI_NewLevel= +MI_NewOutputFx= +MI_NewProject= +MI_NextStep= +MI_NoShift= +MI_OnionSkin=Ctrl+Alt+O +MI_OpenBatchServers= +MI_OpenChild= +MI_OpenCleanupSettings= +MI_OpenColorModel= +MI_OpenComboViewer= +MI_OpenFileBrowser= +MI_OpenFileBrowser2= +MI_OpenFileViewer= +MI_OpenFilmStrip= +MI_OpenFunctionEditor=Alt+F +MI_OpenHistoryPanel= +MI_OpenLevelView= +MI_OpenPalette= +MI_OpenPltGizmo= +MI_OpenRecentScene= +MI_OpenSchematic= +MI_OpenScriptConsole= +MI_OpenStudioPalette= +MI_OpenStyleControl= +MI_OpenTMessage= +MI_OpenTasks= +MI_OpenToolOptionBar= +MI_OpenToolbar= +MI_OpenXshView= +MI_OutputSettings= +MI_OverwritePalette= +MI_PCheck= +MI_PasteColors= +MI_PasteInto= +MI_PasteNames= +MI_PasteValues= +MI_Pause= +MI_PencilTest= +MI_PickStyleAreas= +MI_PickStyleLines= +MI_Play=Return +MI_Preferences=Ctrl+U +MI_PrevStep= +MI_PreviewFx= +MI_PreviewSettings= +MI_Print= +MI_PrintXsheet= +MI_ProjectSettings= +MI_Random= +MI_RasterizePli= +MI_RedChannel= +MI_RedChannelGreyscale= +MI_Reframe1= +MI_Reframe2= +MI_Reframe3= +MI_Reframe4= +MI_RefreshTree= +MI_RegenerateFramePr= +MI_RegeneratePreview= +MI_ReloadStyle= +MI_RemoveEndpoints= +MI_RemoveGlobalKeyframe= +MI_RemoveLevel= +MI_RemoveSceneFrame= +MI_RemoveUnused= +MI_Render=Ctrl+Alt+Shift+S +MI_Renumber= +MI_ReplaceLevel= +MI_ReplaceParentDirectory= +MI_Resequence= +MI_ResetInterpolation= +MI_ResetRoomLayout= +MI_ResetScanCropbox= +MI_ResetShift= +MI_ResetStep= +MI_Reverse= +MI_RevertScene= +MI_RevertToCleanedUp= +MI_RevertToLastSaved= +MI_Rolldown= +MI_Rollup= +MI_RunScript= +MI_SafeArea= +MI_SaveAll=Ctrl+S +MI_SaveDefaultSettings= +MI_SaveLevel= +MI_SaveLevelAs= +MI_SavePaletteAs= +MI_SavePreset= +MI_SavePreviewedFrames= +MI_SaveSubxsheetAs= +MI_Scan= +MI_ScanSettings= +MI_SceneSettings=Ctrl+F3 +MI_SelectAllKeyframes= +MI_SelectAllKeyframesNotAfter= +MI_SelectAllKeyframesNotBefore= +MI_SelectColumnKeyframes= +MI_SelectFollowingKeysInColumn= +MI_SelectFollowingKeysInRow= +MI_SelectPreviousKeysInColumn= +MI_SelectPreviousKeysInRow= +MI_SelectRowKeyframes= +MI_SetAcceleration= +MI_SetConstantSpeed= +MI_SetDeceleration= +MI_SetKeyframes=Ctrl+F6 +MI_SetScanCropbox= +MI_ShiftTrace= +MI_ShortcutPopup= +MI_ShowFolderContents= +MI_Step2= +MI_Step3= +MI_Step4= +MI_SwapEnabledColumns= +MI_Swing= +MI_TCheck= +MI_TimeStretch= +MI_ToggleColumnLocks= +MI_ToggleColumnsActivation= +MI_ToggleEditInPlace= +MI_Tracking= +MI_Ungroup=Ctrl+Shift+G +MI_UnlockAllColumns=Ctrl+Alt+Shift+L +MI_UnlockSelectedColumns=Ctrl+Shift+K +MI_ViewBBox= +MI_ViewCamera= +MI_ViewColorcard= +MI_ViewFile= +MI_ViewGuide= +MI_ViewRuler=Ctrl+Alt+Shift+R +MI_ViewTable= +T_Bender= +T_Cutter=Alt+T +T_Finger= +T_Hook= +T_Iron= +T_Magnet= +T_PaintBrush= +T_Plastic= +T_Pump= +T_RGBPicker= +T_Ruler= +T_ShowHideFullScreen=F4 +T_Skeleton= +T_Tracker= +T_ZoomFit= +MI_OpenRecentLevel= diff --git a/stuff/profiles/layouts/shortcuts/otharmony.ini b/stuff/profiles/layouts/shortcuts/otharmony.ini new file mode 100644 index 0000000..8464172 --- /dev/null +++ b/stuff/profiles/layouts/shortcuts/otharmony.ini @@ -0,0 +1,366 @@ +[shortcuts] +MI_LoadRecentImage= +A_ToolOption_FrameRange= +A_ToolOption_SegmentInk= +A_ToolOption_Selective= +A_ToolOption_Type%3ARectangular= +MI_BringForward=Ctrl+PgUp +MI_BringToFront=Ctrl+Shift+PgUp +MI_Clear=Delete +MI_Copy=Ctrl+C +MI_Cut=Ctrl+X +MI_DrawingSubBackward=[ +MI_DrawingSubForward=] +MI_DrawingSubGroupBackward=Ctrl+[ +MI_DrawingSubGroupForward=Ctrl+] +MI_Duplicate= +MI_FullScreenWindow=Ctrl+F +MI_FxParamEditor= +MI_Group=Ctrl+G +MI_Insert=Ins +MI_InsertFx= +MI_LoadScene=Ctrl+O +MI_MaximizePanel=` +MI_NewScene=Ctrl+N +MI_NextDrawing=G +MI_NextFrame=. +MI_OpacityCheck= +MI_Paste=Ctrl+V +MI_PrevDrawing=F +MI_PrevFrame="," +MI_Preview= +MI_Quit=Ctrl+Q +MI_Redo=Ctrl+Shift+Z +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs=Ctrl+Shift+Alt+S +MI_SelectAll=Ctrl+A +MI_SendBack=Ctrl+PgDown +MI_SendBackward=Ctrl+Shift+PgDown +MI_Undo=Ctrl+Z +MI_ZeroThick= +T_ActualPixelSize= +T_Brush=Alt+B +T_ControlPointEditor=Alt+Q +T_Edit=Shift+T +T_Eraser=Alt+E +T_Fill=Alt+I +T_Geometric=Alt+7 +T_Hand= +T_Pinch= +T_Rotate= +T_Selection=Alt+S +T_StylePicker=Alt+D +T_Tape=Alt+C +T_Type=Alt+9 +T_Zoom=Alt+Z +T_ZoomReset= +T_Zoomin=2 +T_Zoomout=1 +A_DecreaseBrushHardness= +A_DecreaseMaxBrushThickness= +A_DecreaseMinBrushThickness= +A_FxSchematicToggle= +A_IncreaseBrushHardness= +A_IncreaseMaxBrushThickness= +A_IncreaseMinBrushThickness= +A_ToolOption_AutoGroup= +A_ToolOption_AutoSelect%3AColumn= +A_ToolOption_AutoSelect%3ANone= +A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutoSelectDrawing= +A_ToolOption_Autofill= +A_ToolOption_BreakSharpAngles= +A_ToolOption_BrushPreset= +A_ToolOption_EditToolActiveAxis= +A_ToolOption_EditToolActiveAxis%3ACenter= +A_ToolOption_EditToolActiveAxis%3APosition=Alt+2 +A_ToolOption_EditToolActiveAxis%3ARotation=Alt+3 +A_ToolOption_EditToolActiveAxis%3AScale=Alt+4 +A_ToolOption_EditToolActiveAxis%3AShear=Alt+5 +A_ToolOption_GeometricEdge= +A_ToolOption_GeometricShape= +A_ToolOption_GlobalKey= +A_ToolOption_IK= +A_ToolOption_Invert= +A_ToolOption_JoinVectors= +A_ToolOption_Manual= +A_ToolOption_Meshify= +A_ToolOption_Mode= +A_ToolOption_Mode%3AAreas= +A_ToolOption_Mode%3ALines= +A_ToolOption_Mode%3ALines%20%26%20Areas= +A_ToolOption_OnionSkin= +A_ToolOption_Orientation= +A_ToolOption_PencilMode= +A_ToolOption_PickScreen= +A_ToolOption_PreserveThickness= +A_ToolOption_PressureSensitivity= +A_ToolOption_ShowOnlyActiveSkeleton= +A_ToolOption_SkeletonMode%3AAnimate= +A_ToolOption_SkeletonMode%3ABuild%20Skeleton= +A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_Smooth= +A_ToolOption_Snap= +A_ToolOption_Type= +A_ToolOption_Type%3AFreehand= +A_ToolOption_Type%3ANormal= +A_ToolOption_Type%3APolyline= +A_ToolOption_TypeFont= +A_ToolOption_TypeSize= +A_ToolOption_TypeStyle= +MI_ACheck= +MI_About= +MI_ActivateAllColumns= +MI_ActivateSelectedColumns= +MI_ActivateThisColumnOnly= +MI_AddFrames= +MI_AddToBatchCleanupList= +MI_AddToBatchRenderList= +MI_AdjustLevels= +MI_AdjustThickness= +MI_Antialias= +MI_ApplyMatchLines= +MI_AutoFillToggle= +MI_Autocenter= +MI_Autorenumber= +MI_BCheck= +MI_Binarize= +MI_BlendColors= +MI_BlueChannel= +MI_BlueChannelGreyscale= +MI_BrightnessAndContrast= +MI_CameraSettings= +MI_CameraStage= +MI_CameraTest= +MI_CanvasSize= +MI_Cleanup= +MI_CleanupPreview= +MI_CleanupSettings= +MI_ClearRecentImage= +MI_ClearRecentLevel= +MI_ClearRecentScene= +MI_CloneChild= +MI_CloneLevel= +MI_ClonePreview= +MI_CloseChild= +MI_Collapse=0 +MI_CollectAssets= +MI_CompareToSnapshot= +MI_ConvertFileWithInput= +MI_ConvertFiles= +MI_ConvertToVectors= +MI_DeactivateAllColumns= +MI_DeactivateSelectedColumns= +MI_DeactivateUpperColumns= +MI_DecreaseStep=- +MI_DefineScanner= +MI_DeleteInk= +MI_DeleteMatchLines= +MI_DisableAllColumns= +MI_DisableSelectedColumns=Alt+H +MI_DockingCheck= +MI_Dup= +MI_DuplicateFile= +MI_Each2= +MI_Each3= +MI_Each4= +MI_EditLevel= +MI_EditShift= +MI_EnableAllColumns=Alt+Shift+H +MI_EnableSelectedColumns= +MI_EnableThisColumnOnly= +MI_EnterGroup=Ctrl+Return +MI_EraseUnusedStyles= +MI_ExitGroup=Backspace +MI_ExplodeChild=Ctrl+B +MI_ExportLevel= +MI_ExportScenes= +MI_ExposeResource= +MI_FieldGuide="Ctrl+'" +MI_FileInfo= +MI_FillAreas= +MI_FillLines= +MI_FirstFrame="Shift+<" +MI_FoldColumns= +MI_FrezzePreview= +MI_GCheck= +MI_GetColorFromStudioPalette= +MI_GreenChannel= +MI_GreenChannelGreyscale= +MI_Histogram= +MI_ICheck= +MI_IOnly= +MI_ImportMagpieFile= +MI_ImportScenes= +MI_IncreaseStep="+" +MI_Increment= +MI_Ink1Check= +MI_InsertGlobalKeyframe= +MI_InsertSceneFrame= +MI_InvertKeyframeSelection= +MI_InvertSelection= +MI_LastFrame="Shift+>" +MI_LevelSettings= +MI_LinesFade= +MI_Link= +MI_LoadColorModel= +MI_LoadFolder= +MI_LoadLevel= +MI_LoadSubSceneFile= +MI_LockAllColumns=Ctrl+Shift+L +MI_LockSelectedColumns=Ctrl+Alt+L +MI_LockThisColumnOnly= +MI_Loop= +MI_MatteChannel= +MI_MergeCmapped= +MI_MergeColumns= +MI_MergeFrames= +MI_NewLevel= +MI_NewOutputFx= +MI_NewProject= +MI_NextStep= +MI_NoShift= +MI_OnionSkin=Alt+O +MI_OpenBatchServers= +MI_OpenChild= +MI_OpenCleanupSettings= +MI_OpenColorModel= +MI_OpenComboViewer= +MI_OpenFileBrowser= +MI_OpenFileBrowser2= +MI_OpenFileViewer= +MI_OpenFilmStrip= +MI_OpenFunctionEditor=Alt+F +MI_OpenHistoryPanel= +MI_OpenLevelView= +MI_OpenPalette= +MI_OpenPltGizmo= +MI_OpenRecentScene= +MI_OpenSchematic= +MI_OpenScriptConsole= +MI_OpenStudioPalette= +MI_OpenStyleControl= +MI_OpenTMessage= +MI_OpenTasks= +MI_OpenToolOptionBar= +MI_OpenToolbar= +MI_OpenXshView= +MI_OutputSettings= +MI_OverwritePalette= +MI_PCheck= +MI_PasteColors= +MI_PasteInto= +MI_PasteNames= +MI_PasteValues= +MI_Pause= +MI_PencilTest= +MI_PickStyleAreas= +MI_PickStyleLines= +MI_Play=Ctrl+Return +MI_Preferences=Ctrl+U +MI_PrevStep= +MI_PreviewFx= +MI_PreviewSettings= +MI_Print= +MI_PrintXsheet= +MI_ProjectSettings= +MI_Random= +MI_RasterizePli= +MI_RedChannel= +MI_RedChannelGreyscale= +MI_Reframe1= +MI_Reframe2= +MI_Reframe3= +MI_Reframe4= +MI_RefreshTree= +MI_RegenerateFramePr= +MI_RegeneratePreview= +MI_ReloadStyle= +MI_RemoveEndpoints= +MI_RemoveGlobalKeyframe= +MI_RemoveLevel= +MI_RemoveSceneFrame= +MI_RemoveUnused= +MI_Render= +MI_Renumber= +MI_ReplaceLevel= +MI_ReplaceParentDirectory= +MI_Resequence= +MI_ResetInterpolation= +MI_ResetRoomLayout= +MI_ResetScanCropbox= +MI_ResetShift= +MI_ResetStep= +MI_Reverse= +MI_RevertScene= +MI_RevertToCleanedUp= +MI_RevertToLastSaved= +MI_Rolldown= +MI_Rollup= +MI_RunScript= +MI_SafeArea= +MI_SaveAll=Ctrl+S +MI_SaveDefaultSettings= +MI_SaveLevel= +MI_SaveLevelAs= +MI_SavePaletteAs= +MI_SavePreset= +MI_SavePreviewedFrames= +MI_SaveSubxsheetAs= +MI_Scan=Ctrl+Shift+S +MI_ScanSettings= +MI_SceneSettings= +MI_SelectAllKeyframes= +MI_SelectAllKeyframesNotAfter= +MI_SelectAllKeyframesNotBefore= +MI_SelectColumnKeyframes= +MI_SelectFollowingKeysInColumn= +MI_SelectFollowingKeysInRow= +MI_SelectPreviousKeysInColumn= +MI_SelectPreviousKeysInRow= +MI_SelectRowKeyframes= +MI_SetAcceleration= +MI_SetConstantSpeed= +MI_SetDeceleration= +MI_SetKeyframes=F6 +MI_SetScanCropbox= +MI_ShiftTrace= +MI_ShortcutPopup= +MI_ShowFolderContents= +MI_Step2= +MI_Step3= +MI_Step4= +MI_SwapEnabledColumns= +MI_Swing= +MI_TCheck= +MI_TimeStretch= +MI_ToggleColumnLocks= +MI_ToggleColumnsActivation= +MI_ToggleEditInPlace= +MI_Tracking= +MI_Ungroup=Ctrl+Shift+G +MI_UnlockAllColumns=Ctrl+Alt+Shift+K +MI_UnlockSelectedColumns=Ctrl+Shift+K +MI_ViewBBox= +MI_ViewCamera= +MI_ViewColorcard= +MI_ViewFile= +MI_ViewGuide="Ctrl+'" +MI_ViewRuler= +MI_ViewTable= +T_Bender= +T_Cutter=Alt+T +T_Finger= +T_Hook= +T_Iron= +T_Magnet= +T_PaintBrush= +T_Plastic= +T_Pump= +T_RGBPicker= +T_Ruler= +T_ShowHideFullScreen= +T_Skeleton= +T_Tracker= +T_ZoomFit= +MI_OpenRecentLevel= diff --git a/stuff/profiles/layouts/shortcuts/otretas.ini b/stuff/profiles/layouts/shortcuts/otretas.ini new file mode 100644 index 0000000..7a1b172 --- /dev/null +++ b/stuff/profiles/layouts/shortcuts/otretas.ini @@ -0,0 +1,366 @@ +[shortcuts] +MI_LoadRecentImage= +A_ToolOption_FrameRange= +A_ToolOption_SegmentInk= +A_ToolOption_Selective= +A_ToolOption_Type%3ARectangular= +MI_BringForward=Ctrl+Up +MI_BringToFront=Ctrl+Shift+Up +MI_Clear=Delete +MI_Copy=Ctrl+C +MI_Cut=Ctrl+X +MI_DrawingSubBackward=[ +MI_DrawingSubForward=] +MI_DrawingSubGroupBackward=Ctrl+[ +MI_DrawingSubGroupForward=Ctrl+] +MI_Duplicate= +MI_FullScreenWindow=Ctrl+F +MI_FxParamEditor= +MI_Group=Ctrl+G +MI_Insert=Ins +MI_InsertFx= +MI_LoadScene=Ctrl+O +MI_MaximizePanel= +MI_NewScene=Ctrl+N +MI_NextDrawing=G +MI_NextFrame=. +MI_OpacityCheck= +MI_Paste=Ctrl+V +MI_PrevDrawing=F +MI_PrevFrame="," +MI_Preview=Alt+P +MI_Quit=Ctrl+Q +MI_Redo=Ctrl+Y +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs=Ctrl+Alt+Shift+S +MI_SelectAll=Shift+A +MI_SendBack=Ctrl+Shift+Down +MI_SendBackward=Ctrl+Down +MI_Undo=Ctrl+Z +MI_ZeroThick=D +T_ActualPixelSize= +T_Brush=Alt+B +T_ControlPointEditor=Alt+A +T_Edit=Alt+Q +T_Eraser=Alt+E +T_Fill=Alt+K +T_Geometric=Atl+R +T_Hand= +T_Pinch= +T_Rotate= +T_Selection=Alt+V +T_StylePicker=Alt+I +T_Tape=Alt+C +T_Type= +T_Zoom=Alt+Z +T_ZoomReset=Shift+Z +T_Zoomin=Ctrl+= +T_Zoomout=Ctrl+- +A_DecreaseBrushHardness= +A_DecreaseMaxBrushThickness= +A_DecreaseMinBrushThickness= +A_FxSchematicToggle= +A_IncreaseBrushHardness= +A_IncreaseMaxBrushThickness= +A_IncreaseMinBrushThickness= +A_ToolOption_AutoGroup= +A_ToolOption_AutoSelect%3AColumn= +A_ToolOption_AutoSelect%3ANone= +A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutoSelectDrawing= +A_ToolOption_Autofill= +A_ToolOption_BreakSharpAngles= +A_ToolOption_BrushPreset= +A_ToolOption_EditToolActiveAxis= +A_ToolOption_EditToolActiveAxis%3ACenter= +A_ToolOption_EditToolActiveAxis%3APosition= +A_ToolOption_EditToolActiveAxis%3ARotation= +A_ToolOption_EditToolActiveAxis%3AScale= +A_ToolOption_EditToolActiveAxis%3AShear= +A_ToolOption_GeometricEdge= +A_ToolOption_GeometricShape= +A_ToolOption_GlobalKey= +A_ToolOption_IK=Alt+8 +A_ToolOption_Invert= +A_ToolOption_JoinVectors= +A_ToolOption_Manual= +A_ToolOption_Meshify= +A_ToolOption_Mode= +A_ToolOption_Mode%3AAreas= +A_ToolOption_Mode%3ALines= +A_ToolOption_Mode%3ALines%20%26%20Areas= +A_ToolOption_OnionSkin= +A_ToolOption_Orientation= +A_ToolOption_PencilMode= +A_ToolOption_PickScreen= +A_ToolOption_PreserveThickness= +A_ToolOption_PressureSensitivity= +A_ToolOption_ShowOnlyActiveSkeleton= +A_ToolOption_SkeletonMode%3AAnimate= +A_ToolOption_SkeletonMode%3ABuild%20Skeleton= +A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_Smooth= +A_ToolOption_Snap= +A_ToolOption_Type= +A_ToolOption_Type%3AFreehand= +A_ToolOption_Type%3ANormal= +A_ToolOption_Type%3APolyline= +A_ToolOption_TypeFont= +A_ToolOption_TypeSize= +A_ToolOption_TypeStyle= +MI_ACheck= +MI_About= +MI_ActivateAllColumns= +MI_ActivateSelectedColumns= +MI_ActivateThisColumnOnly= +MI_AddFrames=Ctrl+H +MI_AddToBatchCleanupList= +MI_AddToBatchRenderList= +MI_AdjustLevels= +MI_AdjustThickness= +MI_Antialias= +MI_ApplyMatchLines= +MI_AutoFillToggle= +MI_Autocenter= +MI_Autorenumber= +MI_BCheck= +MI_Binarize= +MI_BlendColors= +MI_BlueChannel= +MI_BlueChannelGreyscale= +MI_BrightnessAndContrast= +MI_CameraSettings= +MI_CameraStage= +MI_CameraTest= +MI_CanvasSize= +MI_Cleanup= +MI_CleanupPreview= +MI_CleanupSettings= +MI_ClearRecentImage= +MI_ClearRecentLevel= +MI_ClearRecentScene= +MI_CloneChild= +MI_CloneLevel= +MI_ClonePreview= +MI_CloseChild= +MI_Collapse= +MI_CollectAssets= +MI_CompareToSnapshot= +MI_ConvertFileWithInput= +MI_ConvertFiles= +MI_ConvertToVectors= +MI_DeactivateAllColumns= +MI_DeactivateSelectedColumns=Alt+H +MI_DeactivateUpperColumns= +MI_DecreaseStep= +MI_DefineScanner= +MI_DeleteInk= +MI_DeleteMatchLines= +MI_DisableAllColumns= +MI_DisableSelectedColumns= +MI_DockingCheck= +MI_Dup= +MI_DuplicateFile= +MI_Each2= +MI_Each3= +MI_Each4= +MI_EditLevel= +MI_EditShift= +MI_EnableAllColumns=Alt+Shift+H +MI_EnableSelectedColumns= +MI_EnableThisColumnOnly= +MI_EnterGroup=Ctrl+Return +MI_EraseUnusedStyles= +MI_ExitGroup=Backspace +MI_ExplodeChild=Ctrl+B +MI_ExportLevel= +MI_ExportScenes= +MI_ExposeResource= +MI_FieldGuide="Ctrl+'" +MI_FileInfo= +MI_FillAreas= +MI_FillLines= +MI_FirstFrame=Home +MI_FoldColumns= +MI_FrezzePreview= +MI_GCheck= +MI_GetColorFromStudioPalette= +MI_GreenChannel= +MI_GreenChannelGreyscale= +MI_Histogram= +MI_ICheck= +MI_IOnly= +MI_ImportMagpieFile= +MI_ImportScenes= +MI_IncreaseStep="+" +MI_Increment= +MI_Ink1Check= +MI_InsertGlobalKeyframe= +MI_InsertSceneFrame= +MI_InvertKeyframeSelection= +MI_InvertSelection= +MI_LastFrame=End +MI_LevelSettings= +MI_LinesFade= +MI_Link= +MI_LoadColorModel= +MI_LoadFolder= +MI_LoadLevel= +MI_LoadSubSceneFile= +MI_LockAllColumns= +MI_LockSelectedColumns= +MI_LockThisColumnOnly= +MI_Loop= +MI_MatteChannel= +MI_MergeCmapped= +MI_MergeColumns= +MI_MergeFrames= +MI_NewLevel= +MI_NewOutputFx= +MI_NewProject= +MI_NextStep= +MI_NoShift= +MI_OnionSkin=Ctrl+Alt+O +MI_OpenBatchServers= +MI_OpenChild= +MI_OpenCleanupSettings= +MI_OpenColorModel= +MI_OpenComboViewer= +MI_OpenFileBrowser= +MI_OpenFileBrowser2= +MI_OpenFileViewer= +MI_OpenFilmStrip= +MI_OpenFunctionEditor=Alt+F +MI_OpenHistoryPanel= +MI_OpenLevelView= +MI_OpenPalette= +MI_OpenPltGizmo= +MI_OpenRecentScene= +MI_OpenSchematic= +MI_OpenScriptConsole= +MI_OpenStudioPalette= +MI_OpenStyleControl= +MI_OpenTMessage= +MI_OpenTasks= +MI_OpenToolOptionBar= +MI_OpenToolbar= +MI_OpenXshView= +MI_OutputSettings= +MI_OverwritePalette= +MI_PCheck= +MI_PasteColors= +MI_PasteInto= +MI_PasteNames= +MI_PasteValues= +MI_Pause= +MI_PencilTest= +MI_PickStyleAreas= +MI_PickStyleLines= +MI_Play=Return +MI_Preferences=Ctrl+U +MI_PrevStep= +MI_PreviewFx= +MI_PreviewSettings= +MI_Print= +MI_PrintXsheet= +MI_ProjectSettings= +MI_Random= +MI_RasterizePli= +MI_RedChannel= +MI_RedChannelGreyscale= +MI_Reframe1= +MI_Reframe2= +MI_Reframe3= +MI_Reframe4= +MI_RefreshTree= +MI_RegenerateFramePr= +MI_RegeneratePreview= +MI_ReloadStyle= +MI_RemoveEndpoints= +MI_RemoveGlobalKeyframe= +MI_RemoveLevel= +MI_RemoveSceneFrame= +MI_RemoveUnused= +MI_Render=Ctrl+Alt+Shift+S +MI_Renumber= +MI_ReplaceLevel= +MI_ReplaceParentDirectory= +MI_Resequence= +MI_ResetInterpolation= +MI_ResetRoomLayout= +MI_ResetScanCropbox= +MI_ResetShift= +MI_ResetStep= +MI_Reverse= +MI_RevertScene= +MI_RevertToCleanedUp= +MI_RevertToLastSaved= +MI_Rolldown= +MI_Rollup= +MI_RunScript= +MI_SafeArea= +MI_SaveAll=Ctrl+S +MI_SaveDefaultSettings= +MI_SaveLevel= +MI_SaveLevelAs= +MI_SavePaletteAs= +MI_SavePreset= +MI_SavePreviewedFrames= +MI_SaveSubxsheetAs= +MI_Scan= +MI_ScanSettings= +MI_SceneSettings=Ctrl+F3 +MI_SelectAllKeyframes= +MI_SelectAllKeyframesNotAfter= +MI_SelectAllKeyframesNotBefore= +MI_SelectColumnKeyframes= +MI_SelectFollowingKeysInColumn= +MI_SelectFollowingKeysInRow= +MI_SelectPreviousKeysInColumn= +MI_SelectPreviousKeysInRow= +MI_SelectRowKeyframes= +MI_SetAcceleration= +MI_SetConstantSpeed= +MI_SetDeceleration= +MI_SetKeyframes=Ctrl+F6 +MI_SetScanCropbox= +MI_ShiftTrace= +MI_ShortcutPopup= +MI_ShowFolderContents= +MI_Step2= +MI_Step3= +MI_Step4= +MI_SwapEnabledColumns= +MI_Swing= +MI_TCheck= +MI_TimeStretch= +MI_ToggleColumnLocks= +MI_ToggleColumnsActivation= +MI_ToggleEditInPlace= +MI_Tracking= +MI_Ungroup=Ctrl+Shift+G +MI_UnlockAllColumns=Ctrl+Alt+Shift+L +MI_UnlockSelectedColumns=Ctrl+Shift+K +MI_ViewBBox= +MI_ViewCamera= +MI_ViewColorcard= +MI_ViewFile= +MI_ViewGuide= +MI_ViewRuler=Ctrl+Alt+Shift+R +MI_ViewTable= +T_Bender= +T_Cutter=Alt+T +T_Finger= +T_Hook= +T_Iron= +T_Magnet= +T_PaintBrush= +T_Plastic= +T_Pump= +T_RGBPicker= +T_Ruler= +T_ShowHideFullScreen=F4 +T_Skeleton= +T_Tracker= +T_ZoomFit= +MI_OpenRecentLevel= diff --git a/toonz/sources/include/toonz/preferences.h b/toonz/sources/include/toonz/preferences.h index a3c5ca4..3b32f86 100644 --- a/toonz/sources/include/toonz/preferences.h +++ b/toonz/sources/include/toonz/preferences.h @@ -415,6 +415,9 @@ public: int getTextureSize() const { return m_textureSize; } bool useDrawPixel() { return m_textureSize == 0; } + void setShortcutPreset(std::string preset); + QString getShortcutPreset() { return m_shortcutPreset; } + int getShmMax() const { return m_shmmax; } //! \sa The \p sysctl unix command. @@ -442,7 +445,8 @@ private: std::vector m_levelFormats; QString m_units, m_cameraUnits, m_scanLevelType, m_currentRoomChoice, - m_oldUnits, m_oldCameraUnits, m_ffmpegPath, m_customProjectRoot; + m_oldUnits, m_oldCameraUnits, m_ffmpegPath, m_shortcutPreset, + m_customProjectRoot; double m_defLevelWidth, m_defLevelHeight, m_defLevelDpi; diff --git a/toonz/sources/include/toonzqt/menubarcommand.h b/toonz/sources/include/toonzqt/menubarcommand.h index 869b1be..b1b677b 100644 --- a/toonz/sources/include/toonzqt/menubarcommand.h +++ b/toonz/sources/include/toonzqt/menubarcommand.h @@ -145,7 +145,8 @@ public: std::string getShortcutFromId(CommandId id); int getKeyFromShortcut(const std::string &shortcut); int getKeyFromId(CommandId id); - void setShortcut(QAction *action, std::string shortcutString); + void setShortcut(QAction *action, std::string shortcutString, + bool keepDefault = true); QAction *getAction(CommandId id, bool createIfNeeded = false); diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp index f606135..8609f34 100644 --- a/toonz/sources/toonz/mainwindow.cpp +++ b/toonz/sources/toonz/mainwindow.cpp @@ -1558,8 +1558,8 @@ QAction *MainWindow::createToolAction(const char *id, const char *iconName, void MainWindow::defineActions() { createMenuFileAction(MI_NewScene, tr("&New Scene"), "Ctrl+N"); createMenuFileAction(MI_LoadScene, tr("&Load Scene..."), "Ctrl+L"); - createMenuFileAction(MI_SaveScene, tr("&Save Scene"), ""); - createMenuFileAction(MI_SaveSceneAs, tr("&Save Scene As..."), "Ctrl+Shift+S"); + createMenuFileAction(MI_SaveScene, tr("&Save Scene"), "Ctrl+Shift+S"); + createMenuFileAction(MI_SaveSceneAs, tr("&Save Scene As..."), ""); createMenuFileAction(MI_SaveAll, tr("&Save All"), "Ctrl+S"); createMenuFileAction(MI_RevertScene, tr("&Revert Scene"), ""); @@ -1576,7 +1576,7 @@ void MainWindow::defineActions() { ""); createMenuFileAction(MI_ClearRecentLevel, tr("&Clear Recent level File List"), ""); - createMenuFileAction(MI_NewLevel, tr("&New Level..."), ""); + createMenuFileAction(MI_NewLevel, tr("&New Level..."), "Alt+N"); createMenuFileAction(MI_LoadLevel, tr("&Load Level..."), ""); createMenuFileAction(MI_SaveLevel, tr("&Save Level"), ""); createMenuFileAction(MI_SaveAllLevels, tr("&Save All Levels"), ""); @@ -1591,9 +1591,9 @@ void MainWindow::defineActions() { createMenuFileAction(MI_ProjectSettings, tr("&Project Settings..."), ""); createMenuFileAction(MI_SaveDefaultSettings, tr("&Save Default Settings"), ""); - createMenuFileAction(MI_OutputSettings, tr("&Output Settings..."), ""); + createMenuFileAction(MI_OutputSettings, tr("&Output Settings..."), "Ctrl+O"); createMenuFileAction(MI_PreviewSettings, tr("&Preview Settings..."), ""); - createMenuFileAction(MI_Render, tr("&Render"), ""); + createMenuFileAction(MI_Render, tr("&Render"), "Ctrl+Shift+R"); createMenuFileAction(MI_Preview, tr("&Preview"), "Ctrl+R"); createRightClickMenuAction(MI_SavePreviewedFrames, tr("&Save Previewed Frames"), ""); @@ -1608,13 +1608,13 @@ void MainWindow::defineActions() { MI_FreezePreview, tr("Freeze Preview"), tr("Unfreeze Preview")); // createAction(MI_SavePreview, "&Save Preview", ""); createRightClickMenuAction(MI_SavePreset, tr("&Save As Preset"), ""); - createMenuFileAction(MI_Preferences, tr("&Preferences..."), ""); + createMenuFileAction(MI_Preferences, tr("&Preferences..."), "Ctrl+U"); createMenuFileAction(MI_ShortcutPopup, tr("&Configure Shortcuts..."), ""); createMenuFileAction(MI_PrintXsheet, tr("&Print Xsheet"), ""); createMenuFileAction("MI_RunScript", tr("Run Script..."), ""); createMenuFileAction("MI_OpenScriptConsole", tr("Open Script Console..."), ""); - createMenuFileAction(MI_Print, tr("&Print Current Frame..."), ""); + createMenuFileAction(MI_Print, tr("&Print Current Frame..."), "Ctrl+P"); createMenuFileAction(MI_Quit, tr("&Quit"), "Ctrl+Q"); #ifndef NDEBUG createMenuFileAction("MI_ReloadStyle", tr("Reload qss"), ""); @@ -1647,7 +1647,7 @@ void MainWindow::defineActions() { createMenuEditAction(MI_Clear, tr("&Delete"), "Delete"); createMenuEditAction(MI_Insert, tr("&Insert"), "Ins"); createMenuEditAction(MI_Group, tr("&Group"), "Ctrl+G"); - createMenuEditAction(MI_Ungroup, tr("&Ungroup"), ""); + createMenuEditAction(MI_Ungroup, tr("&Ungroup"), "Ctrl+Shift+G"); createMenuEditAction(MI_BringToFront, tr("&Bring to Front"), "Ctrl+]"); createMenuEditAction(MI_BringForward, tr("&Bring Forward"), "]"); createMenuEditAction(MI_SendBack, tr("&Send Back"), "Ctrl+["); @@ -1752,8 +1752,8 @@ void MainWindow::defineActions() { createMenuCellsAction(MI_Increment, tr("&Autoexpose"), ""); createMenuCellsAction(MI_Dup, tr("&Repeat..."), ""); createMenuCellsAction(MI_ResetStep, tr("&Reset Step"), ""); - createMenuCellsAction(MI_IncreaseStep, tr("&Increase Step"), ""); - createMenuCellsAction(MI_DecreaseStep, tr("&Decrease Step"), ""); + createMenuCellsAction(MI_IncreaseStep, tr("&Increase Step"), "'"); + createMenuCellsAction(MI_DecreaseStep, tr("&Decrease Step"), ";"); createMenuCellsAction(MI_Step2, tr("&Step 2"), ""); createMenuCellsAction(MI_Step3, tr("&Step 3"), ""); createMenuCellsAction(MI_Step4, tr("&Step 4"), ""); @@ -1767,26 +1767,26 @@ void MainWindow::defineActions() { createMenuCellsAction(MI_Autorenumber, tr("&Autorenumber"), ""); createMenuCellsAction(MI_CloneLevel, tr("&Clone"), ""); createMenuCellsAction(MI_DrawingSubForward, - tr("Drawing Substitution Forward"), "."); + tr("Drawing Substitution Forward"), "W"); createMenuCellsAction(MI_DrawingSubBackward, - tr("Drawing Substitution Backward"), ","); + tr("Drawing Substitution Backward"), "Q"); createMenuCellsAction(MI_DrawingSubGroupForward, - tr("Similar Drawing Substitution Forward"), "Ctrl+."); + tr("Similar Drawing Substitution Forward"), "Alt+W"); createMenuCellsAction(MI_DrawingSubGroupBackward, - tr("Similar Drawing Substitution Backward"), "Ctrl+,"); + tr("Similar Drawing Substitution Backward"), "Alt+Q"); createMenuCellsAction(MI_Reframe1, tr("1's"), ""); createMenuCellsAction(MI_Reframe2, tr("2's"), ""); createMenuCellsAction(MI_Reframe3, tr("3's"), ""); createMenuCellsAction(MI_Reframe4, tr("4's"), ""); - createRightClickMenuAction(MI_SetKeyframes, tr("&Set Key"), ""); + createRightClickMenuAction(MI_SetKeyframes, tr("&Set Key"), "Z"); createToggle(MI_ViewCamera, tr("&Camera Box"), "", ViewCameraToggleAction ? 1 : 0, MenuViewCommandType); createToggle(MI_ViewTable, tr("&Table"), "", ViewTableToggleAction ? 1 : 0, MenuViewCommandType); - createToggle(MI_FieldGuide, tr("&Field Guide"), "", + createToggle(MI_FieldGuide, tr("&Field Guide"), "Shift+G", FieldGuideToggleAction ? 1 : 0, MenuViewCommandType); createToggle(MI_ViewBBox, tr("&Raster Bounding Box"), "", ViewBBoxToggleAction ? 1 : 0, MenuViewCommandType); @@ -1845,18 +1845,16 @@ void MainWindow::defineActions() { createToggle(MI_Link, tr("Link Flipbooks"), "", LinkToggleAction ? 1 : 0, MenuViewCommandType); - createPlaybackAction(MI_Play, tr("Play"), ""); - createPlaybackAction(MI_Loop, tr("Loop"), ""); + createPlaybackAction(MI_Play, tr("Play"), "P"); + createPlaybackAction(MI_Loop, tr("Loop"), "L"); createPlaybackAction(MI_Pause, tr("Pause"), ""); - createPlaybackAction(MI_FirstFrame, tr("First Frame"), ""); - createPlaybackAction(MI_LastFrame, tr("Last Frame"), ""); - createPlaybackAction(MI_PrevFrame, tr("Previous Frame"), "Shift+A"); - createPlaybackAction(MI_NextFrame, tr("Next Frame"), "Shift+S"); - - createAction(MI_NextDrawing, tr("Next Drawing"), "Shift+X", - PlaybackCommandType); - createAction(MI_PrevDrawing, tr("Prev Drawing"), "Shift+Z", - PlaybackCommandType); + createPlaybackAction(MI_FirstFrame, tr("First Frame"), "Alt+,"); + createPlaybackAction(MI_LastFrame, tr("Last Frame"), "Alt+."); + createPlaybackAction(MI_PrevFrame, tr("Previous Frame"), "Shift+,"); + createPlaybackAction(MI_NextFrame, tr("Next Frame"), "Shift+."); + + createAction(MI_NextDrawing, tr("Next Drawing"), ".", PlaybackCommandType); + createAction(MI_PrevDrawing, tr("Prev Drawing"), ",", PlaybackCommandType); createAction(MI_NextStep, tr("Next Step"), "", PlaybackCommandType); createAction(MI_PrevStep, tr("Prev Step"), "", PlaybackCommandType); @@ -1871,7 +1869,7 @@ void MainWindow::defineActions() { createViewerAction(MI_CompareToSnapshot, tr("Compare to Snapshot"), ""); createFillAction(MI_AutoFillToggle, - tr("Toggle Autofill on Current Palette Color"), ""); + tr("Toggle Autofill on Current Palette Color"), "Shift+A"); toggle = createToggle(MI_DockingCheck, tr("&Lock Room Panes"), "", @@ -1913,7 +1911,7 @@ void MainWindow::defineActions() { // createAction(MI_Export, "Export", "Ctrl+E"); createMenuWindowsAction(MI_OpenComboViewer, tr("&ComboViewer"), ""); - createMenuWindowsAction(MI_OpenHistoryPanel, tr("&History"), ""); + createMenuWindowsAction(MI_OpenHistoryPanel, tr("&History"), "Ctrl+H"); createMenuWindowsAction(MI_ResetRoomLayout, tr("&Reset to Default Rooms"), ""); @@ -1925,7 +1923,7 @@ void MainWindow::defineActions() { createRightClickMenuAction(MI_BlendColors, tr("&Blend colors"), ""); - createToggle(MI_OnionSkin, tr("Onion Skin Toggle"), "//", false, + createToggle(MI_OnionSkin, tr("Onion Skin Toggle"), "/", false, RightClickMenuCommandType); createToggle(MI_ZeroThick, tr("Zero Thick Lines"), "Shift+/", false, RightClickMenuCommandType); @@ -1996,12 +1994,16 @@ void MainWindow::defineActions() { createRightClickMenuAction(MI_DisableAllColumns, tr("OFF All"), ""); createRightClickMenuAction(MI_DisableSelectedColumns, tr("OFF Selected"), ""); createRightClickMenuAction(MI_SwapEnabledColumns, tr("Swap ON/OFF"), ""); - createRightClickMenuAction(MI_LockThisColumnOnly, tr("Lock This Only"), ""); - createRightClickMenuAction(MI_LockSelectedColumns, tr("Lock Selected"), ""); - createRightClickMenuAction(MI_LockAllColumns, tr("Lock All"), ""); + createRightClickMenuAction(MI_LockThisColumnOnly, tr("Lock This Only"), + "Shift+L"); + createRightClickMenuAction(MI_LockSelectedColumns, tr("Lock Selected"), + "Ctrl+Shift+L"); + createRightClickMenuAction(MI_LockAllColumns, tr("Lock All"), + "Ctrl+Alt+Shift+L"); createRightClickMenuAction(MI_UnlockSelectedColumns, tr("Unlock Selected"), - ""); - createRightClickMenuAction(MI_UnlockAllColumns, tr("Unlock All"), ""); + "Ctrl+Shift+U"); + createRightClickMenuAction(MI_UnlockAllColumns, tr("Unlock All"), + "Ctrl+Alt+Shift+U"); createRightClickMenuAction(MI_ToggleColumnLocks, tr("Swap Lock/Unlock"), ""); /*-- カレントカラムの右側のカラムを全て非表示にするコマンド --*/ createRightClickMenuAction(MI_DeactivateUpperColumns, @@ -2017,31 +2019,32 @@ void MainWindow::defineActions() { createToolAction(T_Eraser, "eraser", tr("Eraser Tool"), "A"); createToolAction(T_Tape, "tape", tr("Tape Tool"), "T"); createToolAction(T_StylePicker, "stylepicker", tr("Style Picker Tool"), "K"); - createToolAction(T_RGBPicker, "RGBpicker", tr("RGB Picker Tool"), ""); + createToolAction(T_RGBPicker, "RGBpicker", tr("RGB Picker Tool"), "R"); createToolAction(T_ControlPointEditor, "controlpointeditor", tr("Control Point Editor Tool"), "C"); - createToolAction(T_Pinch, "pinch", tr("Pinch Tool"), "P"); + createToolAction(T_Pinch, "pinch", tr("Pinch Tool"), "M"); createToolAction(T_Pump, "pump", tr("Pump Tool"), ""); createToolAction(T_Magnet, "magnet", tr("Magnet Tool"), ""); createToolAction(T_Bender, "bender", tr("Bender Tool"), ""); createToolAction(T_Iron, "iron", tr("Iron Tool"), ""); createToolAction(T_Cutter, "cutter", tr("Cutter Tool"), ""); - createToolAction(T_Skeleton, "skeleton", tr("Skeleton Tool"), ""); + createToolAction(T_Skeleton, "skeleton", tr("Skeleton Tool"), "V"); createToolAction(T_Tracker, "tracker", tr("Tracker Tool"), ""); - createToolAction(T_Hook, "hook", tr("Hook Tool"), ""); + createToolAction(T_Hook, "hook", tr("Hook Tool"), "O"); createToolAction(T_Zoom, "zoom", tr("Zoom Tool"), "Shift+Space"); createToolAction(T_Rotate, "rotate", tr("Rotate Tool"), "Ctrl+Space"); createToolAction(T_Hand, "hand", tr("Hand Tool"), "Space"); - createToolAction(T_Plastic, "plastic", tr("Plastic Tool"), ""); + createToolAction(T_Plastic, "plastic", tr("Plastic Tool"), "X"); createToolAction(T_Ruler, "ruler", tr("Ruler Tool"), ""); createToolAction(T_Finger, "finger", tr("Finger Tool"), ""); createViewerAction(V_ZoomIn, tr("Zoom In"), "+"); createViewerAction(V_ZoomOut, tr("Zoom Out"), "-"); createViewerAction(V_ZoomReset, tr("Reset View"), "0"); - createViewerAction(V_ZoomFit, tr("Fit to Window"), ""); + createViewerAction(V_ZoomFit, tr("Fit to Window"), "9"); createViewerAction(V_ActualPixelSize, tr("Actual Pixel Size"), "N"); - createViewerAction(V_ShowHideFullScreen, tr("Show//Hide Full Screen"), ""); + createViewerAction(V_ShowHideFullScreen, tr("Show//Hide Full Screen"), + "Alt+F"); CommandManager::instance()->setToggleTexts(V_ShowHideFullScreen, tr("Full Screen Mode"), tr("Exit Full Screen Mode")); @@ -2051,13 +2054,13 @@ void MainWindow::defineActions() { createToolOptionsAction("A_ToolOption_GlobalKey", tr("Global Key"), ""); createToolOptionsAction("A_IncreaseMaxBrushThickness", - tr("Brush size - Increase max"), ""); + tr("Brush size - Increase max"), "I"); createToolOptionsAction("A_DecreaseMaxBrushThickness", - tr("Brush size - Decrease max"), ""); + tr("Brush size - Decrease max"), "U"); createToolOptionsAction("A_IncreaseMinBrushThickness", - tr("Brush size - Increase min"), ""); + tr("Brush size - Increase min"), "J"); createToolOptionsAction("A_DecreaseMinBrushThickness", - tr("Brush size - Decrease min"), ""); + tr("Brush size - Decrease min"), "H"); createToolOptionsAction("A_IncreaseBrushHardness", tr("Brush hardness - Increase"), ""); createToolOptionsAction("A_DecreaseBrushHardness", @@ -2076,7 +2079,7 @@ void MainWindow::defineActions() { createToolOptionsAction("A_ToolOption_PreserveThickness", tr("Preserve Thickness"), ""); createToolOptionsAction("A_ToolOption_PressureSensitivity", - tr("Pressure Sensitivity"), ""); + tr("Pressure Sensitivity"), "Shift+P"); createToolOptionsAction("A_ToolOption_SegmentInk", tr("Segment Ink"), "F8"); createToolOptionsAction("A_ToolOption_Selective", tr("Selective"), "F7"); createToolOptionsAction("A_ToolOption_Smooth", tr("Smooth"), ""); diff --git a/toonz/sources/toonz/shortcutpopup.cpp b/toonz/sources/toonz/shortcutpopup.cpp index 911a11f..dda5bc8 100644 --- a/toonz/sources/toonz/shortcutpopup.cpp +++ b/toonz/sources/toonz/shortcutpopup.cpp @@ -5,8 +5,13 @@ // Tnz6 includes #include "menubarcommandids.h" #include "tapp.h" +#include "tenv.h" +#include "tsystem.h" +#include "toonz/preferences.h" +#include "toonz/toonzfolders.h" // TnzQt includes +#include "toonzqt/gutil.h" #include "toonzqt/menubarcommand.h" #include "toonzqt/dvdialog.h" @@ -24,6 +29,9 @@ #include #include #include +#include +#include +#include // STD includes #include @@ -155,7 +163,7 @@ void ShortcutViewer::keyPressEvent(QKeyEvent *event) { void ShortcutViewer::removeShortcut() { if (m_action) { - CommandManager::instance()->setShortcut(m_action, ""); + CommandManager::instance()->setShortcut(m_action, "", false); emit shortcutChanged(); update(); } @@ -339,14 +347,32 @@ void ShortcutTree::onShortcutChanged() { ShortcutPopup::ShortcutPopup() : Dialog(TApp::instance()->getMainWindow(), false, false, "Shortcut") { setWindowTitle(tr("Configure Shortcuts")); + m_presetChoiceCB = new QComboBox(this); + buildPresets(); + m_presetChoiceCB->setCurrentIndex(0); m_list = new ShortcutTree(this); m_list->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_list->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_list->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - m_sViewer = new ShortcutViewer(this); - m_removeBtn = new QPushButton(tr("Remove"), this); + m_sViewer = new ShortcutViewer(this); + m_removeBtn = new QPushButton(tr("Remove"), this); + m_loadShortcutsPopup = NULL; + m_saveShortcutsPopup = NULL; + m_dialog = NULL; + m_exportButton = new QPushButton(tr("Export Current Shortcuts"), this); + m_exportButton->setToolTip(tr("Export Current Shortcuts")); + m_deletePresetButton = new QPushButton("Delete", this); + m_deletePresetButton->setToolTip(tr("Delete Current Preset")); + m_deletePresetButton->setIcon(QIcon(":Resources/delete_on.png")); + m_savePresetButton = new QPushButton("Save As", this); + m_savePresetButton->setToolTip(tr("Save Current Shortcuts as New Preset")); + m_savePresetButton->setIcon(QIcon(":Resources/saveas_on.png")); + m_loadPresetButton = new QPushButton(tr("Apply")); + m_loadPresetButton->setToolTip(tr("Use selected preset as shortcuts")); + m_loadPresetButton->setIcon(QIcon(":Resources/green.png")); + m_clearAllShortcutsButton = new QPushButton(tr("Clear All Shortcuts")); QLabel *noSearchResultLabel = new QLabel(tr("Couldn't find any matching command."), this); noSearchResultLabel->setHidden(true); @@ -383,6 +409,28 @@ ShortcutPopup::ShortcutPopup() bottomLayout->addWidget(m_removeBtn, 0); } m_topLayout->addLayout(bottomLayout, 0); + m_topLayout->addSpacing(10); + QHBoxLayout *presetLay = new QHBoxLayout(); + presetLay->setMargin(0); + presetLay->setSpacing(5); + { + presetLay->addWidget(new QLabel("Preset:", this), 0); + presetLay->addWidget(m_presetChoiceCB, 1); + presetLay->addWidget(m_loadPresetButton, 0); + presetLay->addWidget(m_savePresetButton, 0); + presetLay->addWidget(m_deletePresetButton, 0); + } + m_topLayout->addLayout(presetLay, 0); + m_topLayout->addSpacing(10); + QHBoxLayout *exportLay = new QHBoxLayout(); + exportLay->setMargin(0); + exportLay->setSpacing(5); + { + exportLay->addWidget(m_exportButton, 0); + exportLay->addWidget(m_clearAllShortcutsButton, 0); + } + m_topLayout->addLayout(exportLay, 0); + // m_topLayout->addWidget(m_exportButton, 0); } connect(m_list, SIGNAL(actionSelected(QAction *)), m_sViewer, @@ -397,6 +445,14 @@ ShortcutPopup::ShortcutPopup() SLOT(setHidden(bool))); connect(searchEdit, SIGNAL(textChanged(const QString &)), this, SLOT(onSearchTextChanged(const QString &))); + connect(m_presetChoiceCB, SIGNAL(currentIndexChanged(int)), + SLOT(onPresetChanged(int))); + connect(m_exportButton, SIGNAL(clicked()), SLOT(onExportButton())); + connect(m_deletePresetButton, SIGNAL(clicked()), SLOT(onDeletePreset())); + connect(m_savePresetButton, SIGNAL(clicked()), SLOT(onSavePreset())); + connect(m_loadPresetButton, SIGNAL(clicked()), SLOT(onLoadPreset())); + connect(m_clearAllShortcutsButton, SIGNAL(clicked()), + SLOT(clearAllShortcuts())); } //----------------------------------------------------------------------------- @@ -415,4 +471,324 @@ void ShortcutPopup::onSearchTextChanged(const QString &text) { //----------------------------------------------------------------------------- +void ShortcutPopup::onPresetChanged(int index) { + if (m_presetChoiceCB->currentText() == "Load from file...") { + importPreset(); + } +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::clearAllShortcuts(bool warning) { + if (warning) { + QString question(tr("This will erase ALL shortcuts. Continue?")); + int ret = + DVGui::MsgBox(question, QObject::tr("OK"), QObject::tr("Cancel"), 0); + if (ret == 0 || ret == 2) { + // cancel (or closed message box window) + return; + } + showDialog("Clearing All Shortcuts"); + } + for (int commandType = UndefinedCommandType; commandType <= MenuCommandType; + commandType++) { + std::vector actions; + CommandManager::instance()->getActions((CommandType)commandType, actions); + for (QAction *action : actions) { + qApp->processEvents(); + m_sViewer->setAction(action); + m_sViewer->removeShortcut(); + } + } + setCurrentPresetPref("DELETED"); + // if warning is true, this was called directly- need to hide the dialog after + if (warning) m_dialog->hide(); +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::setPresetShortcuts(TFilePath fp) { + QSettings preset(toQString(fp), QSettings::IniFormat); + preset.beginGroup("shortcuts"); + QStringList allIds = preset.allKeys(); + QAction *action; + for (QString id : allIds) { + QByteArray ba = id.toLatin1(); + const char *charId = ba.data(); + action = CommandManager::instance()->getAction((CommandId)charId); + CommandManager::instance()->setShortcut( + action, preset.value(id).toString().toStdString(), false); + } + preset.endGroup(); + emit m_sViewer->shortcutChanged(); + m_dialog->hide(); + buildPresets(); + setCurrentPresetPref(QString::fromStdString(fp.getName())); +} + +//----------------------------------------------------------------------------- + +bool ShortcutPopup::showConfirmDialog() { + QString question(tr("This will overwrite all current shortcuts. Continue?")); + int ret = + DVGui::MsgBox(question, QObject::tr("OK"), QObject::tr("Cancel"), 0); + if (ret == 0 || ret == 2) { + // cancel (or closed message box window) + return false; + } else + return true; +} + +//----------------------------------------------------------------------------- + +bool ShortcutPopup::showOverwriteDialog(QString name) { + QString question(tr("A file named ") + name + + tr(" already exists. Do you want to replace it?")); + int ret = DVGui::MsgBox(question, QObject::tr("Yes"), QObject::tr("No"), 0); + if (ret == 0 || ret == 2) { + // cancel (or closed message box window) + return false; + } else + return true; +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::showDialog(QString text) { + if (m_dialog == NULL) { + m_dialogLabel = new QLabel("", this); + m_dialog = new DVGui::Dialog(this, false, false); + m_dialog->setWindowTitle(tr("OpenToonz - Setting Shortcuts")); + m_dialog->setModal(false); + + m_dialog->setTopMargin(10); + m_dialog->setTopSpacing(10); + m_dialog->setLabelWidth(500); + m_dialog->beginVLayout(); + m_dialog->addWidget(m_dialogLabel, false); + m_dialog->endVLayout(); + } + m_dialogLabel->setText(text); + m_dialog->show(); +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::onExportButton(TFilePath fp) { + if (fp == TFilePath()) { + m_saveShortcutsPopup = new GenericSaveFilePopup("Save Current Shortcuts"); + m_saveShortcutsPopup->addFilterType("ini"); + fp = m_saveShortcutsPopup->getPath(); + if (fp == TFilePath()) return; + } + showDialog("Saving Shortcuts"); + QString shortcutString = "[shortcuts]\n"; + for (int commandType = UndefinedCommandType; commandType <= MenuCommandType; + commandType++) { + std::vector actions; + CommandManager::instance()->getActions((CommandType)commandType, actions); + for (QAction *action : actions) { + qApp->processEvents(); + std::string id = CommandManager::instance()->getIdFromAction(action); + std::string shortcut = + CommandManager::instance()->getShortcutFromAction(action); + if (shortcut != "") { + shortcutString = shortcutString + QString::fromStdString(id) + "=" + + QString::fromStdString(shortcut) + "\n"; + } + } + } + QFile file(fp.getQString()); + file.open(QIODevice::WriteOnly | QIODevice::Text); + QTextStream out(&file); + out << shortcutString; + file.close(); + m_dialog->hide(); +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::onDeletePreset() { + // change this to 4 once RETAS shortcuts are updated + if (m_presetChoiceCB->currentIndex() <= 3) { + DVGui::MsgBox(DVGui::CRITICAL, tr("Included presets cannot be deleted.")); + return; + } + + QString question(tr("Are you sure you want to delete the preset: ") + + m_presetChoiceCB->currentText() + tr("?")); + int ret = DVGui::MsgBox(question, QObject::tr("Yes"), QObject::tr("No"), 0); + if (ret == 0 || ret == 2) { + // cancel (or closed message box window) + return; + } + TFilePath presetDir = + ToonzFolder::getMyModuleDir() + TFilePath("shortcutpresets"); + QString presetName = m_presetChoiceCB->currentText(); + if (TSystem::doesExistFileOrLevel(presetDir + + TFilePath(presetName + ".ini"))) { + TSystem::deleteFile(presetDir + TFilePath(presetName + ".ini")); + buildPresets(); + m_presetChoiceCB->setCurrentIndex(0); + } + if (Preferences::instance()->getShortcutPreset() == presetName) + setCurrentPresetPref("DELETED"); + getCurrentPresetPref(); +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::importPreset() { + m_loadShortcutsPopup = new GenericLoadFilePopup("Load Shortcuts File"); + m_loadShortcutsPopup->addFilterType("ini"); + TFilePath shortcutPath = m_loadShortcutsPopup->getPath(); + if (shortcutPath == TFilePath()) { + m_presetChoiceCB->setCurrentIndex(0); + return; + } + if (!showConfirmDialog()) return; + + TFilePath presetDir = + ToonzFolder::getMyModuleDir() + TFilePath("shortcutpresets"); + if (!TSystem::doesExistFileOrLevel(presetDir)) { + TSystem::mkDir(presetDir); + } + QString name = shortcutPath.withoutParentDir().getQString(); + std::string strName = name.toStdString(); + if (TSystem::doesExistFileOrLevel(presetDir + TFilePath(name))) { + if (!showOverwriteDialog(name)) return; + } + showDialog("Importing Shortcuts"); + TSystem::copyFile(presetDir + TFilePath(name), shortcutPath, true); + clearAllShortcuts(false); + setPresetShortcuts(presetDir + TFilePath(name)); + return; +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::onLoadPreset() { + QString preset = m_presetChoiceCB->currentText(); + TFilePath presetDir = + ToonzFolder::getMyModuleDir() + TFilePath("shortcutpresets"); + TFilePath defaultPresetDir = + ToonzFolder::getProfileFolder() + TFilePath("layouts/shortcuts"); + if (preset == "") return; + if (preset == "Load from file...") { + importPreset(); + return; + } + + if (!showConfirmDialog()) return; + showDialog("Setting Shortcuts"); + if (preset == "OpenToonz") { + clearAllShortcuts(false); + TFilePath fp = defaultPresetDir + TFilePath("defopentoonz.ini"); + setPresetShortcuts(fp); + return; + } else if (preset == "Toon Boom Harmony") { + clearAllShortcuts(false); + TFilePath fp = defaultPresetDir + TFilePath("otharmony.ini"); + setPresetShortcuts(fp); + return; + } else if (preset == "Adobe Animate(Flash)") { + clearAllShortcuts(false); + TFilePath fp = defaultPresetDir + TFilePath("otadobe.ini"); + setPresetShortcuts(fp); + return; + } else if (preset == "RETAS PaintMan") { + clearAllShortcuts(false); + TFilePath fp = defaultPresetDir + TFilePath("otretas.ini"); + setPresetShortcuts(fp); + return; + } else if (TSystem::doesExistFileOrLevel(presetDir + + TFilePath(preset + ".ini"))) { + clearAllShortcuts(false); + TFilePath fp = presetDir + TFilePath(preset + ".ini"); + setPresetShortcuts(fp); + return; + } + m_dialog->hide(); +} + +//----------------------------------------------------------------------------- + +QStringList ShortcutPopup::buildPresets() { + QStringList presets; + presets << "" + << "OpenToonz" + //<< "RETAS PaintMan" + << "Toon Boom Harmony" + << "Adobe Animate(Flash)"; + TFilePath presetDir = + ToonzFolder::getMyModuleDir() + TFilePath("shortcutpresets"); + if (TSystem::doesExistFileOrLevel(presetDir)) { + TFilePathSet fps = TSystem::readDirectory(presetDir, true, true, false); + QStringList customPresets; + for (TFilePath fp : fps) { + if (fp.getType() == "ini") { + customPresets << QString::fromStdString(fp.getName()); + std::string name = fp.getName(); + } + } + customPresets.sort(); + presets = presets + customPresets; + } + presets << tr("Load from file..."); + m_presetChoiceCB->clear(); + m_presetChoiceCB->addItems(presets); + return presets; +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::onSavePreset() { + QString presetName = DVGui::getText("Enter Preset Name", "Preset Name:", ""); + if (presetName == "") return; + TFilePath presetDir = + ToonzFolder::getMyModuleDir() + TFilePath("shortcutpresets"); + if (!TSystem::doesExistFileOrLevel(presetDir)) { + TSystem::mkDir(presetDir); + } + TFilePath fp; + fp = presetDir + TFilePath(presetName + ".ini"); + if (TSystem::doesExistFileOrLevel(fp)) { + if (!showOverwriteDialog(QString::fromStdString(fp.getName()))) return; + } + onExportButton(fp); + + buildPresets(); + setCurrentPresetPref(presetName); +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::showEvent(QShowEvent *se) { getCurrentPresetPref(); } + +//----------------------------------------------------------------------------- + +void ShortcutPopup::setCurrentPresetPref(QString name) { + Preferences::instance()->setShortcutPreset(name.toStdString()); + getCurrentPresetPref(); +} + +//----------------------------------------------------------------------------- + +void ShortcutPopup::getCurrentPresetPref() { + QString name = Preferences::instance()->getShortcutPreset(); + if (name == "DELETED") + m_presetChoiceCB->setCurrentText(""); + else if (name == "defopentoonz") + m_presetChoiceCB->setCurrentText("OpenToonz"); + else if (name == "otharmony") + m_presetChoiceCB->setCurrentText("Toon Boom Harmony"); + else if (name == "otadobe") + m_presetChoiceCB->setCurrentText("Adobe Animate(Flash)"); + else if (name == "otretas") + m_presetChoiceCB->setCurrentText("RETAS PaintMan"); + + else + m_presetChoiceCB->setCurrentText(name); +} + OpenPopupCommandHandler openShortcutPopup(MI_ShortcutPopup); diff --git a/toonz/sources/toonz/shortcutpopup.h b/toonz/sources/toonz/shortcutpopup.h index 2044ac6..142d04f 100644 --- a/toonz/sources/toonz/shortcutpopup.h +++ b/toonz/sources/toonz/shortcutpopup.h @@ -5,7 +5,8 @@ #include #include - +#include +#include "filebrowserpopup.h" #include "toonzqt/dvdialog.h" // forward declaration @@ -92,13 +93,40 @@ class ShortcutPopup final : public DVGui::Dialog { QPushButton *m_removeBtn; ShortcutViewer *m_sViewer; ShortcutTree *m_list; + QComboBox *m_presetChoiceCB; + DVGui::Dialog *m_dialog; + GenericLoadFilePopup *m_loadShortcutsPopup; + GenericSaveFilePopup *m_saveShortcutsPopup; + QPushButton *m_exportButton; + QPushButton *m_deletePresetButton; + QPushButton *m_savePresetButton; + QPushButton *m_loadPresetButton; + QPushButton *m_clearAllShortcutsButton; + QLabel *m_dialogLabel; public: ShortcutPopup(); ~ShortcutPopup(); +private: + void setPresetShortcuts(TFilePath fp); + void showDialog(QString text); + bool showConfirmDialog(); + bool showOverwriteDialog(QString name); + void importPreset(); + QStringList buildPresets(); + void showEvent(QShowEvent *se) override; + void setCurrentPresetPref(QString preset); + void getCurrentPresetPref(); + protected slots: + void clearAllShortcuts(bool warning = true); void onSearchTextChanged(const QString &text); + void onPresetChanged(int index); + void onExportButton(TFilePath fp = TFilePath()); + void onDeletePreset(); + void onSavePreset(); + void onLoadPreset(); }; #endif // SHORTCUTPOPUP_H diff --git a/toonz/sources/toonzlib/preferences.cpp b/toonz/sources/toonzlib/preferences.cpp index 6545e51..2418bc8 100644 --- a/toonz/sources/toonzlib/preferences.cpp +++ b/toonz/sources/toonzlib/preferences.cpp @@ -292,7 +292,8 @@ Preferences::Preferences() , m_projectRoot(0x08) , m_customProjectRoot("") , m_precompute(true) - , m_ffmpegTimeout(30) { + , m_ffmpegTimeout(30) + , m_shortcutPreset("defopentoonz") { TCamera camera; m_defLevelType = PLI_XSHLEVEL; m_defLevelWidth = camera.getSize().lx; @@ -557,6 +558,9 @@ Preferences::Preferences() if (ffmpegPath != "") m_ffmpegPath = ffmpegPath; setFfmpegPath(m_ffmpegPath.toStdString()); getValue(*m_settings, "ffmpegTimeout", m_ffmpegTimeout); + QString shortcutPreset = m_settings->value("shortcutPreset").toString(); + if (shortcutPreset != "") m_shortcutPreset = shortcutPreset; + setShortcutPreset(m_shortcutPreset.toStdString()); } //----------------------------------------------------------------- @@ -1242,6 +1246,13 @@ void Preferences::setFfmpegPath(std::string path) { //----------------------------------------------------------------- +void Preferences::setShortcutPreset(std::string preset) { + m_shortcutPreset = QString::fromStdString(preset); + m_settings->setValue("shortcutPreset", m_shortcutPreset); +} + +//----------------------------------------------------------------- + void Preferences::setPrecompute(bool enabled) { m_precompute = enabled; } //----------------------------------------------------------------- diff --git a/toonz/sources/toonzqt/menubarcommand.cpp b/toonz/sources/toonzqt/menubarcommand.cpp index 5e9612f..723cfda 100644 --- a/toonz/sources/toonzqt/menubarcommand.cpp +++ b/toonz/sources/toonzqt/menubarcommand.cpp @@ -279,7 +279,8 @@ int CommandManager::getKeyFromId(const char *id) { //--------------------------------------------------------- -void CommandManager::setShortcut(QAction *action, std::string shortcutString) { +void CommandManager::setShortcut(QAction *action, std::string shortcutString, + bool keepDefault) { QString shortcut = QString::fromStdString(shortcutString); std::string oldShortcutString = action->shortcut().toString().toStdString(); @@ -296,7 +297,7 @@ void CommandManager::setShortcut(QAction *action, std::string shortcutString) { if (node->m_type == ZoomCommandType && ks.count() > 1) { DVGui::warning( - QObject::tr("It is not possible to assing a shortcut with modifiers to " + QObject::tr("It is not possible to assign a shortcut with modifiers to " "the visualization commands.")); return; } @@ -328,7 +329,9 @@ void CommandManager::setShortcut(QAction *action, std::string shortcutString) { settings.beginGroup("shortcuts"); settings.setValue(QString::fromStdString(node->m_id), QString::fromStdString(shortcutString)); - if (oldActionId != "") settings.remove(oldActionId); + if (keepDefault) { + if (oldActionId != "") settings.remove(oldActionId); + } settings.endGroup(); }