spinetoolbox.spine_db_editor.widgets.custom_qtableview

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

Module Contents

Classes

StackedTableView

Base stacked view.

ParameterTableView

Base stacked view.

ParameterDefinitionTableView

Base stacked view.

ParameterValueTableView

Base stacked view.

EntityAlternativeTableView

Visualize entities and their alternatives.

PivotTableView

Custom QTableView class with pivot capabilities.

FrozenTableView

param parent

parent widget

MetadataTableViewBase

Base for metadata and item metadata table views.

MetadataTableView

Table view for metadata.

ItemMetadataTableView

Table view for entity and parameter value metadata.

Functions

_set_data(index, new_value)

Updates (object or relationship) parameter_definition or value with newly edited data.

spinetoolbox.spine_db_editor.widgets.custom_qtableview._set_data(index, new_value)[source]

Updates (object or relationship) parameter_definition or value with newly edited data.

class spinetoolbox.spine_db_editor.widgets.custom_qtableview.StackedTableView(parent)[source]

Bases: spinetoolbox.widgets.custom_qtableview.AutoFilterCopyPasteTableView

Base stacked view.

Parameters

parent (QWidget) – parent widget

_COLUMN_SIZE_HINTS[source]
_EXPECTED_COLUMN_COUNT: int[source]
connect_spine_db_editor(spine_db_editor)[source]

Connects a Spine db editor to work with this view.

Parameters

spine_db_editor (SpineDBEditor) –

_make_delegate(column_name, delegate_class)[source]

Creates a delegate for the given column and returns it.

Parameters
Returns

TableDelegate

create_delegates()[source]

Creates delegates for this view

populate_context_menu()[source]

Creates a context menu for this view.

contextMenuEvent(event)[source]

Shows context menu.

Parameters

event (QContextMenuEvent) –

_selected_rows_per_column()[source]

Computes selected rows per column.

Returns

Mapping columns to selected rows in that column.

Return type

dict

filter_by_selection(checked=False)[source]
filter_excluding_selection(checked=False)[source]
remove_selected()[source]

Removes selected indexes.

_refresh_copy_paste_actions(_, __)[source]

Enables or disables copy and paste actions.

_initial_column_size(column)[source]
_set_column_resize_modes(old_column_count, new_column_count)[source]
class spinetoolbox.spine_db_editor.widgets.custom_qtableview.ParameterTableView(parent)[source]

Bases: StackedTableView

Base stacked view.

Parameters

parent (QWidget) – parent widget

value_column_header: str[source]

Either “default_value” or “value”. Used to identify the value column for advanced editing and plotting.

populate_context_menu()[source]

Creates a context menu for this view.

contextMenuEvent(event)[source]

Shows context menu.

Parameters

event (QContextMenuEvent) –

open_in_editor()[source]

Opens the current index in a parameter_value editor using the connected Spine db editor.

plot(checked=False)[source]

Plots current index.

abstract _plot_selection(selection, plot_widget=None)[source]

Adds selected indexes to existing plot or creates a new plot window.

Parameters
  • selection (Iterable of QModelIndex) – a list of QModelIndex objects for plotting

  • plot_widget (PlotWidget, optional) – an existing plot widget to draw into or None to create a new widget

Returns

a PlotWidget object

Return type

PlotWidget

plot_in_window(action)[source]

Plots current index in the window given by action’s name.

class spinetoolbox.spine_db_editor.widgets.custom_qtableview.ParameterDefinitionTableView(parent)[source]

Bases: ParameterTableView

Base stacked view.

Parameters

parent (QWidget) – parent widget

value_column_header = 'default_value'[source]
_EXPECTED_COLUMN_COUNT = 6[source]
_COLUMN_SIZE_HINTS[source]
create_delegates()[source]

Creates delegates for this view

_plot_selection(selection, plot_widget=None)[source]

See base class

class spinetoolbox.spine_db_editor.widgets.custom_qtableview.ParameterValueTableView(parent)[source]

Bases: ParameterTableView

Base stacked view.

Parameters

parent (QWidget) – parent widget

property _pk_fields[source]
value_column_header = 'value'[source]
_COLUMN_SIZE_HINTS[source]
_EXPECTED_COLUMN_COUNT = 6[source]
connect_spine_db_editor(spine_db_editor)[source]

Connects a Spine db editor to work with this view.

Parameters

spine_db_editor (SpineDBEditor) –

create_delegates()[source]

Creates delegates for this view

_update_pinned_values(_selected, _deselected)[source]
_make_pinned_value(index)[source]
_plot_selection(selection, plot_widget=None)[source]

See base class.

class spinetoolbox.spine_db_editor.widgets.custom_qtableview.EntityAlternativeTableView(parent)[source]

Bases: StackedTableView

Visualize entities and their alternatives.

Parameters

parent (QWidget) – parent widget

_EXPECTED_COLUMN_COUNT = 5[source]
_COLUMN_SIZE_HINTS[source]
create_delegates()[source]

Creates delegates for this view

class spinetoolbox.spine_db_editor.widgets.custom_qtableview.PivotTableView(parent=None)[source]

Bases: spinetoolbox.widgets.custom_qtableview.CopyPasteTableView

Custom QTableView class with pivot capabilities.

Uses ‘contexts’ to provide different UI elements (table headers, context menus,…) depending on what data the pivot table currently contains.

Parameters

parent (QWidget, optional) – parent widget

class _ContextBase(view, db_editor, horizontal_header, vertical_header)[source]

Base class for pivot table view’s contexts.

Parameters
  • view (PivotTableView) – parent view

  • db_editor (SpineDBEditor) – database editor

  • horizontal_header (QHeaderView) – horizontal header

  • vertical_header (QHeaderView) – vertical header

_REMOVE_ENTITY = 'Remove entities'[source]
_REMOVE_PARAMETER = 'Remove parameter definitions'[source]
_REMOVE_ALTERNATIVE = 'Remove alternatives'[source]
_REMOVE_SCENARIO = 'Remove scenarios'[source]
_DUPLICATE_SCENARIO = 'Duplicate scenario'[source]
_clear_selection_lists()[source]

Clears cached selected index lists.

abstract populate_context_menu()[source]

Generates context menu.

_refresh_selected_indexes()[source]

Caches selected index lists.

remove_alternatives()[source]

Removes selected alternatives from the database.

show_context_menu(position)[source]

Shows the context menu.

_to_selection_lists(index)[source]

Caches given index to corresponding selected index list.

Parameters

index (QModelIndex) – index to cache

abstract _update_actions_availability()[source]

Enables/disables context menu entries before the menu is shown.

class _EntityContextBase(view, db_editor, horizontal_header, vertical_header)[source]

Bases: PivotTableView._ContextBase

Base class for contexts that contain entities and entity classes.

Parameters
  • view (PivotTableView) – parent view

  • db_editor (SpineDBEditor) – database editor

  • horizontal_header (QHeaderView) – horizontal header

  • vertical_header (QHeaderView) – vertical header

_clear_selection_lists()[source]

See base class.

abstract populate_context_menu()[source]

See base class.

remove_entities()[source]

Removes selected entities from the database.

abstract _update_actions_availability()[source]

See base class.

class _ParameterValueContext(view, db_editor)[source]

Bases: PivotTableView._EntityContextBase

Context for showing parameter values in the pivot table.

Parameters
_clear_selection_lists()[source]

See base class.

populate_context_menu()[source]

See base class.

open_in_editor()[source]

Opens the parameter value editor for the first selected cell.

plot()[source]

Plots the selected cells.

_plot_in_window(action)[source]

Plots the selected cells in an existing window.

remove_parameters()[source]

Removes selected parameter definitions from the database.

remove_values()[source]

Removes selected parameter values from the database.

show_context_menu(position)[source]

Shows the context menu.

_to_selection_lists(index)[source]

See base class.

_update_actions_availability()[source]

See base class.

class _IndexExpansionContext(view, db_editor)[source]

Bases: PivotTableView._ParameterValueContext

Context for expanded parameter values

Parameters
class _ElementContext(view, db_editor)[source]

Bases: PivotTableView._EntityContextBase

Context for presenting relationships in the pivot table.

Parameters
populate_context_menu()[source]

See base class.

_update_actions_availability()[source]

See base class.

class _ScenarioAlternativeContext(view, db_editor)[source]

Bases: PivotTableView._ContextBase

Context for presenting scenarios and alternatives

Parameters
_clear_selection_lists()[source]

See base class.

populate_context_menu()[source]

See base class.

remove_scenarios()[source]

Removes selected scenarios from the database.

duplicate_scenario()[source]

Duplicates current scenario in the database.

_to_selection_lists(index)[source]

See base class.

_update_actions_availability()[source]

See base class.

_open_scenario_generator()[source]

Opens the scenario generator dialog.

_toggle_checked_state()[source]

Toggles the checked state of selected alternatives.

property source_model[source]
property db_mngr[source]
header_changed[source]
connect_spine_db_editor(spine_db_editor)[source]
_change_context()[source]

Changes the UI engine according to pivot model type.

contextMenuEvent(event)[source]

Shows context menu.

Parameters

event (QContextMenuEvent) –

setModel(model)[source]
_synch_selection_with_header_tables(selected, deselected)[source]
indexWidget(proxy_index)[source]
setIndexWidget(proxy_index, widget)[source]
setHorizontalHeader(horizontal_header)[source]
setVerticalHeader(vertical_header)[source]
resizeEvent(ev)[source]
sizeHintForColumn(column)[source]
_fetch_more_visible()[source]
_update_header_tables()[source]
_update_section_width(logical_index, _old_size, new_size)[source]
_update_section_height(logical_index, _old_size, new_size)[source]
_update_header_tables_geometry()[source]
_refresh_copy_paste_actions(_, __)[source]
class spinetoolbox.spine_db_editor.widgets.custom_qtableview.FrozenTableView(parent=None)[source]

Bases: PySide6.QtWidgets.QTableView

Parameters

parent (QWidget) – parent widget

property area[source]
header_dropped[source]
dragEnterEvent(event)[source]
dragMoveEvent(event)[source]
dropEvent(event)[source]
class spinetoolbox.spine_db_editor.widgets.custom_qtableview.MetadataTableViewBase(parent)[source]

Bases: spinetoolbox.widgets.custom_qtableview.CopyPasteTableView

Base for metadata and item metadata table views.

Parameters

parent (QWidget, optional) – parent widget

connect_spine_db_editor(db_editor)[source]

Finishes view’s initialization.

Parameters

db_editor (SpineDBEditor) – database editor instance

contextMenuEvent(event)[source]
_remove_selected()[source]

Removes selected rows from view’s model.

_enable_delegates(db_editor)[source]

Creates delegates for this view

Parameters

db_editor (SpineDBEditor) – database editor

_populate_context_menu()[source]

Fills context menu with actions.

_set_model_data(index, value)[source]

Sets model data.

Parameters
  • index (QModelIndex) – model index to set

  • value (str) – value

_refresh_copy_paste_actions()[source]
_set_horizontal_header_resize_modes(old_column_count, new_column_count)[source]
class spinetoolbox.spine_db_editor.widgets.custom_qtableview.MetadataTableView(parent)[source]

Bases: MetadataTableViewBase

Table view for metadata.

Parameters

parent (QWidget, optional) – parent widget

_enable_delegates(db_editor)[source]

See base class.

class spinetoolbox.spine_db_editor.widgets.custom_qtableview.ItemMetadataTableView(parent)[source]

Bases: MetadataTableViewBase

Table view for entity and parameter value metadata.

Parameters

parent (QWidget) – parent widget

set_models(item_metadata_model, metadata_model)[source]

Sets models.

Parameters
  • item_metadata_model (ItemMetadataModel) – item metadata model

  • metadata_model (MetadataTableModel) – metadata model

_enable_delegates(db_editor)[source]

See base class