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.core)
|
||||||
implementation(libs.ktor.server.netty)
|
implementation(libs.ktor.server.netty)
|
||||||
implementation(libs.ktor.server.websockets)
|
implementation(libs.ktor.server.websockets)
|
||||||
|
// shell
|
||||||
|
implementation(libs.lordcodes.turttle)
|
||||||
}
|
}
|
||||||
|
|
||||||
commonTest.dependencies {
|
commonTest.dependencies {
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,10 @@
|
||||||
<string name="dialog__cancel_action">Annuler</string>
|
<string name="dialog__cancel_action">Annuler</string>
|
||||||
|
|
||||||
<string name="main_page__create_action">Créer une feuille de personnage</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__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__label">Jet de :</string>
|
||||||
<string name="roll_page__roll__success_label">Réussite si lancer inférieur ou égale à : %1$s</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
|
package com.pixelized.desktop.lwa.repository
|
||||||
|
|
||||||
private fun operatingSystem(
|
fun operatingSystem(
|
||||||
name: String = System.getProperty("os.name")
|
name: String = System.getProperty("os.name")
|
||||||
): OperatingSystem {
|
): OperatingSystem {
|
||||||
return when {
|
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.character_sheet_edit__create__title
|
||||||
import lwacharactersheet.composeapp.generated.resources.main_page__create_action
|
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__network_action
|
||||||
|
import lwacharactersheet.composeapp.generated.resources.main_page__open_save_directory
|
||||||
import lwacharactersheet.composeapp.generated.resources.main_page__roll_history_action
|
import lwacharactersheet.composeapp.generated.resources.main_page__roll_history_action
|
||||||
import org.jetbrains.compose.resources.getString
|
import org.jetbrains.compose.resources.getString
|
||||||
import org.jetbrains.compose.resources.stringResource
|
import org.jetbrains.compose.resources.stringResource
|
||||||
|
|
@ -79,6 +80,9 @@ fun MainPage(
|
||||||
onRollHistory = {
|
onRollHistory = {
|
||||||
screen.navigateToRollHistory()
|
screen.navigateToRollHistory()
|
||||||
},
|
},
|
||||||
|
onOpenSaveDirectory = {
|
||||||
|
viewModel.openSaveDirectory()
|
||||||
|
},
|
||||||
onNetwork = {
|
onNetwork = {
|
||||||
screen.navigateToNetwork()
|
screen.navigateToNetwork()
|
||||||
},
|
},
|
||||||
|
|
@ -94,6 +98,7 @@ fun MainPageContent(
|
||||||
onCharacter: (CharacterUio) -> Unit,
|
onCharacter: (CharacterUio) -> Unit,
|
||||||
onCreateCharacter: () -> Unit,
|
onCreateCharacter: () -> Unit,
|
||||||
onRollHistory: () -> Unit,
|
onRollHistory: () -> Unit,
|
||||||
|
onOpenSaveDirectory: () -> Unit,
|
||||||
onNetwork: () -> Unit,
|
onNetwork: () -> Unit,
|
||||||
) {
|
) {
|
||||||
Column(
|
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 {
|
Column {
|
||||||
TextButton(
|
TextButton(
|
||||||
onClick = onRollHistory,
|
onClick = onRollHistory,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,11 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.runtime.State
|
import androidx.compose.runtime.State
|
||||||
import androidx.lifecycle.ViewModel
|
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.characterSheet.CharacterSheetRepository
|
||||||
|
import com.pixelized.desktop.lwa.repository.operatingSystem
|
||||||
|
import com.pixelized.desktop.lwa.repository.storePath
|
||||||
import com.pixelized.desktop.lwa.utils.extention.collectAsState
|
import com.pixelized.desktop.lwa.utils.extention.collectAsState
|
||||||
|
|
||||||
class MainPageViewModel(
|
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 androidx.compose.ui.window.application
|
||||||
import org.koin.compose.KoinContext
|
import org.koin.compose.KoinContext
|
||||||
import org.koin.core.context.startKoin
|
import org.koin.core.context.startKoin
|
||||||
|
import javax.swing.UIManager
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
|
||||||
startKoin {
|
startKoin {
|
||||||
modules(modules = moduleDependencies)
|
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-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-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-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