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.
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/PKG-INFO +3 -3
- {labelcraft-2.1.6 → labelcraft-2.1.7}/PKG-INFO +3 -3
- {labelcraft-2.1.6 → labelcraft-2.1.7}/README.md +2 -2
- {labelcraft-2.1.6 → labelcraft-2.1.7}/labelcraft_ui.py +21 -3
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/__init__.py +1 -1
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/SOURCES.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/dependency_links.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/entry_points.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/not-zip-safe +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/requires.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/LabelCraft.egg-info/top_level.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/MANIFEST.in +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/data/coco_classes.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/data/predefined_classes.txt +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/annotation_converter.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/annotation_importer.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/canvas.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/cli.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/coco_io.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/colorDialog.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/combobox.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/constants.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/create_ml_io.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/csv_io.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/default_label_combobox.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/hashableQListWidgetItem.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/i18n_engine.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/json_io.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/labelDialog.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/labelFile.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/lightWidget.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/de-DE.json +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/en.json +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/fr-FR.json +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/ja-JP.json +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/zh-CN.json +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/locales/zh-TW.json +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/newProjectDialog.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/pascal_voc_io.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/project.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/resources.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/settings.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/shape.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/theme_manager.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/toolBar.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/ustr.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/utils.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/yolo_io.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/libs/zoomWidget.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/main.py +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app.icns +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/app_screen.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/cancel.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/close.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/color.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/color_line.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/copy.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/delete.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/done.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/done.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/edit.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/expert1.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/expert2.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/eye.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/feBlend-icon.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/file.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/fit-width.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/fit-window.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/fit.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/format_createml.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/format_voc.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/format_yolo.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/help.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/labels.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/labels.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_brighten.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_darken.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_darken.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_lighten.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_reset.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/light_reset.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/new.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/next.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/objects.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/open.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/open.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/prev.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/quit.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/resetall.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save-as.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save-as.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/save.svg +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/undo-cross.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/undo.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/verify.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/zoom-in.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/zoom-out.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources/icons/zoom.png +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/resources.qrc +0 -0
- {labelcraft-2.1.6 → labelcraft-2.1.7}/setup.cfg +0 -0
- {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.
|
|
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.
|
|
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)
|
|
43
43
|
[](https://www.python.org/)
|
|
44
44
|
[](https://www.qt.io/)
|
|
45
|
-
[](https://github.com/syd168/LabelCraft/releases)
|
|
46
46
|
[](https://pepy.tech/project/labelcraft)
|
|
47
47
|
[](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.
|
|
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.
|
|
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)
|
|
43
43
|
[](https://www.python.org/)
|
|
44
44
|
[](https://www.qt.io/)
|
|
45
|
-
[](https://github.com/syd168/LabelCraft/releases)
|
|
46
46
|
[](https://pepy.tech/project/labelcraft)
|
|
47
47
|
[](https://pypi.org/project/LabelCraft/)
|
|
48
48
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# LabelCraft - Intelligent Image Annotation Tool
|
|
2
2
|
|
|
3
|
-
> **Version 2.1.
|
|
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)
|
|
6
6
|
[](https://www.python.org/)
|
|
7
7
|
[](https://www.qt.io/)
|
|
8
|
-
[](https://github.com/syd168/LabelCraft/releases)
|
|
9
9
|
[](https://pepy.tech/project/labelcraft)
|
|
10
10
|
[](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
|
-
|
|
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
|
-
|
|
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', '
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|