Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,17 @@ class DefaultToolController(
} else if (toolType != ToolType.CLIP) {
toolOptionsViewController.removeToolViews()
}
if (toolList.contains(toolType)) {

if (toolsThatUseCheckmark.contains(toolType)) {
toolOptionsViewController.showCheckmark()
} else {
toolOptionsViewController.hideCheckmark()
}

if (toolReference.tool?.toolType == ToolType.SPRAY) {
(currentTool as SprayTool).resetRadiusToStrokeWidth()
}

val tool: Tool = toolFactory.createTool(
toolType,
toolOptionsViewController,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ interface ToolController {
val toolType: ToolType?
val toolColor: Int?
val currentTool: Tool?
val toolList: HashSet<ToolType>
val toolsThatUseCheckmark: HashSet<ToolType>
get() = hashSetOf(
ToolType.TEXT,
ToolType.TRANSFORM,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,25 @@ import android.view.View
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.SwitchCompat
import org.catrobat.paintroid.R
import org.catrobat.paintroid.presenter.MainActivityPresenter.Companion.autoSave
import org.catrobat.paintroid.tools.helper.AdvancedSettingsAlgorithms.smoothing
import org.catrobat.paintroid.tools.implementation.DefaultToolPaint.Companion.antialiasing

class AdvancedSettingsDialog : MainActivityDialogFragment() {
private var initValueAntialiasing: Boolean = antialiasing
private var initValueSmoothing: Boolean = smoothing
private var initValueAutoSave: Boolean = autoSave

@SuppressLint("UseSwitchCompatOrMaterialCode")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val antialiasingSwitch = view.findViewById<SwitchCompat>(R.id.pocketpaint_antialiasing)
val smoothSwitch = view.findViewById<SwitchCompat>(R.id.pocketpaint_smoothing)
val autoSaveSwitch = view.findViewById<SwitchCompat>(R.id.pocketpaint_auto_save)

antialiasingSwitch.isChecked = antialiasing
smoothSwitch.isChecked = smoothing
autoSaveSwitch.isChecked = autoSave

antialiasingSwitch.setOnCheckedChangeListener { _, isChecked ->
antialiasing = isChecked
Expand All @@ -31,6 +35,10 @@ class AdvancedSettingsDialog : MainActivityDialogFragment() {
smoothSwitch?.setOnCheckedChangeListener { _, isChecked ->
smoothing = isChecked
}

autoSaveSwitch?.setOnCheckedChangeListener { _, isChecked ->
autoSave = isChecked
}
}

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
Expand All @@ -49,6 +57,7 @@ class AdvancedSettingsDialog : MainActivityDialogFragment() {
.setNegativeButton(R.string.cancel_button_text) { _, _ ->
antialiasing = initValueAntialiasing
smoothing = initValueSmoothing
autoSave = initValueAutoSave
dismiss()
}
.create()
Expand All @@ -57,6 +66,7 @@ class AdvancedSettingsDialog : MainActivityDialogFragment() {
override fun onCancel(dialog: DialogInterface) {
antialiasing = initValueAntialiasing
smoothing = initValueSmoothing
autoSave = initValueAutoSave
super.onCancel(dialog)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ import org.catrobat.paintroid.tools.Workspace
import org.catrobat.paintroid.tools.implementation.BaseToolWithShape
import org.catrobat.paintroid.tools.implementation.CLICK_TIMEOUT_MILLIS
import org.catrobat.paintroid.tools.implementation.CONSTANT_3
import org.catrobat.paintroid.tools.implementation.ClipboardTool
import org.catrobat.paintroid.tools.implementation.ClippingTool
import org.catrobat.paintroid.tools.implementation.LineTool
import org.catrobat.paintroid.tools.implementation.DefaultToolPaint
Expand Down Expand Up @@ -813,7 +814,7 @@ open class MainActivityPresenter(
if (toolController.toolType === toolType && toolController.hasToolOptionsView()) {
toolController.toggleToolOptionsView()
} else {
checkForImplicitToolApplication()
if (autoSave) checkForImplicitToolApplication()
switchTool(toolType)
}
idlingResource.decrement()
Expand All @@ -822,7 +823,7 @@ open class MainActivityPresenter(
private fun checkForImplicitToolApplication() {
val currentTool = toolController.currentTool
val currentToolType = currentTool?.toolType
if (toolController.toolList.contains(currentToolType)) {
if (toolController.toolsThatUseCheckmark.contains(currentToolType) || currentTool is ClipboardTool) {
val toolToApply = currentTool as BaseToolWithShape
toolToApply.onClickOnButton()
} else if (currentToolType == ToolType.CLIP) (currentTool as ClippingTool).onClickOnButton()
Expand All @@ -833,7 +834,7 @@ open class MainActivityPresenter(
view.hideKeyboard()
downTimer = object :
CountDownTimer(
if (toolController.toolList.contains(toolController.currentTool?.toolType)) CLICK_TIMEOUT_MILLIS else 0L,
if (toolController.toolsThatUseCheckmark.contains(toolController.currentTool?.toolType)) CLICK_TIMEOUT_MILLIS else 0L,
CLICK_TIMEOUT_MILLIS / CONSTANT_3
) {
override fun onTick(millisUntilFinished: Long) {
Expand Down Expand Up @@ -1172,6 +1173,8 @@ open class MainActivityPresenter(
}

companion object {
var autoSave = false

@JvmStatic
fun getPathFromUri(context: Context, uri: Uri): String {
if (DocumentsContract.isDocumentUri(context, uri)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,16 @@
android:textColor="@color/design_default_color_on_secondary"
android:theme="@style/CustomSwitchTheme" />

<Space
android:layout_width="0dp"
android:layout_height="16dp" />

<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/pocketpaint_auto_save"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:checked="false"
android:text="@string/dialog_auto_save"
android:textColor="@color/design_default_color_on_secondary"
android:theme="@style/CustomSwitchTheme" />
</LinearLayout>
1 change: 1 addition & 0 deletions Paintroid/src/main/res/values/string.xml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@

<string name="dialog_antialiasing">Antialiasing</string>
<string name="dialog_smoothing">Smoothing</string>
<string name="dialog_auto_save" translatable="false">Auto-save</string>

<string name="dialog_zoom_window_enabled">Enabled</string>
<string name="dialog_zoom_window_from_size" translatable="false">100</string>
Expand Down