leocad/common/lc_commands.cpp
2019-12-09 11:43:54 -08:00

1568 lines
44 KiB
C++

#include "lc_global.h"
#include "lc_commands.h"
lcCommand gCommands[LC_NUM_COMMANDS] =
{
// LC_FILE_NEW
{
QT_TRANSLATE_NOOP("Action", "File.New"),
QT_TRANSLATE_NOOP("Menu", "&New"),
QT_TRANSLATE_NOOP("Status", "Create a new model"),
"Ctrl+N"
},
// LC_FILE_OPEN
{
QT_TRANSLATE_NOOP("Action", "File.Open"),
QT_TRANSLATE_NOOP("Menu", "&Open..."),
QT_TRANSLATE_NOOP("Status", "Open an existing model"),
"Ctrl+O"
},
// LC_FILE_MERGE
{
QT_TRANSLATE_NOOP("Action", "File.Merge"),
QT_TRANSLATE_NOOP("Menu", "&Merge..."),
QT_TRANSLATE_NOOP("Status", "Merge the contents of another file with the current one"),
""
},
// LC_FILE_SAVE
{
QT_TRANSLATE_NOOP("Action", "File.Save"),
QT_TRANSLATE_NOOP("Menu", "&Save"),
QT_TRANSLATE_NOOP("Status", "Save the current model"),
"Ctrl+S"
},
// LC_FILE_SAVEAS
{
QT_TRANSLATE_NOOP("Action", "File.SaveAs"),
QT_TRANSLATE_NOOP("Menu", "Save &As..."),
QT_TRANSLATE_NOOP("Status", "Save the current model with a new name"),
""
},
// LC_FILE_SAVE_IMAGE
{
QT_TRANSLATE_NOOP("Action", "File.SaveImage"),
QT_TRANSLATE_NOOP("Menu", "Save &Image..."),
QT_TRANSLATE_NOOP("Status", "Save a picture of the current view"),
""
},
// LC_FILE_IMPORT_LDD
{
QT_TRANSLATE_NOOP("Action", "File.Import.LDD"),
QT_TRANSLATE_NOOP("Menu", "&LEGO Digital Designer..."),
QT_TRANSLATE_NOOP("Status", "Import a file in LEGO Digital Designer LXF format"),
""
},
// LC_FILE_IMPORT_INVENTORY
{
QT_TRANSLATE_NOOP("Action", "File.Import.Inventory"),
QT_TRANSLATE_NOOP("Menu", "Set &Inventory..."),
QT_TRANSLATE_NOOP("Status", "Import all parts from an official set"),
""
},
// LC_FILE_EXPORT_3DS
{
QT_TRANSLATE_NOOP("Action", "File.Export.3DS"),
QT_TRANSLATE_NOOP("Menu", "3D &Studio..."),
QT_TRANSLATE_NOOP("Status", "Export the current model in 3D Studio 3DS format"),
""
},
// LC_FILE_EXPORT_COLLADA
{
QT_TRANSLATE_NOOP("Action", "File.Export.COLLADA"),
QT_TRANSLATE_NOOP("Menu", "&COLLADA..."),
QT_TRANSLATE_NOOP("Status", "Export the current model in COLLADA DAE format"),
""
},
// LC_FILE_EXPORT_HTML
{
QT_TRANSLATE_NOOP("Action", "File.Export.HTML"),
QT_TRANSLATE_NOOP("Menu", "&HTML..."),
QT_TRANSLATE_NOOP("Status", "Create an HTML page for the current model"),
""
},
// LC_FILE_EXPORT_BRICKLINK
{
QT_TRANSLATE_NOOP("Action", "File.Export.BrickLink"),
QT_TRANSLATE_NOOP("Menu", "&BrickLink..."),
QT_TRANSLATE_NOOP("Status", "Export a list of parts used in BrickLink XML format"),
""
},
// LC_FILE_EXPORT_CSV
{
QT_TRANSLATE_NOOP("Action", "File.Export.CSV"),
QT_TRANSLATE_NOOP("Menu", "&CSV..."),
QT_TRANSLATE_NOOP("Status", "Export a list of parts used in comma delimited file format"),
""
},
// LC_FILE_EXPORT_POVRAY
{
QT_TRANSLATE_NOOP("Action", "File.Export.POVRay"),
QT_TRANSLATE_NOOP("Menu", "&POV-Ray..."),
QT_TRANSLATE_NOOP("Status", "Export the current model in POV-Ray format"),
""
},
// LC_FILE_EXPORT_WAVEFRONT
{
QT_TRANSLATE_NOOP("Action", "File.Export.Wavefront"),
QT_TRANSLATE_NOOP("Menu", "&Wavefront..."),
QT_TRANSLATE_NOOP("Status", "Export the current model in Wavefront OBJ format"),
""
},
// LC_FILE_RENDER
{
QT_TRANSLATE_NOOP("Action", "File.Render"),
QT_TRANSLATE_NOOP("Menu", "&Render..."),
QT_TRANSLATE_NOOP("Status", "Render the current model using POV-Ray"),
""
},
// LC_FILE_PRINT
{
QT_TRANSLATE_NOOP("Action", "File.Print"),
QT_TRANSLATE_NOOP("Menu", "&Print..."),
QT_TRANSLATE_NOOP("Status", "Print the current model"),
""
},
// LC_FILE_PRINT_PREVIEW
{
QT_TRANSLATE_NOOP("Action", "File.PrintPreview"),
QT_TRANSLATE_NOOP("Menu", "Print Pre&view..."),
QT_TRANSLATE_NOOP("Status", "Display how the model would look if printed"),
""
},
// LC_FILE_PRINT_BOM
{
QT_TRANSLATE_NOOP("Action", "File.PrintBOM"),
QT_TRANSLATE_NOOP("Menu", "Print &Bill of Materials..."),
QT_TRANSLATE_NOOP("Status", "Print a list of parts used"),
""
},
// LC_FILE_RECENT1
{
QT_TRANSLATE_NOOP("Action", "File.Recent1"),
QT_TRANSLATE_NOOP("Menu", "&Recent1"),
QT_TRANSLATE_NOOP("Status", "Open this model"),
""
},
// LC_FILE_RECENT2
{
QT_TRANSLATE_NOOP("Action", "File.Recent2"),
QT_TRANSLATE_NOOP("Menu", "&Recent2"),
QT_TRANSLATE_NOOP("Status", "Open this model"),
""
},
// LC_FILE_RECENT3
{
QT_TRANSLATE_NOOP("Action", "File.Recent3"),
QT_TRANSLATE_NOOP("Menu", "&Recent3"),
QT_TRANSLATE_NOOP("Status", "Open this model"),
""
},
// LC_FILE_RECENT4
{
QT_TRANSLATE_NOOP("Action", "File.Recent4"),
QT_TRANSLATE_NOOP("Menu", "&Recent4"),
QT_TRANSLATE_NOOP("Status", "Open this model"),
""
},
// LC_FILE_EXIT
{
QT_TRANSLATE_NOOP("Action", "File.Exit"),
QT_TRANSLATE_NOOP("Menu", "E&xit"),
QT_TRANSLATE_NOOP("Status", "Quit the application; prompts to save model"),
""
},
// LC_EDIT_UNDO
{
QT_TRANSLATE_NOOP("Action", "Edit.Undo"),
QT_TRANSLATE_NOOP("Menu", "&Undo"),
QT_TRANSLATE_NOOP("Status", "Undo the last action"),
"Ctrl+Z"
},
// LC_EDIT_REDO
{
QT_TRANSLATE_NOOP("Action", "Edit.Redo"),
QT_TRANSLATE_NOOP("Menu", "&Redo"),
QT_TRANSLATE_NOOP("Status", "Redo the previously undone action"),
"Ctrl+Y"
},
// LC_EDIT_CUT
{
QT_TRANSLATE_NOOP("Action", "Edit.Cut"),
QT_TRANSLATE_NOOP("Menu", "Cu&t"),
QT_TRANSLATE_NOOP("Status", "Cut the selection and put it on the Clipboard"),
"Ctrl+X"
},
// LC_EDIT_COPY
{
QT_TRANSLATE_NOOP("Action", "Edit.Copy"),
QT_TRANSLATE_NOOP("Menu", "&Copy"),
QT_TRANSLATE_NOOP("Status", "Copy the selection and put it on the Clipboard"),
"Ctrl+C"
},
// LC_EDIT_PASTE
{
QT_TRANSLATE_NOOP("Action", "Edit.Paste"),
QT_TRANSLATE_NOOP("Menu", "&Paste"),
QT_TRANSLATE_NOOP("Status", "Insert Clipboard contents"),
"Ctrl+V"
},
// LC_EDIT_FIND
{
QT_TRANSLATE_NOOP("Action", "Edit.Find"),
QT_TRANSLATE_NOOP("Menu", "&Find..."),
QT_TRANSLATE_NOOP("Status", "Find object"),
"Ctrl+F"
},
// LC_EDIT_FIND_NEXT
{
QT_TRANSLATE_NOOP("Action", "Edit.FindNext"),
QT_TRANSLATE_NOOP("Menu", "Find Ne&xt"),
QT_TRANSLATE_NOOP("Status", "Find next object"),
"F3"
},
// LC_EDIT_FIND_PREVIOUS
{
QT_TRANSLATE_NOOP("Action", "Edit.FindPrevious"),
QT_TRANSLATE_NOOP("Menu", "Find Pre&vious"),
QT_TRANSLATE_NOOP("Status", "Find object"),
"Shift+F3"
},
// LC_EDIT_SELECT_ALL
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectAll"),
QT_TRANSLATE_NOOP("Menu", "Select &All"),
QT_TRANSLATE_NOOP("Status", "Select all pieces in the model"),
"Ctrl+A"
},
// LC_EDIT_SELECT_NONE
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectNone"),
QT_TRANSLATE_NOOP("Menu", "Select &None"),
QT_TRANSLATE_NOOP("Status", "De-select everything"),
""
},
// LC_EDIT_SELECT_INVERT
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectInvert"),
QT_TRANSLATE_NOOP("Menu", "Select &Invert"),
QT_TRANSLATE_NOOP("Status", "Invert the current selection set"),
"Ctrl+I"
},
// LC_EDIT_SELECT_BY_NAME
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectByName"),
QT_TRANSLATE_NOOP("Menu", "Select by Na&me..."),
QT_TRANSLATE_NOOP("Status", "Select objects by name"),
""
},
// LC_EDIT_SELECT_BY_COLOR
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectByColor"),
QT_TRANSLATE_NOOP("Menu", "Select by Col&or..."),
QT_TRANSLATE_NOOP("Status", "Select pieces by color"),
""
},
// LC_EDIT_SELECT_SINGLE
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectSingle"),
QT_TRANSLATE_NOOP("Menu", "Single Selection"),
QT_TRANSLATE_NOOP("Status", "Select one piece at a time"),
""
},
// LC_EDIT_SELECT_PIECE
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectPiece"),
QT_TRANSLATE_NOOP("Menu", "Piece Selection"),
QT_TRANSLATE_NOOP("Status", "Select all pieces of the same type"),
""
},
// LC_EDIT_SELECT_COLOR
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectColor"),
QT_TRANSLATE_NOOP("Menu", "Color Selection"),
QT_TRANSLATE_NOOP("Status", "Select all pieces of the same color"),
""
},
// LC_EDIT_SELECT_PIECE_COLOR
{
QT_TRANSLATE_NOOP("Action", "Edit.SelectPieceColor"),
QT_TRANSLATE_NOOP("Menu", "Piece and Color Selection"),
QT_TRANSLATE_NOOP("Status", "Select all pieces of the same type and color"),
""
},
// LC_EDIT_TRANSFORM_RELATIVE
{
QT_TRANSLATE_NOOP("Action", "Edit.TransformRelative"),
QT_TRANSLATE_NOOP("Menu", "Relative Transforms"),
QT_TRANSLATE_NOOP("Status", "Move and rotate objects relative to the one that has focus"),
""
},
// LC_EDIT_SNAP_MOVE_TOGGLE
{
QT_TRANSLATE_NOOP("Action", "Edit.Snap.Toggle"),
QT_TRANSLATE_NOOP("Menu", "Move Snap Enabled"),
QT_TRANSLATE_NOOP("Status", "Toggle snap axes"),
""
},
// LC_EDIT_SNAP_MOVE_XY0
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY0"),
QT_TRANSLATE_NOOP("Menu", "None"),
QT_TRANSLATE_NOOP("Status", "Do not snap movement along the XY plane"),
"0"
},
// LC_EDIT_SNAP_MOVE_XY1
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY1"),
QT_TRANSLATE_NOOP("Menu", "1/20 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 1/20 stud"),
"1"
},
// LC_EDIT_SNAP_MOVE_XY2
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY2"),
QT_TRANSLATE_NOOP("Menu", "1/4 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 1/4 stud"),
"2"
},
// LC_EDIT_SNAP_MOVE_XY3
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY3"),
QT_TRANSLATE_NOOP("Menu", "1 Flat"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 1 flat"),
"3"
},
// LC_EDIT_SNAP_MOVE_XY4
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY4"),
QT_TRANSLATE_NOOP("Menu", "1/2 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 1/2 stud"),
"4"
},
// LC_EDIT_SNAP_MOVE_XY5
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY5"),
QT_TRANSLATE_NOOP("Menu", "1 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 1 stud"),
"5"
},
// LC_EDIT_SNAP_MOVE_XY6
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY6"),
QT_TRANSLATE_NOOP("Menu", "2 Studs"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 2 studs"),
"6"
},
// LC_EDIT_SNAP_MOVE_XY7
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY7"),
QT_TRANSLATE_NOOP("Menu", "3 Studs"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 3 studs"),
"7"
},
// LC_EDIT_SNAP_MOVE_XY8
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY8"),
QT_TRANSLATE_NOOP("Menu", "4 Studs"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 4 studs"),
"8"
},
// LC_EDIT_SNAP_MOVE_XY9
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.XY9"),
QT_TRANSLATE_NOOP("Menu", "8 Studs"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the XY plane to 8 studs"),
"9"
},
// LC_EDIT_SNAP_MOVE_Z0
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z0"),
QT_TRANSLATE_NOOP("Menu", "None"),
QT_TRANSLATE_NOOP("Status", "Do not snap movement along the Z axis"),
"Ctrl+Shift+0"
},
// LC_EDIT_SNAP_MOVE_Z1
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z1"),
QT_TRANSLATE_NOOP("Menu", "1/20 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 1/20 stud"),
"Ctrl+Shift+1"
},
// LC_EDIT_SNAP_MOVE_Z2
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z2"),
QT_TRANSLATE_NOOP("Menu", "1/4 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 1/4 stud"),
"Ctrl+Shift+2"
},
// LC_EDIT_SNAP_MOVE_Z3
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z3"),
QT_TRANSLATE_NOOP("Menu", "1 Flat"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 1 flat"),
"Ctrl+Shift+3"
},
// LC_EDIT_SNAP_MOVE_Z4
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z4"),
QT_TRANSLATE_NOOP("Menu", "1/2 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 1/2 stud"),
"Ctrl+Shift+4"
},
// LC_EDIT_SNAP_MOVE_Z5
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z5"),
QT_TRANSLATE_NOOP("Menu", "1 Stud"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 1 stud"),
"Ctrl+Shift+5"
},
// LC_EDIT_SNAP_MOVE_Z6
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z6"),
QT_TRANSLATE_NOOP("Menu", "1 Brick"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 1 brick"),
"Ctrl+Shift+6"
},
// LC_EDIT_SNAP_MOVE_Z7
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z7"),
QT_TRANSLATE_NOOP("Menu", "2 Bricks"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 2 bricks"),
"Ctrl+Shift+7"
},
// LC_EDIT_SNAP_MOVE_Z8
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z8"),
QT_TRANSLATE_NOOP("Menu", "4 Bricks"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 4 bricks"),
"Ctrl+Shift+8"
},
// LC_EDIT_SNAP_MOVE_Z9
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapMove.Z9"),
QT_TRANSLATE_NOOP("Menu", "8 Bricks"),
QT_TRANSLATE_NOOP("Status", "Snap movement along the Z axis to 8 bricks"),
"Ctrl+Shift+9"
},
// LC_EDIT_SNAP_ANGLE_TOGGLE
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Toggle"),
QT_TRANSLATE_NOOP("Menu", "Rotation Snap Enabled"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to fixed intervals"),
""
},
// LC_EDIT_SNAP_ANGLE0
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle0"),
QT_TRANSLATE_NOOP("Menu", "None"),
QT_TRANSLATE_NOOP("Status", "Do not snap rotations"),
"Shift+0"
},
// LC_EDIT_SNAP_ANGLE1
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle1"),
QT_TRANSLATE_NOOP("Menu", "1 Degree"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 1 degree"),
"Shift+1"
},
// LC_EDIT_SNAP_ANGLE2
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle2"),
QT_TRANSLATE_NOOP("Menu", "5 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 5 degrees"),
"Shift+2"
},
// LC_EDIT_SNAP_ANGLE3
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle3"),
QT_TRANSLATE_NOOP("Menu", "15 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 15 degrees"),
"Shift+3"
},
// LC_EDIT_SNAP_ANGLE4
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle4"),
QT_TRANSLATE_NOOP("Menu", "22.5 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 22.5 degrees"),
"Shift+4"
},
// LC_EDIT_SNAP_ANGLE5
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle5"),
QT_TRANSLATE_NOOP("Menu", "30 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 30 degrees"),
"Shift+5"
},
// LC_EDIT_SNAP_ANGLE6
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle6"),
QT_TRANSLATE_NOOP("Menu", "45 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 45 degrees"),
"Shift+6"
},
// LC_EDIT_SNAP_ANGLE7
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle7"),
QT_TRANSLATE_NOOP("Menu", "60 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 60 degrees"),
"Shift+7"
},
// LC_EDIT_SNAP_ANGLE8
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle8"),
QT_TRANSLATE_NOOP("Menu", "90 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 90 degrees"),
"Shift+8"
},
// LC_EDIT_SNAP_ANGLE9
{
QT_TRANSLATE_NOOP("Action", "Edit.SnapAngle.Angle9"),
QT_TRANSLATE_NOOP("Menu", "180 Degrees"),
QT_TRANSLATE_NOOP("Status", "Snap rotations to 180 degrees"),
"Shift+9"
},
// LC_EDIT_TRANSFORM
{
QT_TRANSLATE_NOOP("Action", "Edit.Transform"),
QT_TRANSLATE_NOOP("Menu", "Transform"),
QT_TRANSLATE_NOOP("Status", "Apply transform to selected objects"),
""
},
// LC_EDIT_TRANSFORM_ABSOLUTE_TRANSLATION
{
QT_TRANSLATE_NOOP("Action", "Edit.TransformAbsoluteTranslation"),
QT_TRANSLATE_NOOP("Menu", "Absolute Translation"),
QT_TRANSLATE_NOOP("Status", "Switch to absolute translation mode when applying transforms"),
""
},
// LC_EDIT_TRANSFORM_RELATIVE_TRANSLATION
{
QT_TRANSLATE_NOOP("Action", "Edit.TransformRelativeTranslation"),
QT_TRANSLATE_NOOP("Menu", "Relative Translation"),
QT_TRANSLATE_NOOP("Status", "Switch to relative translation mode when applying transforms"),
""
},
// LC_EDIT_TRANSFORM_ABSOLUTE_ROTATION
{
QT_TRANSLATE_NOOP("Action", "Edit.TransformAbsoluteRotation"),
QT_TRANSLATE_NOOP("Menu", "Absolute Rotation"),
QT_TRANSLATE_NOOP("Status", "Switch to absolute rotation mode when applying transforms"),
""
},
// LC_EDIT_TRANSFORM_RELATIVE_ROTATION
{
QT_TRANSLATE_NOOP("Action", "Edit.TransformRelativeRotation"),
QT_TRANSLATE_NOOP("Menu", "Relative Rotation"),
QT_TRANSLATE_NOOP("Status", "Switch to relative rotation mode when applying transforms"),
""
},
// LC_EDIT_ACTION_INSERT
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Insert"),
QT_TRANSLATE_NOOP("Menu", "Insert"),
QT_TRANSLATE_NOOP("Status", "Add new pieces to the model"),
""
},
// LC_EDIT_ACTION_LIGHT
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Light"),
QT_TRANSLATE_NOOP("Menu", "Light"),
QT_TRANSLATE_NOOP("Status", "Add new omni light sources to the model"),
""
},
// LC_EDIT_ACTION_SPOTLIGHT
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Spotlight"),
QT_TRANSLATE_NOOP("Menu", "Spotlight"),
QT_TRANSLATE_NOOP("Status", "Add new spotlights to the model"),
""
},
// LC_EDIT_ACTION_CAMERA
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Camera"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Create a new camera"),
""
},
// LC_EDIT_ACTION_SELECT
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Select"),
QT_TRANSLATE_NOOP("Menu", "Select"),
QT_TRANSLATE_NOOP("Status", "Select objects (hold the CTRL key down or drag the mouse to select multiple objects)"),
""
},
// LC_EDIT_ACTION_MOVE
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Move"),
QT_TRANSLATE_NOOP("Menu", "Move"),
QT_TRANSLATE_NOOP("Status", "Move selected objects"),
""
},
// LC_EDIT_ACTION_ROTATE
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Rotate"),
QT_TRANSLATE_NOOP("Menu", "Rotate"),
QT_TRANSLATE_NOOP("Status", "Rotate selected pieces"),
""
},
// LC_EDIT_ACTION_DELETE
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Delete"),
QT_TRANSLATE_NOOP("Menu", "Delete"),
QT_TRANSLATE_NOOP("Status", "Delete objects"),
""
},
// LC_EDIT_ACTION_PAINT
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Paint"),
QT_TRANSLATE_NOOP("Menu", "Paint"),
QT_TRANSLATE_NOOP("Status", "Change piece color"),
""
},
// LC_EDIT_ACTION_ZOOM
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Zoom"),
QT_TRANSLATE_NOOP("Menu", "Zoom"),
QT_TRANSLATE_NOOP("Status", "Zoom in or out"),
""
},
// LC_EDIT_ACTION_PAN
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Pan"),
QT_TRANSLATE_NOOP("Menu", "Pan"),
QT_TRANSLATE_NOOP("Status", "Pan the current view"),
""
},
// LC_EDIT_ACTION_ROTATE_VIEW
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.RotateView"),
QT_TRANSLATE_NOOP("Menu", "Rotate View"),
QT_TRANSLATE_NOOP("Status", "Rotate the current view"),
""
},
// LC_EDIT_ACTION_ROLL
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.Roll"),
QT_TRANSLATE_NOOP("Menu", "Roll"),
QT_TRANSLATE_NOOP("Status", "Roll the current view"),
""
},
// LC_EDIT_ACTION_ZOOM_REGION
{
QT_TRANSLATE_NOOP("Action", "Edit.Tool.ZoomRegion"),
QT_TRANSLATE_NOOP("Menu", "Zoom Region"),
QT_TRANSLATE_NOOP("Status", "Zoom into a region of the screen"),
""
},
// LC_EDIT_CANCEL
{
QT_TRANSLATE_NOOP("Action", "Edit.Cancel"),
QT_TRANSLATE_NOOP("Menu", "Cancel Action"),
QT_TRANSLATE_NOOP("Status", "Cancel current mouse action"),
"Esc"
},
// LC_VIEW_PREFERENCES
{
QT_TRANSLATE_NOOP("Action", "View.Preferences"),
QT_TRANSLATE_NOOP("Menu", "P&references..."),
QT_TRANSLATE_NOOP("Status", "Change program settings"),
""
},
// LC_VIEW_ZOOM_IN
{
QT_TRANSLATE_NOOP("Action", "View.ZoomIn"),
QT_TRANSLATE_NOOP("Menu", "Zoom In"),
QT_TRANSLATE_NOOP("Status", "Zoom in"),
"+"
},
// LC_VIEW_ZOOM_OUT
{
QT_TRANSLATE_NOOP("Action", "View.ZoomOut"),
QT_TRANSLATE_NOOP("Menu", "Zoom Out"),
QT_TRANSLATE_NOOP("Status", "Zoom out"),
"-"
},
// LC_VIEW_ZOOM_EXTENTS
{
QT_TRANSLATE_NOOP("Action", "View.ZoomExtents"),
QT_TRANSLATE_NOOP("Menu", "Zoom E&xtents"),
QT_TRANSLATE_NOOP("Status", "Fit all pieces in current the view (hold the CTRL key down to zoom all views)"),
""
},
// LC_VIEW_LOOK_AT
{
QT_TRANSLATE_NOOP("Action", "View.LookAt"),
QT_TRANSLATE_NOOP("Menu", "Look At"),
QT_TRANSLATE_NOOP("Status", "Rotate view so selected pieces are at center"),
""
},
// LC_VIEW_MOVE_FORWARD
{
QT_TRANSLATE_NOOP("Action", "View.MoveForward"),
QT_TRANSLATE_NOOP("Menu", "Move Forward"),
QT_TRANSLATE_NOOP("Status", "Move the current view forward"),
""
},
// LC_VIEW_MOVE_BACKWARD
{
QT_TRANSLATE_NOOP("Action", "View.MoveBackward"),
QT_TRANSLATE_NOOP("Menu", "Move Backward"),
QT_TRANSLATE_NOOP("Status", "Move the current view backward"),
""
},
// LC_VIEW_MOVE_LEFT
{
QT_TRANSLATE_NOOP("Action", "View.MoveLeft"),
QT_TRANSLATE_NOOP("Menu", "Move Left"),
QT_TRANSLATE_NOOP("Status", "Move the current view to the left"),
""
},
// LC_VIEW_MOVE_RIGHT
{
QT_TRANSLATE_NOOP("Action", "View.MoveRight"),
QT_TRANSLATE_NOOP("Menu", "Move Right"),
QT_TRANSLATE_NOOP("Status", "Move the current view to the right"),
""
},
// LC_VIEW_MOVE_UP
{
QT_TRANSLATE_NOOP("Action", "View.MoveUp"),
QT_TRANSLATE_NOOP("Menu", "Move Up"),
QT_TRANSLATE_NOOP("Status", "Move the current view up"),
""
},
// LC_VIEW_MOVE_DOWN
{
QT_TRANSLATE_NOOP("Action", "View.MoveDown"),
QT_TRANSLATE_NOOP("Menu", "Move Down"),
QT_TRANSLATE_NOOP("Status", "Move the current view down"),
""
},
// LC_VIEW_VIEWPOINT_FRONT
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Front"),
QT_TRANSLATE_NOOP("Menu", "&Front"),
QT_TRANSLATE_NOOP("Status", "View model from the front"),
"F"
},
// LC_VIEW_VIEWPOINT_BACK
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Back"),
QT_TRANSLATE_NOOP("Menu", "&Back"),
QT_TRANSLATE_NOOP("Status", "View model from the back"),
"B"
},
// LC_VIEW_VIEWPOINT_TOP
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Top"),
QT_TRANSLATE_NOOP("Menu", "&Top"),
QT_TRANSLATE_NOOP("Status", "View model from the top"),
"T"
},
// LC_VIEW_VIEWPOINT_BOTTOM
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Bottom"),
QT_TRANSLATE_NOOP("Menu", "B&ottom"),
QT_TRANSLATE_NOOP("Status", "View model from the bottom"),
"O"
},
// LC_VIEW_VIEWPOINT_LEFT
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Left"),
QT_TRANSLATE_NOOP("Menu", "&Left"),
QT_TRANSLATE_NOOP("Status", "View model from the left"),
"L"
},
// LC_VIEW_VIEWPOINT_RIGHT
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Right"),
QT_TRANSLATE_NOOP("Menu", "&Right"),
QT_TRANSLATE_NOOP("Status", "View model from the right"),
"R"
},
// LC_VIEW_VIEWPOINT_HOME
{
QT_TRANSLATE_NOOP("Action", "View.Viewpoint.Home"),
QT_TRANSLATE_NOOP("Menu", "&Home"),
QT_TRANSLATE_NOOP("Status", "View model from the default position"),
"H"
},
// LC_VIEW_CAMERA_NONE
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.None"),
QT_TRANSLATE_NOOP("Menu", "None"),
QT_TRANSLATE_NOOP("Status", "Do not use a camera"),
""
},
// LC_VIEW_CAMERA1
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera01"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA2
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera02"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA3
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera03"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA4
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera04"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA5
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera05"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA6
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera06"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA7
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera07"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA8
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera08"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA9
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera09"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA10
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera10"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA11
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera11"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA12
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera12"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA13
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera13"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA14
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera14"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA15
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera15"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA16
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Camera16"),
QT_TRANSLATE_NOOP("Menu", "Camera"),
QT_TRANSLATE_NOOP("Status", "Use this camera"),
""
},
// LC_VIEW_CAMERA_RESET
{
QT_TRANSLATE_NOOP("Action", "View.Cameras.Reset"),
QT_TRANSLATE_NOOP("Menu", "Reset"),
QT_TRANSLATE_NOOP("Status", "Reset views to their default positions"),
""
},
// LC_VIEW_TIME_FIRST
{
QT_TRANSLATE_NOOP("Action", "View.Time.First"),
QT_TRANSLATE_NOOP("Menu", "First"),
QT_TRANSLATE_NOOP("Status", "Go to the first step of the model"),
"Alt+Up"
},
// LC_VIEW_TIME_PREVIOUS
{
QT_TRANSLATE_NOOP("Action", "View.Time.Previous"),
QT_TRANSLATE_NOOP("Menu", "Previous"),
QT_TRANSLATE_NOOP("Status", "Go to the previous step"),
"Alt+Left"
},
// LC_VIEW_TIME_NEXT
{
QT_TRANSLATE_NOOP("Action", "View.Time.Next"),
QT_TRANSLATE_NOOP("Menu", "Next"),
QT_TRANSLATE_NOOP("Status", "Go to the next step"),
"Alt+Right"
},
// LC_VIEW_TIME_LAST
{
QT_TRANSLATE_NOOP("Action", "View.Time.Last"),
QT_TRANSLATE_NOOP("Menu", "Last"),
QT_TRANSLATE_NOOP("Status", "Go to the last step of the model"),
"Alt+Down"
},
// LC_VIEW_TIME_INSERT
{
QT_TRANSLATE_NOOP("Action", "View.Time.Insert"),
QT_TRANSLATE_NOOP("Menu", "Insert Step"),
QT_TRANSLATE_NOOP("Status", "Insert new step"),
""
},
// LC_VIEW_TIME_DELETE
{
QT_TRANSLATE_NOOP("Action", "View.Time.Delete"),
QT_TRANSLATE_NOOP("Menu", "Remove Step"),
QT_TRANSLATE_NOOP("Status", "Remove current step"),
""
},
// LC_VIEW_TIME_ADD_KEYS
{
QT_TRANSLATE_NOOP("Action", "View.Time.AddKeys"),
QT_TRANSLATE_NOOP("Menu", "Add Keys"),
QT_TRANSLATE_NOOP("Status", "Toggle adding new animation keys"),
""
},
// LC_VIEW_SPLIT_HORIZONTAL
{
QT_TRANSLATE_NOOP("Action", "View.SplitHorizontal"),
QT_TRANSLATE_NOOP("Menu", "Split &Horizontal"),
QT_TRANSLATE_NOOP("Status", "Split the current view horizontally"),
""
},
// LC_VIEW_SPLIT_VERTICAL
{
QT_TRANSLATE_NOOP("Action", "View.SplitVertical"),
QT_TRANSLATE_NOOP("Menu", "Split &Vertical"),
QT_TRANSLATE_NOOP("Status", "Split the current view vertically"),
""
},
// LC_VIEW_REMOVE_VIEW
{
QT_TRANSLATE_NOOP("Action", "View.RemoveView"),
QT_TRANSLATE_NOOP("Menu", "Re&move View"),
QT_TRANSLATE_NOOP("Status", "Remove the current view"),
""
},
// LC_VIEW_RESET_VIEWS
{
QT_TRANSLATE_NOOP("Action", "View.ResetViews"),
QT_TRANSLATE_NOOP("Menu", "Rese&t Views"),
QT_TRANSLATE_NOOP("Status", "Reset all views"),
""
},
// LC_VIEW_FULLSCREEN
{
QT_TRANSLATE_NOOP("Action", "View.FullScreen"),
QT_TRANSLATE_NOOP("Menu", "&Full Screen"),
QT_TRANSLATE_NOOP("Status", "Toggle fullscreen mode"),
""
},
// LC_VIEW_CLOSE_CURRENT_TAB
{
QT_TRANSLATE_NOOP("Action", "View.CloseCurrentTab"),
QT_TRANSLATE_NOOP("Menu", "Close &Tab"),
QT_TRANSLATE_NOOP("Status", "Close current tab"),
"Ctrl+W"
},
// LC_VIEW_SHADE_WIREFRAME
{
QT_TRANSLATE_NOOP("Action", "View.Shade.Wireframe"),
QT_TRANSLATE_NOOP("Menu", "&Wireframe"),
QT_TRANSLATE_NOOP("Status", "Display the scene as wireframe"),
""
},
// LC_VIEW_SHADE_FLAT
{
QT_TRANSLATE_NOOP("Action", "View.Shade.Flat"),
QT_TRANSLATE_NOOP("Menu", "&Flat Shading"),
QT_TRANSLATE_NOOP("Status", "Display the scene without any shading or lights"),
""
},
// LC_VIEW_SHADE_DEFAULT_LIGHTS
{
QT_TRANSLATE_NOOP("Action", "View.Shade.DefaultLights"),
QT_TRANSLATE_NOOP("Menu", "&Default Lights"),
QT_TRANSLATE_NOOP("Status", "Display the scene with the default lights"),
""
},
// LC_VIEW_PROJECTION_PERSPECTIVE
{
QT_TRANSLATE_NOOP("Action", "View.Projection.Perspective"),
QT_TRANSLATE_NOOP("Menu", "&Perspective"),
QT_TRANSLATE_NOOP("Status", "Set the current camera to use a perspective projection"),
""
},
// LC_VIEW_PROJECTION_ORTHO
{
QT_TRANSLATE_NOOP("Action", "View.Projection.Orthographic"),
QT_TRANSLATE_NOOP("Menu", "&Orthographic"),
QT_TRANSLATE_NOOP("Status", "Set the current camera to use an orthographic projection"),
""
},
// LC_PIECE_INSERT
{
QT_TRANSLATE_NOOP("Action", "Piece.Insert"),
QT_TRANSLATE_NOOP("Menu", "&Insert"),
QT_TRANSLATE_NOOP("Status", "Add a new piece to the model"),
"Insert"
},
// LC_PIECE_DELETE
{
QT_TRANSLATE_NOOP("Action", "Piece.Delete"),
QT_TRANSLATE_NOOP("Menu", "&Delete"),
QT_TRANSLATE_NOOP("Status", "Delete selected objects"),
"Delete"
},
// LC_PIECE_DUPLICATE
{
QT_TRANSLATE_NOOP("Action", "Piece.Duplicate"),
QT_TRANSLATE_NOOP("Menu", "&Duplicate"),
QT_TRANSLATE_NOOP("Status", "Create a copy of the selected pieces"),
"Ctrl+D"
},
// LC_PIECE_RESET_PIVOT_POINT
{
QT_TRANSLATE_NOOP("Action", "Piece.ResetPivotPoint"),
QT_TRANSLATE_NOOP("Menu", "Reset &Pivot Point"),
QT_TRANSLATE_NOOP("Status", "Reset the pivot point of the selected pieces to their origin"),
""
},
// LC_PIECE_REMOVE_KEY_FRAMES
{
QT_TRANSLATE_NOOP("Action", "Piece.RemoveKeyFrames"),
QT_TRANSLATE_NOOP("Menu", "Remove &Key Frames"),
QT_TRANSLATE_NOOP("Status", "Remove all key frames from the selected pieces"),
""
},
// LC_PIECE_CONTROL_POINT_INSERT
{
QT_TRANSLATE_NOOP("Action", "Piece.ControlPoint.Insert"),
QT_TRANSLATE_NOOP("Menu", "Insert Control Point"),
QT_TRANSLATE_NOOP("Status", "Insert a new control point"),
""
},
// LC_PIECE_CONTROL_POINT_REMOVE
{
QT_TRANSLATE_NOOP("Action", "Piece.ControlPoint.Remove"),
QT_TRANSLATE_NOOP("Menu", "Remove Control Point"),
QT_TRANSLATE_NOOP("Status", "Remove the selected control point"),
""
},
// LC_PIECE_MOVE_PLUSX
{
QT_TRANSLATE_NOOP("Action", "Piece.Move.PlusX"),
QT_TRANSLATE_NOOP("Menu", "Move +X"),
QT_TRANSLATE_NOOP("Status", "Move selected objects along the X axis"),
"Down"
},
// LC_PIECE_MOVE_MINUSX
{
QT_TRANSLATE_NOOP("Action", "Piece.Move.MinusX"),
QT_TRANSLATE_NOOP("Menu", "Move -X"),
QT_TRANSLATE_NOOP("Status", "Move selected objects along the X axis"),
"Up"
},
// LC_PIECE_MOVE_PLUSY
{
QT_TRANSLATE_NOOP("Action", "Piece.Move.PlusY"),
QT_TRANSLATE_NOOP("Menu", "Move +Y"),
QT_TRANSLATE_NOOP("Status", "Move selected objects along the Y axis"),
"Right"
},
// LC_PIECE_MOVE_MINUSY
{
QT_TRANSLATE_NOOP("Action", "Piece.Move.MinusY"),
QT_TRANSLATE_NOOP("Menu", "Move -Y"),
QT_TRANSLATE_NOOP("Status", "Move selected objects along the Y axis"),
"Left"
},
// LC_PIECE_MOVE_PLUSZ
{
QT_TRANSLATE_NOOP("Action", "Piece.Move.PlusZ"),
QT_TRANSLATE_NOOP("Menu", "Move +Z"),
QT_TRANSLATE_NOOP("Status", "Move selected objects along the Z axis"),
"PgUp"
},
// LC_PIECE_MOVE_MINUSZ
{
QT_TRANSLATE_NOOP("Action", "Piece.Move.MinusZ"),
QT_TRANSLATE_NOOP("Menu", "Move -Z"),
QT_TRANSLATE_NOOP("Status", "Move selected objects along the Z axis"),
"PgDown"
},
// LC_PIECE_ROTATE_PLUSX
{
QT_TRANSLATE_NOOP("Action", "Piece.Rotate.PlusX"),
QT_TRANSLATE_NOOP("Menu", "Rotate +X"),
QT_TRANSLATE_NOOP("Status", "Rotate selected objects along the X axis"),
"Shift+Down"
},
// LC_PIECE_ROTATE_MINUSX
{
QT_TRANSLATE_NOOP("Action", "Piece.Rotate.MinusX"),
QT_TRANSLATE_NOOP("Menu", "Rotate -X"),
QT_TRANSLATE_NOOP("Status", "Rotate selected objects along the X axis"),
"Shift+Up"
},
// LC_PIECE_ROTATE_PLUSY
{
QT_TRANSLATE_NOOP("Action", "Piece.Rotate.PlusY"),
QT_TRANSLATE_NOOP("Menu", "Rotate +Y"),
QT_TRANSLATE_NOOP("Status", "Rotate selected objects along the Y axis"),
"Shift+Right"
},
// LC_PIECE_ROTATE_MINUSY
{
QT_TRANSLATE_NOOP("Action", "Piece.Rotate.MinusY"),
QT_TRANSLATE_NOOP("Menu", "Rotate -Y"),
QT_TRANSLATE_NOOP("Status", "Rotate selected objects along the Y axis"),
"Shift+Left"
},
// LC_PIECE_ROTATE_PLUSZ
{
QT_TRANSLATE_NOOP("Action", "Piece.Rotate.PlusZ"),
QT_TRANSLATE_NOOP("Menu", "Rotate +Z"),
QT_TRANSLATE_NOOP("Status", "Rotate selected objects along the Z axis"),
"Shift+PgUp"
},
// LC_PIECE_ROTATE_MINUSZ
{
QT_TRANSLATE_NOOP("Action", "Piece.Rotate.MinusZ"),
QT_TRANSLATE_NOOP("Menu", "Rotate -Z"),
QT_TRANSLATE_NOOP("Status", "Rotate selected objects along the Z axis"),
"Shift+PgDown"
},
// LC_PIECE_MINIFIG_WIZARD
{
QT_TRANSLATE_NOOP("Action", "Piece.MinifigWizard"),
QT_TRANSLATE_NOOP("Menu", "Minifig &Wizard..."),
QT_TRANSLATE_NOOP("Status", "Add a new minifig to the model"),
""
},
// LC_PIECE_ARRAY
{
QT_TRANSLATE_NOOP("Action", "Piece.Array"),
QT_TRANSLATE_NOOP("Menu", "A&rray..."),
QT_TRANSLATE_NOOP("Status", "Make copies of the selected pieces"),
""
},
// LC_PIECE_VIEW_SELECTED_MODEL
{
QT_TRANSLATE_NOOP("Action", "Piece.ViewSelectedModel"),
QT_TRANSLATE_NOOP("Menu", "Open Selected Model"),
QT_TRANSLATE_NOOP("Status", "Open the model referenced by the selected piece in a new tab"),
""
},
// LC_PIECE_MOVE_SELECTION_TO_MODEL
{
QT_TRANSLATE_NOOP("Action", "Piece.MoveSelectionToModel"),
QT_TRANSLATE_NOOP("Menu", "Move to New Model..."),
QT_TRANSLATE_NOOP("Status", "Move the selected pieces to a new model and replace them with a reference to the model"),
""
},
// LC_PIECE_INLINE_SELECTED_MODELS
{
QT_TRANSLATE_NOOP("Action", "Piece.InlineSelectedModels"),
QT_TRANSLATE_NOOP("Menu", "Inline Selected Models"),
QT_TRANSLATE_NOOP("Status", "Insert the contents of the selected model references into the current model"),
""
},
// LC_PIECE_EDIT_SELECTED_SUBMODEL
{
QT_TRANSLATE_NOOP("Action", "Piece.EditSelectedSubmodel"),
QT_TRANSLATE_NOOP("Menu", "Edit Selected Submodel"),
QT_TRANSLATE_NOOP("Status", "Edit the currently selected submodel in-place"),
""
},
// LC_PIECE_EDIT_END_SUBMODEL
{
QT_TRANSLATE_NOOP("Action", "Piece.EditEndSubmodel"),
QT_TRANSLATE_NOOP("Menu", "End Submodel Editing"),
QT_TRANSLATE_NOOP("Status", "End in-place submodel editing"),
""
},
// LC_PIECE_GROUP
{
QT_TRANSLATE_NOOP("Action", "Piece.Group"),
QT_TRANSLATE_NOOP("Menu", "&Group..."),
QT_TRANSLATE_NOOP("Status", "Group selected pieces together"),
"Ctrl+G"
},
// LC_PIECE_UNGROUP
{
QT_TRANSLATE_NOOP("Action", "Piece.Ungroup"),
QT_TRANSLATE_NOOP("Menu", "&Ungroup"),
QT_TRANSLATE_NOOP("Status", "Ungroup selected group"),
"Ctrl+U"
},
// LC_PIECE_GROUP_ADD
{
QT_TRANSLATE_NOOP("Action", "Piece.GroupAdd"),
QT_TRANSLATE_NOOP("Menu", "&Add to Group"),
QT_TRANSLATE_NOOP("Status", "Add focused piece to selected group"),
""
},
// LC_PIECE_GROUP_REMOVE
{
QT_TRANSLATE_NOOP("Action", "Piece.GroupRemove"),
QT_TRANSLATE_NOOP("Menu", "Re&move from Group"),
QT_TRANSLATE_NOOP("Status", "Remove focused piece from group"),
""
},
// LC_PIECE_GROUP_EDIT
{
QT_TRANSLATE_NOOP("Action", "Piece.GroupEdit"),
QT_TRANSLATE_NOOP("Menu", "&Edit Groups..."),
QT_TRANSLATE_NOOP("Status", "Edit groups"),
""
},
// LC_PIECE_HIDE_SELECTED
{
QT_TRANSLATE_NOOP("Action", "Piece.HideSelected"),
QT_TRANSLATE_NOOP("Menu", "&Hide Selected"),
QT_TRANSLATE_NOOP("Status", "Hide selected objects"),
"Ctrl+H"
},
// LC_PIECE_HIDE_UNSELECTED
{
QT_TRANSLATE_NOOP("Action", "Piece.HideUnselected"),
QT_TRANSLATE_NOOP("Menu", "Hide &Unselected"),
QT_TRANSLATE_NOOP("Status", "Hide objects that are not selected"),
""
},
// LC_PIECE_UNHIDE_SELECTED
{
QT_TRANSLATE_NOOP("Action", "Piece.UnhideSelected"),
QT_TRANSLATE_NOOP("Menu", "&Unhide Selected"),
QT_TRANSLATE_NOOP("Status", "Show hidden objects that are selected"),
""
},
// LC_PIECE_UNHIDE_ALL
{
QT_TRANSLATE_NOOP("Action", "Piece.UnhideAll"),
QT_TRANSLATE_NOOP("Menu", "U&nhide All"),
QT_TRANSLATE_NOOP("Status", "Show all hidden objects"),
""
},
// LC_PIECE_SHOW_EARLIER
{
QT_TRANSLATE_NOOP("Action", "Piece.ShowEarlier"),
QT_TRANSLATE_NOOP("Menu", "Show Earlier"),
QT_TRANSLATE_NOOP("Status", "Show selected pieces one step earlier"),
""
},
// LC_PIECE_SHOW_LATER
{
QT_TRANSLATE_NOOP("Action", "Piece.ShowLater"),
QT_TRANSLATE_NOOP("Menu", "Show Later"),
QT_TRANSLATE_NOOP("Status", "Show selected pieces one step later"),
""
},
// LC_MODEL_NEW
{
QT_TRANSLATE_NOOP("Action", "Model.New"),
QT_TRANSLATE_NOOP("Menu", "New Submodel..."),
QT_TRANSLATE_NOOP("Status", "Create a new submodel"),
""
},
// LC_MODEL_PROPERTIES
{
QT_TRANSLATE_NOOP("Action", "Model.Properties"),
QT_TRANSLATE_NOOP("Menu", "Prope&rties..."),
QT_TRANSLATE_NOOP("Status", "Display the properties of the current submodel"),
""
},
// LC_MODEL_LIST
{
QT_TRANSLATE_NOOP("Action", "Model.List"),
QT_TRANSLATE_NOOP("Menu", "Submodels..."),
QT_TRANSLATE_NOOP("Status", "Show a list of all submodels"),
""
},
// LC_MODEL_01
{
QT_TRANSLATE_NOOP("Action", "Model.Model01"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_02
{
QT_TRANSLATE_NOOP("Action", "Model.Model02"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_03
{
QT_TRANSLATE_NOOP("Action", "Model.Model03"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_04
{
QT_TRANSLATE_NOOP("Action", "Model.Model04"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_05
{
QT_TRANSLATE_NOOP("Action", "Model.Model05"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_06
{
QT_TRANSLATE_NOOP("Action", "Model.Model06"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_07
{
QT_TRANSLATE_NOOP("Action", "Model.Model07"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_08
{
QT_TRANSLATE_NOOP("Action", "Model.Model08"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_09
{
QT_TRANSLATE_NOOP("Action", "Model.Model09"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_10
{
QT_TRANSLATE_NOOP("Action", "Model.Model10"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_11
{
QT_TRANSLATE_NOOP("Action", "Model.Model11"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_12
{
QT_TRANSLATE_NOOP("Action", "Model.Model12"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_13
{
QT_TRANSLATE_NOOP("Action", "Model.Model13"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_14
{
QT_TRANSLATE_NOOP("Action", "Model.Model14"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_15
{
QT_TRANSLATE_NOOP("Action", "Model.Model15"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_16
{
QT_TRANSLATE_NOOP("Action", "Model.Model16"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_17
{
QT_TRANSLATE_NOOP("Action", "Model.Model17"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_18
{
QT_TRANSLATE_NOOP("Action", "Model.Model18"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_19
{
QT_TRANSLATE_NOOP("Action", "Model.Model19"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_20
{
QT_TRANSLATE_NOOP("Action", "Model.Model20"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_21
{
QT_TRANSLATE_NOOP("Action", "Model.Model21"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_22
{
QT_TRANSLATE_NOOP("Action", "Model.Model22"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_23
{
QT_TRANSLATE_NOOP("Action", "Model.Model23"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_MODEL_24
{
QT_TRANSLATE_NOOP("Action", "Model.Model24"),
QT_TRANSLATE_NOOP("Menu", ""),
QT_TRANSLATE_NOOP("Status", "Switch to this submodel"),
""
},
// LC_HELP_HOMEPAGE
{
QT_TRANSLATE_NOOP("Action", "Help.HomePage"),
QT_TRANSLATE_NOOP("Menu", "LeoCAD &Home Page"),
QT_TRANSLATE_NOOP("Status", "Open LeoCAD's home page on the internet using your default web browser"),
""
},
// LC_HELP_BUG_REPORT
{
QT_TRANSLATE_NOOP("Action", "Help.BugReport"),
QT_TRANSLATE_NOOP("Menu", "Report a Bug"),
QT_TRANSLATE_NOOP("Status", "Open LeoCAD's bug report form on your default web browser"),
""
},
// LC_HELP_UPDATES
{
QT_TRANSLATE_NOOP("Action", "Help.Updates"),
QT_TRANSLATE_NOOP("Menu", "Check for &Updates..."),
QT_TRANSLATE_NOOP("Status", "Check if a newer LeoCAD version or parts library has been released"),
""
},
// LC_HELP_ABOUT
{
QT_TRANSLATE_NOOP("Action", "Help.About"),
QT_TRANSLATE_NOOP("Menu", "&About..."),
QT_TRANSLATE_NOOP("Status", "Display program version number and system information"),
""
},
// LC_TIMELINE_INSERT
{
"",
QT_TRANSLATE_NOOP("Menu", "Insert Step"),
QT_TRANSLATE_NOOP("Status", "Insert new step"),
""
},
// LC_TIMELINE_DELETE
{
"",
QT_TRANSLATE_NOOP("Menu", "Remove Step"),
QT_TRANSLATE_NOOP("Status", "Remove current step"),
""
},
// LC_TIMELINE_MOVE_SELECTION
{
"",
QT_TRANSLATE_NOOP("Menu", "Move Selection Here"),
QT_TRANSLATE_NOOP("Status", "Move the selected parts into this step"),
""
},
// LC_TIMELINE_SET_CURRENT
{
"",
QT_TRANSLATE_NOOP("Menu", "Set Current Step"),
QT_TRANSLATE_NOOP("Status", "View the model at this point in the timeline"),
""
}
};
static_assert(sizeof(gCommands)/sizeof(gCommands[0]) == LC_NUM_COMMANDS, "Array size mismatch.");
const char* gToolNames[LC_NUM_TOOLS] =
{
QT_TRANSLATE_NOOP("Mouse", "NewPiece"), // LC_TOOL_INSERT
QT_TRANSLATE_NOOP("Mouse", "NewPointLight"), // LC_TOOL_LIGHT
QT_TRANSLATE_NOOP("Mouse", "NewSpotLight"), // LC_TOOL_SPOTLIGHT
QT_TRANSLATE_NOOP("Mouse", "NewCamera"), // LC_TOOL_CAMERA
QT_TRANSLATE_NOOP("Mouse", "Select"), // LC_TOOL_SELECT
QT_TRANSLATE_NOOP("Mouse", "Move"), // LC_TOOL_MOVE
QT_TRANSLATE_NOOP("Mouse", "Rotate"), // LC_TOOL_ROTATE
QT_TRANSLATE_NOOP("Mouse", "Delete"), // LC_TOOL_ERASER
QT_TRANSLATE_NOOP("Mouse", "Paint"), // LC_TOOL_PAINT
QT_TRANSLATE_NOOP("Mouse", "Zoom"), // LC_TOOL_ZOOM
QT_TRANSLATE_NOOP("Mouse", "Pan"), // LC_TOOL_PAN
QT_TRANSLATE_NOOP("Mouse", "Orbit"), // LC_TOOL_ROTATE_VIEW
QT_TRANSLATE_NOOP("Mouse", "Roll"), // LC_TOOL_ROLL
QT_TRANSLATE_NOOP("Mouse", "ZoomRegion") // LC_TOOL_ZOOM_REGION
};
static_assert(LC_ARRAY_COUNT(gToolNames) == LC_NUM_TOOLS, "Array size mismatch.");