Bug 474090

Summary: Task Sets docker doesn't record tool invocations done on the toolbox
Product: [Applications] krita Reporter: Takiro Ryo <takiro-kde>
Component: DockersAssignee: Krita Bugs <krita-bugs-null>
Status: CONFIRMED ---    
Severity: wishlist CC: halla
Priority: NOR    
Version First Reported In: 5.1.5   
Target Milestone: ---   
Platform: Appimage   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Takiro Ryo 2023-09-03 10:56:56 UTC
SUMMARY
The Task Sets docker only records tools when using the keyboard shortcuts but not when they're selected by clicking on them in the toolbox.


STEPS TO REPRODUCE
1. Open Task Sets docker
2.  Press record
3. Select the Freehand Brush tool with the mouse by clicking its icon

OBSERVED RESULT
Nothing happens

EXPECTED RESULT
Freehand Brushtool should appear in the list.

if you press B instead it will appear in the list though. 

Krita
 Version: 5.1.5
 Hidpi: true

Qt

  Version (compiled): 5.12.12
  Version (loaded): 5.12.12

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 6.5.0-1-MANJARO
  Pretty Productname: Manjaro Linux
  Product Type: manjaro
  Product Version: unknown
  Desktop: KDE

Locale

  Languages: en_US
  C locale: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=de_DE.UTF-8;LC_TIME=de_DE.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=de_DE.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=de_DE.UTF-8;LC_NAME=de_DE.UTF-8;LC_ADDRESS=de_DE.UTF-8;LC_TELEPHONE=de_DE.UTF-8;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=de_DE.UTF-8
  QLocale current: en
  QLocale system: en
  QTextCodec for locale: UTF-8

