Skip to content

Commit

Permalink
Add manual path adding to python envs list
Browse files Browse the repository at this point in the history
  • Loading branch information
e-halinen committed Oct 14, 2024
1 parent 2564e63 commit 0cae73a
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 31 deletions.
10 changes: 10 additions & 0 deletions src/renderer/components/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ const App = ({helmetUIVersion, versions, searchEMMEPython}) => {
}
}

const _addToEMMEPythonEnvs = (path) => {
const pythonEnvs = emmePythonEnvs.slice();
const foundPath = pythonEnvs.indexOf(path);
if (foundPath === -1) {
pythonEnvs.push(path);
_setEMMEPythonEnvs(pythonEnvs);
}
}

const _setHelmetScriptsPath = (newPath) => {
// Cannot use state variable since it'd be undefined at times
const pythonPath = globalSettingsStore.current.get('emme_python_path');
Expand Down Expand Up @@ -185,6 +194,7 @@ const App = ({helmetUIVersion, versions, searchEMMEPython}) => {
closeSettings={() => setSettingsOpen(false)}
setEMMEPythonPath={_setEMMEPythonPath}
setEMMEPythonEnvs={_setEMMEPythonEnvs}
addToEMMEPythonEnvs={_addToEMMEPythonEnvs}
removeFromEMMEPythonEnvs={_removeFromEMMEPythonEnvs}
setHelmetScriptsPath={_setHelmetScriptsPath}
setProjectPath={_setProjectPath}
Expand Down
15 changes: 13 additions & 2 deletions src/renderer/components/Settings/Settings.css
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
background: #ffffff;
box-sizing: border-box;
border-radius: 5px;
font-size: 16px;
font-size: 12px;
font-weight: 325;
color: #333333;
white-space: nowrap;
Expand All @@ -123,7 +123,18 @@

.Settings__env_option_btn {
width: 4rem;
height: 2.5rem;
height: 2rem;
border-radius: 5px;
margin-left: 1.5rem;
font-size: 12px;
}

.Settings__env_btn_disabled {
color: #888888;
}

.Settings__env_option_divider {
width: 100%;
height: 1rem;
border-bottom: 1px solid #CCCCCC;
}
58 changes: 30 additions & 28 deletions src/renderer/components/Settings/Settings.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,24 @@ import path from "path";
const {dialog} = require('@electron/remote');
import versions from '../versions';
import { listEMMEPythonPaths } from './search_emme_pythonpath';
import classNames from 'classnames';

const EnvironmentOption = ({
envPath, isSelected, setPath, removePath,
}) => {
return (
<div className="Settings__environment_option">
<p>{envPath}</p>
<button className="Settings__env_option_btn" disabled={isSelected} onClick={() => setPath(envPath)}>Valitse</button>
<button className={classNames('Settings__env_option_btn', { 'Settings__env_btn_disabled': isSelected})} disabled={isSelected} onClick={() => setPath(envPath)}>{isSelected ? 'Käytössä' : 'Valitse'}</button>
<button className="Settings__env_option_btn" onClick={() => removePath(envPath)}>Poista</button>
</div>
)
}

const PathOptionDivider = () => <div className='Settings__env_option_divider' />

const Settings = ({
emmePythonPath, emmePythonEnvs, setEMMEPythonPath, setEMMEPythonEnvs, removeFromEMMEPythonEnvs,
emmePythonPath, emmePythonEnvs, setEMMEPythonPath, setEMMEPythonEnvs, addToEMMEPythonEnvs, removeFromEMMEPythonEnvs,
helmetScriptsPath, setHelmetScriptsPath, dlHelmetScriptsVersion, isDownloadingHelmetScripts,
projectPath, setProjectPath,
basedataPath, setBasedataPath,
Expand All @@ -36,34 +39,32 @@ const Settings = ({

<div className="Settings__dialog-heading">Projektin asetukset</div>
<div className="Settings__dialog-input-group">
<span className="Settings__pseudo-label">Valittu Python-ympäristö: {emmePythonPath}</span>
<span className="Settings__pseudo-label">Käytettävät Python-ympäristöt:</span>
{ emmePythonEnvs.map(env => { return <EnvironmentOption envPath={env} isSelected={emmePythonPath === env}
{ emmePythonEnvs.map((env, index) => { return (
<div>
<EnvironmentOption envPath={env} isSelected={emmePythonPath === env}
setPath={setEMMEPythonPath}
removePath={removeFromEMMEPythonEnvs} />}) }
<br/>
<label className="Settings__pseudo-file-select" htmlFor="hidden-input-emme-python-path" title={emmePythonPath}>
{emmePythonPath ? path.basename(emmePythonPath) : "Valitse.."}
</label>
<input className="Settings__hidden-input"
id="hidden-input-emme-python-path"
type="text"
onClick={()=>{
dialog.showOpenDialog({
defaultPath: emmePythonPath ? emmePythonPath : path.resolve('/'),
filters: [
{ name: 'Executable', extensions: ['exe'] },
{ name: 'All Files', extensions: ['*'] }
],
properties: ['openFile']
}).then((e)=>{
if (!e.canceled) {
setEMMEPythonPath(e.filePaths[0]);
}
})
}}
/>

removePath={removeFromEMMEPythonEnvs}/>
{ index < emmePythonEnvs.length && <PathOptionDivider/> }
</div>)})}
<button className="Settings__input-btn"
onClick={()=>{
dialog.showOpenDialog({
defaultPath: emmePythonPath ? emmePythonPath : path.resolve('/'),
filters: [
{ name: 'Executable', extensions: ['exe'] },
{ name: 'All Files', extensions: ['*'] }
],
properties: ['openFile']
}).then((e)=>{
if (!e.canceled) {
addToEMMEPythonEnvs(e.filePaths[0]);
}
})
}}
>
Lisää Python-ympäristö
</button>
<button className="Settings__input-btn"
onClick={(e) => {
const [found, pythonPaths] = listEMMEPythonPaths();
Expand All @@ -77,6 +78,7 @@ const Settings = ({
Etsi Python-ympäristöjä
</button>
</div>
<br/>
<div className="Settings__dialog-input-group">
<span className="Settings__pseudo-label">Helmet-model-system</span>
{isDownloadingHelmetScripts ?
Expand Down
1 change: 0 additions & 1 deletion src/renderer/search_emme_pythonpath.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ const listEMMEPythonPaths = () => {
`\\Program Files (x86)\\${commonEmmePath}\\${pythonPathPostfix}`,
`\\${commonEmmePath}\\${pythonPathPostfix}`,
`usr/bin/python${pythonVersion.major}`, // mainly for developers on Mac & Linux
`Users/erkki/pyyttoni/testi/testikansio/testiloremipsum2.34.5`,
];
const allPathCombinations = drives.reduce(
(accumulator, d) => {
Expand Down

0 comments on commit 0cae73a

Please sign in to comment.