kitbash 1.9.0__tar.gz → 1.11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {kitbash-1.9.0 → kitbash-1.11.0}/PKG-INFO +2 -2
  2. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/__init__.py +13 -1
  3. kitbash-1.11.0/kitbash/__main__.py +93 -0
  4. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/main_window.py +0 -2
  5. {kitbash-1.9.0 → kitbash-1.11.0}/pyproject.toml +2 -2
  6. kitbash-1.9.0/kitbash/__main__.py +0 -72
  7. kitbash-1.9.0/kitbash/install.py +0 -42
  8. {kitbash-1.9.0 → kitbash-1.11.0}/.gitignore +0 -0
  9. {kitbash-1.9.0 → kitbash-1.11.0}/LICENSE +0 -0
  10. {kitbash-1.9.0 → kitbash-1.11.0}/README.md +0 -0
  11. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/__init__.py +0 -0
  12. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/drumkit_widget.py +0 -0
  13. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/kit_save_dialog.py +0 -0
  14. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/main_window.ui +0 -0
  15. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/jack_audio.py +0 -0
  16. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/empty.sfz +0 -0
  17. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/group_expanded.svg +0 -0
  18. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/group_hidden.svg +0 -0
  19. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/kitbash-icon.png +0 -0
  20. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/kitbash-icon.svg +0 -0
  21. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/save-sfz-icon.svg +0 -0
  22. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/scripts/bash_project.py +0 -0
  23. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/styles/light.css +0 -0
  24. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/styles/system.css +0 -0
  25. {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/worker_threads.py +0 -0
  26. {kitbash-1.9.0 → kitbash-1.11.0}/tests/file_save_dialog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kitbash
3
- Version: 1.9.0
3
+ Version: 1.11.0
4
4
  Summary: Provides universal settings, styles, cached icons, and pixmaps, and the base
5
5
  Author-email: Leon Dionne <ldionne@dridesign.sh.cn>
6
6
  Description-Content-Type: text/markdown
@@ -11,7 +11,7 @@ Requires-Dist: qt_liquid_pool >= 1.2.0
11
11
  Requires-Dist: recent_items_list >= 1.1.2
12
12
  Requires-Dist: sfzen >= 2.3.2
13
13
  Requires-Dist: soso_qt_extras >= 1.7.0
14
- Requires-Dist: xdg_soso >= 0.2.0
14
+ Requires-Dist: xdg_soso >= 1.1.0
15
15
  Project-URL: Home, https://github.com/Zen-Master-SoSo/kitbash
16
16
 
17
17
  # KitBash
@@ -28,8 +28,9 @@ from functools import lru_cache
28
28
  from PyQt5.QtCore import QSettings
29
29
  from PyQt5.QtWidgets import QApplication, QSplitter
30
30
  from qt_extras import DevilBox
31
+ from xdg_soso import XDGSetup
31
32
 
32
- __version__ = "1.9.0"
33
+ __version__ = "1.11.0"
33
34
 
34
35
  APPLICATION_NAME = "kitbash"
35
36
  PACKAGE_DIR = dirname(__file__)
@@ -132,4 +133,15 @@ class GeometrySaver:
132
133
  return f'{self.__class__.__name__}/{splitter.objectName()}/geometry'
133
134
 
134
135
 
136
+ class KitbashSetup(XDGSetup):
137
+
138
+ def __init__(self):
139
+ super().__init__('kitbash', 'Kitbash')
140
+ self._comment = "Bash together new .SFZ drumkits from pieces of existing ones."
141
+ self._vendor_name = 'zen_soso'
142
+ self._application_icon = join(dirname(__file__), 'res', 'kitbash-icon.svg')
143
+ self._categories = ['AudioVideo', 'Audio']
144
+ self._keywords = ['Audio', 'Sound', 'midi', 'SFZ', 'Drumkit']
145
+
146
+
135
147
  # end kitbash/kitbash/__init__.py
@@ -0,0 +1,93 @@
1
+ # kitbash/kitbash/__init__.py
2
+ #
3
+ # Copyright 2025-2026 Leon Dionne <ldionne@dridesign.sh.cn>
4
+ #
5
+ # This program is free software; you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation; either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with this program; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ # MA 02110-1301, USA.
19
+ #
20
+ """
21
+ kitbash is a program you can use to combine parts of various SFZ files into a
22
+ new SFZ with instruments "borrowed" from the originals.
23
+ """
24
+ import sys, logging
25
+ from os import environ
26
+ from argparse import ArgumentParser
27
+ from PyQt5.QtWidgets import QApplication
28
+ from qt_extras import exceptions_hook
29
+ from xdg_soso import is_xdg
30
+ from kitbash import KitbashSetup
31
+ from kitbash.gui.main_window import MainWindow
32
+
33
+
34
+ def main():
35
+ parser = ArgumentParser()
36
+ parser.epilog = __doc__
37
+ parser.add_argument('Filename', type=str, nargs='?',
38
+ help='SFZ file[s] to include at startup')
39
+ parser.add_argument("--log-file", "-l", type=str,
40
+ help="Log to this file")
41
+ if is_xdg():
42
+ parser.add_argument('--install', '-i', action = 'store_true',
43
+ help = """Install this application into your desktop
44
+ environment. This will create a desktop launcher so you can start KitBash from
45
+ your menu or Dash, and associate KitBash with SFZ files.""")
46
+ parser.add_argument('--uninstall', '-u', action = 'store_true',
47
+ help = """Remove KitBash from your desktop environment.
48
+ The program will still be on your computer, and can be called from the command
49
+ line as "kitbash", but you won't be able to see it in your desktop applications
50
+ menu.""")
51
+ parser.add_argument("--verbose", "-v", action="store_true",
52
+ help="Show more detailed debug information")
53
+ options = parser.parse_args()
54
+
55
+ log_level = logging.DEBUG if options.verbose else logging.ERROR
56
+ log_format = "[%(filename)24s:%(lineno)4d] %(levelname)-8s %(message)s"
57
+ if options.log_file:
58
+ logging.basicConfig(
59
+ filename = options.log_file,
60
+ filemode = 'w',
61
+ level = log_level,
62
+ format = log_format
63
+ )
64
+ else:
65
+ logging.basicConfig(
66
+ level = log_level,
67
+ format = log_format
68
+ )
69
+
70
+ if options.install:
71
+ KitbashSetup().install()
72
+ elif options.uninstall:
73
+ KitbashSetup().uninstall()
74
+ else:
75
+ #-----------------------------------------------------------------------
76
+ # Annoyance fix per:
77
+ # https://stackoverflow.com/questions/986964/qt-session-management-error
78
+ try:
79
+ del environ['SESSION_MANAGER']
80
+ except KeyError:
81
+ pass
82
+ #-----------------------------------------------------------------------
83
+ app = QApplication([])
84
+ sys.excepthook = exceptions_hook
85
+ main_window = MainWindow(options)
86
+ main_window.show()
87
+ sys.exit(app.exec())
88
+
89
+ if __name__ == "__main__":
90
+ sys.exit(main())
91
+
92
+
93
+ # end kitbash/kitbash/__init__.py
@@ -46,7 +46,6 @@ from kitbash import (
46
46
  from kitbash.worker_threads import KitLoader, KitBasher
47
47
  from kitbash.gui.drumkit_widget import DrumkitWidget
48
48
  from kitbash.gui.kit_save_dialog import KitSaveDialog
49
- from kitbash.install import install
50
49
 
51
50
 
52
51
  UPDATES_DEBOUNCE = 680
@@ -123,7 +122,6 @@ class MainWindow(QMainWindow, GeometrySaver):
123
122
  self.audio.connect()
124
123
  if self.options.Filename:
125
124
  self.load_project(self.options.Filename)
126
- install()
127
125
 
128
126
  def setup_kits_area(self):
129
127
  self.drumkit_widgets = VListLayout(end_space = 10)
@@ -12,7 +12,7 @@ dependencies = [
12
12
  "recent_items_list >= 1.1.2",
13
13
  "sfzen >= 2.3.2",
14
14
  "soso_qt_extras >= 1.7.0",
15
- "xdg_soso >= 0.2.0"
15
+ "xdg_soso >= 1.1.0"
16
16
  ]
17
17
 
18
18
  [project.urls]
@@ -27,7 +27,7 @@ requires = ["flit_core >=3.2,<4"]
27
27
  build-backend = "flit_core.buildapi"
28
28
 
29
29
  [bumpver]
30
- current_version = "1.9.0"
30
+ current_version = "1.11.0"
31
31
  version_pattern = "MAJOR.MINOR.PATCH"
32
32
  commit_message = "Bump version {old_version} -> {new_version}"
33
33
  commit = true
@@ -1,72 +0,0 @@
1
- # kitbash/kitbash/__init__.py
2
- #
3
- # Copyright 2025-2026 Leon Dionne <ldionne@dridesign.sh.cn>
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation; either version 2 of the License, or
8
- # (at your option) any later version.
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU General Public License
16
- # along with this program; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
- # MA 02110-1301, USA.
19
- #
20
- """
21
- kitbash is a program you can use to combine parts of various SFZ files into a
22
- new SFZ with instruments "borrowed" from the originals.
23
- """
24
- import sys, os, argparse, logging
25
- from PyQt5.QtWidgets import QApplication, QErrorMessage
26
- from qt_extras import exceptions_hook
27
- from kitbash.gui.main_window import MainWindow
28
-
29
-
30
- def main():
31
- p = argparse.ArgumentParser()
32
- p.epilog = __doc__
33
- p.add_argument('Filename', type=str, nargs='?', help='SFZ file[s] to include at startup')
34
- p.add_argument("--log-file", "-l", type=str, help="Log to this file")
35
- p.add_argument("--verbose", "-v", action="store_true", help="Show more detailed debug information")
36
- options = p.parse_args()
37
-
38
- log_level = logging.DEBUG if options.verbose else logging.ERROR
39
- log_format = "[%(filename)24s:%(lineno)4d] %(levelname)-8s %(message)s"
40
- if options.log_file:
41
- logging.basicConfig(
42
- filename = options.log_file,
43
- filemode = 'w',
44
- level = log_level,
45
- format = log_format
46
- )
47
- else:
48
- logging.basicConfig(
49
- level = log_level,
50
- format = log_format
51
- )
52
-
53
- #-----------------------------------------------------------------------
54
- # Annoyance fix per:
55
- # https://stackoverflow.com/questions/986964/qt-session-management-error
56
- try:
57
- del os.environ['SESSION_MANAGER']
58
- except KeyError:
59
- pass
60
- #-----------------------------------------------------------------------
61
-
62
- app = QApplication([])
63
- sys.excepthook = exceptions_hook
64
- main_window = MainWindow(options)
65
- main_window.show()
66
- sys.exit(app.exec())
67
-
68
- if __name__ == "__main__":
69
- sys.exit(main())
70
-
71
-
72
- # end kitbash/kitbash/__init__.py
@@ -1,42 +0,0 @@
1
- # kitbash/kitbash/install.py
2
- #
3
- # Copyright 2026 Leon Dionne <ldionne@dridesign.sh.cn>
4
- #
5
- # This program is free software; you can redistribute it and/or modify
6
- # it under the terms of the GNU General Public License as published by
7
- # the Free Software Foundation; either version 2 of the License, or
8
- # (at your option) any later version.
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU General Public License
16
- # along with this program; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
- # MA 02110-1301, USA.
19
- #
20
- """
21
- Install phoney-dictate as an application on XDG-compliant systems (like gnome).
22
- """
23
- import logging
24
- from os.path import dirname, join
25
- from xdg_soso import XDGSetup, is_xdg
26
-
27
- def install():
28
- if is_xdg():
29
- xdg = XDGSetup('kitbash', 'Kitbash')
30
- xdg.comment = "Bash together new .SFZ drumkits from pieces of existing ones."
31
- xdg.application_icon = join(dirname(__file__), 'res', 'kitbash-icon.svg')
32
- xdg.categories = ['AudioVideo', 'Audio']
33
- xdg.keywords = ['Audio', 'Sound', 'midi', 'SFZ', 'Drumkit']
34
- xdg.install()
35
-
36
- if __name__ == '__main__':
37
- log_format = "[%(filename)24s:%(lineno)4d] %(levelname)-8s %(message)s"
38
- logging.basicConfig(level = logging.DEBUG, format = log_format)
39
- install()
40
-
41
-
42
- # end kitbash/kitbash/install.py
File without changes
File without changes
File without changes
File without changes
File without changes