OpenGL Info
 
  Vendor:  "AMD" 
  Renderer:  "AMD Radeon Graphics (renoir, LLVM 15.0.7, DRM 3.54, 6.5.0-1-MANJARO)" 
  Version:  "4.6 (Compatibility Profile) Mesa 23.1.6-2" 
  Shading language:  "4.60" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:  QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
     Version: 4.6
     Supports deprecated functions true 
     is OpenGL ES: false 
  supportsBufferMapping: true 
  supportsBufferInvalidation: true 
  forceDisableTextureBuffers: false 
  Extensions: 
     "GL_ARB_copy_buffer" 
     "GL_ARB_clip_control" 
     "GL_ARB_depth_buffer_float" 
     "GL_ARB_fragment_program_shadow" 
     "GL_ARB_query_buffer_object" 
     "GL_ATI_texture_env_combine3" 
     "GL_ARB_shader_texture_image_samples" 
     "GL_ARB_vertex_type_2_10_10_10_rev" 
     "GL_ARB_transpose_matrix" 
     "GL_NV_packed_depth_stencil" 
     "GL_ARB_draw_instanced" 
     "GL_ARB_shadow" 
     "GL_EXT_texture_rectangle" 
     "GL_EXT_memory_object_fd" 
     "GL_ARB_window_pos" 
     "GL_ARB_texture_border_clamp" 
     "GL_EXT_texture" 
     "GL_ARB_shader_draw_parameters" 
     "GL_ARB_conservative_depth" 
     "GL_ARB_shader_ballot" 
     "GL_ARB_sparse_texture2" 
     "GL_EXT_texture_object" 
     "GL_ARB_texture_compression_rgtc" 
     "GL_ARB_multi_bind" 
     "GL_ARB_gpu_shader_fp64" 
     "GL_ARB_get_texture_sub_image" 
     "GL_EXT_multi_draw_arrays" 
     "GL_EXT_memory_object" 
     "GL_ARB_transform_feedback_overflow_query" 
     "GL_ARB_get_program_binary" 
     "GL_ATI_blend_equation_separate" 
     "GL_AMD_pinned_memory" 
     "GL_EXT_draw_buffers2" 
     "GL_ARB_compute_shader" 
     "GL_AMD_draw_buffers_blend" 
     "GL_AMD_shader_trinary_minmax" 
     "GL_EXT_semaphore_fd" 
     "GL_KHR_blend_equation_advanced" 
     "GL_ARB_debug_output" 
     "GL_ARB_occlusion_query" 
     "GL_EXT_texture_shared_exponent" 
     "GL_ARB_timer_query" 
     "GL_EXT_texture_env_add" 
     "GL_ARB_shader_subroutine" 
     "GL_EXT_direct_state_access" 
     "GL_AMD_vertex_shader_viewport_index" 
     "GL_ARB_texture_float" 
     "GL_ARB_buffer_storage" 
     "GL_EXT_vertex_array_bgra" 
     "GL_EXT_stencil_wrap" 
     "GL_ARB_texture_cube_map" 
     "GL_EXT_texture_mirror_clamp" 
     "GL_NV_fog_distance" 
     "GL_EXT_texture_filter_anisotropic" 
     "GL_NV_shader_atomic_int64" 
     "GL_ARB_draw_indirect" 
     "GL_EXT_separate_specular_color" 
     "GL_ARB_texture_env_combine" 
     "GL_NV_compute_shader_derivatives" 
     "GL_EXT_texture_env_combine" 
     "GL_EXT_shader_samples_identical" 
     "GL_ARB_texture_query_lod" 
     "GL_EXT_depth_bounds_test" 
     "GL_EXT_framebuffer_sRGB" 
     "GL_ATI_separate_stencil" 
     "GL_EXT_texture_snorm" 
     "GL_EXT_semaphore" 
     "GL_EXT_packed_pixels" 
     "GL_KHR_robust_buffer_access_behavior" 
     "GL_EXT_texture_swizzle" 
     "GL_ARB_framebuffer_sRGB" 
     "GL_EXT_timer_query" 
     "GL_EXT_shader_integer_mix" 
     "GL_EXT_debug_label" 
     "GL_KHR_texture_compression_astc_ldr" 
     "GL_ARB_vertex_shader" 
     "GL_NV_texture_barrier" 
     "GL_ARB_shader_bit_encoding" 
     "GL_EXT_stencil_two_side" 
     "GL_AMD_conservative_depth" 
     "GL_ARB_vertex_attrib_64bit" 
     "GL_ARB_vertex_type_10f_11f_11f_rev" 
     "GL_ARB_gpu_shader_int64" 
     "GL_ATI_draw_buffers" 
     "GL_NV_light_max_exponent" 
     "GL_KHR_context_flush_control" 
     "GL_EXT_window_rectangles" 
     "GL_ARB_internalformat_query" 
     "GL_ARB_compute_variable_group_size" 
     "GL_ARB_texture_query_levels" 
     "GL_ARB_shader_image_load_store" 
     "GL_ARB_enhanced_layouts" 
     "GL_EXT_texture_shadow_lod" 
     "GL_EXT_EGL_image_storage" 
     "GL_ARB_shader_atomic_counters" 
     "GL_AMD_shader_stencil_export" 
     "GL_EXT_abgr" 
     "GL_EXT_texture_sRGB_R8" 
     "GL_ARB_transform_feedback3" 
     "GL_ARB_point_parameters" 
     "GL_IBM_multimode_draw_arrays" 
     "GL_SGIS_texture_lod" 
     "GL_ARB_texture_storage_multisample" 
     "GL_ARB_sparse_texture" 
     "GL_ARB_texture_env_dot3" 
     "GL_EXT_texture3D" 
     "GL_EXT_framebuffer_object" 
     "GL_ARB_multi_draw_indirect" 
     "GL_EXT_shader_image_load_store" 
     "GL_EXT_blend_subtract" 
     "GL_ARB_viewport_array" 
     "GL_ARB_explicit_attrib_location" 
     "GL_ARB_ES3_2_compatibility" 
     "GL_EXT_vertex_attrib_64bit" 
     "GL_ARB_clear_texture" 
     "GL_S3_s3tc" 
     "GL_ARB_texture_barrier" 
     "GL_EXT_copy_texture" 
     "GL_ARB_texture_view" 
     "GL_ARB_vertex_attrib_binding" 
     "GL_ARB_vertex_array_object" 
     "GL_NV_vdpau_interop" 
     "GL_OES_EGL_image" 
     "GL_ARB_robustness" 
     "GL_ARB_blend_func_extended" 
     "GL_ARB_indirect_parameters" 
     "GL_NV_alpha_to_coverage_dither_control" 
     "GL_ARB_texture_rgb10_a2ui" 
     "GL_SUN_multi_draw_arrays" 
     "GL_ANGLE_texture_compression_dxt5" 
     "GL_ARB_derivative_control" 
     "GL_ARB_texture_rectangle" 
     "GL_ARB_sync" 
     "GL_NV_texture_env_combine4" 
     "GL_ARB_fragment_coord_conventions" 
     "GL_ARB_draw_buffers_blend" 
     "GL_ARB_shading_language_100" 
     "GL_ARB_bindless_texture" 
     "GL_KHR_robustness" 
     "GL_MESA_pack_invert" 
     "GL_ARB_shader_precision" 
     "GL_EXT_texture_buffer_object" 
     "GL_ARB_depth_clamp" 
     "GL_OES_read_format" 
     "GL_ARB_fragment_layer_viewport" 
     "GL_ARB_texture_buffer_object_rgb32" 
     "GL_ATI_meminfo" 
     "GL_ARB_texture_cube_map_array" 
     "GL_MESA_framebuffer_flip_y" 
     "GL_ARB_robust_buffer_access_behavior" 
     "GL_NV_texgen_reflection" 
     "GL_ARB_polygon_offset_clamp" 
     "GL_ARB_texture_compression_bptc" 
     "GL_ARB_framebuffer_no_attachments" 
     "GL_ARB_multitexture" 
     "GL_ARB_separate_shader_objects" 
     "GL_EXT_texture_compression_s3tc" 
     "GL_EXT_texture_env_dot3" 
     "GL_ARB_draw_elements_base_vertex" 
     "GL_ARB_seamless_cubemap_per_texture" 
     "GL_AMD_framebuffer_multisample_advanced" 
     "GL_NV_depth_clamp" 
     "GL_KHR_parallel_shader_compile" 
     "GL_AMD_depth_clamp_separate" 
     "GL_SGIS_generate_mipmap" 
     "GL_EXT_blend_color" 
     "GL_SGIS_texture_edge_clamp" 
     "GL_ARB_transform_feedback_instanced" 
     "GL_ARB_direct_state_access" 
     "GL_ARB_ES3_1_compatibility" 
     "GL_EXT_texture_compression_latc" 
     "GL_ARB_compressed_texture_pixel_storage" 
     "GL_NV_copy_image" 
     "GL_ARB_fragment_shader" 
     "GL_EXT_compiled_vertex_array" 
     "GL_ARB_texture_non_power_of_two" 
     "GL_ARB_shader_stencil_export" 
     "GL_ATI_texture_float" 
     "GL_ARB_pixel_buffer_object" 
     "GL_ARB_ES2_compatibility" 
     "GL_ARB_texture_filter_anisotropic" 
     "GL_ARB_shader_atomic_counter_ops" 
     "GL_EXT_texture_sRGB" 
     "GL_ARB_shading_language_420pack" 
     "GL_EXT_texture_lod_bias" 
     "GL_ARB_texture_gather" 
     "GL_ARB_texture_compression" 
     "GL_ARB_internalformat_query2" 
     "GL_ARB_uniform_buffer_object" 
     "GL_ARB_sparse_buffer" 
     "GL_ARB_provoking_vertex" 
     "GL_ARB_sample_shading" 
     "GL_ARB_transform_feedback2" 
     "GL_NV_conditional_render" 
     "GL_EXT_packed_depth_stencil" 
     "GL_EXT_texture_compression_rgtc" 
     "GL_EXT_draw_instanced" 
     "GL_ARB_invalidate_subdata" 
     "GL_EXT_EGL_sync" 
     "GL_MESA_shader_integer_functions" 
     "GL_EXT_pixel_buffer_object" 
     "GL_ARB_base_instance" 
     "GL_EXT_point_parameters" 
     "GL_ARB_texture_stencil8" 
     "GL_ANGLE_texture_compression_dxt3" 
     "GL_ARB_arrays_of_arrays" 
     "GL_ARB_spirv_extensions" 
     "GL_ARB_texture_buffer_object" 
     "GL_ARB_parallel_shader_compile" 
     "GL_ARB_vertex_array_bgra" 
     "GL_ARB_texture_rg" 
     "GL_ARB_program_interface_query" 
     "GL_APPLE_packed_pixels" 
     "GL_EXT_gpu_program_parameters" 
     "GL_EXT_shader_image_load_formatted" 
     "GL_EXT_fog_coord" 
     "GL_EXT_framebuffer_blit" 
     "GL_ARB_sparse_texture_clamp" 
     "GL_ATI_fragment_shader" 
     "GL_AMD_vertex_shader_layer" 
     "GL_KHR_texture_compression_astc_sliced_3d" 
     "GL_EXT_texture_sRGB_decode" 
     "GL_ARB_map_buffer_alignment" 
     "GL_AMD_query_buffer_object" 
     "GL_ARB_multisample" 
     "GL_ARB_shading_language_include" 
     "GL_EXT_framebuffer_multisample_blit_scaled" 
     "GL_ARB_half_float_pixel" 
     "GL_ARB_shader_clock" 
     "GL_KHR_no_error" 
     "GL_ARB_instanced_arrays" 
     "GL_EXT_texture_cube_map" 
     "GL_ARB_texture_storage" 
     "GL_ARB_texture_multisample" 
     "GL_ARB_compatibility" 
     "GL_IBM_rasterpos_clip" 
     "GL_ARB_texture_mirror_clamp_to_edge" 
     "GL_ARB_copy_image" 
     "GL_EXT_vertex_array" 
     "GL_ARB_vertex_buffer_object" 
     "GL_ARB_cull_distance" 
     "GL_ARB_seamless_cube_map" 
     "GL_ARB_depth_texture" 
     "GL_ARB_point_sprite" 
     "GL_EXT_gpu_shader4" 
     "GL_EXT_rescale_normal" 
     "GL_EXT_secondary_color" 
     "GL_EXT_draw_range_elements" 
     "GL_ARB_shader_viewport_layer_array" 
     "GL_EXT_framebuffer_multisample" 
     "GL_ARB_fragment_program" 
     "GL_AMD_texture_texture4" 
     "GL_NV_texture_rectangle" 
     "GL_ARB_shader_group_vote" 
     "GL_EXT_texture_integer" 
     "GL_NV_ES1_1_compatibility" 
     "GL_ARB_shader_objects" 
     "GL_NV_blend_square" 
     "GL_NV_primitive_restart" 
     "GL_EXT_transform_feedback" 
     "GL_ARB_framebuffer_object" 
     "GL_EXT_shadow_funcs" 
     "GL_ARB_sampler_objects" 
     "GL_AMD_performance_monitor" 
     "GL_NVX_gpu_memory_info" 
     "GL_ARB_draw_buffers" 
     "GL_ARB_texture_env_crossbar" 
     "GL_EXT_blend_equation_separate" 
     "GL_MESA_texture_signed_rgba" 
     "GL_EXT_bgra" 
     "GL_ARB_map_buffer_range" 
     "GL_EXT_provoking_vertex" 
     "GL_ARB_clear_buffer_object" 
     "GL_EXT_demote_to_helper_invocation" 
     "GL_ARB_color_buffer_float" 
     "GL_ARB_shader_storage_buffer_object" 
     "GL_ARB_shader_texture_lod" 
     "GL_AMD_seamless_cubemap_per_texture" 
     "GL_ARB_explicit_uniform_location" 
     "GL_EXT_texture_edge_clamp" 
     "GL_ARB_texture_env_add" 
     "GL_EXT_blend_minmax" 
     "GL_INGR_blend_func_separate" 
     "GL_NV_copy_depth_to_color" 
     "GL_ARB_gpu_shader5" 
     "GL_ARB_texture_mirrored_repeat" 
     "GL_ARB_pipeline_statistics_query" 
     "GL_EXT_packed_float" 
     "GL_SGIS_texture_border_clamp" 
     "GL_EXT_polygon_offset_clamp" 
     "GL_IBM_texture_mirrored_repeat" 
     "GL_ARB_shader_image_size" 
     "GL_INTEL_blackhole_render" 
     "GL_ARB_texture_swizzle" 
     "GL_ARB_conditional_render_inverted" 
     "GL_MESA_window_pos" 
     "GL_ARB_tessellation_shader" 
     "GL_ARB_ES3_compatibility" 
     "GL_NV_half_float" 
     "GL_ARB_shading_language_packing" 
     "GL_KHR_debug" 
     "GL_EXT_texture_array" 
     "GL_EXT_texture_compression_dxt1" 
     "GL_ATI_texture_mirror_once" 
     "GL_ARB_vertex_program" 
     "GL_ARB_occlusion_query2" 
     "GL_ARB_gl_spirv" 
     "GL_ATI_texture_compression_3dc" 
     "GL_EXT_blend_func_separate" 
     "GL_AMD_multi_draw_indirect" 
     "GL_ARB_stencil_texturing" 
     "GL_ARB_texture_buffer_range" 
     "GL_EXT_subtexture" 
     "GL_ARB_half_float_vertex" 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: auto
  Memory: 15372 Mb
  Number of Cores: 16
  Swap Location: /tmp
  Built for: sse2
  Base instruction set: sse2
  Supported instruction sets: fma3+avx2 avx2 fma3+avx avx fma4 fma3+sse4.2 sse4.2 sse4.1 ssse3 sse3 sse2 

Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 200
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 420
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Resource Location: /home/takiro/.local/share/krita
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: false


