Removed completly dialog manager

This commit is contained in:
Abdelilah El Aissaoui 2021-12-06 22:54:25 +01:00
parent 3c3b044c80
commit e23181d530
4 changed files with 29 additions and 75 deletions

View File

@ -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 { }

View File

@ -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)
} }
} }
} }

View File

@ -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 {

View File

@ -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)