shinestacker 1.0.1__py3-none-any.whl → 1.0.2__py3-none-any.whl

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.

Potentially problematic release.


This version of shinestacker might be problematic. Click here for more details.

shinestacker/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.0.1'
1
+ __version__ = '1.0.2'
@@ -133,11 +133,11 @@ class RunWindow(QTextEditLogger):
133
133
  def find_parent(widget, class_name):
134
134
  current = widget
135
135
  while current is not None:
136
- if current.__class__.__name__ == class_name:
136
+ if current.objectName() == class_name:
137
137
  return current
138
138
  current = current.parent()
139
139
  return None
140
- parent = find_parent(self, "MainWindow")
140
+ parent = find_parent(self, "mainWindow")
141
141
  if parent:
142
142
  parent.retouch_callback(path[1])
143
143
  else:
@@ -52,6 +52,7 @@ class MainWindow(QMainWindow, LogManager):
52
52
  def __init__(self):
53
53
  QMainWindow.__init__(self)
54
54
  LogManager.__init__(self)
55
+ self.setObjectName("mainWindow")
55
56
  self.project_controller = ProjectController(self)
56
57
  self.project_editor = self.project_controller.project_editor
57
58
  actions = {
@@ -139,6 +140,8 @@ class MainWindow(QMainWindow, LogManager):
139
140
  self.project_controller.activate_window_requested.connect(self.activateWindow)
140
141
  self.project_controller.enable_save_actions_requested.connect(
141
142
  self.menu_manager.save_actions_set_enabled)
143
+ self.project_controller.enable_sub_actions_requested.connect(
144
+ self.menu_manager.set_enabled_sub_actions_gui)
142
145
 
143
146
  def modified(self):
144
147
  return self.project_editor.modified()
@@ -286,9 +289,9 @@ class MainWindow(QMainWindow, LogManager):
286
289
  if current_action:
287
290
  menu = QMenu(self)
288
291
  if current_action.enabled():
289
- menu.addAction(self.disable_action)
292
+ menu.addAction(self.menu_manager.disable_action)
290
293
  else:
291
- menu.addAction(self.enable_action)
294
+ menu.addAction(self.menu_manager.enable_action)
292
295
  edit_config_action = QAction("Edit configuration")
293
296
  edit_config_action.triggered.connect(self.edit_current_action)
294
297
  menu.addAction(edit_config_action)
@@ -332,8 +335,8 @@ class MainWindow(QMainWindow, LogManager):
332
335
  self.browse_output_path_action.triggered.connect(self.browse_output_path)
333
336
  menu.addAction(self.browse_output_path_action)
334
337
  menu.addSeparator()
335
- menu.addAction(self.run_job_action)
336
- menu.addAction(self.run_all_jobs_action)
338
+ menu.addAction(self.menu_manager.run_job_action)
339
+ menu.addAction(self.menu_manager.run_all_jobs_action)
337
340
  if current_action.type_name == constants.ACTION_JOB:
338
341
  retouch_path = self.get_retouch_path(current_action)
339
342
  if len(retouch_path) > 0:
@@ -19,6 +19,7 @@ class ProjectController(QObject):
19
19
  refresh_ui_requested = Signal(int, int)
20
20
  activate_window_requested = Signal()
21
21
  enable_save_actions_requested = Signal(bool)
22
+ enable_sub_actions_requested = Signal(bool)
22
23
 
23
24
  def __init__(self, parent):
24
25
  super().__init__(parent)
@@ -323,7 +324,7 @@ class ProjectController(QObject):
323
324
  current_action, is_sub_action = self.get_current_action_at(job, action_index)
324
325
  if current_action:
325
326
  if not is_sub_action:
326
- self.set_enabled_sub_actions_gui(
327
+ self.enable_sub_actions_requested.emit(
327
328
  current_action.type_name == constants.ACTION_COMBO)
328
329
  dialog = self.action_config_dialog(current_action)
329
330
  if dialog.exec() == QDialog.Accepted:
@@ -56,8 +56,9 @@ class IOGuiHandler(QObject, LayerCollectionHandler):
56
56
  self.set_master_layer(master_layer)
57
57
  self.undo_manager.reset()
58
58
  self.blank_layer = np.zeros(master_layer.shape[:2])
59
- self.finish_loading_setup(stack, None, master_layer,
60
- f"Loaded: {self.current_file_path()}")
59
+ self.finish_loading_setup(
60
+ stack, None, master_layer, False,
61
+ f"Loaded: {self.current_file_path()}")
61
62
 
62
63
  def on_file_error(self, error_msg):
63
64
  QApplication.restoreOverrideCursor()
@@ -136,23 +137,26 @@ class IOGuiHandler(QObject, LayerCollectionHandler):
136
137
  msg.setText(str(e))
137
138
  msg.exec()
138
139
  return
139
- self.finish_loading_setup(stack, labels, master, "Selected frames imported")
140
+ self.finish_loading_setup(
141
+ stack, labels, master, True,
142
+ "Selected frames imported")
140
143
 
141
- def finish_loading_setup(self, stack, labels, master, message):
142
- if self.layer_stack() is None and len(stack) > 0:
143
- self.set_layer_stack(np.array(stack))
144
- if labels is None:
145
- labels = self.layer_labels()
144
+ def finish_loading_setup(self, stack, labels, master, add_layers, message):
145
+ if add_layers:
146
+ if self.layer_stack() is None and len(stack) > 0:
147
+ self.set_layer_stack(np.array(stack))
148
+ if labels is None:
149
+ labels = self.layer_labels()
150
+ else:
151
+ self.set_layer_labels(labels)
152
+ self.set_master_layer(master)
153
+ self.blank_layer = np.zeros(master.shape[:2])
146
154
  else:
147
- self.set_layer_labels(labels)
148
- self.set_master_layer(master)
149
- self.blank_layer = np.zeros(master.shape[:2])
150
- else:
151
- if labels is None:
152
- labels = self.layer_labels()
153
- for img, label in zip(stack, labels):
154
- self.add_layer_label(label)
155
- self.add_layer(img)
155
+ if labels is None:
156
+ labels = self.layer_labels()
157
+ for img, label in zip(stack, labels):
158
+ self.add_layer_label(label)
159
+ self.add_layer(img)
156
160
  self.display_manager.update_thumbnails()
157
161
  self.mark_as_modified_requested.emit(True)
158
162
  self.change_layer_requested.emit(0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shinestacker
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  Summary: ShineStacker
5
5
  Author-email: Luca Lista <luka.lista@gmail.com>
6
6
  License-Expression: LGPL-3.0
@@ -1,5 +1,5 @@
1
1
  shinestacker/__init__.py,sha256=uq2fjAw2z_6TpH3mOcWFZ98GoEPRsNhTAK8N0MMm_e8,448
2
- shinestacker/_version.py,sha256=bMIenWosteoeUs51RbaWVZetIuzRhWymuyy-n0rfK0I,21
2
+ shinestacker/_version.py,sha256=C8nyPP5-54GgYCcP38Lbel_pRimOW-Ra4bw6Vzp2lmE,21
3
3
  shinestacker/algorithms/__init__.py,sha256=c4kRrdTLlVI70Q16XkI1RSmz5MD7npDqIpO_02jTG6g,747
4
4
  shinestacker/algorithms/align.py,sha256=XT4DJoD5ZvpkC1-J3W3GWmWRsXJg3qJ-3zr9erT8oW0,17514
5
5
  shinestacker/algorithms/balance.py,sha256=iSjO-pl0vQv58iEQ077EUcDTAExMKDBdtXmJXbMhazk,16721
@@ -41,11 +41,11 @@ shinestacker/gui/base_form_dialog.py,sha256=yYqMee1mzw9VBx8siBS0jDk1qqsTIKJUgdjh
41
41
  shinestacker/gui/colors.py,sha256=m0pQQ-uvtIN1xmb_-N06BvC7pZYZZnq59ZSEJwutHuk,1432
42
42
  shinestacker/gui/gui_images.py,sha256=e0KAXSPruZoRHrajfdlmOKBYoRJJQBDan1jgs7YFltY,5678
43
43
  shinestacker/gui/gui_logging.py,sha256=kiZcrC2AFYCWgPZo0O5SKw-E5cFrezwf4anS3HjPuNw,8168
44
- shinestacker/gui/gui_run.py,sha256=jGrtXNT3Gn53qMPSU74aEY6PP7UQfc85SD3XIesWLuY,15147
45
- shinestacker/gui/main_window.py,sha256=6zGFZkgBh3_UNWjCfNzciPeiCvBsZnjJiPy62U4ldAw,23988
44
+ shinestacker/gui/gui_run.py,sha256=G9jKIMCEdrCwRvicRykY0r_x2Vya-9EMn4HpZL8ydRI,15141
45
+ shinestacker/gui/main_window.py,sha256=1Im8ER-eAYwvLXFp_OyMr3EkdpJ0K1krkmKy-WF3KM8,24210
46
46
  shinestacker/gui/menu_manager.py,sha256=_L6LOikB3impEYqilqwXc0WJuunishjz57ozZlrBn7Q,9616
47
47
  shinestacker/gui/new_project.py,sha256=zHmGrT27L7I6YHM1L8wjt7DzukLFPddFsbVyGVHfJoc,11004
48
- shinestacker/gui/project_controller.py,sha256=jjM8JuPlIsQohmiqzuV1EndGVvqO4tOEdoMEUJ37SNU,15049
48
+ shinestacker/gui/project_controller.py,sha256=BbecAO0t15Usir3CYeIBiO9gvdGAmAPwhwLxci5IS7g,15103
49
49
  shinestacker/gui/project_converter.py,sha256=_AFfU2HYKPX78l6iX6bXJrlKpdjSl63pmKzrc6kQpn8,7348
50
50
  shinestacker/gui/project_editor.py,sha256=uouzmUkrqouQlq-dqPOgSO16r1WOnGNV2v8jTcZlRXU,23749
51
51
  shinestacker/gui/project_model.py,sha256=eRUmH3QmRzDtPtZoxgT6amKzN8_5XzwjHgEJeL-_JOE,4263
@@ -75,7 +75,7 @@ shinestacker/retouch/filter_manager.py,sha256=SdYIZkZBUvuB6wDG0moGWav5sfEvIcB9io
75
75
  shinestacker/retouch/icon_container.py,sha256=6gw1HO1bC2FrdB4dc_iH81DQuLjzuvRGksZ2hKLT9yA,585
76
76
  shinestacker/retouch/image_editor_ui.py,sha256=GNozK_P7orgl8EioemJeyR4e_LLMbKVZi4xhYW9m38U,29893
77
77
  shinestacker/retouch/image_viewer.py,sha256=3ebrLHTDtGd_EbIT2nNFRUjH836rblmmK7jZ62YcJ2U,19564
78
- shinestacker/retouch/io_gui_handler.py,sha256=M9rlfqiIaP1wWCm6p-Ew15w0_pH8-DoBXJdEkTUeVCU,11525
78
+ shinestacker/retouch/io_gui_handler.py,sha256=DPFEq-29b88xqCpIwEmuwUU5Xn_7UGlFFhCDM1bvMxI,11645
79
79
  shinestacker/retouch/io_manager.py,sha256=JUAA--AK0mVa1PTErJTnBFjaXIle5Qs7Ow0Wkd8at0o,2437
80
80
  shinestacker/retouch/layer_collection.py,sha256=Q7zoCYRn__jYkfrEC2lY1uKHWfOUbsJ27xaYHIoKVxo,5730
81
81
  shinestacker/retouch/shortcuts_help.py,sha256=SN4vNa_6yRAFaWxt5HpWn8FHgwmHrIs_wYwjl4iyDmg,3769
@@ -83,9 +83,9 @@ shinestacker/retouch/undo_manager.py,sha256=_ekbcOLcPbQLY7t-o8wf-b1uA6OPY9rRyLM-
83
83
  shinestacker/retouch/unsharp_mask_filter.py,sha256=uFnth8fpZFGhdIgJCnS8x5v6lBQgJ3hX0CBke9pFXeM,3510
84
84
  shinestacker/retouch/vignetting_filter.py,sha256=3WuoF38lQOIaU1MWmqviItuQn8NnbMN0nwV7pM9IJqU,3453
85
85
  shinestacker/retouch/white_balance_filter.py,sha256=glMBYlmrF-i_OrB3sGUpjZE6X4FQdyLC4GBy2bWtaFc,6056
86
- shinestacker-1.0.1.dist-info/licenses/LICENSE,sha256=pWgb-bBdsU2Gd2kwAXxketnm5W_2u8_fIeWEgojfrxs,7651
87
- shinestacker-1.0.1.dist-info/METADATA,sha256=txWeQBvdot0jMY-eCpwlZTqMataYiQn8MpSZECcxaUw,5902
88
- shinestacker-1.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
89
- shinestacker-1.0.1.dist-info/entry_points.txt,sha256=SY6g1LqtMmp23q1DGwLUDT_dhLX9iss8DvWkiWLyo_4,166
90
- shinestacker-1.0.1.dist-info/top_level.txt,sha256=MhijwnBVX5psfsyX8JZjqp3SYiWPsKe69f3Gnyze4Fw,13
91
- shinestacker-1.0.1.dist-info/RECORD,,
86
+ shinestacker-1.0.2.dist-info/licenses/LICENSE,sha256=pWgb-bBdsU2Gd2kwAXxketnm5W_2u8_fIeWEgojfrxs,7651
87
+ shinestacker-1.0.2.dist-info/METADATA,sha256=BGQfH5499HQk51ANCTjSdUxjErlNHfiz1kcCf17VKZo,5902
88
+ shinestacker-1.0.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
89
+ shinestacker-1.0.2.dist-info/entry_points.txt,sha256=SY6g1LqtMmp23q1DGwLUDT_dhLX9iss8DvWkiWLyo_4,166
90
+ shinestacker-1.0.2.dist-info/top_level.txt,sha256=MhijwnBVX5psfsyX8JZjqp3SYiWPsKe69f3Gnyze4Fw,13
91
+ shinestacker-1.0.2.dist-info/RECORD,,