setiastrosuitepro 1.6.2__py3-none-any.whl → 1.6.4__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 setiastrosuitepro might be problematic. Click here for more details.

Files changed (72) hide show
  1. setiastro/images/rotatearbitrary.png +0 -0
  2. setiastro/saspro/_generated/build_info.py +2 -2
  3. setiastro/saspro/backgroundneutral.py +10 -1
  4. setiastro/saspro/blink_comparator_pro.py +474 -251
  5. setiastro/saspro/crop_dialog_pro.py +11 -1
  6. setiastro/saspro/doc_manager.py +1 -1
  7. setiastro/saspro/function_bundle.py +16 -16
  8. setiastro/saspro/gui/main_window.py +93 -64
  9. setiastro/saspro/gui/mixins/dock_mixin.py +31 -18
  10. setiastro/saspro/gui/mixins/geometry_mixin.py +105 -5
  11. setiastro/saspro/gui/mixins/menu_mixin.py +1 -0
  12. setiastro/saspro/gui/mixins/toolbar_mixin.py +33 -10
  13. setiastro/saspro/multiscale_decomp.py +710 -256
  14. setiastro/saspro/remove_stars_preset.py +55 -13
  15. setiastro/saspro/resources.py +30 -11
  16. setiastro/saspro/selective_color.py +79 -20
  17. setiastro/saspro/shortcuts.py +94 -21
  18. setiastro/saspro/stacking_suite.py +296 -107
  19. setiastro/saspro/star_alignment.py +275 -330
  20. setiastro/saspro/status_log_dock.py +1 -1
  21. setiastro/saspro/swap_manager.py +77 -42
  22. setiastro/saspro/translations/all_source_strings.json +1588 -516
  23. setiastro/saspro/translations/ar_translations.py +915 -684
  24. setiastro/saspro/translations/de_translations.py +442 -463
  25. setiastro/saspro/translations/es_translations.py +277 -47
  26. setiastro/saspro/translations/fr_translations.py +279 -47
  27. setiastro/saspro/translations/hi_translations.py +253 -21
  28. setiastro/saspro/translations/integrate_translations.py +3 -2
  29. setiastro/saspro/translations/it_translations.py +1211 -161
  30. setiastro/saspro/translations/ja_translations.py +3340 -3107
  31. setiastro/saspro/translations/pt_translations.py +3315 -3337
  32. setiastro/saspro/translations/ru_translations.py +351 -117
  33. setiastro/saspro/translations/saspro_ar.qm +0 -0
  34. setiastro/saspro/translations/saspro_ar.ts +15902 -138
  35. setiastro/saspro/translations/saspro_de.qm +0 -0
  36. setiastro/saspro/translations/saspro_de.ts +14428 -133
  37. setiastro/saspro/translations/saspro_es.qm +0 -0
  38. setiastro/saspro/translations/saspro_es.ts +11503 -7821
  39. setiastro/saspro/translations/saspro_fr.qm +0 -0
  40. setiastro/saspro/translations/saspro_fr.ts +11168 -7812
  41. setiastro/saspro/translations/saspro_hi.qm +0 -0
  42. setiastro/saspro/translations/saspro_hi.ts +14733 -135
  43. setiastro/saspro/translations/saspro_it.qm +0 -0
  44. setiastro/saspro/translations/saspro_it.ts +14347 -7821
  45. setiastro/saspro/translations/saspro_ja.qm +0 -0
  46. setiastro/saspro/translations/saspro_ja.ts +14860 -137
  47. setiastro/saspro/translations/saspro_pt.qm +0 -0
  48. setiastro/saspro/translations/saspro_pt.ts +14904 -137
  49. setiastro/saspro/translations/saspro_ru.qm +0 -0
  50. setiastro/saspro/translations/saspro_ru.ts +11766 -168
  51. setiastro/saspro/translations/saspro_sw.qm +0 -0
  52. setiastro/saspro/translations/saspro_sw.ts +15115 -135
  53. setiastro/saspro/translations/saspro_uk.qm +0 -0
  54. setiastro/saspro/translations/saspro_uk.ts +11206 -6729
  55. setiastro/saspro/translations/saspro_zh.qm +0 -0
  56. setiastro/saspro/translations/saspro_zh.ts +10581 -7812
  57. setiastro/saspro/translations/sw_translations.py +282 -56
  58. setiastro/saspro/translations/uk_translations.py +264 -35
  59. setiastro/saspro/translations/zh_translations.py +282 -47
  60. setiastro/saspro/view_bundle.py +17 -17
  61. setiastro/saspro/widgets/minigame/game.js +11 -6
  62. setiastro/saspro/widgets/resource_monitor.py +26 -0
  63. setiastro/saspro/widgets/spinboxes.py +18 -0
  64. setiastro/saspro/wimi.py +65 -65
  65. setiastro/saspro/wims.py +33 -33
  66. setiastro/saspro/window_shelf.py +2 -2
  67. {setiastrosuitepro-1.6.2.dist-info → setiastrosuitepro-1.6.4.dist-info}/METADATA +7 -7
  68. {setiastrosuitepro-1.6.2.dist-info → setiastrosuitepro-1.6.4.dist-info}/RECORD +72 -71
  69. {setiastrosuitepro-1.6.2.dist-info → setiastrosuitepro-1.6.4.dist-info}/WHEEL +0 -0
  70. {setiastrosuitepro-1.6.2.dist-info → setiastrosuitepro-1.6.4.dist-info}/entry_points.txt +0 -0
  71. {setiastrosuitepro-1.6.2.dist-info → setiastrosuitepro-1.6.4.dist-info}/licenses/LICENSE +0 -0
  72. {setiastrosuitepro-1.6.2.dist-info → setiastrosuitepro-1.6.4.dist-info}/licenses/license.txt +0 -0
@@ -10,6 +10,9 @@ from PyQt6.QtCore import Qt, QTimer, QUrl
10
10
  from PyQt6.QtGui import QAction, QActionGroup, QIcon, QKeySequence, QDesktopServices
11
11
  from PyQt6.QtWidgets import QMenu, QToolButton
12
12
 
13
+ from PyQt6.QtCore import QElapsedTimer
14
+
15
+
13
16
  if TYPE_CHECKING:
14
17
  pass
15
18
 
@@ -20,7 +23,7 @@ from setiastro.saspro.resources import (
20
23
  LInsert_path, rgbcombo_path, rgbextract_path, graxperticon_path,
21
24
  cropicon_path, openfile_path, abeicon_path, undoicon_path, redoicon_path,
22
25
  blastericon_path, hdr_path, invert_path, fliphorizontal_path,
23
- flipvertical_path, rotateclockwise_path, rotatecounterclockwise_path,
26
+ flipvertical_path, rotateclockwise_path, rotatecounterclockwise_path,rotatearbitrary_path,
24
27
  rotate180_path, maskcreate_path, maskapply_path, maskremove_path,
25
28
  pixelmath_path, histogram_path, mosaic_path, rescale_path, staralign_path,
26
29
  platesolve_path, psf_path, supernova_path, starregistration_path,
@@ -73,7 +76,8 @@ class ToolbarMixin:
73
76
 
74
77
  def _init_toolbar(self):
75
78
  # View toolbar (Undo / Redo / Display-Stretch)
76
- tb = DraggableToolBar("View", self)
79
+ tb = DraggableToolBar(self.tr("View"), self)
80
+ tb.setObjectName("View")
77
81
  tb.setSettingsKey("Toolbar/View")
78
82
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb)
79
83
 
@@ -175,7 +179,8 @@ class ToolbarMixin:
175
179
  pass
176
180
 
177
181
  # Functions toolbar
178
- tb_fn = DraggableToolBar("Functions", self)
182
+ tb_fn = DraggableToolBar(self.tr("Functions"), self)
183
+ tb_fn.setObjectName("Functions")
179
184
  tb_fn.setSettingsKey("Toolbar/Functions")
180
185
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_fn)
181
186
 
@@ -227,7 +232,8 @@ class ToolbarMixin:
227
232
  except Exception:
228
233
  pass
229
234
 
230
- tbCosmic = DraggableToolBar("Cosmic Clarity", self)
235
+ tbCosmic = DraggableToolBar(self.tr("Cosmic Clarity"), self)
236
+ tbCosmic.setObjectName("Cosmic Clarity")
231
237
  tbCosmic.setSettingsKey("Toolbar/Cosmic")
232
238
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tbCosmic)
233
239
 
@@ -241,7 +247,8 @@ class ToolbarMixin:
241
247
  except Exception:
242
248
  pass
243
249
 
244
- tb_tl = DraggableToolBar("Tools", self)
250
+ tb_tl = DraggableToolBar(self.tr("Tools"), self)
251
+ tb_tl.setObjectName("Tools")
245
252
  tb_tl.setSettingsKey("Toolbar/Tools")
246
253
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_tl)
247
254
 
@@ -260,7 +267,8 @@ class ToolbarMixin:
260
267
  except Exception:
261
268
  pass
262
269
 
263
- tb_geom = DraggableToolBar("Geometry", self)
270
+ tb_geom = DraggableToolBar(self.tr("Geometry"), self)
271
+ tb_geom.setObjectName("Geometry")
264
272
  tb_geom.setSettingsKey("Toolbar/Geometry")
265
273
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_geom)
266
274
 
@@ -272,6 +280,7 @@ class ToolbarMixin:
272
280
  tb_geom.addAction(self.act_geom_rot_cw)
273
281
  tb_geom.addAction(self.act_geom_rot_ccw)
274
282
  tb_geom.addAction(self.act_geom_rot_180)
283
+ tb_geom.addAction(self.act_geom_rot_any)
275
284
  tb_geom.addSeparator()
276
285
  tb_geom.addAction(self.act_geom_rescale)
277
286
  tb_geom.addSeparator()
@@ -283,7 +292,8 @@ class ToolbarMixin:
283
292
  except Exception:
284
293
  pass
285
294
 
286
- tb_star = DraggableToolBar("Star Stuff", self)
295
+ tb_star = DraggableToolBar(self.tr("Star Stuff"), self)
296
+ tb_star.setObjectName("Star Stuff")
287
297
  tb_star.setSettingsKey("Toolbar/StarStuff")
288
298
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_star)
289
299
 
@@ -308,7 +318,8 @@ class ToolbarMixin:
308
318
  except Exception:
309
319
  pass
310
320
 
311
- tb_msk = DraggableToolBar("Masks", self)
321
+ tb_msk = DraggableToolBar(self.tr("Masks"), self)
322
+ tb_msk.setObjectName("Masks")
312
323
  tb_msk.setSettingsKey("Toolbar/Masks")
313
324
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_msk)
314
325
 
@@ -322,7 +333,8 @@ class ToolbarMixin:
322
333
  except Exception:
323
334
  pass
324
335
 
325
- tb_wim = DraggableToolBar("What's In My...", self)
336
+ tb_wim = DraggableToolBar(self.tr("What's In My..."), self)
337
+ tb_wim.setObjectName("What's In My...")
326
338
  tb_wim.setSettingsKey("Toolbar/WhatsInMy")
327
339
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_wim)
328
340
 
@@ -335,7 +347,8 @@ class ToolbarMixin:
335
347
  except Exception:
336
348
  pass
337
349
 
338
- tb_bundle = DraggableToolBar("Bundles", self)
350
+ tb_bundle = DraggableToolBar(self.tr("Bundles"), self)
351
+ tb_bundle.setObjectName("Bundles")
339
352
  tb_bundle.setSettingsKey("Toolbar/Bundles")
340
353
  self.addToolBar(Qt.ToolBarArea.TopToolBarArea, tb_bundle)
341
354
 
@@ -873,6 +886,12 @@ class ToolbarMixin:
873
886
  self.act_geom_rot_180.setStatusTip(self.tr("Rotate image 180°"))
874
887
  self.act_geom_rot_180.triggered.connect(self._exec_geom_rot_180)
875
888
 
889
+ self.act_geom_rot_any = QAction(QIcon(rotatearbitrary_path), self.tr("Rotate..."), self)
890
+ self.act_geom_rot_any.setIconVisibleInMenu(True)
891
+ self.act_geom_rot_any.setStatusTip(self.tr("Rotate image by an arbitrary angle (degrees)"))
892
+ self.act_geom_rot_any.triggered.connect(self._exec_geom_rot_any)
893
+
894
+
876
895
  self.act_geom_rescale = QAction(QIcon(rescale_path), self.tr("Rescale..."), self)
877
896
  self.act_geom_rescale.setIconVisibleInMenu(True)
878
897
  self.act_geom_rescale.setStatusTip(self.tr("Rescale image by a factor"))
@@ -1196,6 +1215,7 @@ class ToolbarMixin:
1196
1215
  reg("geom_rotate_clockwise", self.act_geom_rot_cw)
1197
1216
  reg("geom_rotate_counterclockwise",self.act_geom_rot_ccw)
1198
1217
  reg("geom_rotate_180", self.act_geom_rot_180)
1218
+ reg("geom_rotate_any", self.act_geom_rot_any)
1199
1219
  reg("geom_rescale", self.act_geom_rescale)
1200
1220
  reg("project_new", self.act_project_new)
1201
1221
  reg("project_save", self.act_project_save)
@@ -1387,6 +1407,7 @@ class ToolbarMixin:
1387
1407
  a.setStatusTip(tip)
1388
1408
  a.setEnabled(False)
1389
1409
 
1410
+
1390
1411
  def _sync_link_action_state(self):
1391
1412
  g = self._current_group_of_active()
1392
1413
  self.act_link_group.blockSignals(True)
@@ -1432,6 +1453,7 @@ class ToolbarMixin:
1432
1453
  QTimer.singleShot(0, self.update_undo_redo_action_labels)
1433
1454
 
1434
1455
  def _refresh_mask_action_states(self):
1456
+
1435
1457
  active_doc = self._active_doc()
1436
1458
 
1437
1459
  can_apply = bool(active_doc and self._list_candidate_mask_sources(exclude_doc=active_doc))
@@ -1455,3 +1477,4 @@ class ToolbarMixin:
1455
1477
  if hasattr(self, "act_hide_mask"):
1456
1478
  self.act_hide_mask.setEnabled(has_mask and overlay_on)
1457
1479
 
1480
+