Skip to content

Commit b8388c5

Browse files
authored
A cut btn Added in Android app (Writeopia#434)
1 parent 0cc5eb2 commit b8388c5

4 files changed

Lines changed: 25 additions & 0 deletions

File tree

application/features/editor/src/androidMain/kotlin/io/writeopia/editor/features/editor/ui/screen/NoteEditorScreen.android.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ internal fun NoteEditorScreen(
162162
noteEditorViewModel::onAddSpanClick,
163163
noteEditorViewModel::deleteSelection,
164164
noteEditorViewModel::copySelection,
165+
noteEditorViewModel::cutSelection,
165166
noteEditorViewModel::clearSelections,
166167
noteEditorViewModel::onAddCheckListClick,
167168
noteEditorViewModel::onAddListItemClick
@@ -318,6 +319,7 @@ private fun BottomScreen(
318319
onSpanSelected: (Span) -> Unit = {},
319320
deleteSelection: () -> Unit = {},
320321
copySelection: () -> Unit = {},
322+
cutSelection: () -> Unit = {},
321323
onClose: () -> Unit = {},
322324
onCheckItem: () -> Unit = {},
323325
onListItem: () -> Unit = {}
@@ -361,6 +363,7 @@ private fun BottomScreen(
361363
onSpanClick = onSpanSelected,
362364
onDelete = deleteSelection,
363365
onCopy = copySelection,
366+
onCut = cutSelection,
364367
onClose = onClose,
365368
checkboxClick = onCheckItem,
366369
listItemClick = onListItem

application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorKmpViewModel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,11 @@ class NoteEditorKmpViewModel(
518518
copyManager.copy(annotatedString)
519519
}
520520

521+
override fun cutSelection() {
522+
copySelection()
523+
deleteSelection()
524+
}
525+
521526
override fun deleteDocument() {
522527
viewModelScope.launch(Dispatchers.Default) {
523528
documentRepository.deleteDocument(writeopiaManager.getDocument())

application/features/editor/src/commonMain/kotlin/io/writeopia/editor/features/editor/viewmodel/NoteEditorViewModel.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ interface NoteEditorViewModel : BackstackInform, BackstackHandler {
107107

108108
fun copySelection()
109109

110+
fun cutSelection()
111+
110112
fun deleteDocument()
111113

112114
fun toggleFavorite()

writeopia_ui/src/commonMain/kotlin/io/writeopia/ui/components/EditionScreen.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.padding
88
import androidx.compose.foundation.layout.size
99
import androidx.compose.foundation.layout.width
1010
import androidx.compose.material.icons.Icons
11+
import androidx.compose.material.icons.filled.ContentCut
1112
import androidx.compose.material.icons.filled.DeleteOutline
1213
import androidx.compose.material.icons.outlined.FormatBold
1314
import androidx.compose.material.icons.outlined.FormatItalic
@@ -34,6 +35,7 @@ fun EditionScreen(
3435
listItemClick: () -> Unit = {},
3536
onDelete: () -> Unit = {},
3637
onCopy: () -> Unit = {},
38+
onCut: () -> Unit = {},
3739
onClose: () -> Unit = {},
3840
) {
3941
val iconPadding = PaddingValues(vertical = 4.dp)
@@ -131,6 +133,19 @@ fun EditionScreen(
131133

132134
Spacer(modifier = Modifier.width(spaceWidth))
133135

136+
Icon(
137+
modifier = Modifier
138+
.clip(clipShape)
139+
.clickable(onClick = onCut)
140+
.size(32.dp)
141+
.padding(iconPadding),
142+
imageVector = Icons.Default.ContentCut,
143+
contentDescription = "Cut",
144+
tint = tint
145+
)
146+
147+
Spacer(modifier = Modifier.width(spaceWidth))
148+
134149
Icon(
135150
modifier = Modifier
136151
.clip(clipShape)

0 commit comments

Comments
 (0)