Feed Advanced Search

Thu, Mar 28

paulb moved T16983: Optimise Krita's PeerTube account from Done to Incoming - All new tasks and ideas go here on the KDE Promo board.
Thu, Mar 28, 7:51 AM · Krita, KDE Promo
paulb moved T16983: Optimise Krita's PeerTube account from Incoming - All new tasks and ideas go here to Done on the KDE Promo board.
Thu, Mar 28, 7:51 AM · Krita, KDE Promo

Mar 12 2024

vanyossi added a comment to T17188: Proposal for changing the way how we link internal Krita libraries together.
  1. We could patch it to add the to default PRIVATE, it may break all other framework builds though. So I would better suggest to turn OFF CMAKE_INCLUDE_CURRENT_DIR and CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE to avoid the possible mess with the other packages depending on ecm.
  2. Sounds like a good idea to do so.
  3. Im not very in favor of monolithic libs, however since we are not developing library only package, it might be a point in favor of reducing the number of libraries.
  4. Im not sure either, and I suspect the case of a lot of export from a subfolder is not very generalized. In any case Im not sure either if the includes would reduce by doing this.
  5. We were never very vocal about it, neither in HACKING or Framework_Coding_Style. However I do think its a good approach.
  6. True, let's keep things in their scope.
Mar 12 2024, 7:55 AM · Krita

Mar 6 2024

dkazakov added a comment to T17188: Proposal for changing the way how we link internal Krita libraries together.

The angular brackets thing for includes outside has actually been our coding standard since the kimageshop days, but lots of people are pretty sloppy -- and then also, files get moved from library to library.

Mar 6 2024, 3:07 PM · Krita
rempt added a comment to T17188: Proposal for changing the way how we link internal Krita libraries together.
  1. I'm not sure how to do that.
  2. that sounds like a good idea
  3. I am simply not sure.
  4. I'm pretty sure that kritaui _is_ a super library that links to everything , and that's an issue. I'm fine with the subfolder/header.h approach, but that needs a lot of, hopefully automatable, changes. I don't think it's useful to split those folders out in separate libraries, since I'm not sure those files actually don't refer to files in other subfolders of the same library, or files in the toplevel library. I'm also not sure it would actually reduce the number of -I switches.
  5. The angular brackets thing for includes outside has actually been our coding standard since the kimageshop days, but lots of people are pretty sloppy -- and then also, files get moved from library to library.
  6. if that's possible, it's a very good idea
Mar 6 2024, 10:56 AM · Krita
dkazakov created T17188: Proposal for changing the way how we link internal Krita libraries together.
Mar 6 2024, 10:02 AM · Krita

Mar 5 2024

havocado added a watcher for Krita: havocado.
Mar 5 2024, 9:40 PM

Nov 29 2023

dkazakov added a comment to T16346: Krita dependencies management issues.

Okay, here is the proposal based on the KDE CI scripts:

Nov 29 2023, 2:34 PM · Krita

Nov 26 2023

dkazakov added a comment to T16469: Windows CI roadmap.

Okay, the Windows CI is now fully deployed. There is only one todo item that should be fixed before we move release builds to Gitlab:

Nov 26 2023, 5:49 PM · Krita

Nov 20 2023

dkazakov updated the task description for T17019: Benchmark variety of GPUs for the support of host-memory access.
Nov 20 2023, 3:43 PM · Krita
dkazakov created T17019: Benchmark variety of GPUs for the support of host-memory access.
Nov 20 2023, 3:39 PM · Krita

Nov 6 2023

paulb updated the task description for T16983: Optimise Krita's PeerTube account.
Nov 6 2023, 8:01 AM · Krita, KDE Promo

Nov 2 2023

paulb updated the task description for T16983: Optimise Krita's PeerTube account.
Nov 2 2023, 9:47 PM · Krita, KDE Promo
rempt added a comment to T16983: Optimise Krita's PeerTube account.

Following done!

Nov 2 2023, 9:46 PM · Krita, KDE Promo
paulb created T16983: Optimise Krita's PeerTube account.
Nov 2 2023, 9:29 PM · Krita, KDE Promo

Oct 2 2023

dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

