diff --git a/src/main/kotlin/app/git/TabState.kt b/src/main/kotlin/app/git/TabState.kt index 4e77942..a6e9769 100644 --- a/src/main/kotlin/app/git/TabState.kt +++ b/src/main/kotlin/app/git/TabState.kt @@ -45,9 +45,9 @@ class TabState @Inject constructor( */ @set:Synchronized var operationRunning = false - get() { - return field || mutex.isLocked - } + get() { + return field || mutex.isLocked + } private val _processing = MutableStateFlow(false) val processing: StateFlow = _processing diff --git a/src/main/kotlin/app/ui/Stashes.kt b/src/main/kotlin/app/ui/Stashes.kt index 64d42aa..3aea50f 100644 --- a/src/main/kotlin/app/ui/Stashes.kt +++ b/src/main/kotlin/app/ui/Stashes.kt @@ -1,20 +1,8 @@ package app.ui -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.heightIn -import androidx.compose.foundation.lazy.items -import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource -import androidx.compose.ui.unit.dp -import app.maxSidePanelHeight -import app.ui.components.ScrollableLazyColumn -import app.ui.components.SideMenuEntry import app.ui.components.SideMenuPanel import app.ui.components.SideMenuSubentry import app.viewmodels.StashStatus diff --git a/src/main/kotlin/app/ui/Tags.kt b/src/main/kotlin/app/ui/Tags.kt index 24e424f..acfe859 100644 --- a/src/main/kotlin/app/ui/Tags.kt +++ b/src/main/kotlin/app/ui/Tags.kt @@ -2,22 +2,10 @@ package app.ui import androidx.compose.foundation.ContextMenuArea import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.heightIn -import androidx.compose.foundation.lazy.items -import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource -import androidx.compose.ui.unit.dp import app.extensions.simpleName -import app.maxSidePanelHeight -import app.ui.components.ScrollableLazyColumn -import app.ui.components.SideMenuEntry import app.ui.components.SideMenuPanel import app.ui.components.SideMenuSubentry import app.ui.context_menu.tagContextMenuItems diff --git a/src/main/kotlin/app/ui/components/Expandable.kt b/src/main/kotlin/app/ui/components/Expandable.kt index ef2cef7..56e6d46 100644 --- a/src/main/kotlin/app/ui/components/Expandable.kt +++ b/src/main/kotlin/app/ui/components/Expandable.kt @@ -1,11 +1,13 @@ package app.ui.components -import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier @OptIn(ExperimentalAnimationApi::class) @@ -40,7 +42,7 @@ fun VerticalExpandable( header() } - if(isExpanded) { + if (isExpanded) { child() } } diff --git a/src/main/kotlin/app/ui/components/SideMenuEntry.kt b/src/main/kotlin/app/ui/components/SideMenuEntry.kt index 4671c8f..db20cb7 100644 --- a/src/main/kotlin/app/ui/components/SideMenuEntry.kt +++ b/src/main/kotlin/app/ui/components/SideMenuEntry.kt @@ -9,7 +9,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -30,7 +29,7 @@ fun SideMenuEntry( .background(color = MaterialTheme.colors.headerBackground), verticalAlignment = Alignment.CenterVertically, ) { - if(icon != null) { + if (icon != null) { Icon( painter = icon, contentDescription = null, diff --git a/src/main/kotlin/app/ui/components/SideMenuPanel.kt b/src/main/kotlin/app/ui/components/SideMenuPanel.kt index 537d775..e74a74d 100644 --- a/src/main/kotlin/app/ui/components/SideMenuPanel.kt +++ b/src/main/kotlin/app/ui/components/SideMenuPanel.kt @@ -2,7 +2,6 @@ package app.ui.components import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.lazy.items diff --git a/src/main/kotlin/app/ui/components/SideMenuSubentry.kt b/src/main/kotlin/app/ui/components/SideMenuSubentry.kt index d82edb1..2dcee39 100644 --- a/src/main/kotlin/app/ui/components/SideMenuSubentry.kt +++ b/src/main/kotlin/app/ui/components/SideMenuSubentry.kt @@ -33,7 +33,7 @@ fun SideMenuSubentry( .height(ENTRY_HEIGHT.dp) .fillMaxWidth() .run { - if(onClick != null) + if (onClick != null) clickable(onClick = onClick) else this diff --git a/src/main/kotlin/app/viewmodels/DiffViewModel.kt b/src/main/kotlin/app/viewmodels/DiffViewModel.kt index f8b5fdf..18550d5 100644 --- a/src/main/kotlin/app/viewmodels/DiffViewModel.kt +++ b/src/main/kotlin/app/viewmodels/DiffViewModel.kt @@ -25,7 +25,7 @@ class DiffViewModel @Inject constructor( ) ) - fun updateDiff(diffEntryType: DiffEntryType) = tabState.runOperation ( + fun updateDiff(diffEntryType: DiffEntryType) = tabState.runOperation( refreshType = RefreshType.NONE, ) { git -> val oldDiffEntryType = _diffResult.value?.diffEntryType @@ -54,13 +54,13 @@ class DiffViewModel @Inject constructor( } } - fun stageHunk(diffEntry: DiffEntry, hunk: Hunk) = tabState.runOperation ( + fun stageHunk(diffEntry: DiffEntry, hunk: Hunk) = tabState.runOperation( refreshType = RefreshType.UNCOMMITED_CHANGES, ) { git -> statusManager.stageHunk(git, diffEntry, hunk) } - fun unstageHunk(diffEntry: DiffEntry, hunk: Hunk) = tabState.runOperation ( + fun unstageHunk(diffEntry: DiffEntry, hunk: Hunk) = tabState.runOperation( refreshType = RefreshType.UNCOMMITED_CHANGES, ) { git -> statusManager.unstageHunk(git, diffEntry, hunk) diff --git a/src/main/kotlin/app/viewmodels/LogViewModel.kt b/src/main/kotlin/app/viewmodels/LogViewModel.kt index beff950..c6d044b 100644 --- a/src/main/kotlin/app/viewmodels/LogViewModel.kt +++ b/src/main/kotlin/app/viewmodels/LogViewModel.kt @@ -38,13 +38,13 @@ class LogViewModel @Inject constructor( logManager.checkoutCommit(git, revCommit) } - fun revertCommit(revCommit: RevCommit) = tabState.safeProcessing ( + fun revertCommit(revCommit: RevCommit) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> logManager.revertCommit(git, revCommit) } - fun resetToCommit(revCommit: RevCommit, resetType: ResetType) = tabState.safeProcessing ( + fun resetToCommit(revCommit: RevCommit, resetType: ResetType) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> logManager.resetToCommit(git, revCommit, resetType = resetType) @@ -52,36 +52,36 @@ class LogViewModel @Inject constructor( fun checkoutRef(ref: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, - ) { git -> + ) { git -> branchesManager.checkoutRef(git, ref) } - fun createBranchOnCommit(branch: String, revCommit: RevCommit) = tabState.safeProcessing ( + fun createBranchOnCommit(branch: String, revCommit: RevCommit) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> branchesManager.createBranchOnCommit(git, branch, revCommit) } - fun createTagOnCommit(tag: String, revCommit: RevCommit) = tabState.safeProcessing ( + fun createTagOnCommit(tag: String, revCommit: RevCommit) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> tagsManager.createTagOnCommit(git, tag, revCommit) } - fun mergeBranch(ref: Ref, fastForward: Boolean) = tabState.safeProcessing ( + fun mergeBranch(ref: Ref, fastForward: Boolean) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> mergeManager.mergeBranch(git, ref, fastForward) } - fun deleteBranch(branch: Ref) = tabState.safeProcessing ( + fun deleteBranch(branch: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> branchesManager.deleteBranch(git, branch) } - fun deleteTag(tag: Ref) = tabState.safeProcessing ( + fun deleteTag(tag: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> tagsManager.deleteTag(git, tag) @@ -91,7 +91,7 @@ class LogViewModel @Inject constructor( loadLog(git) } - fun rebaseBranch(ref: Ref) = tabState.safeProcessing ( + fun rebaseBranch(ref: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> rebaseManager.rebaseBranch(git, ref) diff --git a/src/main/kotlin/app/viewmodels/MenuViewModel.kt b/src/main/kotlin/app/viewmodels/MenuViewModel.kt index 9a34dd3..eb827f3 100644 --- a/src/main/kotlin/app/viewmodels/MenuViewModel.kt +++ b/src/main/kotlin/app/viewmodels/MenuViewModel.kt @@ -12,34 +12,34 @@ class MenuViewModel @Inject constructor( private val remoteOperationsManager: RemoteOperationsManager, private val stashManager: StashManager, ) { - fun pull(rebase: Boolean = false) = tabState.safeProcessing ( + fun pull(rebase: Boolean = false) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, refreshEvenIfCrashes = true, ) { git -> remoteOperationsManager.pull(git, rebase) } - fun fetchAll() = tabState.safeProcessing ( + fun fetchAll() = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, refreshEvenIfCrashes = true, ) { git -> remoteOperationsManager.fetchAll(git) } - fun push(force: Boolean = false) = tabState.safeProcessing ( + fun push(force: Boolean = false) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, refreshEvenIfCrashes = true, ) { git -> remoteOperationsManager.push(git, force) } - fun stash() = tabState.safeProcessing ( + fun stash() = tabState.safeProcessing( refreshType = RefreshType.UNCOMMITED_CHANGES, ) { git -> stashManager.stash(git) } - fun popStash() = tabState.safeProcessing ( + fun popStash() = tabState.safeProcessing( refreshType = RefreshType.UNCOMMITED_CHANGES, ) { git -> stashManager.popStash(git) @@ -48,7 +48,7 @@ class MenuViewModel @Inject constructor( fun openFolderInFileExplorer() = tabState.runOperation( showError = true, refreshType = RefreshType.NONE, - ) { git -> + ) { git -> Desktop.getDesktop().open(git.repository.directory.parentFile) } } \ No newline at end of file diff --git a/src/main/kotlin/app/viewmodels/RemotesViewModel.kt b/src/main/kotlin/app/viewmodels/RemotesViewModel.kt index 2398002..4333eb7 100644 --- a/src/main/kotlin/app/viewmodels/RemotesViewModel.kt +++ b/src/main/kotlin/app/viewmodels/RemotesViewModel.kt @@ -39,7 +39,7 @@ class RemotesViewModel @Inject constructor( _remotes.value = remoteViewList } - fun deleteRemoteBranch(ref: Ref) = tabState.safeProcessing ( + fun deleteRemoteBranch(ref: Ref) = tabState.safeProcessing( refreshType = RefreshType.ALL_DATA, ) { git -> remoteOperationsManager.deleteBranch(git, ref) diff --git a/src/main/kotlin/app/viewmodels/TabViewModel.kt b/src/main/kotlin/app/viewmodels/TabViewModel.kt index eaaf5e9..839d848 100644 --- a/src/main/kotlin/app/viewmodels/TabViewModel.kt +++ b/src/main/kotlin/app/viewmodels/TabViewModel.kt @@ -163,9 +163,9 @@ class TabViewModel @Inject constructor( stashesViewModel.refresh(git) } - private suspend fun refreshRepositoryInfo() = tabState.safeProcessing ( + private suspend fun refreshRepositoryInfo() = tabState.safeProcessing( refreshType = RefreshType.NONE, - ){ git -> + ) { git -> logViewModel.refresh(git) branchesViewModel.refresh(git) remotesViewModel.refresh(git) diff --git a/src/main/resources/logo.svg b/src/main/resources/logo.svg index ac1b6fa..ad77540 100644 --- a/src/main/resources/logo.svg +++ b/src/main/resources/logo.svg @@ -1,14 +1,16 @@ - - - - - - - - - - - - + + + + + + + + + + + +