Add file system management in the main menu.
This commit is contained in:
parent
34a0ee13f0
commit
de13bf2c74
9 changed files with 46 additions and 3 deletions
|
|
@ -37,6 +37,8 @@ kotlin {
|
|||
implementation(libs.ktor.server.core)
|
||||
implementation(libs.ktor.server.netty)
|
||||
implementation(libs.ktor.server.websockets)
|
||||
// shell
|
||||
implementation(libs.lordcodes.turttle)
|
||||
}
|
||||
|
||||
commonTest.dependencies {
|
||||
|
|
|
|||
|
|
@ -4,8 +4,10 @@
|
|||
<string name="dialog__cancel_action">Annuler</string>
|
||||
|
||||
<string name="main_page__create_action">Créer une feuille de personnage</string>
|
||||
<string name="main_page__network_action">Configuration de la table</string>
|
||||
<string name="main_page__open_save_directory">Ouvrir le dossier de sauvegarde</string>
|
||||
<string name="main_page__roll_history_action">Consulter l'historique des lancers</string>
|
||||
<string name="main_page__network_action">Configuration de la table</string>
|
||||
|
||||
|
||||
<string name="roll_page__roll__label">Jet de :</string>
|
||||
<string name="roll_page__roll__success_label">Réussite si lancer inférieur ou égale à : %1$s</string>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package com.pixelized.desktop.lwa.repository
|
||||
|
||||
private fun operatingSystem(
|
||||
fun operatingSystem(
|
||||
name: String = System.getProperty("os.name")
|
||||
): OperatingSystem {
|
||||
return when {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import lwacharactersheet.composeapp.generated.resources.Res
|
|||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__create__title
|
||||
import lwacharactersheet.composeapp.generated.resources.main_page__create_action
|
||||
import lwacharactersheet.composeapp.generated.resources.main_page__network_action
|
||||
import lwacharactersheet.composeapp.generated.resources.main_page__open_save_directory
|
||||
import lwacharactersheet.composeapp.generated.resources.main_page__roll_history_action
|
||||
import org.jetbrains.compose.resources.getString
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
|
|
@ -79,6 +80,9 @@ fun MainPage(
|
|||
onRollHistory = {
|
||||
screen.navigateToRollHistory()
|
||||
},
|
||||
onOpenSaveDirectory = {
|
||||
viewModel.openSaveDirectory()
|
||||
},
|
||||
onNetwork = {
|
||||
screen.navigateToNetwork()
|
||||
},
|
||||
|
|
@ -94,6 +98,7 @@ fun MainPageContent(
|
|||
onCharacter: (CharacterUio) -> Unit,
|
||||
onCreateCharacter: () -> Unit,
|
||||
onRollHistory: () -> Unit,
|
||||
onOpenSaveDirectory: () -> Unit,
|
||||
onNetwork: () -> Unit,
|
||||
) {
|
||||
Column(
|
||||
|
|
@ -128,6 +133,18 @@ fun MainPageContent(
|
|||
)
|
||||
}
|
||||
|
||||
TextButton(
|
||||
onClick = onOpenSaveDirectory,
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
textAlign = TextAlign.Start,
|
||||
text = stringResource(Res.string.main_page__open_save_directory),
|
||||
)
|
||||
}
|
||||
|
||||
Column {
|
||||
TextButton(
|
||||
onClick = onRollHistory,
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.lordcodes.turtle.shellRun
|
||||
import com.pixelized.desktop.lwa.repository.OperatingSystem
|
||||
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository
|
||||
import com.pixelized.desktop.lwa.repository.operatingSystem
|
||||
import com.pixelized.desktop.lwa.repository.storePath
|
||||
import com.pixelized.desktop.lwa.utils.extention.collectAsState
|
||||
|
||||
class MainPageViewModel(
|
||||
|
|
@ -23,4 +27,18 @@ class MainPageViewModel(
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun openSaveDirectory() {
|
||||
when (val os = operatingSystem()) {
|
||||
OperatingSystem.Windows -> shellRun(
|
||||
"explorer.exe",
|
||||
listOf(storePath(operatingSystem = os))
|
||||
)
|
||||
|
||||
OperatingSystem.Macintosh -> shellRun(
|
||||
"open",
|
||||
listOf(storePath(operatingSystem = os))
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,8 +3,10 @@ package com.pixelized.desktop.lwa
|
|||
import androidx.compose.ui.window.application
|
||||
import org.koin.compose.KoinContext
|
||||
import org.koin.core.context.startKoin
|
||||
import javax.swing.UIManager
|
||||
|
||||
fun main() {
|
||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
|
||||
startKoin {
|
||||
modules(modules = moduleDependencies)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,4 +34,6 @@ ktor-client-cio = { group = 'io.ktor', name = "ktor-client-cio", version.ref = "
|
|||
ktor-client-websockets = { group = 'io.ktor', name = "ktor-client-websockets", version.ref = "ktor_version" }
|
||||
ktor-server-core = { group = 'io.ktor', name = "ktor-server-core", version.ref = "ktor_version" }
|
||||
ktor-server-netty = { group = 'io.ktor', name = "ktor-server-netty", version.ref = "ktor_version" }
|
||||
ktor-server-websockets = { group = 'io.ktor', name = "ktor-server-websockets", version.ref = "ktor_version" }
|
||||
ktor-server-websockets = { group = 'io.ktor', name = "ktor-server-websockets", version.ref = "ktor_version" }
|
||||
|
||||
lordcodes-turttle = { group="com.lordcodes.turtle", name="turtle", version="0.5.0"}
|
||||
BIN
lwa.zip
BIN
lwa.zip
Binary file not shown.
BIN
output.zip
Normal file
BIN
output.zip
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue