Removed completly dialog manager
This commit is contained in:
parent
3c3b044c80
commit
e23181d530
@ -28,7 +28,6 @@ import app.theme.AppTheme
|
|||||||
import app.ui.AppTab
|
import app.ui.AppTab
|
||||||
import app.ui.components.RepositoriesTabPanel
|
import app.ui.components.RepositoriesTabPanel
|
||||||
import app.ui.components.TabInformation
|
import app.ui.components.TabInformation
|
||||||
import app.ui.dialogs.MaterialDialog
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Provider
|
import javax.inject.Provider
|
||||||
|
|
||||||
@ -62,17 +61,8 @@ class Main {
|
|||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
AppTheme {
|
AppTheme {
|
||||||
val showDialog = remember { mutableStateOf(false) }
|
|
||||||
val dialogManager = remember { DialogManager(showDialog) }
|
|
||||||
|
|
||||||
Box {
|
Box {
|
||||||
AppTabs(dialogManager)
|
AppTabs()
|
||||||
|
|
||||||
if (showDialog.value) {
|
|
||||||
MaterialDialog {
|
|
||||||
dialogManager.dialog()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,12 +71,11 @@ class Main {
|
|||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AppTabs(dialogManager: DialogManager) {
|
fun AppTabs() {
|
||||||
val tabs = remember {
|
val tabs = remember {
|
||||||
val repositoriesSavedTabs = appStateManager.openRepositoriesPathsTabs
|
val repositoriesSavedTabs = appStateManager.openRepositoriesPathsTabs
|
||||||
var repoTabs = repositoriesSavedTabs.map { repositoryTab ->
|
var repoTabs = repositoriesSavedTabs.map { repositoryTab ->
|
||||||
newAppTab(
|
newAppTab(
|
||||||
dialogManager = dialogManager,
|
|
||||||
key = repositoryTab.key,
|
key = repositoryTab.key,
|
||||||
path = repositoryTab.value
|
path = repositoryTab.value
|
||||||
)
|
)
|
||||||
@ -94,9 +83,7 @@ class Main {
|
|||||||
|
|
||||||
if (repoTabs.isEmpty()) {
|
if (repoTabs.isEmpty()) {
|
||||||
repoTabs = listOf(
|
repoTabs = listOf(
|
||||||
newAppTab(
|
newAppTab()
|
||||||
dialogManager = dialogManager
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +98,6 @@ class Main {
|
|||||||
Tabs(
|
Tabs(
|
||||||
tabs = tabs,
|
tabs = tabs,
|
||||||
selectedTabKey = selectedTabKey,
|
selectedTabKey = selectedTabKey,
|
||||||
dialogManager = dialogManager,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
TabsContent(tabs.value, selectedTabKey.value)
|
TabsContent(tabs.value, selectedTabKey.value)
|
||||||
@ -122,7 +108,6 @@ class Main {
|
|||||||
fun Tabs(
|
fun Tabs(
|
||||||
tabs: MutableState<List<TabInformation>>,
|
tabs: MutableState<List<TabInformation>>,
|
||||||
selectedTabKey: MutableState<Int>,
|
selectedTabKey: MutableState<Int>,
|
||||||
dialogManager: DialogManager,
|
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
@ -140,7 +125,6 @@ class Main {
|
|||||||
},
|
},
|
||||||
newTabContent = { key ->
|
newTabContent = { key ->
|
||||||
newAppTab(
|
newAppTab(
|
||||||
dialogManager = dialogManager,
|
|
||||||
key = key
|
key = key
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@ -168,7 +152,6 @@ class Main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun newAppTab(
|
private fun newAppTab(
|
||||||
dialogManager: DialogManager,
|
|
||||||
key: Int = 0,
|
key: Int = 0,
|
||||||
tabName: MutableState<String> = mutableStateOf("New tab"),
|
tabName: MutableState<String> = mutableStateOf("New tab"),
|
||||||
path: String? = null,
|
path: String? = null,
|
||||||
@ -186,7 +169,7 @@ class Main {
|
|||||||
appStateManager.repositoryTabChanged(key, path)
|
appStateManager.repositoryTabChanged(key, path)
|
||||||
}
|
}
|
||||||
|
|
||||||
AppTab(gitManager, dialogManager, path, tabName)
|
AppTab(gitManager, path, tabName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -218,24 +201,6 @@ private fun TabsContent(tabs: List<TabInformation>, selectedTabKey: Int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DialogManager(private val showDialog: MutableState<Boolean>) {
|
|
||||||
private var content: @Composable () -> Unit = {}
|
|
||||||
|
|
||||||
fun show(content: @Composable () -> Unit) {
|
|
||||||
this.content = content
|
|
||||||
showDialog.value = true
|
|
||||||
}
|
|
||||||
|
|
||||||
fun dismiss() {
|
|
||||||
showDialog.value = false
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun dialog() {
|
|
||||||
content()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LoadingRepository() {
|
fun LoadingRepository() {
|
||||||
Box { }
|
Box { }
|
||||||
|
@ -19,7 +19,6 @@ import androidx.compose.ui.graphics.DefaultAlpha
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import app.DialogManager
|
|
||||||
import app.LoadingRepository
|
import app.LoadingRepository
|
||||||
import app.credentials.CredentialsState
|
import app.credentials.CredentialsState
|
||||||
import app.git.GitManager
|
import app.git.GitManager
|
||||||
@ -29,12 +28,10 @@ import app.ui.dialogs.PasswordDialog
|
|||||||
import app.ui.dialogs.UserPasswordDialog
|
import app.ui.dialogs.UserPasswordDialog
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
|
|
||||||
@OptIn(ExperimentalAnimationApi::class)
|
@OptIn(ExperimentalAnimationApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun AppTab(
|
fun AppTab(
|
||||||
gitManager: GitManager,
|
gitManager: GitManager,
|
||||||
dialogManager: DialogManager,
|
|
||||||
repositoryPath: String?,
|
repositoryPath: String?,
|
||||||
tabName: MutableState<String>
|
tabName: MutableState<String>
|
||||||
) {
|
) {
|
||||||
@ -106,7 +103,7 @@ fun AppTab(
|
|||||||
LoadingRepository()
|
LoadingRepository()
|
||||||
}
|
}
|
||||||
is RepositorySelectionStatus.Open -> {
|
is RepositorySelectionStatus.Open -> {
|
||||||
RepositoryOpenPage(gitManager = gitManager, dialogManager = dialogManager)
|
RepositoryOpenPage(gitManager = gitManager)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ import androidx.compose.ui.graphics.SolidColor
|
|||||||
import androidx.compose.ui.input.pointer.PointerIcon
|
import androidx.compose.ui.input.pointer.PointerIcon
|
||||||
import androidx.compose.ui.input.pointer.pointerHoverIcon
|
import androidx.compose.ui.input.pointer.pointerHoverIcon
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import app.DialogManager
|
|
||||||
import app.git.DiffEntryType
|
import app.git.DiffEntryType
|
||||||
import app.git.GitManager
|
import app.git.GitManager
|
||||||
import app.ui.dialogs.NewBranchDialog
|
import app.ui.dialogs.NewBranchDialog
|
||||||
@ -26,7 +25,7 @@ import java.awt.Cursor
|
|||||||
|
|
||||||
@OptIn(ExperimentalSplitPaneApi::class, androidx.compose.ui.ExperimentalComposeUiApi::class)
|
@OptIn(ExperimentalSplitPaneApi::class, androidx.compose.ui.ExperimentalComposeUiApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun RepositoryOpenPage(gitManager: GitManager, dialogManager: DialogManager) {
|
fun RepositoryOpenPage(gitManager: GitManager) {
|
||||||
var selectedRevCommit by remember {
|
var selectedRevCommit by remember {
|
||||||
mutableStateOf<RevCommit?>(null)
|
mutableStateOf<RevCommit?>(null)
|
||||||
}
|
}
|
||||||
@ -38,8 +37,22 @@ fun RepositoryOpenPage(gitManager: GitManager, dialogManager: DialogManager) {
|
|||||||
mutableStateOf(false)
|
mutableStateOf(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var showNewBranchDialog by remember { mutableStateOf(false) }
|
||||||
|
|
||||||
val selectedIndexCommitLog = remember { mutableStateOf(-1) }
|
val selectedIndexCommitLog = remember { mutableStateOf(-1) }
|
||||||
|
|
||||||
|
if(showNewBranchDialog) {
|
||||||
|
NewBranchDialog(
|
||||||
|
onReject = {
|
||||||
|
showNewBranchDialog = false
|
||||||
|
},
|
||||||
|
onAccept = { branchName ->
|
||||||
|
gitManager.createBranch(branchName)
|
||||||
|
showNewBranchDialog = false
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
GMenu(
|
GMenu(
|
||||||
onRepositoryOpen = {
|
onRepositoryOpen = {
|
||||||
@ -49,19 +62,7 @@ fun RepositoryOpenPage(gitManager: GitManager, dialogManager: DialogManager) {
|
|||||||
onPush = { gitManager.push() },
|
onPush = { gitManager.push() },
|
||||||
onStash = { gitManager.stash() },
|
onStash = { gitManager.stash() },
|
||||||
onPopStash = { gitManager.popStash() },
|
onPopStash = { gitManager.popStash() },
|
||||||
onCreateBranch = {
|
onCreateBranch = { showNewBranchDialog = true }
|
||||||
dialogManager.show {
|
|
||||||
NewBranchDialog(
|
|
||||||
onReject = {
|
|
||||||
dialogManager.dismiss()
|
|
||||||
},
|
|
||||||
onAccept = { branchName ->
|
|
||||||
gitManager.createBranch(branchName)
|
|
||||||
dialogManager.dismiss()
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
|
@ -2,41 +2,32 @@
|
|||||||
|
|
||||||
package app.ui
|
package app.ui
|
||||||
|
|
||||||
import androidx.compose.animation.Crossfade
|
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.material.*
|
import androidx.compose.material.*
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.*
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.BiasAlignment
|
||||||
|
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.ColorFilter
|
import androidx.compose.ui.graphics.ColorFilter
|
||||||
import androidx.compose.ui.graphics.painter.Painter
|
import androidx.compose.ui.graphics.painter.Painter
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import app.git.GitManager
|
|
||||||
import openRepositoryDialog
|
|
||||||
import androidx.compose.foundation.lazy.items
|
|
||||||
import androidx.compose.runtime.mutableStateOf
|
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.compose.ui.Alignment
|
|
||||||
import androidx.compose.ui.BiasAlignment
|
|
||||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import app.DialogManager
|
|
||||||
import app.extensions.dirName
|
import app.extensions.dirName
|
||||||
import app.extensions.dirPath
|
import app.extensions.dirPath
|
||||||
|
import app.git.GitManager
|
||||||
import app.theme.primaryTextColor
|
import app.theme.primaryTextColor
|
||||||
import app.theme.secondaryTextColor
|
import app.theme.secondaryTextColor
|
||||||
import app.ui.dialogs.CloneDialog
|
import app.ui.dialogs.CloneDialog
|
||||||
|
import app.ui.dialogs.MaterialDialog
|
||||||
|
import openRepositoryDialog
|
||||||
import java.awt.Desktop
|
import java.awt.Desktop
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.runtime.setValue
|
|
||||||
import androidx.compose.ui.window.Popup
|
|
||||||
import app.ui.dialogs.MaterialDialog
|
|
||||||
|
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterialApi::class)
|
@OptIn(ExperimentalMaterialApi::class)
|
||||||
|
Loading…
Reference in New Issue
Block a user