Added original signal names option
+Added an option to show original (internal) signal names
This commit is contained in:
parent
a624e092eb
commit
7ffdf87409
@ -7,6 +7,7 @@ export default function SettingsManager(props) {
|
|||||||
const [ trackColorMode, setTrackColorMode ] = useState(Constants.trackColorModeDefault);
|
const [ trackColorMode, setTrackColorMode ] = useState(Constants.trackColorModeDefault);
|
||||||
const [ showTrackHoverInfo, setShowTrackHoverInfo ] = useState(true);
|
const [ showTrackHoverInfo, setShowTrackHoverInfo ] = useState(true);
|
||||||
const [ extendedSignals, setExtendedSignals ] = useState(true);
|
const [ extendedSignals, setExtendedSignals ] = useState(true);
|
||||||
|
const [ originalSignalNames, setOriginalSignalNames ] = useState(false);
|
||||||
const [ settingsLoaded, setSettingsLoaded ] = useState(false);
|
const [ settingsLoaded, setSettingsLoaded ] = useState(false);
|
||||||
|
|
||||||
const loadLayersSettings = useCallback(() => {
|
const loadLayersSettings = useCallback(() => {
|
||||||
@ -29,6 +30,7 @@ export default function SettingsManager(props) {
|
|||||||
showTrackHoverInfo, setShowTrackHoverInfo,
|
showTrackHoverInfo, setShowTrackHoverInfo,
|
||||||
trackColorMode, setTrackColorMode,
|
trackColorMode, setTrackColorMode,
|
||||||
extendedSignals, setExtendedSignals,
|
extendedSignals, setExtendedSignals,
|
||||||
|
originalSignalNames, setOriginalSignalNames
|
||||||
}}>
|
}}>
|
||||||
{ props.children }
|
{ props.children }
|
||||||
</SettingsContext.Provider>
|
</SettingsContext.Provider>
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import AlwaysUpText from '../text/AlwaysUpText';
|
|||||||
import C from '../../../helpers/extendedSignalsConstants';
|
import C from '../../../helpers/extendedSignalsConstants';
|
||||||
|
|
||||||
export default function SignalExtendedRenderer(props) {
|
export default function SignalExtendedRenderer(props) {
|
||||||
const { object } = props;
|
const { object, showOriginalName } = props;
|
||||||
const [x, y] = object.pos.toSVGCoords();
|
const [x, y] = object.pos.toSVGCoords();
|
||||||
|
|
||||||
const baseRot = object.rot.y;
|
const baseRot = object.rot.y;
|
||||||
@ -18,23 +18,24 @@ export default function SignalExtendedRenderer(props) {
|
|||||||
return (
|
return (
|
||||||
<g className="extended-signal" transform={`translate(${x}, ${y}) rotate(${rot})`}>
|
<g className="extended-signal" transform={`translate(${x}, ${y}) rotate(${rot})`}>
|
||||||
<SignalIcon object={object} pointsData={pointsData} />
|
<SignalIcon object={object} pointsData={pointsData} />
|
||||||
<SignalNameText object={object} rot={rot} pointsData={pointsData} />
|
<SignalNameText object={object} rot={rot} pointsData={pointsData} showOriginalName={showOriginalName} />
|
||||||
</g>
|
</g>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function SignalNameText(props) {
|
function SignalNameText(props) {
|
||||||
const {object, rot, pointsData} = props;
|
const {object, rot, pointsData, showOriginalName} = props;
|
||||||
|
|
||||||
const isOverhead = object.signal_elements.isOverhead();
|
const isOverhead = object.signal_elements.isOverhead();
|
||||||
const baseY = isOverhead ? pointsData.headOffsetY + pointsData.polePoints.end : 0;
|
const baseY = isOverhead ? pointsData.headOffsetY + pointsData.polePoints.end : 0;
|
||||||
|
const name = showOriginalName ? object.name : object.getPrintableSignalName();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AlwaysUpText
|
<AlwaysUpText
|
||||||
baseRot={rot}
|
baseRot={rot}
|
||||||
additionalRot={-90}
|
additionalRot={-90}
|
||||||
offsetY={baseY + C.NAME_TEXT_OFFSET}
|
offsetY={baseY + C.NAME_TEXT_OFFSET}
|
||||||
text={object.getPrintableSignalName()}
|
text={name}
|
||||||
reverseAnchor={true}
|
reverseAnchor={true}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -5,12 +5,12 @@ import SettingsContext from '../../../contexts/SettingsContext';
|
|||||||
|
|
||||||
export default function SignalRenderer(props) {
|
export default function SignalRenderer(props) {
|
||||||
const { object } = props;
|
const { object } = props;
|
||||||
const { extendedSignals } = useContext(SettingsContext);
|
const { extendedSignals, originalSignalNames: showOriginalName } = useContext(SettingsContext);
|
||||||
|
|
||||||
if (extendedSignals && object.signal_elements) {
|
if (extendedSignals && object.signal_elements) {
|
||||||
return <MemoizedSignalExtendedRenderer object={object} />;
|
return <MemoizedSignalExtendedRenderer object={object} showOriginalName={showOriginalName} />;
|
||||||
} else {
|
} else {
|
||||||
return <MemoizedSignalStandardRenderer object={object} />;
|
return <MemoizedSignalStandardRenderer object={object} showOriginalName={showOriginalName} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,9 @@ import { ReactSVG } from "react-svg";
|
|||||||
import AlwaysUpText from "../text/AlwaysUpText";
|
import AlwaysUpText from "../text/AlwaysUpText";
|
||||||
|
|
||||||
export default function SignalStandardRenderer(props) {
|
export default function SignalStandardRenderer(props) {
|
||||||
const { object } = props;
|
const { object, showOriginalName } = props;
|
||||||
const [x, y] = object.pos.toSVGCoords();
|
const [x, y] = object.pos.toSVGCoords();
|
||||||
|
const name = showOriginalName ? object.name : object.getPrintableSignalName();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<g className="signal" transform={`translate(${x}, ${y}) rotate(${object.rot.y})`}>
|
<g className="signal" transform={`translate(${x}, ${y}) rotate(${object.rot.y})`}>
|
||||||
@ -22,7 +23,7 @@ export default function SignalStandardRenderer(props) {
|
|||||||
baseRot={object.rot.y}
|
baseRot={object.rot.y}
|
||||||
additionalRot={-90}
|
additionalRot={-90}
|
||||||
offsetY={-2}
|
offsetY={-2}
|
||||||
text={object.getPrintableSignalName()}
|
text={name}
|
||||||
/>
|
/>
|
||||||
</g>
|
</g>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import ExtendedSignalsCheckbox from "./ExtendedSignalsCheckbox";
|
import ExtendedSignalsCheckbox from "./ExtendedSignalsCheckbox";
|
||||||
|
import OriginalSignalNamesCheckbox from "./OriginalSignalNamesCheckbox";
|
||||||
import ShowTrackHoverInfoCheckbox from "./ShowTrackHoverInfoCheckbox";
|
import ShowTrackHoverInfoCheckbox from "./ShowTrackHoverInfoCheckbox";
|
||||||
import TrackColorMode from "./track-color-mode/TrackColorMode";
|
import TrackColorMode from "./track-color-mode/TrackColorMode";
|
||||||
|
|
||||||
@ -9,6 +10,7 @@ export default function LayerOptionsMenu() {
|
|||||||
<div className="layer-options-menu-checkboxes">
|
<div className="layer-options-menu-checkboxes">
|
||||||
<ShowTrackHoverInfoCheckbox />
|
<ShowTrackHoverInfoCheckbox />
|
||||||
<ExtendedSignalsCheckbox />
|
<ExtendedSignalsCheckbox />
|
||||||
|
<OriginalSignalNamesCheckbox />
|
||||||
</div>
|
</div>
|
||||||
<TrackColorMode />
|
<TrackColorMode />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
26
src/components/sidemenu/OriginalSignalNamesCheckbox.js
Normal file
26
src/components/sidemenu/OriginalSignalNamesCheckbox.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { useContext } from "react";
|
||||||
|
import SettingsContext from "../../contexts/SettingsContext";
|
||||||
|
|
||||||
|
export default function OriginalSignalNamesCheckbox(props) {
|
||||||
|
const { originalSignalNames, setOriginalSignalNames, layers } = useContext(SettingsContext);
|
||||||
|
|
||||||
|
const handleChange = (event) => {
|
||||||
|
setOriginalSignalNames(event.target.checked);
|
||||||
|
};
|
||||||
|
|
||||||
|
let divClass = 'original-signal-names-checkbox';
|
||||||
|
if (!layers['signals']) divClass += ' hidden';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={divClass}>
|
||||||
|
<label>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={originalSignalNames}
|
||||||
|
onChange={handleChange}
|
||||||
|
/>
|
||||||
|
Original signal names
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -80,7 +80,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.extended-signals-checkbox input,
|
.extended-signals-checkbox input,
|
||||||
.show-track-hover-info-checkbox input {
|
.show-track-hover-info-checkbox input,
|
||||||
|
.original-signal-names-checkbox input {
|
||||||
margin-right: 0.5em;
|
margin-right: 0.5em;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user