Skip to content

Commit 0cae73a

Browse files
committed
Add manual path adding to python envs list
1 parent 2564e63 commit 0cae73a

File tree

4 files changed

+53
-31
lines changed

4 files changed

+53
-31
lines changed

src/renderer/components/App.jsx

+10
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ const App = ({helmetUIVersion, versions, searchEMMEPython}) => {
4444
}
4545
}
4646

47+
const _addToEMMEPythonEnvs = (path) => {
48+
const pythonEnvs = emmePythonEnvs.slice();
49+
const foundPath = pythonEnvs.indexOf(path);
50+
if (foundPath === -1) {
51+
pythonEnvs.push(path);
52+
_setEMMEPythonEnvs(pythonEnvs);
53+
}
54+
}
55+
4756
const _setHelmetScriptsPath = (newPath) => {
4857
// Cannot use state variable since it'd be undefined at times
4958
const pythonPath = globalSettingsStore.current.get('emme_python_path');
@@ -185,6 +194,7 @@ const App = ({helmetUIVersion, versions, searchEMMEPython}) => {
185194
closeSettings={() => setSettingsOpen(false)}
186195
setEMMEPythonPath={_setEMMEPythonPath}
187196
setEMMEPythonEnvs={_setEMMEPythonEnvs}
197+
addToEMMEPythonEnvs={_addToEMMEPythonEnvs}
188198
removeFromEMMEPythonEnvs={_removeFromEMMEPythonEnvs}
189199
setHelmetScriptsPath={_setHelmetScriptsPath}
190200
setProjectPath={_setProjectPath}

src/renderer/components/Settings/Settings.css

+13-2
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
background: #ffffff;
109109
box-sizing: border-box;
110110
border-radius: 5px;
111-
font-size: 16px;
111+
font-size: 12px;
112112
font-weight: 325;
113113
color: #333333;
114114
white-space: nowrap;
@@ -123,7 +123,18 @@
123123

124124
.Settings__env_option_btn {
125125
width: 4rem;
126-
height: 2.5rem;
126+
height: 2rem;
127127
border-radius: 5px;
128128
margin-left: 1.5rem;
129+
font-size: 12px;
130+
}
131+
132+
.Settings__env_btn_disabled {
133+
color: #888888;
134+
}
135+
136+
.Settings__env_option_divider {
137+
width: 100%;
138+
height: 1rem;
139+
border-bottom: 1px solid #CCCCCC;
129140
}

src/renderer/components/Settings/Settings.jsx

+30-28
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,24 @@ import path from "path";
33
const {dialog} = require('@electron/remote');
44
import versions from '../versions';
55
import { listEMMEPythonPaths } from './search_emme_pythonpath';
6+
import classNames from 'classnames';
67

78
const EnvironmentOption = ({
89
envPath, isSelected, setPath, removePath,
910
}) => {
1011
return (
1112
<div className="Settings__environment_option">
1213
<p>{envPath}</p>
13-
<button className="Settings__env_option_btn" disabled={isSelected} onClick={() => setPath(envPath)}>Valitse</button>
14+
<button className={classNames('Settings__env_option_btn', { 'Settings__env_btn_disabled': isSelected})} disabled={isSelected} onClick={() => setPath(envPath)}>{isSelected ? 'Käytössä' : 'Valitse'}</button>
1415
<button className="Settings__env_option_btn" onClick={() => removePath(envPath)}>Poista</button>
1516
</div>
1617
)
1718
}
1819

20+
const PathOptionDivider = () => <div className='Settings__env_option_divider' />
21+
1922
const Settings = ({
20-
emmePythonPath, emmePythonEnvs, setEMMEPythonPath, setEMMEPythonEnvs, removeFromEMMEPythonEnvs,
23+
emmePythonPath, emmePythonEnvs, setEMMEPythonPath, setEMMEPythonEnvs, addToEMMEPythonEnvs, removeFromEMMEPythonEnvs,
2124
helmetScriptsPath, setHelmetScriptsPath, dlHelmetScriptsVersion, isDownloadingHelmetScripts,
2225
projectPath, setProjectPath,
2326
basedataPath, setBasedataPath,
@@ -36,34 +39,32 @@ const Settings = ({
3639

3740
<div className="Settings__dialog-heading">Projektin asetukset</div>
3841
<div className="Settings__dialog-input-group">
39-
<span className="Settings__pseudo-label">Valittu Python-ympäristö: {emmePythonPath}</span>
4042
<span className="Settings__pseudo-label">Käytettävät Python-ympäristöt:</span>
41-
{ emmePythonEnvs.map(env => { return <EnvironmentOption envPath={env} isSelected={emmePythonPath === env}
43+
{ emmePythonEnvs.map((env, index) => { return (
44+
<div>
45+
<EnvironmentOption envPath={env} isSelected={emmePythonPath === env}
4246
setPath={setEMMEPythonPath}
43-
removePath={removeFromEMMEPythonEnvs} />}) }
44-
<br/>
45-
<label className="Settings__pseudo-file-select" htmlFor="hidden-input-emme-python-path" title={emmePythonPath}>
46-
{emmePythonPath ? path.basename(emmePythonPath) : "Valitse.."}
47-
</label>
48-
<input className="Settings__hidden-input"
49-
id="hidden-input-emme-python-path"
50-
type="text"
51-
onClick={()=>{
52-
dialog.showOpenDialog({
53-
defaultPath: emmePythonPath ? emmePythonPath : path.resolve('/'),
54-
filters: [
55-
{ name: 'Executable', extensions: ['exe'] },
56-
{ name: 'All Files', extensions: ['*'] }
57-
],
58-
properties: ['openFile']
59-
}).then((e)=>{
60-
if (!e.canceled) {
61-
setEMMEPythonPath(e.filePaths[0]);
62-
}
63-
})
64-
}}
65-
/>
66-
47+
removePath={removeFromEMMEPythonEnvs}/>
48+
{ index < emmePythonEnvs.length && <PathOptionDivider/> }
49+
</div>)})}
50+
<button className="Settings__input-btn"
51+
onClick={()=>{
52+
dialog.showOpenDialog({
53+
defaultPath: emmePythonPath ? emmePythonPath : path.resolve('/'),
54+
filters: [
55+
{ name: 'Executable', extensions: ['exe'] },
56+
{ name: 'All Files', extensions: ['*'] }
57+
],
58+
properties: ['openFile']
59+
}).then((e)=>{
60+
if (!e.canceled) {
61+
addToEMMEPythonEnvs(e.filePaths[0]);
62+
}
63+
})
64+
}}
65+
>
66+
Lisää Python-ympäristö
67+
</button>
6768
<button className="Settings__input-btn"
6869
onClick={(e) => {
6970
const [found, pythonPaths] = listEMMEPythonPaths();
@@ -77,6 +78,7 @@ const Settings = ({
7778
Etsi Python-ympäristöjä
7879
</button>
7980
</div>
81+
<br/>
8082
<div className="Settings__dialog-input-group">
8183
<span className="Settings__pseudo-label">Helmet-model-system</span>
8284
{isDownloadingHelmetScripts ?

src/renderer/search_emme_pythonpath.js

-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ const listEMMEPythonPaths = () => {
6363
`\\Program Files (x86)\\${commonEmmePath}\\${pythonPathPostfix}`,
6464
`\\${commonEmmePath}\\${pythonPathPostfix}`,
6565
`usr/bin/python${pythonVersion.major}`, // mainly for developers on Mac & Linux
66-
`Users/erkki/pyyttoni/testi/testikansio/testiloremipsum2.34.5`,
6766
];
6867
const allPathCombinations = drives.reduce(
6968
(accumulator, d) => {

0 commit comments

Comments
 (0)