spinetoolbox.widgets.custom_qtableview

Custom QTableView classes that support copy-paste and the like.

author:
  1. Marin (KTH)
date:

18.5.2018

Module Contents

Classes

CopyPasteTableView Custom QTableView class with copy and paste methods.
AutoFilterCopyPasteTableView Custom QTableView class with autofilter functionality.
IndexedParameterValueTableViewBase Custom QTableView base class with copy and paste methods for indexed parameter values.
TimeSeriesFixedResolutionTableView A QTableView for fixed resolution time series table.
IndexedValueTableView A QTableView class with for variable resolution time series and time patterns.
ArrayTableView Custom QTableView with copy and paste methods for single column tables.
class spinetoolbox.widgets.custom_qtableview.CopyPasteTableView[source]

Bases: PySide2.QtWidgets.QTableView

Custom QTableView class with copy and paste methods.

keyPressEvent(self, event)[source]

Copy and paste to and from clipboard in Excel-like format.

delete_content(self)[source]

Delete content from editable indexes in current selection.

copy(self)[source]

Copy current selection to clipboard in excel format.

canPaste(self)[source]
paste(self)[source]

Paste data from clipboard.

static _read_pasted_text(text)[source]

Parses a tab separated CSV text table.

Parameters:text (str) – a CSV formatted table
Returns:a list of rows
paste_on_selection(self)[source]

Paste clipboard data on selection, but not beyond. If data is smaller than selection, repeat data to fit selection.

paste_normal(self)[source]

Paste clipboard data, overwriting cells if needed

class spinetoolbox.widgets.custom_qtableview.AutoFilterCopyPasteTableView(parent)[source]

Bases: spinetoolbox.widgets.custom_qtableview.CopyPasteTableView

Custom QTableView class with autofilter functionality.

parent

The parent of this view

Type:QWidget

Initializes the view.

Parameters:parent (QObject) –
keyPressEvent(self, event)[source]

Shows the autofilter menu if the user presses Alt + Down.

Parameters:event (QEvent) –
setModel(self, model)[source]

Disconnects the sectionPressed signal which seems to be connected by the super method. Otherwise pressing the header just selects the column.

Parameters:model (QAbstractItemModel) –
show_auto_filter_menu(self, logical_index)[source]

Called when user clicks on a horizontal section header. Shows/hides the auto filter widget.

Parameters:logical_index (int) –
class spinetoolbox.widgets.custom_qtableview.IndexedParameterValueTableViewBase[source]

Bases: spinetoolbox.widgets.custom_qtableview.CopyPasteTableView

Custom QTableView base class with copy and paste methods for indexed parameter values.

copy(self)[source]

Copy current selection to clipboard in CSV format.

static _read_pasted_text(text)[source]

Reads CSV formatted table.

paste(self)[source]

Pastes data from clipboard to selection.

static _range(indexes)[source]

Returns the top left and bottom right corners of selected model indexes.

Parameters:indexes (list) – a list of selected QModelIndex objects
Returns:a tuple (top row, bottom row, left column, right column)
_select_pasted(self, indexes)[source]

Selects the given model indexes.

class spinetoolbox.widgets.custom_qtableview.TimeSeriesFixedResolutionTableView[source]

Bases: spinetoolbox.widgets.custom_qtableview.IndexedParameterValueTableViewBase

A QTableView for fixed resolution time series table.

paste(self)[source]

Pastes data from clipboard.

static _read_pasted_text(text)[source]

Parses the given CSV table.

Parsing is locale aware.

Parameters:text (str) – a CSV table containing numbers
Returns:A list of floats
_paste_to_values_column(self, values, first_row, paste_length)[source]

Pastes data to the Values column.

Parameters:
  • values (list) – a list of float values to paste
  • first_row (int) – index of the first row where to paste
  • paste_length (int) – length of the paste selection (can be different from len(values))
Returns:

A tuple (list(pasted indexes), list(pasted values))

class spinetoolbox.widgets.custom_qtableview.IndexedValueTableView[source]

Bases: spinetoolbox.widgets.custom_qtableview.IndexedParameterValueTableViewBase

A QTableView class with for variable resolution time series and time patterns.

paste(self)[source]

Pastes data from clipboard.

_paste_two_columns(self, data_indexes, data_values, first_row, paste_length)[source]

Pastes data indexes and values.

Parameters:
  • data_indexes (list) – a list of data indexes (time stamps/durations)
  • data_values (list) – a list of data values
  • first_row (int) – first row index
  • paste_length (int) – selection length for pasting
Returns:

a tuple (modified model indexes, modified model values)

_paste_single_column(self, values, first_row, first_column, paste_length)[source]

Pastes a single column of data

Parameters:
  • values (list) – a list of data to paste (data indexes or values)
  • first_row (int) – first row index
  • paste_length (int) – selection length for pasting
Returns:

a tuple (modified model indexes, modified model values)

static _read_pasted_text(text)[source]

Parses a given CSV table

Parameters:text (str) – a CSV table
Returns:a tuple (data indexes, data values)
class spinetoolbox.widgets.custom_qtableview.ArrayTableView[source]

Bases: spinetoolbox.widgets.custom_qtableview.CopyPasteTableView

Custom QTableView with copy and paste methods for single column tables.

copy(self)[source]

Copy current selection to clipboard in CSV format.