diff --git a/stuff/library/mypaint brushes/Licenses.txt b/stuff/library/mypaint brushes/Licenses.txt
index 158c81fe3..999adeaae 100644
--- a/stuff/library/mypaint brushes/Licenses.txt
+++ b/stuff/library/mypaint brushes/Licenses.txt
@@ -1,7 +1,13 @@
-Files: classic/*, experimental/*
+By policy, MyPaint's brush settings are released into the public domain.
+For more details, see the MyPaint licensing policy here:
+https://github.com/mypaint/mypaint/wiki/Licensing-policy
+
+See also the Creative Commons Zero 1.0 (CC0-1.0) license at Creative Commons:
+https://creativecommons.org/publicdomain/zero/1.0
+
+
+Files: classic/*, experimental/*
Copyright: Copyright 2011-2013 Martin Renold and the MyPaint Development Team
- By policy, MyPaint's brush settings are released into the public domain.
- See: https://github.com/mypaint/mypaint/wiki/Licensing-policy
License: CC0-1.0
Files: ramon/*
@@ -20,7 +26,7 @@ Files: kaerhon_v1/*
Copyright: Author: Guillaume Loussarévian
License: CC0-1.0
-Files: Mojo/*
+Files: mojo_v1/*
Copyright: Author: Saeger Ryman
License: CC0-1.0
@@ -28,5 +34,6 @@ Files: aotz/*
Copyright: Author: Anderson Prado (AndeOn) [https://github.com/andeon/aotz]
License: CC0-1.0
-See also CC0-1.0 license at creativecommons.org
-https://creativecommons.org/publicdomain/zero/1.0/
+Files: slos_mpb/*
+Copyright: Author: 森林OS (SenlinOS) [https://github.com/SenlinOS/MyPaintBrushes-GIMP]
+License: CC0-1.0
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/README.txt b/stuff/library/mypaint brushes/SLOS_MPB/README.txt
deleted file mode 100644
index 10d4321f0..000000000
--- a/stuff/library/mypaint brushes/SLOS_MPB/README.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-# MyPaintBrushes-GIMP
-MyPaint-Brushes for GIMP 2.10.x
-(For use in Opentoonz)
-
-![img](https://raw.githubusercontent.com/SenlinOS/databox/master/MyPaint-Brushes-for-GIMP-2.10-By_SenlinOS.jpg)
-
-**MyPaint-Brushes created for GIMP**.
-
-**This brushes is not suitable for MyPaint**, such as “002 Frame Line” in MyPaint will “pen leaking” phenomenon.
-
In GIMP 2.10, hold down the Shift key “002 Frame Line” can draw a straight line.
-
-Other brushes have also been debugged, such as “005 Calligraph” is a hard edge.
-
“006 Paint Brush” to draw at maximum pressure, the edges will not jagged.
-
-**MyPaint doesn't need these brushes**, it is just designed for GIMP 2.10.
-
And I accidentally deleted MyPaint-brushes “.conf” file when debugging…
-
-# Update:
-- 2020-03-02, Remove the smudge effect of the [016_Flat-Brush], because the smudge effect will fade the color of the initial position of painting.
-
-# Style:
-Orderly arrangement and clear classification.
-
-# Installation:
-- Edit -> Preferences ->(Folders -> MyPaint Brushes).
-- Click on the [Add a new folder] button to open the [SLOS_MPB] directory.
-- Restart GIMP.
-
-# License:
-Brushes-files as Public Domain, CC0, Free to use.
-
----
-
-
- 中文说明
-
-GIMP 2.10 发布,添加了数不清的新功能。 其中的一个功能是 GIMP 可以使用 MyPaint 的画笔,但我感觉载入的默认画笔的图标与顺序有些混乱。
-所以我制作了 36个 MyPaint 画笔,这些画笔有序排列、分类清晰,便于使用。
-
-**这套画笔不适合 MyPaint**,比如“002 Frame Line”在 MyPaint 中会有“笔漏水”的现象。
-
在 GIMP 2.10 中按住 Shift 键“002 Frame Line”可以画出直线,这是在 GIMP 中默认的 MyPaint 画笔做不到的。
-
-其他的画笔也有经过调试,比如“005 Calligraph”是硬边。
-
使用“006 Paint Brush”以最大压力绘画时边缘也不会出现锯齿。
-
-**MyPaint 不需要这些画笔**,这只是给 GIMP 2.10 设计的。
-
并且我在调试时不小心把导入 MyPaint 画笔的“.conf”文件给删除了…
-
-# 更新:
-- 2020-03-02,去掉[016_Flat-Brush]画笔的涂抹效果,因为涂抹效果会让落笔初始位置的颜色变淡。
-
-# 安装方法:
-- 打开 GIMP 菜单,编辑 -> 首选项 -> (文件夹 -> MyPaint 笔刷)。
-- 点击 [添加新文件夹] 按钮,打开 [SLOS_MPB] 目录。
-- 重启GIMP。
-
-# 许可证:
-CC0,公共领域,画笔文件可以自由使用。
-
-
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/gimp brush.txt b/stuff/library/mypaint brushes/SLOS_MPB/gimp brush.txt
deleted file mode 100644
index 9bf2241e9..000000000
--- a/stuff/library/mypaint brushes/SLOS_MPB/gimp brush.txt
+++ /dev/null
@@ -1 +0,0 @@
-![img](https://raw.githubusercontent.com/SenlinOS/databox/master/MyPaint-Brushes-for-GIMP-2.10-By_SenlinOS.jpg)
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/001_Pencil.myb b/stuff/library/mypaint brushes/slos_mpb/001_Pencil.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/001_Pencil.myb
rename to stuff/library/mypaint brushes/slos_mpb/001_Pencil.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/001_Pencil_prev.png b/stuff/library/mypaint brushes/slos_mpb/001_Pencil_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/001_Pencil_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/001_Pencil_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/002_Frame-Line.myb b/stuff/library/mypaint brushes/slos_mpb/002_Frame-Line.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/002_Frame-Line.myb
rename to stuff/library/mypaint brushes/slos_mpb/002_Frame-Line.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/002_Frame-Line_prev.png b/stuff/library/mypaint brushes/slos_mpb/002_Frame-Line_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/002_Frame-Line_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/002_Frame-Line_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/003_Dip-Pen.myb b/stuff/library/mypaint brushes/slos_mpb/003_Dip-Pen.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/003_Dip-Pen.myb
rename to stuff/library/mypaint brushes/slos_mpb/003_Dip-Pen.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/003_Dip-Pen_prev.png b/stuff/library/mypaint brushes/slos_mpb/003_Dip-Pen_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/003_Dip-Pen_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/003_Dip-Pen_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/004_Brush.myb b/stuff/library/mypaint brushes/slos_mpb/004_Brush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/004_Brush.myb
rename to stuff/library/mypaint brushes/slos_mpb/004_Brush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/004_Brush_prev.png b/stuff/library/mypaint brushes/slos_mpb/004_Brush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/004_Brush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/004_Brush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/005_Calligraphy.myb b/stuff/library/mypaint brushes/slos_mpb/005_Calligraphy.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/005_Calligraphy.myb
rename to stuff/library/mypaint brushes/slos_mpb/005_Calligraphy.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/005_Calligraphy_prev.png b/stuff/library/mypaint brushes/slos_mpb/005_Calligraphy_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/005_Calligraphy_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/005_Calligraphy_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/006_Paint-Brush.myb b/stuff/library/mypaint brushes/slos_mpb/006_Paint-Brush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/006_Paint-Brush.myb
rename to stuff/library/mypaint brushes/slos_mpb/006_Paint-Brush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/006_Paint-Brush_prev.png b/stuff/library/mypaint brushes/slos_mpb/006_Paint-Brush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/006_Paint-Brush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/006_Paint-Brush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/007_Line-Eraser.myb b/stuff/library/mypaint brushes/slos_mpb/007_Line-Eraser.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/007_Line-Eraser.myb
rename to stuff/library/mypaint brushes/slos_mpb/007_Line-Eraser.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/007_Line-Eraser_prev.png b/stuff/library/mypaint brushes/slos_mpb/007_Line-Eraser_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/007_Line-Eraser_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/007_Line-Eraser_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/009_Soft-Eraser.myb b/stuff/library/mypaint brushes/slos_mpb/009_Soft-Eraser.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/009_Soft-Eraser.myb
rename to stuff/library/mypaint brushes/slos_mpb/009_Soft-Eraser.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/009_Soft-Eraser_prev.png b/stuff/library/mypaint brushes/slos_mpb/009_Soft-Eraser_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/009_Soft-Eraser_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/009_Soft-Eraser_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/010_Fill.myb b/stuff/library/mypaint brushes/slos_mpb/010_Fill.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/010_Fill.myb
rename to stuff/library/mypaint brushes/slos_mpb/010_Fill.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/010_Fill_prev.png b/stuff/library/mypaint brushes/slos_mpb/010_Fill_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/010_Fill_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/010_Fill_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/011_Marker.myb b/stuff/library/mypaint brushes/slos_mpb/011_Marker.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/011_Marker.myb
rename to stuff/library/mypaint brushes/slos_mpb/011_Marker.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/011_Marker_prev.png b/stuff/library/mypaint brushes/slos_mpb/011_Marker_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/011_Marker_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/011_Marker_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/012_Flat-Marker.myb b/stuff/library/mypaint brushes/slos_mpb/012_Flat-Marker.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/012_Flat-Marker.myb
rename to stuff/library/mypaint brushes/slos_mpb/012_Flat-Marker.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/012_Flat-Marker_prev.png b/stuff/library/mypaint brushes/slos_mpb/012_Flat-Marker_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/012_Flat-Marker_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/012_Flat-Marker_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/013_Pastel.myb b/stuff/library/mypaint brushes/slos_mpb/013_Pastel.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/013_Pastel.myb
rename to stuff/library/mypaint brushes/slos_mpb/013_Pastel.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/013_Pastel_prev.png b/stuff/library/mypaint brushes/slos_mpb/013_Pastel_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/013_Pastel_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/013_Pastel_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/014_Crayon.myb b/stuff/library/mypaint brushes/slos_mpb/014_Crayon.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/014_Crayon.myb
rename to stuff/library/mypaint brushes/slos_mpb/014_Crayon.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/014_Crayon_prev.png b/stuff/library/mypaint brushes/slos_mpb/014_Crayon_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/014_Crayon_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/014_Crayon_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/015_Van_Gogh.myb b/stuff/library/mypaint brushes/slos_mpb/015_Van_Gogh.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/015_Van_Gogh.myb
rename to stuff/library/mypaint brushes/slos_mpb/015_Van_Gogh.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/015_Van_Gogh_prev.png b/stuff/library/mypaint brushes/slos_mpb/015_Van_Gogh_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/015_Van_Gogh_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/015_Van_Gogh_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/016_Flat-Brush.myb b/stuff/library/mypaint brushes/slos_mpb/016_Flat-Brush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/016_Flat-Brush.myb
rename to stuff/library/mypaint brushes/slos_mpb/016_Flat-Brush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/016_Flat-Brush_prev.png b/stuff/library/mypaint brushes/slos_mpb/016_Flat-Brush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/016_Flat-Brush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/016_Flat-Brush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/017_Thin-Brush.myb b/stuff/library/mypaint brushes/slos_mpb/017_Thin-Brush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/017_Thin-Brush.myb
rename to stuff/library/mypaint brushes/slos_mpb/017_Thin-Brush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/017_Thin-Brush_prev.png b/stuff/library/mypaint brushes/slos_mpb/017_Thin-Brush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/017_Thin-Brush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/017_Thin-Brush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/018_Pointed-Brush.myb b/stuff/library/mypaint brushes/slos_mpb/018_Pointed-Brush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/018_Pointed-Brush.myb
rename to stuff/library/mypaint brushes/slos_mpb/018_Pointed-Brush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/018_Pointed-Brush_prev.png b/stuff/library/mypaint brushes/slos_mpb/018_Pointed-Brush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/018_Pointed-Brush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/018_Pointed-Brush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/019_Classic-Paint.myb b/stuff/library/mypaint brushes/slos_mpb/019_Classic-Paint.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/019_Classic-Paint.myb
rename to stuff/library/mypaint brushes/slos_mpb/019_Classic-Paint.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/019_Classic-Paint_prev.png b/stuff/library/mypaint brushes/slos_mpb/019_Classic-Paint_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/019_Classic-Paint_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/019_Classic-Paint_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/020_Wet-Brush.myb b/stuff/library/mypaint brushes/slos_mpb/020_Wet-Brush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/020_Wet-Brush.myb
rename to stuff/library/mypaint brushes/slos_mpb/020_Wet-Brush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/020_Wet-Brush_prev.png b/stuff/library/mypaint brushes/slos_mpb/020_Wet-Brush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/020_Wet-Brush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/020_Wet-Brush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/021_Wet-ScrubbingBrush.myb b/stuff/library/mypaint brushes/slos_mpb/021_Wet-ScrubbingBrush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/021_Wet-ScrubbingBrush.myb
rename to stuff/library/mypaint brushes/slos_mpb/021_Wet-ScrubbingBrush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/021_Wet-ScrubbingBrush_prev.png b/stuff/library/mypaint brushes/slos_mpb/021_Wet-ScrubbingBrush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/021_Wet-ScrubbingBrush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/021_Wet-ScrubbingBrush_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/022_Watercolor.myb b/stuff/library/mypaint brushes/slos_mpb/022_Watercolor.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/022_Watercolor.myb
rename to stuff/library/mypaint brushes/slos_mpb/022_Watercolor.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/022_Watercolor_prev.png b/stuff/library/mypaint brushes/slos_mpb/022_Watercolor_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/022_Watercolor_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/022_Watercolor_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/023_Wet-Watercolor.myb b/stuff/library/mypaint brushes/slos_mpb/023_Wet-Watercolor.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/023_Wet-Watercolor.myb
rename to stuff/library/mypaint brushes/slos_mpb/023_Wet-Watercolor.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/023_Wet-Watercolor_prev.png b/stuff/library/mypaint brushes/slos_mpb/023_Wet-Watercolor_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/023_Wet-Watercolor_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/023_Wet-Watercolor_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/024_Splash.myb b/stuff/library/mypaint brushes/slos_mpb/024_Splash.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/024_Splash.myb
rename to stuff/library/mypaint brushes/slos_mpb/024_Splash.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/024_Splash_prev.png b/stuff/library/mypaint brushes/slos_mpb/024_Splash_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/024_Splash_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/024_Splash_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/025_Sand.myb b/stuff/library/mypaint brushes/slos_mpb/025_Sand.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/025_Sand.myb
rename to stuff/library/mypaint brushes/slos_mpb/025_Sand.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/025_Sand_prev.png b/stuff/library/mypaint brushes/slos_mpb/025_Sand_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/025_Sand_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/025_Sand_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/026_Knife.myb b/stuff/library/mypaint brushes/slos_mpb/026_Knife.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/026_Knife.myb
rename to stuff/library/mypaint brushes/slos_mpb/026_Knife.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/026_Knife_prev.png b/stuff/library/mypaint brushes/slos_mpb/026_Knife_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/026_Knife_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/026_Knife_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/027_Add-Water.myb b/stuff/library/mypaint brushes/slos_mpb/027_Add-Water.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/027_Add-Water.myb
rename to stuff/library/mypaint brushes/slos_mpb/027_Add-Water.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/027_Add-Water_prev.png b/stuff/library/mypaint brushes/slos_mpb/027_Add-Water_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/027_Add-Water_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/027_Add-Water_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/028_Blend.myb b/stuff/library/mypaint brushes/slos_mpb/028_Blend.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/028_Blend.myb
rename to stuff/library/mypaint brushes/slos_mpb/028_Blend.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/028_Blend_prev.png b/stuff/library/mypaint brushes/slos_mpb/028_Blend_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/028_Blend_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/028_Blend_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/029_Smear.myb b/stuff/library/mypaint brushes/slos_mpb/029_Smear.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/029_Smear.myb
rename to stuff/library/mypaint brushes/slos_mpb/029_Smear.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/029_Smear_prev.png b/stuff/library/mypaint brushes/slos_mpb/029_Smear_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/029_Smear_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/029_Smear_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/030_Grainy-Blend.myb b/stuff/library/mypaint brushes/slos_mpb/030_Grainy-Blend.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/030_Grainy-Blend.myb
rename to stuff/library/mypaint brushes/slos_mpb/030_Grainy-Blend.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/030_Grainy-Blend_prev.png b/stuff/library/mypaint brushes/slos_mpb/030_Grainy-Blend_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/030_Grainy-Blend_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/030_Grainy-Blend_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/031_Cone.myb b/stuff/library/mypaint brushes/slos_mpb/031_Cone.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/031_Cone.myb
rename to stuff/library/mypaint brushes/slos_mpb/031_Cone.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/031_Cone_prev.png b/stuff/library/mypaint brushes/slos_mpb/031_Cone_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/031_Cone_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/031_Cone_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/032_Clouds.myb b/stuff/library/mypaint brushes/slos_mpb/032_Clouds.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/032_Clouds.myb
rename to stuff/library/mypaint brushes/slos_mpb/032_Clouds.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/032_Clouds_prev.png b/stuff/library/mypaint brushes/slos_mpb/032_Clouds_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/032_Clouds_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/032_Clouds_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/033_Grass.myb b/stuff/library/mypaint brushes/slos_mpb/033_Grass.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/033_Grass.myb
rename to stuff/library/mypaint brushes/slos_mpb/033_Grass.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/033_Grass_prev.png b/stuff/library/mypaint brushes/slos_mpb/033_Grass_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/033_Grass_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/033_Grass_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/034_Leaf.myb b/stuff/library/mypaint brushes/slos_mpb/034_Leaf.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/034_Leaf.myb
rename to stuff/library/mypaint brushes/slos_mpb/034_Leaf.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/034_Leaf_prev.png b/stuff/library/mypaint brushes/slos_mpb/034_Leaf_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/034_Leaf_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/034_Leaf_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/035_Sewing.myb b/stuff/library/mypaint brushes/slos_mpb/035_Sewing.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/035_Sewing.myb
rename to stuff/library/mypaint brushes/slos_mpb/035_Sewing.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/035_Sewing_prev.png b/stuff/library/mypaint brushes/slos_mpb/035_Sewing_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/035_Sewing_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/035_Sewing_prev.png
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/036_Plush.myb b/stuff/library/mypaint brushes/slos_mpb/036_Plush.myb
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/036_Plush.myb
rename to stuff/library/mypaint brushes/slos_mpb/036_Plush.myb
diff --git a/stuff/library/mypaint brushes/SLOS_MPB/036_Plush_prev.png b/stuff/library/mypaint brushes/slos_mpb/036_Plush_prev.png
similarity index 100%
rename from stuff/library/mypaint brushes/SLOS_MPB/036_Plush_prev.png
rename to stuff/library/mypaint brushes/slos_mpb/036_Plush_prev.png
diff --git a/toonz/sources/toonz/exportxsheetpdf.cpp b/toonz/sources/toonz/exportxsheetpdf.cpp
index 06702adb1..be36cf4ee 100644
--- a/toonz/sources/toonz/exportxsheetpdf.cpp
+++ b/toonz/sources/toonz/exportxsheetpdf.cpp
@@ -1918,6 +1918,7 @@ ExportXsheetPdfPopup::ExportXsheetPdfPopup()
QPushButton* exportBtn = new QPushButton(tr("Export PDF"), this);
QPushButton* exportPngBtn = new QPushButton(tr("Export PNG"), this);
+ QPushButton* exportCsvBtn = new QPushButton(tr("Export CSV"), this);
QPushButton* cancelBtn = new QPushButton(tr("Cancel"), this);
m_tick1IdCombo = new QComboBox(this);
@@ -2133,6 +2134,7 @@ ExportXsheetPdfPopup::ExportXsheetPdfPopup()
btnLay->addStretch(1);
btnLay->addWidget(exportBtn, 0);
btnLay->addWidget(exportPngBtn, 0);
+ btnLay->addWidget(exportCsvBtn, 0);
btnLay->addWidget(cancelBtn, 0);
}
rightLay->addLayout(btnLay, 0);
@@ -2146,6 +2148,7 @@ ExportXsheetPdfPopup::ExportXsheetPdfPopup()
connect(exportBtn, SIGNAL(clicked()), this, SLOT(onExport()));
connect(exportPngBtn, SIGNAL(clicked()), this, SLOT(onExportPNG()));
+ connect(exportCsvBtn, SIGNAL(clicked()), this, SLOT(onExportCSV()));
connect(cancelBtn, SIGNAL(clicked()), this, SLOT(close()));
connect(m_durationFld, SIGNAL(editingFinished()), this,
@@ -2710,6 +2713,129 @@ void ExportXsheetPdfPopup::onExportPNG() {
onExportFinished(fp);
}
+void ExportXsheetPdfPopup::onExportCSV() {
+ ToonzScene* scene = TApp::instance()->getCurrentScene()->getScene();
+
+ if (m_fileNameFld->text().isEmpty()) {
+ DVGui::MsgBoxInPopup(DVGui::WARNING, tr("Please specify the file name."));
+ return;
+ }
+
+ TFilePath fp(m_pathFld->getPath());
+ fp += m_fileNameFld->text().toStdString() + ".csv";
+ fp = scene->decodeFilePath(fp);
+
+ if (TSystem::doesExistFileOrLevel(fp)) {
+ QString question =
+ tr("The file %1 already exists.\nDo you want to overwrite it?")
+ .arg(fp.getQString());
+ int ret = DVGui::MsgBox(question, QObject::tr("Overwrite"),
+ QObject::tr("Cancel"));
+ if (ret == 0 || ret == 2) {
+ return;
+ }
+ }
+ if (!TFileStatus(fp.getParentDir()).doesExist()) {
+ QString question =
+ tr("A folder %1 does not exist.\nDo you want to create it?")
+ .arg(fp.getParentDir().getQString());
+ int ret = DVGui::MsgBox(question, QObject::tr("Create folder"),
+ QObject::tr("Cancel"));
+ if (ret == 0 || ret == 2) {
+ return;
+ }
+
+ if (!TSystem::touchParentDir(fp)) {
+ DVGui::MsgBoxInPopup(DVGui::CRITICAL,
+ tr("Failed to create folder %1.")
+ .arg(fp.getParentDir().getQString()));
+ return;
+ }
+ }
+
+ QFile file(fp.getQString());
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ DVGui::MsgBoxInPopup(
+ DVGui::CRITICAL,
+ tr("Failed to create file %1.").arg(fp.getQString()));
+ return;
+ }
+ QTextStream stream(&file);
+
+ QList csvColumns;
+ for (auto pair = m_columns.begin(); pair != m_columns.end(); pair++) {
+ TXshLevelColumn* column = pair->first;
+ QString columnName = pair->second;
+ QStringList csvCol;
+
+ // obtain level in this column
+ int r0, r1;
+ column->getRange(r0, r1);
+ TXshLevelP level = column->getCell(r0).m_level;
+
+ if (columnName.isEmpty())
+ columnName = QString::fromStdWString(level->getName());
+
+ // add col name at col head
+ csvCol.append(columnName);
+
+ TXshCell prevCell,cell;
+ for (int f = 0; f < m_duration; f++) {
+ cell = column->getCell(f);
+ if (prevCell == cell && f) {
+ csvCol.append("");
+ continue;
+ }
+
+ if (cell.m_level != level) cell.m_level = nullptr;
+
+ //add cell number
+ if (cell.m_level)
+ csvCol.append(QString::number(cell.m_frameId.getNumber()));
+ else// add
+ csvCol.append(QString::fromUtf8("\u00D7"));
+
+ prevCell = cell;
+ }
+
+ csvColumns.append(csvCol);
+ }
+
+ QStringList rowData;
+
+ //First Row
+ rowData.append("\"Frame\"");
+ for (const QStringList& column : csvColumns) {
+ rowData.append("\"\"");
+ }
+ stream << rowData.join(",") << "\n";
+ rowData.clear();
+
+ //Second Row
+ rowData.append("\"\"");
+ for (const QStringList& column : csvColumns) {
+ rowData.append("\"" + column[0] + "\"");
+ }
+ stream << rowData.join(",") << "\n";
+ rowData.clear();
+
+ //Third Row and rest rows
+ for (int f = 1; f <= m_duration; ++f) {
+ rowData.append("\"" + QString::number(f) + "\"");
+
+ for (const QStringList& column : csvColumns) {
+ rowData.append("\"" + column[f] + "\"");
+ }
+
+ stream << rowData.join(",") << "\n";
+ rowData.clear();
+ }
+
+ file.close();
+
+ onExportFinished(fp);
+}
+
void ExportXsheetPdfPopup::onExportFinished(const TFilePath& fp) {
close();
QString str = QObject::tr("The file %1 has been exported successfully.")
diff --git a/toonz/sources/toonz/exportxsheetpdf.h b/toonz/sources/toonz/exportxsheetpdf.h
index 4a21de1d9..64e2fc797 100644
--- a/toonz/sources/toonz/exportxsheetpdf.h
+++ b/toonz/sources/toonz/exportxsheetpdf.h
@@ -339,6 +339,7 @@ class ExportXsheetPdfPopup final : public DVGui::Dialog {
protected slots:
void onExport();
void onExportPNG();
+ void onExportCSV();
void initTemplate();
void setInfo();