diff --git a/src/main/kotlin/DiffEntryType.kt b/src/main/kotlin/git/DiffEntryType.kt similarity index 95% rename from src/main/kotlin/DiffEntryType.kt rename to src/main/kotlin/git/DiffEntryType.kt index 5b67333..82b25cf 100644 --- a/src/main/kotlin/DiffEntryType.kt +++ b/src/main/kotlin/git/DiffEntryType.kt @@ -1,3 +1,5 @@ +package git + import org.eclipse.jgit.diff.DiffEntry sealed class DiffEntryType(val diffEntry: DiffEntry) { diff --git a/src/main/kotlin/git/DiffManager.kt b/src/main/kotlin/git/DiffManager.kt index d62e151..eb2410b 100644 --- a/src/main/kotlin/git/DiffManager.kt +++ b/src/main/kotlin/git/DiffManager.kt @@ -1,6 +1,5 @@ package git -import DiffEntryType import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.eclipse.jgit.api.Git @@ -15,7 +14,6 @@ import org.eclipse.jgit.treewalk.AbstractTreeIterator import org.eclipse.jgit.treewalk.CanonicalTreeParser import org.eclipse.jgit.treewalk.FileTreeIterator import java.io.ByteArrayOutputStream -import java.io.IOException class DiffManager { suspend fun diffFormat(git: Git, diffEntryType: DiffEntryType): List = withContext(Dispatchers.IO) { diff --git a/src/main/kotlin/GitManager.kt b/src/main/kotlin/git/GitManager.kt similarity index 98% rename from src/main/kotlin/GitManager.kt rename to src/main/kotlin/git/GitManager.kt index 25b482d..f76b92f 100644 --- a/src/main/kotlin/GitManager.kt +++ b/src/main/kotlin/git/GitManager.kt @@ -1,7 +1,7 @@ +package git + import credentials.CredentialsState -import credentials.CredentialsStateManager -import git.* -import kotlinx.coroutines.* +import credentials.CredentialsStateManager import kotlinx.coroutines.* import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.eclipse.jgit.api.Git @@ -10,6 +10,7 @@ import org.eclipse.jgit.lib.Ref import org.eclipse.jgit.lib.Repository import org.eclipse.jgit.revwalk.RevCommit import org.eclipse.jgit.storage.file.FileRepositoryBuilder +import GPreferences import java.io.File diff --git a/src/main/kotlin/main.kt b/src/main/kotlin/main.kt index 18d3e8d..d88ddae 100644 --- a/src/main/kotlin/main.kt +++ b/src/main/kotlin/main.kt @@ -15,7 +15,11 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.* +import git.GitManager +import git.RepositorySelectionStatus import theme.* +import ui.RepositoryOpenPage +import ui.WelcomePage import javax.swing.JFileChooser @@ -72,13 +76,13 @@ fun Gitnuro(gitManager: GitManager) { @Suppress("UnnecessaryVariable") // Don't inline it because smart cast won't work when (repositorySelectionStatus) { RepositorySelectionStatus.None -> { - NoneRepository() + WelcomePage() } RepositorySelectionStatus.Loading -> { LoadingRepository() } is RepositorySelectionStatus.Open -> { - RepositorySelected(gitManager = gitManager) + RepositoryOpenPage(gitManager = gitManager) } } } @@ -93,14 +97,6 @@ fun LoadingRepository() { } -@Composable -fun NoneRepository() { - Box( - contentAlignment = Alignment.Center - ) { - Text("Open a repository to start using Gitnuro") - } -} @Composable fun GMenu( diff --git a/src/main/kotlin/Branches.kt b/src/main/kotlin/ui/Branches.kt similarity index 97% rename from src/main/kotlin/Branches.kt rename to src/main/kotlin/ui/Branches.kt index 66a430d..45af0e1 100644 --- a/src/main/kotlin/Branches.kt +++ b/src/main/kotlin/ui/Branches.kt @@ -1,7 +1,8 @@ +package ui + import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material.* import androidx.compose.material.icons.Icons @@ -17,8 +18,9 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import components.ScrollableLazyColumn +import ui.components.ScrollableLazyColumn import extensions.simpleName +import git.GitManager import org.eclipse.jgit.lib.Ref import theme.headerBackground diff --git a/src/main/kotlin/CommitChanges.kt b/src/main/kotlin/ui/CommitChanges.kt similarity index 98% rename from src/main/kotlin/CommitChanges.kt rename to src/main/kotlin/ui/CommitChanges.kt index c6f0943..db9972e 100644 --- a/src/main/kotlin/CommitChanges.kt +++ b/src/main/kotlin/ui/CommitChanges.kt @@ -1,6 +1,7 @@ +package ui + import androidx.compose.foundation.* import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.* @@ -28,7 +29,8 @@ import java.net.HttpURLConnection import java.net.URL import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue -import components.ScrollableLazyColumn +import ui.components.ScrollableLazyColumn +import git.GitManager @Composable fun CommitChanges( diff --git a/src/main/kotlin/Diff.kt b/src/main/kotlin/ui/Diff.kt similarity index 97% rename from src/main/kotlin/Diff.kt rename to src/main/kotlin/ui/Diff.kt index e998299..22cb7a6 100644 --- a/src/main/kotlin/Diff.kt +++ b/src/main/kotlin/ui/Diff.kt @@ -1,9 +1,10 @@ +package ui + import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue @@ -19,7 +20,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import components.ScrollableLazyColumn +import ui.components.ScrollableLazyColumn +import git.DiffEntryType +import git.GitManager import theme.primaryTextColor @Composable diff --git a/src/main/kotlin/Log.kt b/src/main/kotlin/ui/Log.kt similarity index 95% rename from src/main/kotlin/Log.kt rename to src/main/kotlin/ui/Log.kt index dd11b9d..9daa7e9 100644 --- a/src/main/kotlin/Log.kt +++ b/src/main/kotlin/ui/Log.kt @@ -1,11 +1,9 @@ -import androidx.compose.foundation.VerticalScrollbar +package ui + import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.foundation.rememberScrollbarAdapter import androidx.compose.material.Card import androidx.compose.material.Divider import androidx.compose.material.MaterialTheme @@ -17,8 +15,9 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import components.ScrollableLazyColumn +import ui.components.ScrollableLazyColumn import extensions.toSmartSystemString +import git.GitManager import git.LogStatus import org.eclipse.jgit.revwalk.RevCommit import theme.primaryTextColor diff --git a/src/main/kotlin/ui/RepositoryNone.kt b/src/main/kotlin/ui/RepositoryNone.kt new file mode 100644 index 0000000..2aadab9 --- /dev/null +++ b/src/main/kotlin/ui/RepositoryNone.kt @@ -0,0 +1,39 @@ +package ui + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.* +import androidx.compose.material.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.res.painterResource + + +@Composable +fun WelcomePage() { + Row( + modifier = Modifier + .fillMaxSize(), + horizontalArrangement = Arrangement.Center, + ) { + Column( + modifier = Modifier + .fillMaxHeight(), + verticalArrangement = Arrangement.Center, + ) { + Button(onClick = {}) { + Image( + painter = painterResource("open.svg"), + contentDescription = null, + colorFilter = ColorFilter.tint(contentColorFor(MaterialTheme.colors.primary)) + + ) + Text("Open repository") + + } + } + } +} + + diff --git a/src/main/kotlin/RepositorySelected.kt b/src/main/kotlin/ui/RepositoryOpen.kt similarity index 92% rename from src/main/kotlin/RepositorySelected.kt rename to src/main/kotlin/ui/RepositoryOpen.kt index 562e253..d314756 100644 --- a/src/main/kotlin/RepositorySelected.kt +++ b/src/main/kotlin/ui/RepositoryOpen.kt @@ -1,3 +1,5 @@ +package ui + import androidx.compose.animation.Crossfade import androidx.compose.foundation.layout.* import androidx.compose.material.* @@ -6,24 +8,17 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog import credentials.CredentialsState -import org.eclipse.jgit.api.Git -import org.eclipse.jgit.diff.DiffEntry -import org.eclipse.jgit.lib.Repository +import git.DiffEntryType +import git.GitManager import org.eclipse.jgit.revwalk.RevCommit -import org.eclipse.jgit.revwalk.RevTree -import org.eclipse.jgit.revwalk.RevWalk -import org.eclipse.jgit.treewalk.AbstractTreeIterator -import org.eclipse.jgit.treewalk.CanonicalTreeParser -import java.io.IOException @Composable -fun RepositorySelected(gitManager: GitManager) { +fun RepositoryOpenPage(gitManager: GitManager) { var selectedRevCommit by remember { mutableStateOf(null) } diff --git a/src/main/kotlin/Stashes.kt b/src/main/kotlin/ui/Stashes.kt similarity index 93% rename from src/main/kotlin/Stashes.kt rename to src/main/kotlin/ui/Stashes.kt index 100ab8c..02385b4 100644 --- a/src/main/kotlin/Stashes.kt +++ b/src/main/kotlin/ui/Stashes.kt @@ -1,11 +1,10 @@ +package ui + import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.MoreVert import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.ui.Alignment @@ -16,7 +15,8 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import components.ScrollableLazyColumn +import ui.components.ScrollableLazyColumn +import git.GitManager import git.StashStatus import org.eclipse.jgit.revwalk.RevCommit import theme.headerBackground @@ -43,7 +43,7 @@ fun Stashes(gitManager: GitManager) { .background(MaterialTheme.colors.headerBackground) .padding(vertical = 8.dp) .fillMaxWidth(), - text = "Stashes", + text = "ui.Stashes", fontWeight = FontWeight.Bold, textAlign = TextAlign.Center, color = MaterialTheme.colors.primary, diff --git a/src/main/kotlin/UncommitedChanges.kt b/src/main/kotlin/ui/UncommitedChanges.kt similarity index 95% rename from src/main/kotlin/UncommitedChanges.kt rename to src/main/kotlin/ui/UncommitedChanges.kt index f67b95c..7b1a037 100644 --- a/src/main/kotlin/UncommitedChanges.kt +++ b/src/main/kotlin/ui/UncommitedChanges.kt @@ -1,39 +1,34 @@ @file:Suppress("UNUSED_PARAMETER") +package ui + import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.* import androidx.compose.foundation.layout.* -import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Add -import androidx.compose.material.icons.filled.Close import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.pointer.pointerMoveFilter import androidx.compose.ui.platform.ContextMenuItem -import androidx.compose.ui.platform.ContextMenuState import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import components.ScrollableLazyColumn +import ui.components.ScrollableLazyColumn import extensions.filePath import extensions.icon import extensions.iconColor +import git.GitManager import git.StageStatus import org.eclipse.jgit.diff.DiffEntry import theme.headerBackground diff --git a/src/main/kotlin/components/ScrollableLazyColumn.kt b/src/main/kotlin/ui/components/ScrollableLazyColumn.kt similarity index 97% rename from src/main/kotlin/components/ScrollableLazyColumn.kt rename to src/main/kotlin/ui/components/ScrollableLazyColumn.kt index 01c6c0e..f279873 100644 --- a/src/main/kotlin/components/ScrollableLazyColumn.kt +++ b/src/main/kotlin/ui/components/ScrollableLazyColumn.kt @@ -1,4 +1,4 @@ -package components +package ui.components import androidx.compose.foundation.VerticalScrollbar import androidx.compose.foundation.layout.Box