Loaded Python Plugins
	colorspace
	comics_project_management_tools
	documenttools
	exportlayers
	filtermanager
	lastdocumentsdocker
	plugin_importer
	quick_settings_docker
	scripter
	tenbrushes
	tenscripts


Display Information
Number of screens: 1
	Screen: 0
		Name: eDP
		Depth: 24
		Scale: 1.5
		Physical DPI125.865
		Logical DPI96
		Physical Size: 344, 194
		Position: 0, 0
		Resolution in pixels: 1707x960
		Manufacturer: BOE
		Model: 
		Refresh Rate: 165
Comment 1 Halla Rempt 2023-09-03 11:44:33 UTC
That's to be expected: the task docker records invocations of QActions, and pressing a button in the toolbox doesn't invoke the action.
Comment 2 Takiro Ryo 2023-09-03 12:21:04 UTC
(In reply to Halla Rempt from comment #1)
> That's to be expected: the task docker records invocations of QActions, and
> pressing a button in the toolbox doesn't invoke the action.

While that seems logical from the code point of view I think it is still unexpected behavior from the users point of view. Especially since other "clickable" actions appear in the Task Sets docker when invoked from the main menu, even something like opening Krita's about page. The usage of the docker is restricted to tools that have a shortcut by default if the user didn't have set shortcuts for all the tools.

Honestly I don't even know what the use case for the Task Sets docker even is, but I would expect a docker like that to record actions it no matter how the action was invoked. I believe most users won't know about the difference in how tools are selected. I only noticed this when I was testing it while helping someone else and this struck me as kinda odd that some things you click on work and others not.
Comment 3 Halla Rempt 2023-09-03 14:13:58 UTC
The task set docker was created to record the activation of QAction objects. It was created in 2011... Yes, we've got a lot of legacy stuff in Krita. It simply cannot record anything else than QAction activation, and if that's too confusing, we probably should just delete it.