[bugfix] For some unknown reason QPushButtons in event table caused
segmentation fault
This commit is contained in:
parent
0018ae10d0
commit
d310cf3ff7
20
QtPyLoT.py
20
QtPyLoT.py
@ -2227,20 +2227,26 @@ class MainWindow(QMainWindow):
|
|||||||
Build and initiate event table (3rd tab [index=2]) containing information of every event.
|
Build and initiate event table (3rd tab [index=2]) containing information of every event.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
def set_enabled(item, enabled=True, checkable=False):
|
def set_enabled(item, selectable=True, checkable=False):
|
||||||
# modify item flags depending on case needed
|
# modify item flags depending on case needed
|
||||||
if enabled and not checkable:
|
if selectable and not checkable:
|
||||||
item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable)
|
item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable)
|
||||||
elif enabled and checkable:
|
elif selectable and checkable:
|
||||||
item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsSelectable)
|
item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsSelectable)
|
||||||
else:
|
else:
|
||||||
item.setFlags(QtCore.Qt.ItemIsSelectable)
|
item.setFlags(QtCore.Qt.ItemIsEnabled)
|
||||||
|
|
||||||
if self.project:
|
if self.project:
|
||||||
eventlist = self.project.eventlist
|
eventlist = self.project.eventlist
|
||||||
else:
|
else:
|
||||||
eventlist = []
|
eventlist = []
|
||||||
|
|
||||||
|
def cell_clicked(row=None, column=None):
|
||||||
|
table = self.project._table
|
||||||
|
event = self.project.getEventFromPath(table[row][1].text())
|
||||||
|
if column == 0:
|
||||||
|
self.remove_event(event)
|
||||||
|
|
||||||
def cell_changed(row=None, column=None):
|
def cell_changed(row=None, column=None):
|
||||||
# connected to cell changes in event table
|
# connected to cell changes in event table
|
||||||
# changes attributes of the corresponding event
|
# changes attributes of the corresponding event
|
||||||
@ -2304,7 +2310,7 @@ class MainWindow(QMainWindow):
|
|||||||
event_nautopicks = len(event.pylot_autopicks)
|
event_nautopicks = len(event.pylot_autopicks)
|
||||||
|
|
||||||
# init table items for current row
|
# init table items for current row
|
||||||
item_delete = QtGui.QPushButton()
|
item_delete = QtGui.QTableWidgetItem()
|
||||||
item_delete.setIcon(del_icon)
|
item_delete.setIcon(del_icon)
|
||||||
item_path = QtGui.QTableWidgetItem()
|
item_path = QtGui.QTableWidgetItem()
|
||||||
item_time = QtGui.QTableWidgetItem()
|
item_time = QtGui.QTableWidgetItem()
|
||||||
@ -2321,7 +2327,7 @@ class MainWindow(QMainWindow):
|
|||||||
item_notes = QtGui.QTableWidgetItem()
|
item_notes = QtGui.QTableWidgetItem()
|
||||||
|
|
||||||
# manipulate items
|
# manipulate items
|
||||||
item_delete.clicked.connect(lambda ev=event: self.remove_event(ev))
|
#item_delete.clicked.connect(lambda ev=event: self.remove_event(ev))
|
||||||
item_ref.setBackground(self._colors['ref'])
|
item_ref.setBackground(self._colors['ref'])
|
||||||
item_test.setBackground(self._colors['test'])
|
item_test.setBackground(self._colors['test'])
|
||||||
item_path.setText(event.path)
|
item_path.setText(event.path)
|
||||||
@ -2341,6 +2347,7 @@ class MainWindow(QMainWindow):
|
|||||||
set_enabled(item_path, True, False)
|
set_enabled(item_path, True, False)
|
||||||
set_enabled(item_nmp, True, False)
|
set_enabled(item_nmp, True, False)
|
||||||
set_enabled(item_nap, True, False)
|
set_enabled(item_nap, True, False)
|
||||||
|
set_enabled(item_delete, False, False)
|
||||||
if event.pylot_picks:
|
if event.pylot_picks:
|
||||||
set_enabled(item_ref, True, True)
|
set_enabled(item_ref, True, True)
|
||||||
set_enabled(item_test, True, True)
|
set_enabled(item_test, True, True)
|
||||||
@ -2372,6 +2379,7 @@ class MainWindow(QMainWindow):
|
|||||||
header.setResizeMode(QtGui.QHeaderView.ResizeToContents)
|
header.setResizeMode(QtGui.QHeaderView.ResizeToContents)
|
||||||
header.setStretchLastSection(True)
|
header.setStretchLastSection(True)
|
||||||
self.event_table.cellChanged[int, int].connect(cell_changed)
|
self.event_table.cellChanged[int, int].connect(cell_changed)
|
||||||
|
self.event_table.cellClicked[int, int].connect(cell_clicked)
|
||||||
|
|
||||||
self.events_layout.addWidget(self.event_table)
|
self.events_layout.addWidget(self.event_table)
|
||||||
self.tabs.setCurrentIndex(tabindex)
|
self.tabs.setCurrentIndex(tabindex)
|
||||||
|
Loading…
Reference in New Issue
Block a user