From 6f5bccaa15d8c9062b84beaed95ed1954447f615 Mon Sep 17 00:00:00 2001 From: iperov Date: Fri, 30 Apr 2021 18:58:43 +0400 Subject: [PATCH] XSegEditor: added delete button --- XSegEditor/QIconDB.py | 1 + XSegEditor/QStringDB.py | 5 +++++ XSegEditor/XSegEditor.py | 19 +++++++++++++++++-- XSegEditor/gfx/icons/trashcan.png | Bin 0 -> 3285 bytes 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 XSegEditor/gfx/icons/trashcan.png diff --git a/XSegEditor/QIconDB.py b/XSegEditor/QIconDB.py index a2427c3..1fd9e3e 100644 --- a/XSegEditor/QIconDB.py +++ b/XSegEditor/QIconDB.py @@ -17,6 +17,7 @@ class QIconDB(): QIconDB.poly_type_exclude = QIcon ( str(icon_path / 'poly_type_exclude.png') ) QIconDB.left = QIcon ( str(icon_path / 'left.png') ) QIconDB.right = QIcon ( str(icon_path / 'right.png') ) + QIconDB.trashcan = QIcon ( str(icon_path / 'trashcan.png') ) QIconDB.pt_edit_mode = QIcon ( str(icon_path / 'pt_edit_mode.png') ) QIconDB.view_lock_center = QIcon ( str(icon_path / 'view_lock_center.png') ) QIconDB.view_baked = QIcon ( str(icon_path / 'view_baked.png') ) diff --git a/XSegEditor/QStringDB.py b/XSegEditor/QStringDB.py index 632419e..475b97d 100644 --- a/XSegEditor/QStringDB.py +++ b/XSegEditor/QStringDB.py @@ -85,6 +85,11 @@ class QStringDB(): 'zh' : '保存并转到下一张图片\n按住SHIFT : 加快\n按住CTRL : 跳过未标记的\n', }[lang] + QStringDB.btn_delete_image_tip = { 'en' : 'Delete and Next image\n', + 'ru' : 'Удалить и следующее изображение\n', + 'zh' : '清除并转到下一张图片', + }[lang] + QStringDB.loading_tip = {'en' : 'Loading', 'ru' : 'Загрузка', 'zh' : '正在载入', diff --git a/XSegEditor/XSegEditor.py b/XSegEditor/XSegEditor.py index c9cb6aa..d934850 100644 --- a/XSegEditor/XSegEditor.py +++ b/XSegEditor/XSegEditor.py @@ -1341,7 +1341,15 @@ class MainWindow(QXMainWindow): self.update_cached_images() self.update_preview_bar() - + + def delete_current_image(self): + self.process_next_image() + + img_path = self.image_paths_done.pop(-1) + Path(img_path).unlink() + self.update_cached_images() + self.update_preview_bar() + def initialize_ui(self): self.canvas = QCanvas() @@ -1356,12 +1364,19 @@ class MainWindow(QXMainWindow): btn_next_image = QXIconButton(QIconDB.right, QStringDB.btn_next_image_tip, shortcut='D', click_func=self.process_next_image) btn_next_image.setIconSize(QUIConfig.preview_bar_icon_q_size) - + btn_delete_image = QXIconButton(QIconDB.trashcan, QStringDB.btn_delete_image_tip, shortcut='X', click_func=self.delete_current_image) + btn_delete_image.setIconSize(QUIConfig.preview_bar_icon_q_size) + + pad_image = QWidget() + pad_image.setFixedSize(QUIConfig.preview_bar_icon_q_size) + preview_image_bar_frame_l = QHBoxLayout() preview_image_bar_frame_l.setContentsMargins(0,0,0,0) + preview_image_bar_frame_l.addWidget ( pad_image, alignment=Qt.AlignCenter) preview_image_bar_frame_l.addWidget ( btn_prev_image, alignment=Qt.AlignCenter) preview_image_bar_frame_l.addWidget ( image_bar) preview_image_bar_frame_l.addWidget ( btn_next_image, alignment=Qt.AlignCenter) + preview_image_bar_frame_l.addWidget ( btn_delete_image, alignment=Qt.AlignCenter) preview_image_bar_frame = QFrame() preview_image_bar_frame.setSizePolicy ( QSizePolicy.Fixed, QSizePolicy.Fixed ) diff --git a/XSegEditor/gfx/icons/trashcan.png b/XSegEditor/gfx/icons/trashcan.png new file mode 100644 index 0000000000000000000000000000000000000000..a31285b12b79836107a336ccc0c7eb4e67c01fbc GIT binary patch literal 3285 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 P`NxCi=1r~K6nf}iVz(@| literal 0 HcmV?d00001