A note from bcooksley: I would suggest we use something like teams/krita/ [namespace] for hosting those [forked dependencies]

Oct 2 2023, 3:53 PM · Krita

Sep 25 2023

woltherav added a comment to T16862: Requirements for dependent shapes framework.

A text shape can flow into multiple shapes, within SVG these are just linked, so both grouped and ungrouped is possible within SVG.

Then the design of the shapes being owned by the text shape may become a bit weird in some corner cases. E.g. we might end up with a configuration like that:

  • shapeA
  • groupShapeB
    • shapeC
    • shapeD
  • textShapeE -> flows inside shapeA and shapeD

    As far as I can tell this configuration is not possible to implement within the current design.
Sep 25 2023, 8:46 AM · Krita
dkazakov added a comment to T16862: Requirements for dependent shapes framework.

A text shape can flow into multiple shapes, within SVG these are just linked, so both grouped and ungrouped is possible within SVG.

Sep 25 2023, 7:58 AM · Krita

Sep 20 2023

woltherav added a comment to T16862: Requirements for dependent shapes framework.

Btw, a new set of weird technical questions:

  1. Can a text shape belong to multiple (ungrouped) vector shapes? Or they should always be grouped first?
Sep 20 2023, 2:34 PM · Krita

Sep 18 2023

dkazakov created T16906: Draft for modernize proposal policies.
Sep 18 2023, 9:28 AM · Krita

Aug 31 2023

dkazakov added a comment to T16862: Requirements for dependent shapes framework.

Btw, a new set of weird technical questions:

Aug 31 2023, 9:59 AM · Krita
dkazakov added a comment to T16862: Requirements for dependent shapes framework.

Right now, for text path we are required to only apply 'local transforms' on the textpath

Aug 31 2023, 9:46 AM · Krita

Aug 30 2023

alvinhochun added a comment to T16862: Requirements for dependent shapes framework.

Also need to consider flowing text in multiple shapes, and shape-subtract.

Aug 30 2023, 7:21 PM · Krita
alvinhochun updated the task description for T16862: Requirements for dependent shapes framework.
Aug 30 2023, 7:06 PM · Krita
woltherav added a comment to T16862: Requirements for dependent shapes framework.

I think technically speaking the clip-paths are also a situation where there might be shape-dependency, though that can be resolved quite easily. Beyond that it's stuff like patterns and markers, but there it is also a lot more self-evident that we should just resolve, as they're resources and therefore suitably contained.

Aug 30 2023, 3:42 PM · Krita

Aug 29 2023

dkazakov added a comment to T16862: Requirements for dependent shapes framework.

Can this include changing the text orientation from inside the path to outside the path (for example text outside the circle and text inside the circle path)

Aug 29 2023, 7:55 AM · Krita
dkazakov updated the task description for T16862: Requirements for dependent shapes framework.
Aug 29 2023, 7:53 AM · Krita

Aug 28 2023

kamathraghavendra added a comment to T16862: Requirements for dependent shapes framework.

The user should be able to edit custom handles provided by the text shape itself:

Aug 28 2023, 2:31 PM · Krita
dkazakov created T16862: Requirements for dependent shapes framework.
Aug 28 2023, 12:43 PM · Krita

Aug 14 2023

dkazakov updated the task description for T16814: Notes on AppImage build tools to linuxdeploy.
Aug 14 2023, 3:05 PM · Krita
dkazakov created T16814: Notes on AppImage build tools to linuxdeploy.
Aug 14 2023, 3:04 PM · Krita

Aug 7 2023

dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Just a note: we need some better way to manage git repositories for the deps. The thing that happened today was that @lsegovia removed a branch in their personal repo (I guess it was renamed, though I'm not sure), and it broke our deps builds.

Aug 7 2023, 3:55 PM · Krita

Jul 13 2023

rfool removed a watcher for Krita: rfool.
Jul 13 2023, 1:07 AM
rfool added a watcher for Krita: rfool.
Jul 13 2023, 1:07 AM

Jun 22 2023

dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

first update the deps, verify Krita still builds with it, and then have an MR for Krita. I'm not sure why, but I think it would give me a bit of a safe feeling...

Jun 22 2023, 11:23 AM · Krita
rempt added a comment to T16430: Ideas about the cmake-based deps build system.

(not that is "blocks" the split, we should just model and document how to do such MRs)

Jun 22 2023, 7:56 AM · Krita

Jun 21 2023

dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Just a note:

Jun 21 2023, 8:01 AM · Krita

Jun 15 2023

bcooksley added a comment to T16469: Windows CI roadmap.

The maliciously built binary is why we wouldn't sign them - in that case all we have done is provide hosting for the binary, but no actual legitimacy.

Jun 15 2023, 7:28 PM · Krita

Jun 14 2023

dkazakov added a comment to T16469: Windows CI roadmap.

There are two different sets of expiry times we're referring to here i'm afraid

Jun 14 2023, 12:12 PM · Krita
bcooksley added a comment to T16469: Windows CI roadmap.

There are two different sets of expiry times we're referring to here i'm afraid:

  1. Being the job timeout (which is what you've referred to) - being the maximum amount of time the job is allowed to run for
  2. Being the artifact expiry time (which is what I was referring to) - being the maximum amount of time Gitlab will keep the artifacts of a given CI job around before it schedules them for deletion.
Jun 14 2023, 11:30 AM · Krita
dkazakov added a comment to T16469: Windows CI roadmap.

Thank you for your replies!

Jun 14 2023, 10:11 AM · Krita
bcooksley added a comment to T16469: Windows CI roadmap.

For the cache and artifact folders, you can use:

  • KDECI_CC_CACHE=C:/Gitlab/Caches/krita-windows/
  • KDECI_CACHE_PATH=C:/Gitlab/Artifacts/krita-windows/
Jun 14 2023, 9:36 AM · Krita

Jun 13 2023

dkazakov created T16469: Windows CI roadmap.
Jun 13 2023, 12:19 PM · Krita

Jun 5 2023

dkazakov added a comment to T16449: Krita Color Management strategies after compositors getting color management compatibilities.

Weston's ICC -> GPU implementation:

Jun 5 2023, 1:29 PM · Krita

Jun 1 2023

woltherav added a comment to T16449: Krita Color Management strategies after compositors getting color management compatibilities.

Windows questions:

Jun 1 2023, 3:29 PM · Krita
dkazakov created T16449: Krita Color Management strategies after compositors getting color management compatibilities.
Jun 1 2023, 3:02 PM · Krita

May 31 2023

dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Oh, another manual needed:

May 31 2023, 7:07 AM · Krita

May 30 2023

rempt added a comment to T16430: Ideas about the cmake-based deps build system.

So, what you're saying is that having deps commits mixed in with Krita commits helps somehow to figure out which dep change was related to which change in Krita <...> I don't think that's important at all.

Well, in some cases this info is rather useful for me.

May 30 2023, 6:11 PM · Krita
dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

So, what you're saying is that having deps commits mixed in with Krita commits helps somehow to figure out which dep change was related to which change in Krita <...> I don't think that's important at all.

May 30 2023, 11:48 AM · Krita
rempt added a comment to T16430: Ideas about the cmake-based deps build system.

So, what you're saying is that having deps commits mixed in with Krita commits helps somehow to figure out which dep change was related to which change in Krita. Though, of course, oftentimes, deps change without a corresponding change in Krita's code?

May 30 2023, 10:55 AM · Krita
dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Well, no. It won't be materially different because right now the deps build and the krita build are completely separate already. They might be in the same repo, but the build systems do not connect.

May 30 2023, 9:01 AM · Krita
rempt added a comment to T16430: Ideas about the cmake-based deps build system.

If we split deps, we will have to update Krita's repo somehow with what deps it needs (it is required for complex changes that rely on changes in deps)

May 30 2023, 7:46 AM · Krita

May 29 2023

dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Problems of the split repos:

May 29 2023, 2:17 PM · Krita

May 26 2023

dkazakov updated the task description for T16430: Ideas about the cmake-based deps build system.
May 26 2023, 11:35 AM · Krita
dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Krita's unstable branch would always checkout the master branch of the deps repo

May 26 2023, 9:47 AM · Krita
rempt added a comment to T16430: Ideas about the cmake-based deps build system.

I'd actually say that's an advantage... Krita's unstable branch would always checkout the master branch of the deps repo, unstable the unstable branch (so no manual changes needed), and every release would be linked to the correct dependency release. So it's the release manual that gets a bit longer (but I removed the copy_po) step today, so that's fine :P)

May 26 2023, 9:29 AM · Krita
dkazakov added a comment to T16430: Ideas about the cmake-based deps build system.

Maybe related, maybe not, but I thought today that maybe we should spin our deps build system into a separate repo with stable and unstable branches, and actual releases.

May 26 2023, 9:25 AM · Krita
dkazakov updated the task description for T16430: Ideas about the cmake-based deps build system.
May 26 2023, 9:19 AM · Krita

May 24 2023

rempt added a comment to T16430: Ideas about the cmake-based deps build system.

Maybe related, maybe not, but I thought today that maybe we should spin our deps build system into a separate repo with stable and unstable branches, and actual releases.

May 24 2023, 2:08 PM · Krita
dkazakov updated the task description for T16430: Ideas about the cmake-based deps build system.
May 24 2023, 9:43 AM · Krita
dkazakov updated the task description for T16430: Ideas about the cmake-based deps build system.
May 24 2023, 8:55 AM · Krita
dkazakov created T16430: Ideas about the cmake-based deps build system.
May 24 2023, 8:08 AM · Krita

May 10 2023

dkazakov updated the task description for T16346: Krita dependencies management issues.
May 10 2023, 7:59 AM · Krita
dkazakov added a comment to T16346: Krita dependencies management issues.

Notes on the KDE's CI system

May 10 2023, 7:21 AM · Krita

May 7 2023

paulb moved T12801: Attract existing FLOSS software projects to KDE and incorporate their members into our community: Convince Design/Creativity Applications to join KDE from Incoming - All new tasks and ideas go here to Permanent on the KDE Promo board.
May 7 2023, 5:37 PM · Krita, Kdenlive, KDE Promo

Apr 18 2023

dkazakov updated the task description for T16346: Krita dependencies management issues.
Apr 18 2023, 8:01 AM · Krita
dkazakov added a comment to T16346: Krita dependencies management issues.

After yesterday's discussion on IRC I have added one more requirement to the system:

Apr 18 2023, 8:00 AM · Krita
dkazakov updated the task description for T16346: Krita dependencies management issues.
Apr 18 2023, 7:55 AM · Krita
dkazakov added a comment to T16346: Krita dependencies management issues.

Hi, @alvinhochun and @vanyossi!

Apr 18 2023, 7:53 AM · Krita

Apr 17 2023

vanyossi added a comment to T16346: Krita dependencies management issues.

Just my two cents, as working on macos means using the entire 3rdparty project and we have being dealing with some of the issues. The approach might be a bit naive since I have most experience on macos

Apr 17 2023, 8:47 PM · Krita
alvinhochun added a comment to T16346: Krita dependencies management issues.

I haven't built the deps in quite a while but I'll try to respond a bit from what I remember that hopefully isn't too outdated:

Apr 17 2023, 3:31 PM · Krita
dkazakov added a comment to T16346: Krita dependencies management issues.

The ASWF dependency management system for the VFX platform images relies on compositing Docker images

Apr 17 2023, 1:56 PM · Krita
lsegovia added a comment to T16346: Krita dependencies management issues.

I see you've done quite extensive digging on the subject: 👏 That being, said, there are a few nitpicks and elephants-in-the-room after a cursory reading.

Apr 17 2023, 12:50 PM · Krita
dkazakov updated the task description for T16346: Krita dependencies management issues.
Apr 17 2023, 10:40 AM · Krita
dkazakov updated the task description for T16346: Krita dependencies management issues.
Apr 17 2023, 10:28 AM · Krita
dkazakov updated the task description for T16346: Krita dependencies management issues.
Apr 17 2023, 10:17 AM · Krita
dkazakov created T16346: Krita dependencies management issues.
Apr 17 2023, 10:07 AM · Krita

Mar 10 2023

dkazakov added a comment to T16180: Request for comment: removing std::bind.

I have seen this warning when writing the lager code. I even tried to switch to the lambda syntax, but the resulting code looks a bit too verbose. Specifically, you need to explicitly declare all the typenames for every function argument (which might not known in the template context).

Mar 10 2023, 6:17 PM · Krita

Mar 9 2023

alvinhochun added a comment to T15245: Performance improvements plans for Resource Rewrite.

You should call QSqlQuery::finish to release the result cursor and stuff. The prepared statement itself shouldn't take much memory.

Mar 9 2023, 10:37 AM · Krita
sh-zam added a comment to T15245: Performance improvements plans for Resource Rewrite.

IIRC, it was KisResourceCacheDb::metaDataForId where lot of time was spent in prepare().

Mar 9 2023, 10:26 AM · Krita
alvinhochun added a comment to T15245: Performance improvements plans for Resource Rewrite.

If you, say for example, want to insert multiple records in a loop, you would prepare the statement once, then reuse it by binding different values and then executing it in the loop. But I'm guessing the cases that show up in your profiling is more complex than simple loops and would require persisting the QSqlQuery in global scope to fix.

Mar 9 2023, 10:17 AM · Krita
sh-zam added a comment to T15245: Performance improvements plans for Resource Rewrite.

sure, I'll look into it then :)

Mar 9 2023, 10:01 AM · Krita
woltherav added a comment to T15245: Performance improvements plans for Resource Rewrite.

I don't recall QSqlQuery::prepare ever being discussed, so it's likely no one ever noticed. If you have an idea of how to cache it, give it a try?

Mar 9 2023, 9:58 AM · Krita
sh-zam added a comment to T15245: Performance improvements plans for Resource Rewrite.

A thing I found out when I was profiling the code for https://invent.kde.org/graphics/krita/-/merge_requests/1731, is the QSqlQuery::prepare being a bottleneck. I looked into a docs a bit and found out that prepared queries are "compiled" by sqlite into whatever its internal bytecode can understand, so this is something which doesn't need to happen over and over again, but something we can cache and only bind values whenever needed (I think Qt's QSqlQuery::exec takes care of resetting the bindings and re-executing the same prepared query).

Mar 9 2023, 9:57 AM · Krita

Feb 5 2023

rempt added a comment to T16180: Request for comment: removing std::bind.

I'm not a fan of std::bind, but we need to be pretty careful with lambdas, they're often a source of bugs, too.

Feb 5 2023, 1:15 PM · Krita

Feb 2 2023

tymond added a parent task for T15245: Performance improvements plans for Resource Rewrite: T379: Fixing resource management properly (includes tagging).
Feb 2 2023, 10:04 PM · Krita

Jan 30 2023

woltherav added a comment to T16180: Request for comment: removing std::bind.

So, std::bind is to me largely an incantation that happens within the PSD parsing code. What would we replace it with?

Jan 30 2023, 4:00 PM · Krita

Jan 28 2023

lsegovia created T16180: Request for comment: removing std::bind.
Jan 28 2023, 5:24 PM · Krita

Jan 25 2023

rempt added a comment to T16123: Redesign Palette Docker.

Undo/Redo has already been implemented, it's just not visible in the merge request I made for it because to work properly it needs to remove the KisPaletteEditor class.

Jan 25 2023, 8:58 AM · Krita

Jan 23 2023

lsegovia added a comment to T14865: Audit and upgrade OpenGL version and canvas code.

Further notes backing up the version upgrade:

Jan 23 2023, 10:58 PM · Krita
lsegovia added a comment to T14865: Audit and upgrade OpenGL version and canvas code.

Change was deployed in https://invent.kde.org/graphics/krita/-/commit/ca645e71a09e1ee81dc0f7ef153b00304af058de and reverted in https://invent.kde.org/graphics/krita/-/commit/fa671d407fd6d89c87c15c67d486e5dd1c7b0301.

Jan 23 2023, 10:46 PM · Krita

Jan 12 2023

emmetoneill added a comment to T16123: Redesign Palette Docker.

One other thing, I'm not sure how I feel about the current palette auto-saving when Krita is closed, especially given the lack of undo/redo support.

Jan 12 2023, 8:28 PM · Krita
emmetoneill added a comment to T16123: Redesign Palette Docker.

The palette selection button is at the bottom, which makes for an awkward popup, especially if the palette docker is bottom-most. I would like to move this to the top of the docker and make the click are larger and the name of the palette more prominent.

Jan 12 2023, 8:16 PM · Krita

Jan 10 2023

rempt updated the task description for T16123: Redesign Palette Docker.
Jan 10 2023, 9:11 AM · Krita
rempt added a project to T16123: Redesign Palette Docker: Krita.
Jan 10 2023, 9:03 AM · Krita

Nov 25 2022

phunh added a comment to T14731: Update design/content on krita.org.

Yes PO files might get big but I don't see any problem with that (so far, for various Hugo websites of ours). The risks of mistranslations, I can also say, are minimal as this website is for promo, not documentation or anything technical which I consider to be more probable to have same strings used in different contexts. In case some occur, there might be some technical difficulties in implementing context support in hugo-i18n, but I think we can work around that if it's necessary.

Understood. I will try to work with that.

One thing though, regarding strings extracted from the YAML file (krita-org.po), I think they really ought to have context. Those extracted from config.yaml (the menu items) can use the link URL, while those from i18n/en.yaml can use the translation id.

(krita-org.po is also missing line numbers to the YAML file, would be nice if they can be added.)

I think we should not add context to a large number of messages, since a context change makes the message fuzzy, we don't want translators to have more unnecessary works. We should not add context by default either, because that's just excessive: the case of having same messages used in different contexts is not regular, so we should just deal with it when it occurs. And actually, regarding implementing context support in hugo-i18n, what might be difficult is to do that for messages extracted from content files. For YAML files, that's not a big issue: we can make hugo-i18n support a "context" field in the params array of a menu item or in the declaration of an i18n string (we already support an arbitrary comment for an i18n string in the same way). So don't worry too much about that. When you find such a case, you tell me, I'll do it.

Nov 25 2022, 3:48 PM · Krita

Nov 24 2022

alvinhochun added a comment to T14731: Update design/content on krita.org.

Then I have some questions regarding i18n:

  • The extracted krita-org.po seems to contain various strings from config.yaml and i18n/en.yaml, but I see that these strings can also be translated in config.yaml directly or with i18n/<language>.yaml. Which method should be preferred?

You don't translate any YAML file, only translate PO files.

Nov 24 2022, 1:19 PM · Krita

Nov 22 2022

phunh added a comment to T14731: Update design/content on krita.org.

Since zh_CN is the standard code for Simplified Chinese, I think it makes sense to do that. The same thing goes to en_US for en too.

Nov 22 2022, 5:27 PM · Krita
phunh added a comment to T14731: Update design/content on krita.org.

@phunh - If you think these tools or modules can be helpful, we can add it back in and see how it goes. I mostly would ask that you would update the readme with the new dependency so people will know how to get the build working. I like to say what it is, and where to get it.

Nov 22 2022, 5:25 PM · Krita
phunh added a comment to T14731: Update design/content on krita.org.

Then I have some questions regarding i18n:

  • The extracted krita-org.po seems to contain various strings from config.yaml and i18n/en.yaml, but I see that these strings can also be translated in config.yaml directly or with i18n/<language>.yaml. Which method should be preferred?

You don't translate any YAML file, only translate PO files.

  • I see all text of most pages are lumped into several .po files. I don't know the typical translation workflow of other websites, but this seems a bit scary to me. (I guess I expected one .po file per page or post?) When we make long posts wouldn't that bloat the .po files? What are the risks of mistranslations from the same strings used in different context?

Yes PO files might get big but I don't see any problem with that (so far, for various Hugo websites of ours). The risks of mistranslations, I can also say, are minimal as this website is for promo, not documentation or anything technical which I consider to be more probable to have same strings used in different contexts. In case some occur, there might be some technical difficulties in implementing context support in hugo-i18n, but I think we can work around that if it's necessary.

  • If I need custom text or layout for certain pages or posts in my language, I can put the custom translated markdown file in, say, content/zh-tw to bypass the .po i18n system, right?

If your markdown file is not i12ized (internationalized) (i.e. not included in the i18n section of the config file), then yes. Otherwise, currently, no, it will be overwritten by what hugo-i18n can get from KDE l10n system.

Nov 22 2022, 5:23 PM · Krita