|
@@ -22,6 +22,7 @@ export default function SettingsView() {
|
|
|
const [lweStatus, setLweStatus] = useState<LweStatus | null>(null)
|
|
const [lweStatus, setLweStatus] = useState<LweStatus | null>(null)
|
|
|
const [lweRepoUrl, setLweRepoUrl] = useState('')
|
|
const [lweRepoUrl, setLweRepoUrl] = useState('')
|
|
|
const [lweRepoBranch, setLweRepoBranch] = useState('')
|
|
const [lweRepoBranch, setLweRepoBranch] = useState('')
|
|
|
|
|
+ const [lweCmakeArgs, setLweCmakeArgs] = useState('')
|
|
|
const [defaultLweRepo, setDefaultLweRepo] = useState('')
|
|
const [defaultLweRepo, setDefaultLweRepo] = useState('')
|
|
|
const [repoSaved, setRepoSaved] = useState(false)
|
|
const [repoSaved, setRepoSaved] = useState(false)
|
|
|
const [lweInstalling, setLweInstalling] = useState(false)
|
|
const [lweInstalling, setLweInstalling] = useState(false)
|
|
@@ -56,6 +57,7 @@ export default function SettingsView() {
|
|
|
setDefaultFps(cfg.defaultFps != null ? String(cfg.defaultFps) : '')
|
|
setDefaultFps(cfg.defaultFps != null ? String(cfg.defaultFps) : '')
|
|
|
setLweRepoUrl(cfg.lweRepoUrl ?? '')
|
|
setLweRepoUrl(cfg.lweRepoUrl ?? '')
|
|
|
setLweRepoBranch(cfg.lweRepoBranch ?? '')
|
|
setLweRepoBranch(cfg.lweRepoBranch ?? '')
|
|
|
|
|
+ setLweCmakeArgs(cfg.lweCmakeArgs ?? '')
|
|
|
setDefaultLweRepo(cfg.defaultLweRepoUrl)
|
|
setDefaultLweRepo(cfg.defaultLweRepoUrl)
|
|
|
setBackupPath(cfg.backupPath ?? '')
|
|
setBackupPath(cfg.backupPath ?? '')
|
|
|
setAutoUnsubscribeAfterBackup(cfg.autoUnsubscribeAfterBackup)
|
|
setAutoUnsubscribeAfterBackup(cfg.autoUnsubscribeAfterBackup)
|
|
@@ -130,6 +132,7 @@ export default function SettingsView() {
|
|
|
|
|
|
|
|
async function handleSaveRepo() {
|
|
async function handleSaveRepo() {
|
|
|
await window.electronAPI.config.setLweRepo(lweRepoUrl.trim() || null, lweRepoBranch.trim() || null)
|
|
await window.electronAPI.config.setLweRepo(lweRepoUrl.trim() || null, lweRepoBranch.trim() || null)
|
|
|
|
|
+ await window.electronAPI.config.setLweCmakeArgs(lweCmakeArgs.trim() || null)
|
|
|
setRepoSaved(true)
|
|
setRepoSaved(true)
|
|
|
setTimeout(() => setRepoSaved(false), 2000)
|
|
setTimeout(() => setRepoSaved(false), 2000)
|
|
|
}
|
|
}
|
|
@@ -138,8 +141,9 @@ export default function SettingsView() {
|
|
|
setLweInstalling(true)
|
|
setLweInstalling(true)
|
|
|
setLweProgress({ stage: 'cloning', message: 'Starting installation...', percentage: 0 })
|
|
setLweProgress({ stage: 'cloning', message: 'Starting installation...', percentage: 0 })
|
|
|
try {
|
|
try {
|
|
|
- // Persist the repo fields first so the build uses what's on screen
|
|
|
|
|
|
|
+ // Persist the repo/cmake-args fields first so the build uses what's on screen
|
|
|
await window.electronAPI.config.setLweRepo(lweRepoUrl.trim() || null, lweRepoBranch.trim() || null)
|
|
await window.electronAPI.config.setLweRepo(lweRepoUrl.trim() || null, lweRepoBranch.trim() || null)
|
|
|
|
|
+ await window.electronAPI.config.setLweCmakeArgs(lweCmakeArgs.trim() || null)
|
|
|
await window.electronAPI.lwe.install()
|
|
await window.electronAPI.lwe.install()
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
setLweProgress({
|
|
setLweProgress({
|
|
@@ -481,6 +485,17 @@ export default function SettingsView() {
|
|
|
{repoSaved ? 'Saved!' : 'Save'}
|
|
{repoSaved ? 'Saved!' : 'Save'}
|
|
|
</button>
|
|
</button>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <label className="block text-xs text-gray-400">Extra cmake arguments</label>
|
|
|
|
|
+ <p className="text-xs text-gray-600">
|
|
|
|
|
+ Passed to cmake when configuring the build, e.g. -DENABLE_KDE_EXPERIMENTAL_FEATURES=ON
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <input
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ value={lweCmakeArgs}
|
|
|
|
|
+ onChange={(e) => { setLweCmakeArgs(e.target.value); setRepoSaved(false) }}
|
|
|
|
|
+ placeholder="-DENABLE_KDE_EXPERIMENTAL_FEATURES=ON"
|
|
|
|
|
+ className="w-full rounded-lg bg-white/5 px-3 py-2 text-sm text-gray-200 outline-none focus:ring-1 focus:ring-indigo-500 font-mono"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
{lweStatus === null ? (
|
|
{lweStatus === null ? (
|