Skip to content

Commit 62ab003

Browse files
committed
ref: properly decorate pyqtSlots
1 parent 4aa6a5e commit 62ab003

File tree

8 files changed

+33
-5
lines changed

8 files changed

+33
-5
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
- ref: make sure there are no duplicate files when loading data
44
(possibly fixes #12)
55
- ref: cleanup - call overloaded processEvents
6+
- ref: properly decorate pyqtSlots
67
- tests: add helper function for setting up datasets
78
0.8.7
89
- fix: add workaround for macOS where the non-native PyQt5 dialogs

pyjibe/fd/main.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ def info_update(self, fdist=None):
299299
fdist = self.current_curve
300300
self.tab_info.update_info(fdist)
301301

302+
@QtCore.pyqtSlot()
302303
def on_cb_rating_scheme(self):
303304
"""Switch rating scheme or import a new one"""
304305
scheme_id = self.cb_rating_scheme.currentIndex()
@@ -318,6 +319,7 @@ def on_cb_rating_scheme(self):
318319
else:
319320
self.on_params_init()
320321

322+
@QtCore.pyqtSlot()
321323
def on_curve_list(self):
322324
"""Called when a new curve is selected"""
323325
fdist = self.current_curve
@@ -341,6 +343,7 @@ def on_curve_list(self):
341343
# Autosave
342344
self.autosave(fdist)
343345

346+
@QtCore.pyqtSlot(QtCore.QModelIndex)
344347
def on_curve_list_item_changed(self, item):
345348
"""An item in the curve list was changed
346349
@@ -355,6 +358,7 @@ def on_curve_list_item_changed(self, item):
355358
self.tab_qmap.mpl_qmap_update()
356359
self.autosave(fdist)
357360

361+
@QtCore.pyqtSlot()
358362
def on_export_edelta(self):
359363
"""Saves all edelta curves"""
360364
fname, _e = QtWidgets.QFileDialog.getSaveFileName(
@@ -402,6 +406,7 @@ def on_export_edelta(self):
402406
with io.open(fname, "ab") as fd:
403407
np.savetxt(fd, np.array(res))
404408

409+
@QtCore.pyqtSlot()
405410
def on_export_fit_results(self):
406411
"""Save metadata and fit results"""
407412
fdist_list = [fdist for fdist in self.selected_curves]
@@ -444,6 +449,7 @@ def on_fit_all(self):
444449
msg,
445450
)
446451

452+
@QtCore.pyqtSlot()
447453
def on_model(self):
448454
"""Called when the fitting model is changed"""
449455
# The difference to "on_params_init" is that we
@@ -457,10 +463,12 @@ def on_model(self):
457463
self.curve_list_update()
458464
self.tab_qmap.mpl_qmap_update()
459465

466+
@QtCore.pyqtSlot()
460467
def on_mpl_curve_update(self):
461468
fdist = self.current_curve
462469
self.widget_fdist.mpl_curve_update(fdist)
463470

471+
@QtCore.pyqtSlot()
464472
def on_params_init(self):
465473
"""Called when the initial parameters are changed"""
466474
fdist = self.current_curve
@@ -472,6 +480,7 @@ def on_params_init(self):
472480
self.curve_list_update(item=idx)
473481
self.tab_qmap.mpl_qmap_update()
474482

483+
@QtCore.pyqtSlot()
475484
def on_rating_threshold(self):
476485
"""(De)select curves according to threshold rating"""
477486
thresh = self.sp_rating_thresh.value()
@@ -491,6 +500,7 @@ def on_rating_threshold(self):
491500
for fdist in self.data_set:
492501
self.autosave(fdist)
493502

503+
@QtCore.pyqtSlot(int)
494504
def on_tab_changed(self, index):
495505
"""Called when the tab on the right hand is changed"""
496506
if hasattr(self, "user_tab_selected"):
@@ -513,6 +523,7 @@ def on_tab_changed(self, index):
513523

514524
self.user_tab_selected = curtab
515525

526+
@QtCore.pyqtSlot()
516527
def on_user_rate(self):
517528
"""Start the curve rater"""
518529
cont = QtWidgets.QFileDialog.getSaveFileName(

pyjibe/fd/mpl_qmap.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import matplotlib.patches as mpatches
1010
from mpl_toolkits.axes_grid1 import make_axes_locatable
1111
import numpy as np
12+
from PyQt5 import QtCore
1213

1314

1415
from ..head import custom_widgets
@@ -21,7 +22,7 @@
2122
}
2223

2324

24-
class MPLQMap(object):
25+
class MPLQMap:
2526
def __init__(self):
2627
"""Matplotlib plot for 2D quantitative map data"""
2728
# Do not use tight_layout (adjust subplot parameters instead)
@@ -88,6 +89,7 @@ def connect_curve_selection_event(self, callback):
8889
"""
8990
self.click_callback = callback
9091

92+
@QtCore.pyqtSlot()
9193
def on_click(self, event):
9294
if (self.click_callback is not None and
9395
self.qmap_coords is not None and

pyjibe/fd/rating_iface.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pkg_resources
33

44
from nanite.rate import io as nio
5-
from PyQt5 import uic, QtWidgets
5+
from PyQt5 import uic, QtCore, QtWidgets
66

77

88
# load QWidget from ui file
@@ -54,6 +54,7 @@ def setup_signals(self, enable=True):
5454
else:
5555
signal.disconnect(slot)
5656

57+
@QtCore.pyqtSlot()
5758
def on_change_index(self):
5859
index = self.curve_index.value()-1
5960
self.setup_signals(False)
@@ -67,6 +68,7 @@ def on_change_index(self):
6768
self.sp_rating.selectAll()
6869
self.sp_rating.setFocus()
6970

71+
@QtCore.pyqtSlot()
7072
def on_change_values(self):
7173
index = self.curve_index.value()-1
7274
fdist = self.fdui.data_set[index]

pyjibe/fd/tab_edelta.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pkg_resources
22

33
import numpy as np
4-
from PyQt5 import uic, QtWidgets
4+
from PyQt5 import uic, QtCore, QtWidgets
55

66
from .. import units
77
from .mpl_edelta import MPLEDelta
@@ -65,13 +65,15 @@ def mpl_edelta_update(self):
6565
self.fd.tab_fit.fit_approach_retract(fdist)
6666
self.mpl_edelta.update(fdist, delta_opt)
6767

68+
@QtCore.pyqtSlot()
6869
def on_delta_guess(self):
6970
"""Guess the optimal indentation depth for the current curve"""
7071
fdist = self.current_curve
7172
value = fdist.estimate_optimal_mindelta()
7273
value /= units.scales["µ"]
7374
self.delta_spin.setValue(value)
7475

76+
@QtCore.pyqtSlot()
7577
def on_delta_change_spin(self, value):
7678
"""Indentation depth spin control value changed"""
7779
# Update all controls

pyjibe/fd/tab_fit.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,15 +374,19 @@ def indentation_depth_setup(self):
374374
self.cb_delta_select.currentIndexChanged['int'].connect(
375375
self.on_delta_select)
376376

377+
@QtCore.pyqtSlot()
377378
def on_model(self):
378379
self.fd.on_model()
379380

381+
@QtCore.pyqtSlot()
380382
def on_params_anc(self):
381383
self.fd.on_params_init()
382384

385+
@QtCore.pyqtSlot()
383386
def on_params_init(self):
384387
self.fd.on_params_init()
385388

389+
@QtCore.pyqtSlot(int)
386390
def on_delta_select(self, index):
387391
"""The user selected a method for indentation depth determination
388392
@@ -446,6 +450,7 @@ def on_delta_select(self, index):
446450
self.cb_right_individ.setChecked(False)
447451
self.on_params_init()
448452

453+
@QtCore.pyqtSlot()
449454
def on_update_weights(self, on_params_init=True):
450455
"""Compute the weight in µm or % for user convenience
451456

pyjibe/fd/tab_preprocess.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pkg_resources
22

33
import nanite.preproc as npreproc
4-
from PyQt5 import uic, QtWidgets
4+
from PyQt5 import uic, QtCore, QtWidgets
55

66

77
class TabPreprocess(QtWidgets.QWidget):
@@ -46,6 +46,7 @@ def fit_apply_preprocessing(self, fdist):
4646
# Perform preprocessing
4747
fdist.apply_preprocessing(preprocessing)
4848

49+
@QtCore.pyqtSlot()
4950
def on_preset_changed(self):
5051
"""Update preselection"""
5152
text = self.cb_preproc_presel.currentText()

pyjibe/fd/tab_qmap.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pkg_resources
22

33
import nanite
4-
from PyQt5 import uic, QtWidgets
4+
from PyQt5 import uic, QtCore, QtWidgets
55

66
from .mpl_qmap import MPLQMap
77

@@ -48,10 +48,12 @@ def mpl_qmap_update(self):
4848
fdist.path)
4949
self.update_qmap(fdist_group, fdist)
5050

51+
@QtCore.pyqtSlot()
5152
def on_qmap_cmap_changed(self):
5253
"""colormap selection changed"""
5354
self.mpl_qmap_update()
5455

56+
@QtCore.pyqtSlot()
5557
def on_qmap_data_changed(self):
5658
"""data column selection changed"""
5759
# set previous spin control values if existent
@@ -69,6 +71,7 @@ def on_qmap_data_changed(self):
6971
self.qmap_sp_range2.blockSignals(False)
7072
self.mpl_qmap_update()
7173

74+
@QtCore.pyqtSlot()
7275
def on_qmap_min_max_changed(self):
7376
"""min or max spin controls changed"""
7477
# store spin control values for data column
@@ -80,6 +83,7 @@ def on_qmap_min_max_changed(self):
8083
self._cache_qmap_spin_ctl[data] = (vmin, vmax)
8184
self.mpl_qmap_update()
8285

86+
@QtCore.pyqtSlot()
8387
def on_qmap_selection(self, idx):
8488
"""Show the curve indexed in the current qmap"""
8589
# Perform operations on ForceDistance

0 commit comments

Comments
 (0)