Bug 392504

Summary: The channels docker/layer properties dialog does not show the locked channels properly
Product: [Applications] krita Reporter: Halla Rempt <halla>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Halla Rempt 2018-03-29 21:16:48 UTC
For this file, the channels docker/layer properties dialog does not reflect the actual channel lock settings: https://drive.google.com/file/d/1xQtDR2jzmddVoL_T20AyHVJYYAvMUmdL/view?usp=sharing

I am not sure whether the original author saved the file with certain channels locked, but the file contains this:

   <layer y="-307" nodetype="paintlayer" name="classic rake.jpg" colorspacename="RGBA" channelflags="" channellockflags="1011" selected="true" onionskin="0" uuid="{22b1a997-901c-4b97-9368-f1c8e215126c}" locked="0" collapsed="0" compositeop="normal" colorlabel="0" filename="layer3" opacity="255" intimeline="0" visible="1" x="-1827"/>

And it is certainly loaded like this.
Comment 1 Halla Rempt 2018-03-30 07:37:18 UTC
Git commit 7a27f04cbe093ff1880a261f38504c2dfa0800d1 by Boudewijn Rempt.
Committed on 30/03/2018 at 07:33.
Pushed by rempt into branch 'master'.

Do not save and load channel lock flags to .kra

Until the channel docker was made to work on the projection in

    commit 365d0eb775cbff3bf6afda3f9b703741dbd68710
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Sep 30 09:02:41 2013 +0200

    Start making the channel docker work on the projection, not the layer

We could lock channels and painting on them would be disabled. Except
for some remnants in libqml, that is no longer possible. However, we
would still load and save the channel lock flags. Maybe in the future
we should add the channel lock flags to the layer properties dialog
instead and restore this code.

I'm still not sure how the file in the bug report was created, unless
it originated in Krita Gemini.

M  +0    -82   libs/libqml/plugins/kritasketchplugin/models/LayerModel.cpp
M  +0    -16   libs/libqml/plugins/kritasketchplugin/models/LayerModel.h
M  +0    -49   libs/libqml/qml/panels/EditLayerPage.qml
M  +0    -3    plugins/impex/libkra/kis_kra_loader.cpp
M  +0    -5    plugins/impex/libkra/kis_kra_savexml_visitor.cpp
M  +0    -1    plugins/impex/libkra/kis_kra_tags.h

https://commits.kde.org/krita/7a27f04cbe093ff1880a261f38504c2dfa0800d1
Comment 2 Halla Rempt 2018-04-03 11:46:28 UTC
Git commit c8103fa9f264405e95c481bfeda102561da216c7 by Boudewijn Rempt.
Committed on 03/04/2018 at 11:20.
Pushed by rempt into branch 'krita/4.0'.

Do not save and load channel lock flags to .kra

Until the channel docker was made to work on the projection in

    commit 365d0eb775cbff3bf6afda3f9b703741dbd68710
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Mon Sep 30 09:02:41 2013 +0200

    Start making the channel docker work on the projection, not the layer

We could lock channels and painting on them would be disabled. Except
for some remnants in libqml, that is no longer possible. However, we
would still load and save the channel lock flags. Maybe in the future
we should add the channel lock flags to the layer properties dialog
instead and restore this code.

I'm still not sure how the file in the bug report was created, unless
it originated in Krita Gemini.
(cherry picked from commit 7a27f04cbe093ff1880a261f38504c2dfa0800d1)

M  +0    -82   libs/libqml/plugins/kritasketchplugin/models/LayerModel.cpp
M  +0    -16   libs/libqml/plugins/kritasketchplugin/models/LayerModel.h
M  +0    -49   libs/libqml/qml/panels/EditLayerPage.qml
M  +0    -3    plugins/impex/libkra/kis_kra_loader.cpp
M  +0    -5    plugins/impex/libkra/kis_kra_savexml_visitor.cpp
M  +0    -1    plugins/impex/libkra/kis_kra_tags.h

https://commits.kde.org/krita/c8103fa9f264405e95c481bfeda102561da216c7