├── bulinotes
├── bulinotes
│ ├── pktk
│ │ ├── modules
│ │ │ ├── __init__.py
│ │ │ └── listutils.py
│ │ ├── resources
│ │ │ ├── svg
│ │ │ │ ├── dark
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── white
│ │ │ │ │ │ └── README.md
│ │ │ │ │ ├── 32dp
│ │ │ │ │ │ ├── play.svg
│ │ │ │ │ │ ├── sign_plus.svg
│ │ │ │ │ │ ├── file.svg
│ │ │ │ │ │ ├── bookmark.svg
│ │ │ │ │ │ ├── pause.svg
│ │ │ │ │ │ ├── list_tree.svg
│ │ │ │ │ │ ├── color_black.svg
│ │ │ │ │ │ ├── color_ngray.svg
│ │ │ │ │ │ ├── color_white.svg
│ │ │ │ │ │ ├── sign_minus.svg
│ │ │ │ │ │ ├── sign_divide.svg
│ │ │ │ │ │ ├── author.svg
│ │ │ │ │ │ ├── copy.svg
│ │ │ │ │ │ ├── goup.svg
│ │ │ │ │ │ ├── move_down.svg
│ │ │ │ │ │ ├── delete.svg
│ │ │ │ │ │ ├── file_copy.svg
│ │ │ │ │ │ ├── goback.svg
│ │ │ │ │ │ ├── move_up.svg
│ │ │ │ │ │ ├── folder_open.svg
│ │ │ │ │ │ ├── move_down_last.svg
│ │ │ │ │ │ ├── bookmark_add.svg
│ │ │ │ │ │ ├── dashboard_full.svg
│ │ │ │ │ │ └── image.svg
│ │ │ │ │ └── 32dp-disabled
│ │ │ │ │ │ ├── sign_plus.svg
│ │ │ │ │ │ ├── play.svg
│ │ │ │ │ │ ├── file.svg
│ │ │ │ │ │ ├── bookmark.svg
│ │ │ │ │ │ ├── sign_minus.svg
│ │ │ │ │ │ ├── list_tree.svg
│ │ │ │ │ │ ├── pause.svg
│ │ │ │ │ │ ├── color_black.svg
│ │ │ │ │ │ ├── color_ngray.svg
│ │ │ │ │ │ ├── color_white.svg
│ │ │ │ │ │ ├── sign_divide.svg
│ │ │ │ │ │ ├── move_down.svg
│ │ │ │ │ │ ├── move_up.svg
│ │ │ │ │ │ ├── copy.svg
│ │ │ │ │ │ ├── goback.svg
│ │ │ │ │ │ ├── goup.svg
│ │ │ │ │ │ ├── delete.svg
│ │ │ │ │ │ ├── file_copy.svg
│ │ │ │ │ │ ├── folder_open.svg
│ │ │ │ │ │ ├── move_down_last.svg
│ │ │ │ │ │ └── move_up_first.svg
│ │ │ │ ├── light
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── white
│ │ │ │ │ │ └── README.md
│ │ │ │ │ ├── 32dp
│ │ │ │ │ │ ├── sign_plus.svg
│ │ │ │ │ │ ├── play.svg
│ │ │ │ │ │ ├── bookmark.svg
│ │ │ │ │ │ ├── file.svg
│ │ │ │ │ │ ├── color_black.svg
│ │ │ │ │ │ ├── color_ngray.svg
│ │ │ │ │ │ ├── color_white.svg
│ │ │ │ │ │ ├── list_tree.svg
│ │ │ │ │ │ ├── pause.svg
│ │ │ │ │ │ ├── sign_minus.svg
│ │ │ │ │ │ ├── sign_divide.svg
│ │ │ │ │ │ ├── move_up.svg
│ │ │ │ │ │ ├── author.svg
│ │ │ │ │ │ ├── move_down.svg
│ │ │ │ │ │ ├── copy.svg
│ │ │ │ │ │ ├── goup.svg
│ │ │ │ │ │ ├── delete.svg
│ │ │ │ │ │ ├── file_copy.svg
│ │ │ │ │ │ ├── goback.svg
│ │ │ │ │ │ ├── move_down_last.svg
│ │ │ │ │ │ ├── move_up_first.svg
│ │ │ │ │ │ └── folder_open.svg
│ │ │ │ │ └── 32dp-disabled
│ │ │ │ │ │ ├── sign_plus.svg
│ │ │ │ │ │ ├── play.svg
│ │ │ │ │ │ ├── file.svg
│ │ │ │ │ │ ├── bookmark.svg
│ │ │ │ │ │ ├── sign_minus.svg
│ │ │ │ │ │ ├── list_tree.svg
│ │ │ │ │ │ ├── pause.svg
│ │ │ │ │ │ ├── color_black.svg
│ │ │ │ │ │ ├── color_ngray.svg
│ │ │ │ │ │ ├── color_white.svg
│ │ │ │ │ │ ├── sign_divide.svg
│ │ │ │ │ │ ├── move_down.svg
│ │ │ │ │ │ ├── move_up.svg
│ │ │ │ │ │ ├── copy.svg
│ │ │ │ │ │ ├── goup.svg
│ │ │ │ │ │ ├── delete.svg
│ │ │ │ │ │ ├── file_copy.svg
│ │ │ │ │ │ ├── goback.svg
│ │ │ │ │ │ ├── move_up_first.svg
│ │ │ │ │ │ └── folder_open.svg
│ │ │ │ ├── build_rcc.sh
│ │ │ │ └── build_qrc.py
│ │ │ ├── darktheme_icons.rcc
│ │ │ └── lighttheme_icons.rcc
│ │ ├── __init__.py
│ │ ├── README.md
│ │ ├── widgets
│ │ │ └── wseparator.py
│ │ └── pktk.py
│ ├── bn
│ │ └── resources
│ │ │ └── png
│ │ │ └── buli-powered-big.png
│ ├── __init__.py
│ └── Manual.html
└── bulinotes.desktop
├── screenshots
├── r0-1-0a_edit_note-text.jpg
├── r0-1-0a_edit_note-brushes.jpg
├── r0-1-0a_edit_note-handwritten.jpg
├── r0-4-0b_docker-embeddedfonts.jpg
├── r0-1-0a_fullscreen_example-text.jpg
├── r0-2-0a_edit_note-linked_layers.jpg
├── r0-3-0a_note-multilayer-modif.webm
├── r0-4-0b_edit_note-embeddedfonts.jpg
├── r0-1-0a_fullscreen_example-brushes.jpg
├── r0-2-0a_edit_note-text-new_styles.jpg
├── r0-1-0a_edit_note-handwritten-color.jpg
├── r0-2-0a_edit_note-add_linked_layers.jpg
├── r0-3-0a_copy-html-paste-libreoffice.jpg
├── r0-1-0a_edit_note-handwritten-brushes.jpg
├── r0-1-0a_fullscreen_example-handwritten.jpg
├── r0-3-0a_colorpicker-full_with_ctxmenu.png
├── r0-2-0a_fullscreen_example-linked_layers.jpg
├── r0-2-0a_edit_note-handwritten-brush_opacity.jpg
├── r0-2-0a_fullscreen_example-brushes_properties.jpg
└── r0-2-0a_fullscreen_example-linked_layers-notfound.jpg
└── releases-notes
├── RELEASE-1.0.2.md
├── RELEASE-0.1.0a.md
├── RELEASE-1.0.1.md
├── RELEASE-1.0.0.md
└── RELEASE-0.4.0b.md
/bulinotes/bulinotes/pktk/modules/__init__.py:
--------------------------------------------------------------------------------
1 | # module as package
2 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/README.md:
--------------------------------------------------------------------------------
1 | # Dark
2 |
3 | Icons to be used on a dark theme *(ie: white icons)*
4 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/README.md:
--------------------------------------------------------------------------------
1 | # Light
2 |
3 | Icons to be used on a light theme *(ie: black icons)*
4 |
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_edit_note-text.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_edit_note-text.jpg
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_edit_note-brushes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_edit_note-brushes.jpg
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_edit_note-handwritten.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_edit_note-handwritten.jpg
--------------------------------------------------------------------------------
/screenshots/r0-4-0b_docker-embeddedfonts.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-4-0b_docker-embeddedfonts.jpg
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_fullscreen_example-text.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_fullscreen_example-text.jpg
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_edit_note-linked_layers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_edit_note-linked_layers.jpg
--------------------------------------------------------------------------------
/screenshots/r0-3-0a_note-multilayer-modif.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-3-0a_note-multilayer-modif.webm
--------------------------------------------------------------------------------
/screenshots/r0-4-0b_edit_note-embeddedfonts.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-4-0b_edit_note-embeddedfonts.jpg
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_fullscreen_example-brushes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_fullscreen_example-brushes.jpg
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_edit_note-text-new_styles.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_edit_note-text-new_styles.jpg
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_edit_note-handwritten-color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_edit_note-handwritten-color.jpg
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_edit_note-add_linked_layers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_edit_note-add_linked_layers.jpg
--------------------------------------------------------------------------------
/screenshots/r0-3-0a_copy-html-paste-libreoffice.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-3-0a_copy-html-paste-libreoffice.jpg
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/darktheme_icons.rcc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/bulinotes/bulinotes/pktk/resources/darktheme_icons.rcc
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/lighttheme_icons.rcc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/bulinotes/bulinotes/pktk/resources/lighttheme_icons.rcc
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_edit_note-handwritten-brushes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_edit_note-handwritten-brushes.jpg
--------------------------------------------------------------------------------
/screenshots/r0-1-0a_fullscreen_example-handwritten.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-1-0a_fullscreen_example-handwritten.jpg
--------------------------------------------------------------------------------
/screenshots/r0-3-0a_colorpicker-full_with_ctxmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-3-0a_colorpicker-full_with_ctxmenu.png
--------------------------------------------------------------------------------
/bulinotes/bulinotes/bn/resources/png/buli-powered-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/bulinotes/bulinotes/bn/resources/png/buli-powered-big.png
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_fullscreen_example-linked_layers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_fullscreen_example-linked_layers.jpg
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_edit_note-handwritten-brush_opacity.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_edit_note-handwritten-brush_opacity.jpg
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_fullscreen_example-brushes_properties.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_fullscreen_example-brushes_properties.jpg
--------------------------------------------------------------------------------
/screenshots/r0-2-0a_fullscreen_example-linked_layers-notfound.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Grum999/BuliNotes/HEAD/screenshots/r0-2-0a_fullscreen_example-linked_layers-notfound.jpg
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/white/README.md:
--------------------------------------------------------------------------------
1 | # White
2 |
3 | Some white icons whatever theme is a dark or light theme
4 | - Currently used for WToolBoxTitleBar widget
5 |
6 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/white/README.md:
--------------------------------------------------------------------------------
1 | # White
2 |
3 | Some white icons whatever theme is a dark or light theme
4 | - Currently used for WToolBoxTitleBar widget
5 |
6 |
--------------------------------------------------------------------------------
/releases-notes/RELEASE-1.0.2.md:
--------------------------------------------------------------------------------
1 | # Buli Notes :: Release 1.0.2 [2023-05-09]
2 |
3 | # Krita 5.2.0 Compatibility
4 |
5 | Krita 5.2.0 use PyQt 5.15 and Python 3.10, and there's some incompatibilities to fix.
6 | Bug fix #9
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Type=Service
3 | ServiceTypes=Krita/PythonPlugin
4 | X-KDE-Library=bulinotes
5 | X-Python-2-Compatible=false
6 | X-Krita-Manual=Manual.html
7 | Name=Buli Notes
8 | Comment=A plugin to easily take notes on a Krita document
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/build_rcc.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Create qrc files
4 | ./build_qrc.py
5 |
6 | # Build rcc files
7 | /usr/lib/qt5/bin/rcc --format-version 1 --no-compress --binary -o ./../darktheme_icons.rcc dark_icons.qrc
8 | /usr/lib/qt5/bin/rcc --format-version 1 --no-compress --binary -o ./../lighttheme_icons.rcc light_icons.qrc
9 |
--------------------------------------------------------------------------------
/releases-notes/RELEASE-0.1.0a.md:
--------------------------------------------------------------------------------
1 | # Buli Notes :: Release 0.1.0a [2021-03-16]
2 |
3 | First release :-)
4 |
5 |
6 | ## Implement basic functionalities
7 |
8 | Are implemented:
9 | - The user interface interface
10 | - Note editor
11 | -- Text note
12 | -- Handwritten note
13 | -- Brushes note
14 | - Note Post-It
15 | - The *About* dialog box :-)
16 |
--------------------------------------------------------------------------------
/releases-notes/RELEASE-1.0.1.md:
--------------------------------------------------------------------------------
1 | # Buli Notes :: Release 1.0.1 [2022-10-03]
2 |
3 |
4 | # Bug
5 |
6 | ## Fix Note Editor - *Drawing note export/import raise a Python exception*
7 |
8 | [Bug fix #3](https://github.com/Grum999/BuliNotes/issues/3)
9 |
10 | When trying to export/import hand drawing note content, a python exception is raised.
11 |
12 | It has ben fixed now.
13 |
14 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/__init__.py:
--------------------------------------------------------------------------------
1 | from krita import DockWidgetFactory, DockWidgetFactoryBase
2 | from .bulinotes import *
3 |
4 |
5 | instance = Krita.instance()
6 | bnDocker = DockWidgetFactory(f'{EXTENSION_ID}_current',
7 | DockWidgetFactoryBase.DockRight,
8 | BuliNotesDocker)
9 | instance.addDockWidgetFactory(bnDocker)
10 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/Manual.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Buli Notes
6 |
7 |
8 | Buli Notes
9 |
10 | Buli Notes allows to take some notes on a Krita document and keep them embedded to Krita document
11 |
12 | Go to Buli Notes Github page to get more information.
13 |
14 |
--------------------------------------------------------------------------------
/releases-notes/RELEASE-1.0.0.md:
--------------------------------------------------------------------------------
1 | # Buli Notes :: Release 1.0.0 [2022-10-01]
2 |
3 |
4 | # Bug
5 |
6 | ## Fix ***Crash when multiples windows are opened***
7 |
8 | [Bug fix #1](https://github.com/Grum999/BuliNotes/issues/1)
9 |
10 | When A new window is created, BuliNotes generates a python exception.
11 |
12 | This has been fixed.
13 |
14 |
15 | ## Fix ***Exception on startup***
16 |
17 | [Bug fix #2](https://github.com/Grum999/BuliNotes/issues/2)
18 |
19 | On macOs, at startup, an exception is raised due to python version.
20 |
21 | This has been fixed.
22 |
23 | ## Fix ***unhashable type: 'Resource'***
24 |
25 | When no brush can be found, the fallback is to get the first available brush found in brushes preset.
26 | A technical bug was returning the brush resource instead of expected name of resource.
27 |
28 |
29 | # Code review
30 | - PEP8 recommendation
31 | - SPDX license headers
32 |
33 |
34 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/__init__.py:
--------------------------------------------------------------------------------
1 | # -----------------------------------------------------------------------------
2 | # PyKritaToolKit
3 | # Copyright (C) 2019-2022 - Grum999
4 | # -----------------------------------------------------------------------------
5 | # SPDX-License-Identifier: GPL-3.0-or-later
6 | #
7 | # https://spdx.org/licenses/GPL-3.0-or-later.html
8 | # -----------------------------------------------------------------------------
9 | # A Krita plugin framework
10 | # -----------------------------------------------------------------------------
11 |
12 | import sys
13 | import os.path
14 |
15 | from .pktk import (PkTk, EInvalidType, EInvalidValue, EInvalidStatus)
16 |
17 | pluginsPath = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
18 | if pluginsPath not in sys.path:
19 | # now, pktk modules for plugin can be imported as:
20 | # import .pktk.modules.xxxxx
21 | # import .pktk.widgets.xxxxx
22 | sys.path.append(pluginsPath)
23 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/README.md:
--------------------------------------------------------------------------------
1 | # PyKrita ToolKit
2 |
3 | For detailled information and documentation, please refer to repository https://github.com/Grum999/PkTk
4 |
5 |
6 |
7 | # License
8 |
9 | ## *PkTk* is released under the GNU General Public License (version 3 or any later version).
10 |
11 | *PkTk* is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
12 |
13 | *PkTk* is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 |
15 | You should receive a copy of the GNU General Public License along with *PkTk*. If not, see .
16 |
17 |
18 | Long story short: you're free to download, modify as well as redistribute *PkTk* as long as this ability is preserved and you give contributors proper credit. This is the same license under which Krita is released, ensuring compatibility between the two.
19 |
--------------------------------------------------------------------------------
/releases-notes/RELEASE-0.4.0b.md:
--------------------------------------------------------------------------------
1 | # Buli Notes :: Release 0.4.0b [2021-10-24]
2 |
3 |
4 | ## Embedded fonts
5 |
6 | In note editor, it's possible to embed fonts used in document.
7 |
8 | Interface provides:
9 | - List of used fonts
10 | - Status of fonts
11 | - Embbeded
12 | - Embbedable
13 | - Not available (note is used in document, but not available on current system and hasn't been embedded)
14 | - Selected font informations (license, file, ...)
15 |
16 | 
17 |
18 |
19 | When a note contains embedded font(s):
20 | - A *f* symbol is indicated in notes list
21 | - Tooltip indicates number of embedded fonts
22 |
23 | 
24 |
25 |
26 | ## Fix ***Basic-5 Size*** brush
27 |
28 | From Krita 5.0.0-beta1, brushes have been renamed (no more underscore)
29 | - Default font **b)_Basic-5_Size** has been replaced by **b) Basic-5 Size**
30 | - Also, as a brush can be unavailable in current environment, manage fallback when trying to retrieve brush preset information of an unknown/unavailable brush
31 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/widgets/wseparator.py:
--------------------------------------------------------------------------------
1 | # -----------------------------------------------------------------------------
2 | # PyKritaToolKit
3 | # Copyright (C) 2019-2022 - Grum999
4 | # -----------------------------------------------------------------------------
5 | # SPDX-License-Identifier: GPL-3.0-or-later
6 | #
7 | # https://spdx.org/licenses/GPL-3.0-or-later.html
8 | # -----------------------------------------------------------------------------
9 | # A Krita plugin framework
10 | # -----------------------------------------------------------------------------
11 |
12 | # -----------------------------------------------------------------------------
13 | # The wseparator module provides vertical and horizontal separator widgets
14 | #
15 | # Main class from this module
16 | #
17 | # - WVLine:
18 | # Widget
19 | # A vertical separator widget
20 | #
21 | # - WHLine:
22 | # Widget
23 | # A horinzontal separator widget
24 | #
25 | # -----------------------------------------------------------------------------
26 |
27 |
28 | from PyQt5.Qt import *
29 |
30 |
31 | class WVLine(QFrame):
32 | """A vertical line widget that can be used as a separator"""
33 |
34 | def __init__(self, parent=None):
35 | super(WVLine, self).__init__(parent)
36 | self.setFrameShape(self.VLine | self.Sunken)
37 |
38 |
39 | class WHLine(QFrame):
40 | """A horizontal line widget that can be used as a separator"""
41 |
42 | def __init__(self, parent=None):
43 | super(WHLine, self).__init__(parent)
44 | self.setFrameShape(self.HLine | self.Sunken)
45 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/pktk.py:
--------------------------------------------------------------------------------
1 | # -----------------------------------------------------------------------------
2 | # PyKritaToolKit
3 | # Copyright (C) 2019-2022 - Grum999
4 | # -----------------------------------------------------------------------------
5 | # SPDX-License-Identifier: GPL-3.0-or-later
6 | #
7 | # https://spdx.org/licenses/GPL-3.0-or-later.html
8 | # -----------------------------------------------------------------------------
9 | # A Krita plugin framework
10 | # -----------------------------------------------------------------------------
11 |
12 | import os
13 |
14 |
15 | class EInvalidType(Exception):
16 | """An invalid type has been provided"""
17 | pass
18 |
19 |
20 | class EInvalidValue(Exception):
21 | """An invalid value has been provided"""
22 | pass
23 |
24 |
25 | class EInvalidStatus(Exception):
26 | """An invalid status has been detected"""
27 | pass
28 |
29 |
30 | class PkTk:
31 | __libraries = {}
32 | __packageName = ''
33 |
34 | PATH = os.path.dirname(__file__)
35 | PATH_RESOURCES = os.path.join(os.path.dirname(__file__), 'resources')
36 |
37 | @staticmethod
38 | def getPath(name=None):
39 | """Return path for library"""
40 |
41 | if isinstance(name, str):
42 | return os.path.join(os.path.realpath(os.path.dirname(__file__)), name)
43 | elif isinstance(name, list):
44 | return os.path.join(os.path.realpath(os.path.dirname(__file__)), *name)
45 | else:
46 | return os.path.realpath(os.path.dirname(__file__))
47 |
48 | @staticmethod
49 | def setPackageName(package=None):
50 | """Define current package name for PkTk"""
51 | if not isinstance(package, str):
52 | PkTk.__packageName = ''
53 | else:
54 | PkTk.__packageName = package
55 |
56 | @staticmethod
57 | def packageName():
58 | """Return current package name for PkTk"""
59 | return PkTk.__packageName
60 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/play.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/sign_plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/sign_plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/play.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/sign_plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/file.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/sign_plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/bookmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
64 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/bookmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
64 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/file.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/pause.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/list_tree.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/color_black.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/color_ngray.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/color_white.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/color_black.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/color_ngray.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/color_white.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/list_tree.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/pause.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/play.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/play.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/sign_minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/sign_minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/file.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/file.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/modules/listutils.py:
--------------------------------------------------------------------------------
1 | # -----------------------------------------------------------------------------
2 | # PyKritaToolKit
3 | # Copyright (C) 2019-2022 - Grum999
4 | # -----------------------------------------------------------------------------
5 | # SPDX-License-Identifier: GPL-3.0-or-later
6 | #
7 | # https://spdx.org/licenses/GPL-3.0-or-later.html
8 | # -----------------------------------------------------------------------------
9 | # A Krita plugin framework
10 | # -----------------------------------------------------------------------------
11 |
12 | # -----------------------------------------------------------------------------
13 | # The imgutils module provides miscellaneous list functions
14 | #
15 | # -----------------------------------------------------------------------------
16 |
17 |
18 | def flatten(items):
19 | """Return a flatten list whatever the number of nested level the list have
20 |
21 | f=flatten([1,2,[3,4],[5,[6,7],[8,[9,10]]]])
22 |
23 | f: [1,2,3,4,5,6,7,8,9,10]
24 | """
25 | returned = []
26 | for item in items:
27 | if isinstance(item, (list, tuple)):
28 | returned.extend(flatten(item))
29 | else:
30 | returned.append(item)
31 | return returned
32 |
33 |
34 | def rotate(items, shiftValue=1):
35 | """Rotate list
36 |
37 | - Positive `shiftValue` will rotate to right
38 | - Negative `shiftValue` will rotate to left
39 |
40 |
41 | l=[1,2,3,4]
42 |
43 | x=rotate(l, 1)
44 | x: [4,1,2,3]
45 |
46 | x=rotate(l, -1)
47 | x: [2,3,4,1]
48 |
49 | """
50 | shiftValue = shiftValue % len(items)
51 | if shiftValue == 0:
52 | # no rotation...
53 | return items
54 | # do rotation
55 | return items[-shiftValue:] + items[:-shiftValue]
56 |
57 |
58 | def unique(items):
59 | """Return list of items with duplicate removed
60 |
61 | Initial order list is preserved
62 | Note: works with non-hashable object
63 | """
64 | # a faster method could be return list(set(items))
65 | # but it doesn't work with non-hashable object (like a QColor for example)
66 | returned = []
67 | for item in items:
68 | if item not in returned:
69 | returned.append(item)
70 | return returned
71 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/bookmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/sign_minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/bookmark.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/sign_minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/list_tree.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/pause.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/list_tree.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/pause.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/color_black.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/color_ngray.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/color_white.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/sign_divide.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/color_black.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/color_ngray.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/color_white.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/sign_divide.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/sign_divide.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/build_qrc.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python3
2 |
3 | # Build .qrc files from SVG files
4 |
5 |
6 | import os.path
7 | import re
8 |
9 | CURRENT_PATH=os.path.realpath(os.path.dirname(__file__))
10 |
11 | CONFIG={
12 | 'LINKS':{
13 | '32dp': 'pktk/images/normal',
14 | '32dp-disabled': 'pktk/images/disabled',
15 | 'white/32dp': 'pktk/images-white/normal',
16 | 'white/32dp-disabled': 'pktk/images-white/disabled'
17 | },
18 |
19 | 'TARGETS':{
20 | 'FILES': {
21 | 'dark': 'dark_icons.qrc',
22 | 'light': 'light_icons.qrc'
23 | },
24 | 'PATH': CURRENT_PATH
25 | }
26 | }
27 |
28 |
29 | def main():
30 | """main process"""
31 |
32 | for fileKey in CONFIG['TARGETS']['FILES']:
33 | fileContent=['']
34 |
35 |
36 | for srcLink in CONFIG['LINKS']:
37 | fileContent.append(f''' ''')
38 |
39 | directoryToProcess=os.path.join(CURRENT_PATH, fileKey, srcLink)
40 |
41 | directoryContent=os.listdir(directoryToProcess)
42 |
43 | fileList=[]
44 |
45 | for fileName in directoryContent:
46 | fullPathFileName=os.path.join(directoryToProcess, fileName)
47 |
48 | if os.path.isfile(fullPathFileName):
49 | fName=re.search("(.*)\.svg$", fileName)
50 |
51 | if fName:
52 | fileList.append(fileName)
53 |
54 | for fileName in sorted(fileList):
55 | fName=re.search("(.*)\.svg$", fileName)
56 | fileContent.append(f' {fileKey}/{srcLink}/{fileName}')
57 |
58 | fileContent.append(f' ')
59 |
60 | fileContent.append('')
61 |
62 | targetFileName=os.path.join(CONFIG['TARGETS']['PATH'], CONFIG['TARGETS']['FILES'][fileKey])
63 | print(targetFileName)
64 | with open(targetFileName, 'w') as fHandle:
65 | fHandle.write("\n".join(fileContent))
66 |
67 |
68 |
69 | if __name__ == "__main__":
70 | main()
71 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/author.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/sign_divide.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/move_up.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/goup.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/move_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/author.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/move_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/delete.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/file_copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/goback.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/move_up.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/move_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/folder_open.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/move_down.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/goup.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/move_up.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/move_down_last.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/move_up.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/delete.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/file_copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/goback.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/move_down_last.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/move_up_first.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/goback.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/goup.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/bookmark_add.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/dashboard_full.svg:
--------------------------------------------------------------------------------
1 |
2 |
69 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/goup.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp/folder_open.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/delete.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/file_copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/folder_open.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/move_down_last.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp-disabled/move_up_first.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/delete.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/file_copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
66 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/goback.svg:
--------------------------------------------------------------------------------
1 |
2 |
68 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/move_up_first.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/dark/32dp/image.svg:
--------------------------------------------------------------------------------
1 |
2 |
65 |
--------------------------------------------------------------------------------
/bulinotes/bulinotes/pktk/resources/svg/light/32dp-disabled/folder_open.svg:
--------------------------------------------------------------------------------
1 |
2 |
67 |
--------------------------------------------------------------------------------