LabelCraft 2.1.6__tar.gz → 2.1.7__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 (104) hide show
  1. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/PKG-INFO +3 -3
  2. {labelcraft-2.1.6 → labelcraft-2.1.7}/PKG-INFO +3 -3
  3. {labelcraft-2.1.6 → labelcraft-2.1.7}/README.md +2 -2
  4. {labelcraft-2.1.6 → labelcraft-2.1.7}/labelcraft_ui.py +21 -3
  5. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/__init__.py +1 -1
  6. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/SOURCES.txt +0 -0
  7. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/dependency_links.txt +0 -0
  8. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/entry_points.txt +0 -0
  9. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/not-zip-safe +0 -0
  10. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/requires.txt +0 -0
  11. {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/top_level.txt +0 -0
  12. {labelcraft-2.1.6 → labelcraft-2.1.7}/MANIFEST.in +0 -0
  13. {labelcraft-2.1.6 → labelcraft-2.1.7}/data/coco_classes.txt +0 -0
  14. {labelcraft-2.1.6 → labelcraft-2.1.7}/data/predefined_classes.txt +0 -0
  15. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/annotation_converter.py +0 -0
  16. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/annotation_importer.py +0 -0
  17. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/canvas.py +0 -0
  18. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/cli.py +0 -0
  19. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/coco_io.py +0 -0
  20. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/colorDialog.py +0 -0
  21. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/combobox.py +0 -0
  22. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/constants.py +0 -0
  23. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/create_ml_io.py +0 -0
  24. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/csv_io.py +0 -0
  25. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/default_label_combobox.py +0 -0
  26. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/hashableQListWidgetItem.py +0 -0
  27. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/i18n_engine.py +0 -0
  28. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/json_io.py +0 -0
  29. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/labelDialog.py +0 -0
  30. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/labelFile.py +0 -0
  31. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/lightWidget.py +0 -0
  32. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/de-DE.json +0 -0
  33. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/en.json +0 -0
  34. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/fr-FR.json +0 -0
  35. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/ja-JP.json +0 -0
  36. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/zh-CN.json +0 -0
  37. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/zh-TW.json +0 -0
  38. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/newProjectDialog.py +0 -0
  39. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/pascal_voc_io.py +0 -0
  40. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/project.py +0 -0
  41. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/resources.py +0 -0
  42. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/settings.py +0 -0
  43. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/shape.py +0 -0
  44. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/theme_manager.py +0 -0
  45. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/toolBar.py +0 -0
  46. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/ustr.py +0 -0
  47. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/utils.py +0 -0
  48. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/yolo_io.py +0 -0
  49. {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/zoomWidget.py +0 -0
  50. {labelcraft-2.1.6 → labelcraft-2.1.7}/main.py +0 -0
  51. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app.icns +0 -0
  52. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app.png +0 -0
  53. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app.svg +0 -0
  54. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app_screen.png +0 -0
  55. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/cancel.png +0 -0
  56. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/close.png +0 -0
  57. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/color.png +0 -0
  58. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/color_line.png +0 -0
  59. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/copy.png +0 -0
  60. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/delete.png +0 -0
  61. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/done.png +0 -0
  62. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/done.svg +0 -0
  63. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/edit.png +0 -0
  64. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/expert1.png +0 -0
  65. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/expert2.png +0 -0
  66. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/eye.png +0 -0
  67. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/feBlend-icon.png +0 -0
  68. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/file.png +0 -0
  69. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/fit-width.png +0 -0
  70. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/fit-window.png +0 -0
  71. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/fit.png +0 -0
  72. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/format_createml.png +0 -0
  73. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/format_voc.png +0 -0
  74. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/format_yolo.png +0 -0
  75. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/help.png +0 -0
  76. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/labels.png +0 -0
  77. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/labels.svg +0 -0
  78. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_brighten.svg +0 -0
  79. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_darken.png +0 -0
  80. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_darken.svg +0 -0
  81. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_lighten.png +0 -0
  82. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_reset.png +0 -0
  83. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_reset.svg +0 -0
  84. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/new.png +0 -0
  85. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/next.png +0 -0
  86. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/objects.png +0 -0
  87. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/open.png +0 -0
  88. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/open.svg +0 -0
  89. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/prev.png +0 -0
  90. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/quit.png +0 -0
  91. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/resetall.png +0 -0
  92. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save-as.png +0 -0
  93. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save-as.svg +0 -0
  94. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save.png +0 -0
  95. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save.svg +0 -0
  96. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/undo-cross.png +0 -0
  97. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/undo.png +0 -0
  98. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/verify.png +0 -0
  99. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/zoom-in.png +0 -0
  100. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/zoom-out.png +0 -0
  101. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/zoom.png +0 -0
  102. {labelcraft-2.1.6 → labelcraft-2.1.7}/resources.qrc +0 -0
  103. {labelcraft-2.1.6 → labelcraft-2.1.7}/setup.cfg +0 -0
  104. {labelcraft-2.1.6 → labelcraft-2.1.7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LabelCraft
3
- Version: 2.1.6
3
+ Version: 2.1.7
4
4
  Summary: LabelCraft - A modern graphical image annotation tool based on labelImg
5
5
  Home-page: https://github.com/syd168/LabelCraft
6
6
  Author: LabelCraft Contributors
@@ -37,12 +37,12 @@ Dynamic: summary
37
37
 
38
38
  # LabelCraft - Intelligent Image Annotation Tool
39
39
 
40
- > **Version 2.1.6** - A modern image annotation tool with project management and cross-platform support, developed based on [labelImg](https://github.com/tzutalin/labelImg)
40
+ > **Version 2.1.7** - A modern image annotation tool with project management and cross-platform support, developed based on [labelImg](https://github.com/tzutalin/labelImg)
41
41
 
42
42
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
43
43
  [![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/)
44
44
  [![PySide6](https://img.shields.io/badge/PySide6-6.5+-green.svg)](https://www.qt.io/)
45
- [![Version](https://img.shields.io/badge/version-2.1.6-orange.svg)](https://github.com/syd168/LabelCraft/releases)
45
+ [![Version](https://img.shields.io/badge/version-2.1.7-orange.svg)](https://github.com/syd168/LabelCraft/releases)
46
46
  [![Downloads](https://pepy.tech/badge/labelcraft)](https://pepy.tech/project/labelcraft)
47
47
  [![PyPI](https://img.shields.io/pypi/v/labelcraft.svg)](https://pypi.org/project/LabelCraft/)
48
48
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LabelCraft
3
- Version: 2.1.6
3
+ Version: 2.1.7
4
4
  Summary: LabelCraft - A modern graphical image annotation tool based on labelImg
5
5
  Home-page: https://github.com/syd168/LabelCraft
6
6
  Author: LabelCraft Contributors
@@ -37,12 +37,12 @@ Dynamic: summary
37
37
 
38
38
  # LabelCraft - Intelligent Image Annotation Tool
39
39
 
40
- > **Version 2.1.6** - A modern image annotation tool with project management and cross-platform support, developed based on [labelImg](https://github.com/tzutalin/labelImg)
40
+ > **Version 2.1.7** - A modern image annotation tool with project management and cross-platform support, developed based on [labelImg](https://github.com/tzutalin/labelImg)
41
41
 
42
42
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
43
43
  [![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/)
44
44
  [![PySide6](https://img.shields.io/badge/PySide6-6.5+-green.svg)](https://www.qt.io/)
45
- [![Version](https://img.shields.io/badge/version-2.1.6-orange.svg)](https://github.com/syd168/LabelCraft/releases)
45
+ [![Version](https://img.shields.io/badge/version-2.1.7-orange.svg)](https://github.com/syd168/LabelCraft/releases)
46
46
  [![Downloads](https://pepy.tech/badge/labelcraft)](https://pepy.tech/project/labelcraft)
47
47
  [![PyPI](https://img.shields.io/pypi/v/labelcraft.svg)](https://pypi.org/project/LabelCraft/)
48
48
 
@@ -1,11 +1,11 @@
1
1
  # LabelCraft - Intelligent Image Annotation Tool
2
2
 
3
- > **Version 2.1.6** - A modern image annotation tool with project management and cross-platform support, developed based on [labelImg](https://github.com/tzutalin/labelImg)
3
+ > **Version 2.1.7** - A modern image annotation tool with project management and cross-platform support, developed based on [labelImg](https://github.com/tzutalin/labelImg)
4
4
 
5
5
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
6
  [![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/)
7
7
  [![PySide6](https://img.shields.io/badge/PySide6-6.5+-green.svg)](https://www.qt.io/)
8
- [![Version](https://img.shields.io/badge/version-2.1.6-orange.svg)](https://github.com/syd168/LabelCraft/releases)
8
+ [![Version](https://img.shields.io/badge/version-2.1.7-orange.svg)](https://github.com/syd168/LabelCraft/releases)
9
9
  [![Downloads](https://pepy.tech/badge/labelcraft)](https://pepy.tech/project/labelcraft)
10
10
  [![PyPI](https://img.shields.io/pypi/v/labelcraft.svg)](https://pypi.org/project/LabelCraft/)
11
11
 
@@ -176,7 +176,10 @@ class MainWindow(QMainWindow, WindowMixin):
176
176
  # Create dock widget (remove title, will be hidden)
177
177
  self.dock = QDockWidget('', self)
178
178
  self.dock.setObjectName(self.get_str('labels'))
179
- self.dock.setTitleBarWidget(QWidget()) # Hide the title bar
179
+ # Use zero-height title bar; a default QWidget reserves space on macOS
180
+ hidden_title_bar = QWidget()
181
+ hidden_title_bar.setFixedHeight(0)
182
+ self.dock.setTitleBarWidget(hidden_title_bar)
180
183
 
181
184
  # Create unified right panel with all sections
182
185
  right_panel_layout = QVBoxLayout()
@@ -261,8 +264,16 @@ class MainWindow(QMainWindow, WindowMixin):
261
264
  completed_layout.addWidget(self.file_list_widget)
262
265
  self.completed_group.setLayout(completed_layout)
263
266
  right_panel_layout.addWidget(self.completed_group)
264
-
265
- right_panel_layout.addStretch()
267
+
268
+ # Let list sections absorb extra height instead of leaving blank space below
269
+ right_panel_layout.setStretchFactor(self.output_group, 0)
270
+ right_panel_layout.setStretchFactor(self.filter_label_group, 0)
271
+ right_panel_layout.setStretchFactor(self.label_list_group, 1)
272
+ right_panel_layout.setStretchFactor(self.completed_group, 1)
273
+ self.label_list.setSizePolicy(
274
+ QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
275
+ self.file_list_widget.setSizePolicy(
276
+ QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
266
277
 
267
278
  label_list_container = QWidget()
268
279
  label_list_container.setLayout(right_panel_layout)
@@ -1049,6 +1060,8 @@ class MainWindow(QMainWindow, WindowMixin):
1049
1060
  unified_layout = QVBoxLayout()
1050
1061
  unified_layout.setContentsMargins(2, 2, 2, 2)
1051
1062
  unified_layout.setSpacing(3)
1063
+ # Keep toolbar buttons at the top; macOS vertical toolbars stretch to window height
1064
+ unified_layout.setAlignment(Qt.AlignmentFlag.AlignTop)
1052
1065
 
1053
1066
  # Check if project is loaded and image is available
1054
1067
  has_project = self.current_project is not None
@@ -1108,9 +1121,14 @@ class MainWindow(QMainWindow, WindowMixin):
1108
1121
  unified_layout.addWidget(zoom_widget_container)
1109
1122
 
1110
1123
  unified_container.setLayout(unified_layout)
1124
+ unified_container.setSizePolicy(
1125
+ QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Maximum)
1111
1126
 
1112
1127
  # Add the unified container to toolbar
1113
1128
  self.tools.addWidget(unified_container)
1129
+ if self.os_name == 'Darwin':
1130
+ self.tools.setSizePolicy(
1131
+ QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Maximum)
1114
1132
 
1115
1133
  self.canvas.menus[0].clear()
1116
1134
  add_actions(self.canvas.menus[0], menu)
@@ -1,2 +1,2 @@
1
- __version_info__ = ('2', '1', '6')
1
+ __version_info__ = ('2', '1', '7')
2
2
  __version__ = '.'.join(__version_info__)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes