diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts
index 846ddb6..78f9ff2 100644
--- a/composeApp/build.gradle.kts
+++ b/composeApp/build.gradle.kts
@@ -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 {
diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml
index ef2543e..06d6a12 100644
--- a/composeApp/src/commonMain/composeResources/values/strings.xml
+++ b/composeApp/src/commonMain/composeResources/values/strings.xml
@@ -4,8 +4,10 @@
Annuler
Créer une feuille de personnage
- Configuration de la table
+ Ouvrir le dossier de sauvegarde
Consulter l'historique des lancers
+ Configuration de la table
+
Jet de :
Réussite si lancer inférieur ou égale à : %1$s
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/StorePath.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/StorePath.kt
index ffd5f8b..e36ed75 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/StorePath.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/repository/StorePath.kt
@@ -1,6 +1,6 @@
package com.pixelized.desktop.lwa.repository
-private fun operatingSystem(
+fun operatingSystem(
name: String = System.getProperty("os.name")
): OperatingSystem {
return when {
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPage.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPage.kt
index 8190424..80a1e05 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPage.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPage.kt
@@ -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,
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPageViewModel.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPageViewModel.kt
index db04142..23391e8 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPageViewModel.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/main/MainPageViewModel.kt
@@ -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))
+ )
+ }
+ }
}
\ No newline at end of file
diff --git a/composeApp/src/desktopMain/kotlin/com/pixelized/desktop/lwa/main.kt b/composeApp/src/desktopMain/kotlin/com/pixelized/desktop/lwa/main.kt
index d50661b..1d884f9 100644
--- a/composeApp/src/desktopMain/kotlin/com/pixelized/desktop/lwa/main.kt
+++ b/composeApp/src/desktopMain/kotlin/com/pixelized/desktop/lwa/main.kt
@@ -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)
}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index b2d98b1..55ad362 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -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" }
\ No newline at end of file
+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"}
\ No newline at end of file
diff --git a/lwa.zip b/lwa.zip
deleted file mode 100644
index 71f8c42..0000000
Binary files a/lwa.zip and /dev/null differ
diff --git a/output.zip b/output.zip
new file mode 100644
index 0000000..3ba14d4
Binary files /dev/null and b/output.zip differ