swift
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
swift::gui::views::CViewBase< T > Class Template Reference

Base class for views. More...

Inheritance diagram for swift::gui::views::CViewBase< T >:
[legend]

Public Types

using ModelClass = T
 Model type.
 
using ContainerType = typename T::ContainerType
 Model container type.
 
using ObjectType = typename T::ObjectType
 Model container element type.
 
- Public Types inherited from swift::gui::views::CViewBaseNonTemplate
enum  ResizeMode {
  ResizingAuto , ResizingOnce , PresizeSubset , ResizingAlways ,
  ResizingOff
}
 Resize mode, when to resize rows / columns. More...
 
enum  RowsResizeMode { Interactive , Content }
 How rows are resized, makes sense when. More...
 
enum  MenuFlag {
  MenuNone = 0 , MenuClear = 1 << 0 , MenuRemoveSelectedRows = 1 << 1 , MenuRefresh = 1 << 2 ,
  MenuBackend = 1 << 3 , MenuDisplayAutomatically = 1 << 4 , MenuDisplayAutomaticallyAndRefresh = MenuDisplayAutomatically | MenuRefresh , MenuFilter = 1 << 5 ,
  MenuMaterializeFilter = 1 << 6 , MenuSave = 1 << 7 , MenuLoad = 1 << 8 , MenuToggleSelectionMode = 1 << 9 ,
  MenuOrderable = 1 << 10 , MenuCopy = 1 << 11 , MenuPaste = 1 << 12 , MenuCut = 1 << 13 ,
  MenuFont = 1 << 14 , MenuLoadAndSave = MenuLoad | MenuSave , MenuDefault = MenuToggleSelectionMode | MenuDisplayAutomaticallyAndRefresh | MenuFont | MenuClear , MenuDefaultNoClear = MenuToggleSelectionMode | MenuDisplayAutomaticallyAndRefresh | MenuFont ,
  MenuDefaultDbViews = MenuToggleSelectionMode | MenuBackend | MenuFont , MenuHighlightStashed = 1 << 15 , MenuCanStashModels = 1 << 16 , MenuDisableModelsTemp = 1 << 17 ,
  MenuStashing = MenuHighlightStashed | MenuCanStashModels
}
 Menu flags. More...
 

Public Member Functions

virtual ~CViewBase ()
 Destructor.
 
ModelClassderivedModel ()
 Model.
 
const ModelClassderivedModel () const
 Model.
 
const models::CColumnsgetColumns () const
 The columns.
 
int updateContainer (const ContainerType &container, bool sort=true, bool resize=true)
 Update whole container. More...
 
swift::misc::CWorkerupdateContainerAsync (const ContainerType &container, bool sort=true, bool resize=true)
 Update whole container in background.
 
void updateContainerMaybeAsync (const ContainerType &container, bool sort=true, bool resize=true)
 Based on size call sync / async update.
 
void insert (const ObjectType &value, bool resize=true)
 Insert.
 
void insert (const ContainerType &container, bool resize=true)
 Insert.
 
void push_back (const ObjectType &value, bool resize=true)
 Push back.
 
void push_back (const ContainerType &container, bool resize=true)
 Push back.
 
const ObjectTypeat (const QModelIndex &index) const
 Value object at.
 
const ContainerTypecontainer () const
 Access to container.
 
QList< int > rowsOf (const ContainerType &container) const
 The rows of the given objects.
 
int rowOf (const ObjectType &obj) const
 The row of the given object. More...
 
const ContainerTypecontainerOrFilteredContainer (bool *filtered=nullptr) const
 Full container or cached filtered container as approproiate. More...
 
ObjectType firstSelectedOrDefaultObject () const
 First selected, the only one, or default.
 
int updateSelected (const swift::misc::CVariant &variant, const swift::misc::CPropertyIndex &index)
 Update selected objects.
 
int updateSelected (const swift::misc::CPropertyIndexVariantMap &vm)
 Update selected objects.
 
ObjectType selectedObject () const
 Selected object (or default)
 
template<class K0 , class V0 , class... KeysValues>
int removeIf (K0 k0, V0 v0, KeysValues... keysValues)
 Remove elements matching some particular key/value pair(s). More...
 
template<class K1 , class V1 >
void replaceOrAdd (K1 key1, V1 value1, const ObjectType &replacement)
 Replace elements matching the given element. If there is no match, push the new element on the end. More...
 
void sort ()
 Sort if columns or order changed.
 
void resort ()
 Resort ("forced sorting")
 
int columnCount () const
 Column count.
 
QJsonObject toJson (bool selectedOnly=false) const
 Convert to JSON.
 
QString toJsonString (QJsonDocument::JsonFormat format=QJsonDocument::Indented, bool selectedOnly=false) const
 Convert to JSON string.
 
virtual void setObjectName (const QString &name)
 Set own name and the model's name.
 
void takeFilterOwnership (std::unique_ptr< models::IModelFilter< ContainerType >> &filter)
 Set filter and take ownership, any previously set filter will be destroyed.
 
bool hasFilter () const
 Has filter set?
 
void addContainerTypesAsDropTypes (bool objectType=true, bool containerType=true)
 Add the object and container type as accepted drop types CDropBase::addAcceptedMetaTypeId.
 
void initAsOrderable ()
 Init so items can be ordered, includes enabling drag and drop.
 
void setDropActions (Qt::DropActions dropActions)
 Drop actions.
 
void setTabWidgetViewText (QTabWidget *tw, int index)
 Set a tab widget text based on row count, filter etc.
 
void setPercentageColumnWidths ()
 Set the widths based on the column percentages. More...
 
Selection model interface ISelectionModel
virtual void selectObjects (const ContainerType &selectedObjects)
 Select. More...
 
virtual ContainerType selectedObjects () const
 Selected objects. More...
 
virtual ContainerType unselectedObjects () const
 Unselected objects. More...
 
Slot overrides from base class
virtual int removeSelectedRows ()
 Remove selected rows. More...
 
virtual void presizeOrFullResizeToContents ()
 Depending on CViewBaseNonTemplate::ResizeSubsetThreshold presize or fully resize. More...
 
virtual void clearHighlighting ()
 Clear any highlighted objects. More...
 
virtual void materializeFilter ()
 Materialize filter. More...
 
swift::gui::views::CViewBaseNonTemplate implementations
virtual void clear ()
 Clear data. More...
 
virtual int rowCount () const
 Elements in container. More...
 
virtual bool isEmpty () const
 Empty? More...
 
virtual bool isOrderable () const
 Is the corresponding model orderable, swift::misc::models::CListModelBaseNonTemplate::isOrderable. More...
 
virtual void allowDragDrop (bool allowDrag, bool allowDrop, bool allowDropJsonFile=false)
 Allow to drag and/or drop value objects. More...
 
virtual bool isDropAllowed () const
 Drop allowed? More...
 
virtual void dropEvent (QDropEvent *event)
 
virtual bool acceptDrop (const QMimeData *mimeData) const
 Accept drop data? More...
 
virtual bool setSorting (const swift::misc::CPropertyIndex &propertyIndex, Qt::SortOrder order=Qt::AscendingOrder)
 Sorting. More...
 
virtual void sortByPropertyIndex (const swift::misc::CPropertyIndex &propertyIndex, Qt::SortOrder order=Qt::AscendingOrder)
 Sort by index. More...
 
virtual void setNoSorting ()
 Disable sorting. More...
 
virtual swift::misc::CPropertyIndex getSortProperty () const
 Sorted by property. More...
 
virtual int getSortColumn () const
 Get sort column property index. More...
 
virtual bool hasValidSortColumn () const
 Has valid sort column? More...
 
virtual bool endsWithEmptyColumn () const
 Using void column at the end? More...
 
virtual Qt::SortOrder getSortOrder () const
 Get sort order. More...
 
- Public Member Functions inherited from swift::gui::views::CViewBaseNonTemplate
virtual bool setParentDockWidgetInfoArea (swift::gui::CDockWidgetInfoArea *parentDockableWidget)
 Corresponding dockable widget in info area. More...
 
ResizeMode getResizeMode () const
 Resize mode.
 
void setResizeMode (ResizeMode mode)
 Set resize mode.
 
void setAutoResizeFrequency (int updateEveryNthTime)
 In. More...
 
bool displayAutomatically () const
 Display automatically (when models are loaded)
 
void setDisplayAutomatically (bool automatically)
 Display automatically (when models are loaded)
 
const QFont & getHorizontalHeaderFont () const
 Header (horizontal) font.
 
int getHorizontalHeaderFontHeight () const
 Horizontal font height.
 
bool hasSelection () const
 Selection (selected rows)
 
QModelIndexList selectedRows () const
 Selected rows if any.
 
virtual QModelIndexList unselectedRows () const
 Unselected (not selected) rows if any.
 
int selectRows (const QSet< int > &rows)
 Select given rows.
 
int selectedRowCount () const
 Number of selected rows.
 
int unselectedRowCount () const
 Unselected row count.
 
bool hasSingleSelectedRow () const
 Single selected row.
 
bool hasMultipleSelectedRows () const
 Multiple selected rows.
 
bool allowsMultipleSelectedRows () const
 Allows to select multiple rows.
 
bool isCurrentlyAllowingMultipleRowSelections () const
 Is the current selection mode allow multiple selection.
 
void setFilterDialog (filters::CFilterDialog *filterDialog)
 Filter dialog.
 
QWidget * getFilterWidget () const
 Filter widget if any.
 
void setFilterWidget (filters::CFilterWidget *filterWidget)
 Set filter widget.
 
menus::IMenuDelegatesetCustomMenu (menus::IMenuDelegate *menu, bool nestPreviousMenu=true)
 Set custom menu if applicable.
 
void enableLoadIndicator (bool enable)
 Enable loading indicator.
 
bool isShowingLoadIndicator () const
 Showing load indicator.
 
void acceptClickSelection (bool accept)
 Accept click selection.
 
void acceptDoubleClickSelection (bool accept)
 Accept double click selection.
 
void acceptRowSelection (bool accept)
 Accept row selection.
 
void menuRemoveItems (Menu menusToRemove)
 Remove given menu items.
 
void menuAddItems (Menu menusToAdd)
 Add given menu items.
 
void setMenu (Menu menuItems)
 Set menu items.
 
Menu getMenu () const
 Menus.
 
virtual void setSelectionModel (QItemSelectionModel *model)
 
QWidget * mainApplicationWindowWidget () const
 Main application window widget if any.
 
swift::misc::CStatusMessage showFileLoadDialog (const QString &directory={})
 Show file load dialog.
 
swift::misc::CStatusMessage showFileSaveDialog (bool selectedOnly, const QString &directory={})
 Show file save dialog.
 
void setSaveFileName (const QString &saveName)
 Save file name (optional)
 
bool allowCacheFileFormatJson () const
 Allow cache file JSON to be loaded.
 
void setAllowCacheFileFormatJson (bool allow)
 Enable/disable cache file format to be loaded as JSON.
 
void setForceColumnsToMaxSize (bool force)
 Force that columns are extended to full viewport width. Workaround as of https://stackoverflow.com/q/3433664/356726. More...
 
void setHorizontalHeaderSectionResizeMode (QHeaderView::ResizeMode mode)
 Resize mode.
 
void setSettingsDirectoryIndex (swift::misc::CDirectories::ColumnIndex directoryIndex)
 Index of the directory we "remember".
 
- Public Member Functions inherited from swift::gui::COverlayMessagesTableView
 COverlayMessagesTableView (QWidget *parent=nullptr)
 Constructor.
 
- Public Member Functions inherited from swift::gui::COverlayMessagesBase< QTableView >
virtual ~COverlayMessagesBase ()
 Destructor.
 
void initOverlayMessages (QSize inner={})
 Init, normally we use lazy init, but by calling init explicitly we can force initalization. More...
 
void activateTextMessages (bool activate)
 Active send/receive of text messages. More...
 
void showStatusMessagesFrame ()
 Show the inner frame.
 
void setOverlaySizeFactors (double widthFactor, double heightFactor, double middleFactor=2)
 Set the size factors.
 
void setForceSmall (bool force)
 Force small (smaller layout) More...
 
void setReducedInfo (bool reduced)
 Display reduced information. More...
 
void showOverlayMessagesWithConfirmation (const swift::misc::CStatusMessageList &messages, bool appendOldMessages, const QString &confirmationMessage, std::function< void()> okLambda, QMessageBox::StandardButton defaultButton=QMessageBox::Cancel, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Show multiple messages with confirmation bar. More...
 
void clearOverlayMessages ()
 Clear the overlay messages. More...
 
void closeOverlay ()
 Close button clicked. More...
 
void showOverlayMessages (const swift::misc::CStatusMessageList &messages, bool appendOldMessages=false, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Show multiple messages. More...
 
void showOverlayMessagesOrSingleMessage (const swift::misc::CStatusMessageList &messages, bool appendOldMessages=false, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Show multiple messages or a single message. More...
 
void showOverlayMessagesOrHTMLMessage (const swift::misc::CStatusMessageList &messages, bool appendOldMessages=false, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Show multiple messages or a single message (HTML) More...
 
void sortOverlayMessages (const swift::misc::CPropertyIndex &property, Qt::SortOrder order)
 Sort of overlay messages. More...
 
void setOverlayMessagesSorting (const swift::misc::CPropertyIndex &property, Qt::SortOrder order)
 Set sorting of overlay messages. More...
 
bool showOverlayMessage (const swift::misc::CStatusMessage &message, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Show single message. More...
 
bool showOverlayTextMessage (const swift::misc::network::CTextMessage &textMessage, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Info message, based on text message. More...
 
void showOverlayVariant (const swift::misc::CVariant &variant, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Display one of the supported types. More...
 
void showOverlayImage (const swift::misc::CPixmap &pixmap, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Image. More...
 
bool showOverlayHTMLMessage (const QString &htmlMessage, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 HTML message. More...
 
bool showOverlayHTMLMessage (const swift::misc::CStatusMessage &message, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 HTML message. More...
 
void showDownloadProgress (int progress, qint64 current, qint64 max, const QUrl &url, std::chrono::milliseconds timeout=std::chrono::milliseconds(0))
 Download progress. More...
 
void showOverlayInlineTextMessage (components::TextMessageTab tab)
 Image. More...
 
void showOverlayInlineTextMessage (const swift::misc::aviation::CCallsign &callsign)
 Image. More...
 
- Public Member Functions inherited from swift::gui::CEnableForDockWidgetInfoArea
CDockWidgetInfoAreagetDockWidgetInfoArea () const
 Corresponding dockable widget in info area.
 
bool hasDockWidgetArea () const
 Has dock area?
 
CInfoAreagetParentInfoArea () const
 The parent info area.
 
bool isParentDockWidgetFloating () const
 Is the parent dockable widget floating?
 
bool isVisibleWidget () const
 Visible widget. More...
 
CEnableForFramelessWindowmainApplicationWindow () const
 Main application window if any.
 
QWidget * mainApplicationWindowWidget () const
 Main application window widget if any.
 
void displayMyself ()
 Display myself.
 
- Public Member Functions inherited from swift::gui::models::ISelectionModel< T::ContainerType >
virtual ~ISelectionModel ()
 Destructor.
 

Protected Member Functions

 CViewBase (QWidget *parent, ModelClass *model=nullptr)
 Constructor.
 
void setSortIndicator ()
 Set the search indicator based on model.
 
void standardInit (ModelClass *model=nullptr)
 Standard initialization.
 
virtual swift::misc::CStatusMessage modifyLoadedJsonData (ContainerType &data) const
 Modify JSON data loaded in swift::gui::views::CViewBaseNonTemplate::loadJson.
 
virtual swift::misc::CStatusMessage validateLoadedJsonData (const ContainerType &data) const
 Verify JSON data loaded in swift::gui::views::CViewBaseNonTemplate::loadJson.
 
virtual void jsonLoadedAndModelUpdated (const ContainerType &data)
 In swift::gui::views::CViewBaseNonTemplate::loadJson the view has been updated because of loaded JSON data. More...
 
virtual void customMenu (menus::CMenuActions &menuActions)
 Method creating the menu. More...
 
virtual swift::misc::CStatusMessage loadJsonFile (const QString &fileName)
 Method creating the menu. More...
 
virtual void displayContainerAsJsonPopup (bool selectedOnly)
 Display the container as JSON popup.
 
base class implementations
virtual bool reachedResizeThreshold (int containrerSize=-1) const
 Skip resizing because of size? More...
 
virtual void performModeBasedResizeToContent ()
 Perform resizing (no presizing) / non slot method for template. More...
 
virtual int performUpdateContainer (const swift::misc::CVariant &variant, bool sort, bool resize)
 Helper method with template free signature. More...
 
virtual void updateSortIndicator ()
 Set the sort indicator to the current sort column. More...
 
virtual void mouseOverCallback (const QModelIndex &index, bool mouseOver)
 From delegate indicating we are in mouse over state. More...
 
virtual void drawDropIndicator (bool indicator)
 Draw drop indicator. More...
 
virtual void copy ()
 Clipboard cut/copy/paste. More...
 
virtual void cut ()
 Clipboard cut/copy/paste. More...
 
virtual void paste ()
 Clipboard cut/copy/paste. More...
 
virtual void displayJsonPopup ()
 Display JSON data. More...
 
virtual void displaySelectedJsonPopup ()
 Display JSON data. More...
 
virtual bool filterDialogFinished (int status)
 Filter dialog finished. More...
 
virtual bool filterWidgetChangedFilter (bool enabled)
 Filter changed in filter widget. More...
 
virtual void removeFilter ()
 Remove filter. More...
 
Overrides from base class
virtual void onClicked (const QModelIndex &index)
 Remove filter. More...
 
virtual void onDoubleClicked (const QModelIndex &index)
 Index double clicked. More...
 
virtual void onRowSelected (const QModelIndex &index)
 Row selected. More...
 
virtual swift::misc::CStatusMessage loadJson (const QString &directory={})
 Load JSON. More...
 
virtual swift::misc::CStatusMessage saveJson (bool selectedOnly=false, const QString &directory={})
 Save JSON. More...
 
- Protected Member Functions inherited from swift::gui::views::CViewBaseNonTemplate
 CViewBaseNonTemplate (QWidget *parent)
 Constructor.
 
virtual ~CViewBaseNonTemplate ()
 Destructor.
 
virtual bool isResizeConditionMet (int containerSize=-1) const
 Resize or skip resize?
 
int getPresizeRandomElementsSize (int containerSize=-1) const
 Calculate presize count.
 
void centerLoadIndicator ()
 Center / re-center load indicator.
 
void init ()
 Init default values.
 
QString getFileDialogFileName (bool load) const
 Default file for load/save operations.
 
menus::CMenuActions initMenuActions (MenuFlag menu)
 Init menu actions.
 
void saveJsonAction ()
 Save JSON for action/menu, void return signatur.
 
void saveSelectedJsonAction ()
 Save JSON for action/menu, void return signatur.
 
void loadJsonAction ()
 Load JSON for action/menu, void return signatur.
 
void displayFilterDialog ()
 Display the filter dialog.
 
void settingsChanged ()
 Settings have been changed.
 
void selectAll ()
 Select all rows.
 
virtual void rememberLastJsonDirectory (const QString &selectedFileOrDir)
 JSON directory. More...
 
virtual QString getRememberedLastJsonDirectory () const
 JSON directory. More...
 
void triggerReload ()
 Trigger reload from backend by signal requestUpdate();.
 
void triggerReloadFromBackend ()
 Trigger reload from backend by signal requestNewBackendData()
 
void showVerticalHeader ()
 Vertical header.
 
components::CTextEditDialogtextEditDialog ()
 Init text edit dialog if required and return pointer to it.
 
virtual void resizeEvent (QResizeEvent *event)
 
virtual void dragEnterEvent (QDragEnterEvent *event)
 
virtual void dragMoveEvent (QDragMoveEvent *event)
 
virtual void dragLeaveEvent (QDragLeaveEvent *event)
 
void setMultiSelection ()
 Change selection modes.
 
void setExtendedSelection ()
 Change selection modes.
 
void setSingleSelection ()
 Change selection modes.
 
- Protected Member Functions inherited from swift::gui::COverlayMessagesBase< QTableView >
 COverlayMessagesBase (QWidget *parent, Qt::WindowFlags f=Qt::WindowFlags())
 Constructor.
 
void initInnerFrame (double widthFactor=-1, double heightFactor=-1)
 Init the inner frame (if not yet initialized)
 
void initMinimalFrame (int lines=4)
 Init a minimal frame (smaller as the normal one)
 
bool hasMinimumSize (int w, int h) const
 Check minimum height/width.
 
virtual void keyPressEvent (QKeyEvent *event)
 
- Protected Member Functions inherited from swift::gui::CEnableForDockWidgetInfoArea
 CEnableForDockWidgetInfoArea (CDockWidgetInfoArea *parentInfoArea=nullptr)
 Constructor. More...
 
virtual ~CEnableForDockWidgetInfoArea ()
 Destructor.
 

Protected Attributes

ModelClassm_model = nullptr
 corresponding model
 
- Protected Attributes inherited from swift::gui::views::CViewBaseNonTemplate
ResizeMode m_resizeMode = PresizeSubset
 mode
 
RowsResizeMode m_rowResizeMode = Interactive
 row resize mode for row height
 
SelectionMode m_originalSelectionMode = this->selectionMode()
 Selection mode set.
 
int m_resizeCount = 0
 flag / counter, how many resize activities
 
int m_skipResizeThreshold = 40
 when to skip resize (rows count)
 
int m_resizeAutoNthTime = 1
 with ResizeAuto, resize every n-th time
 
std::chrono::milliseconds m_loadIndicatorTimeoutDefault { 30 * 1000 }
 default time for timeout
 
bool m_forceStretchLastColumnWhenResized
 a small table might (few columns) fail stretching, force again More...
 
bool m_showingLoadIndicator = false
 showing loading indicator
 
bool m_enabledLoadIndicator = false
 loading indicator enabled/disabled
 
bool m_acceptClickSelection = false
 clicked
 
bool m_acceptRowSelection = false
 selection changed
 
bool m_acceptDoubleClickSelection = false
 double clicked
 
bool m_displayAutomatically = true
 display directly when loaded
 
bool m_enableDeleteSelectedRows = false
 selected rows can be deleted
 
bool m_dropIndicator = false
 drop indicator
 
bool m_forceColumnsToMaxSize = true
 force that columns are extended to full viewport width
 
bool m_allowCacheFileJson = true
 allow Cache format JSON to be loaded
 
QWidget * m_filterWidget = nullptr
 filter widget or dialog
 
Menu m_menus = MenuDefault
 Default menu settings.
 
menus::IMenuDelegatem_menu = nullptr
 custom menu if any
 
menus::CFontMenum_fontMenu = nullptr
 font menu if applicable
 
CLoadIndicatorm_loadIndicator = nullptr
 load indicator if needed
 
components::CTextEditDialogm_textEditDialog = nullptr
 text edit dialog
 
QMap< MenuFlag, menus::CMenuActionsm_menuFlagActions
 initialized actions for menu flag (enum)
 
QString m_saveFileName
 save file name (JSON)
 
swift::misc::CDirectories::ColumnIndex m_dirSettingsIndex
 allows to set more specialized directories //!< remember last JSON directory, having this member allows to have specific dir More...
 
swift::misc::CSetting< swift::misc::settings::TDirectorySettingsm_dirSettings
 directory for load/save More...
 
swift::misc::CSettingReadOnly< settings::TGeneralGuim_guiSettings
 general GUI settings More...
 
- Protected Attributes inherited from swift::gui::COverlayMessagesBase< QTableView >
COverlayMessagesm_overlayMessages
 embedded QFrame with status messages
 
- Protected Attributes inherited from swift::gui::CEnableForDockWidgetInfoArea
CDockWidgetInfoAream_parentDockableInfoArea = nullptr
 my parent dockable widget
 
swift::misc::CConnectionGuard m_connections
 connections
 

Additional Inherited Members

- Public Slots inherited from swift::gui::views::CViewBaseNonTemplate
virtual void resizeToContents ()
 Resize to contents, strategy depends on container size.
 
virtual void fullResizeToContents ()
 Full resizing to content, might be slow. More...
 
void rowsResizeModeToInteractive ()
 Init as interactive, as this allows manually resizing.
 
void rowsResizeModeToContent ()
 Resize mode to content. More...
 
void rowsResizeModeBasedOnThreshold (int elements)
 Set content/interactive mode based on ResizeRowsToContentThreshold.
 
int showLoadIndicator (int containerSizeDependent=-1, std::chrono::milliseconds timeout=std::chrono::milliseconds { 0 }, bool processEvents=true)
 Show loading indicator. More...
 
int showLoadIndicatorWithTimeout (std::chrono::milliseconds timeout=std::chrono::milliseconds { 0 }, bool processEvents=true)
 Show loading indicator which can time out.
 
void onModelChanged ()
 Underlying model changed.
 
void hideLoadIndicator (int loadingId=-1)
 Hide loading indicator.
 
void hideLoadIndicatorForced ()
 Parameterless version of hideLoadIndicator.
 
- Signals inherited from swift::gui::views::CViewBaseNonTemplate
void requestUpdate ()
 Ask for new data from currently loaded data.
 
void requestNewBackendData ()
 Load data from backend (where it makes sense)
 
void loadIndicatorVisibilityChanged (bool visible)
 Load indicator's visibility has been changed.
 
void asyncUpdateFinished ()
 Asynchronous update finished.
 
void modelDataChanged (int count, bool withFilter)
 Model data changed.
 
void modelDataChangedDigest (int count, bool withFilter)
 Model data changed,.
 
void modelChanged ()
 Model bas been changed (means data in view have been changed)
 
void objectChanged (const swift::misc::CVariant &object, const swift::misc::CPropertyIndex &changedIndex)
 Single object was changed in model.
 
void objectClicked (const swift::misc::CVariant &object)
 Object has been clicked.
 
void objectDoubleClicked (const swift::misc::CVariant &object)
 Object has been double clicked.
 
void objectSelected (const swift::misc::CVariant &object)
 Object has been selected.
 
void objectsDeleted (const swift::misc::CVariant &objectContainer)
 Objects deleted from model.
 
void jsonLoadCompleted (const swift::misc::CStatusMessage &msg)
 JSON data load from disk completed, the swift::misc::CStatusMessage represents the success.
 
- Static Public Attributes inherited from swift::gui::views::CViewBaseNonTemplate
static constexpr int ASyncRowsCountThreshold = 50
 When (row count) to use asynchronous updates.
 
static constexpr int ResizeSubsetThreshold = 250
 When to use pre-sizing with random elements.
 
static constexpr int ResizeRowsToContentThreshold = 20
 When to use rows resizing (which is slow) More...
 
- Properties inherited from swift::gui::views::CViewBaseNonTemplate
bool isShowingLoadIndicator
 Load indicator property allows using in stylesheet.
 

Detailed Description

template<class T>
class swift::gui::views::CViewBase< T >

Base class for views.

Definition at line 647 of file viewbase.h.

Member Function Documentation

◆ acceptDrop()

template<class T >
bool swift::gui::views::CViewBase< T >::acceptDrop ( const QMimeData *  mimeData) const
virtual

Accept drop data?

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 448 of file viewbase.cpp.

◆ allowDragDrop()

template<class T >
void swift::gui::views::CViewBase< T >::allowDragDrop ( bool  allowDrag,
bool  allowDrop,
bool  allowDropJsonFile = false 
)
virtual

Allow to drag and/or drop value objects.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 414 of file viewbase.cpp.

◆ clear()

template<class T >
void swift::gui::views::CViewBase< T >::clear
virtual

Clear data.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 378 of file viewbase.cpp.

◆ clearHighlighting()

template<class T >
void swift::gui::views::CViewBase< T >::clearHighlighting
virtual

Clear any highlighted objects.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 360 of file viewbase.cpp.

◆ containerOrFilteredContainer()

template<class T >
const CViewBase< T >::ContainerType & swift::gui::views::CViewBase< T >::containerOrFilteredContainer ( bool *  filtered = nullptr) const

Full container or cached filtered container as approproiate.

Definition at line 233 of file viewbase.cpp.

◆ copy()

template<class T >
void swift::gui::views::CViewBase< T >::copy
protectedvirtual

Clipboard cut/copy/paste.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 804 of file viewbase.cpp.

◆ customMenu()

template<class T >
void swift::gui::views::CViewBase< T >::customMenu ( menus::CMenuActions menuActions)
protectedvirtual

◆ cut()

template<class T >
void swift::gui::views::CViewBase< T >::cut
protectedvirtual

Clipboard cut/copy/paste.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 817 of file viewbase.cpp.

◆ displayJsonPopup()

template<class T >
virtual void swift::gui::views::CViewBase< T >::displayJsonPopup ( )
inlineprotectedvirtual

Display JSON data.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 919 of file viewbase.h.

◆ displaySelectedJsonPopup()

template<class T >
virtual void swift::gui::views::CViewBase< T >::displaySelectedJsonPopup ( )
inlineprotectedvirtual

Display JSON data.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 922 of file viewbase.h.

◆ drawDropIndicator()

template<class T >
void swift::gui::views::CViewBase< T >::drawDropIndicator ( bool  indicator)
protectedvirtual

Draw drop indicator.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 646 of file viewbase.cpp.

◆ dropEvent()

template<class T >
void swift::gui::views::CViewBase< T >::dropEvent ( QDropEvent *  event)
virtual

Reimplemented from swift::gui::views::CViewBaseNonTemplate.

Reimplemented in swift::gui::views::CAircraftModelView.

Definition at line 434 of file viewbase.cpp.

◆ endsWithEmptyColumn()

template<class T >
virtual bool swift::gui::views::CViewBase< T >::endsWithEmptyColumn ( ) const
inlinevirtual

Using void column at the end?

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 825 of file viewbase.h.

◆ filterDialogFinished()

template<class T >
bool swift::gui::views::CViewBase< T >::filterDialogFinished ( int  status)
protectedvirtual

Filter dialog finished.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 845 of file viewbase.cpp.

◆ filterWidgetChangedFilter()

template<class T >
bool swift::gui::views::CViewBase< T >::filterWidgetChangedFilter ( bool  enabled)
protectedvirtual

Filter changed in filter widget.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 852 of file viewbase.cpp.

◆ getSortColumn()

template<class T >
virtual int swift::gui::views::CViewBase< T >::getSortColumn ( ) const
inlinevirtual

Get sort column property index.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 819 of file viewbase.h.

◆ getSortOrder()

template<class T >
virtual Qt::SortOrder swift::gui::views::CViewBase< T >::getSortOrder ( ) const
inlinevirtual

Get sort order.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 828 of file viewbase.h.

◆ getSortProperty()

template<class T >
virtual swift::misc::CPropertyIndex swift::gui::views::CViewBase< T >::getSortProperty ( ) const
inlinevirtual

Sorted by property.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 816 of file viewbase.h.

◆ hasValidSortColumn()

template<class T >
virtual bool swift::gui::views::CViewBase< T >::hasValidSortColumn ( ) const
inlinevirtual

Has valid sort column?

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 822 of file viewbase.h.

◆ isDropAllowed()

template<class T >
bool swift::gui::views::CViewBase< T >::isDropAllowed
virtual

Drop allowed?

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 427 of file viewbase.cpp.

◆ isEmpty()

template<class T >
bool swift::gui::views::CViewBase< T >::isEmpty
virtual

Empty?

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 400 of file viewbase.cpp.

◆ isOrderable()

template<class T >
bool swift::gui::views::CViewBase< T >::isOrderable
virtual

Is the corresponding model orderable, swift::misc::models::CListModelBaseNonTemplate::isOrderable.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 407 of file viewbase.cpp.

◆ jsonLoadedAndModelUpdated()

template<class T >
void swift::gui::views::CViewBase< T >::jsonLoadedAndModelUpdated ( const ContainerType data)
protectedvirtual

In swift::gui::views::CViewBaseNonTemplate::loadJson the view has been updated because of loaded JSON data.

Remarks
I cannot use a signal with a template parameter, so this functions serves as callback

Definition at line 674 of file viewbase.cpp.

◆ loadJson()

template<class T >
CStatusMessage swift::gui::views::CViewBase< T >::loadJson ( const QString &  directory = {})
protectedvirtual

Load JSON.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 780 of file viewbase.cpp.

◆ loadJsonFile()

template<class T >
CStatusMessage swift::gui::views::CViewBase< T >::loadJsonFile ( const QString &  fileName)
protectedvirtual

Method creating the menu.

Remarks
override this method to contribute to the menu
See also
swift::gui::views::CViewBaseNonTemplate::customMenuRequested

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 693 of file viewbase.cpp.

◆ materializeFilter()

template<class T >
void swift::gui::views::CViewBase< T >::materializeFilter
virtual

Materialize filter.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 367 of file viewbase.cpp.

◆ mouseOverCallback()

template<class T >
void swift::gui::views::CViewBase< T >::mouseOverCallback ( const QModelIndex &  index,
bool  mouseOver 
)
protectedvirtual

From delegate indicating we are in mouse over state.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 638 of file viewbase.cpp.

◆ onClicked()

template<class T >
void swift::gui::views::CViewBase< T >::onClicked ( const QModelIndex &  index)
protectedvirtual

Remove filter.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 878 of file viewbase.cpp.

◆ onDoubleClicked()

template<class T >
void swift::gui::views::CViewBase< T >::onDoubleClicked ( const QModelIndex &  index)
protectedvirtual

Index double clicked.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 886 of file viewbase.cpp.

◆ onRowSelected()

template<class T >
void swift::gui::views::CViewBase< T >::onRowSelected ( const QModelIndex &  index)
protectedvirtual

Row selected.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 894 of file viewbase.cpp.

◆ paste()

template<class T >
void swift::gui::views::CViewBase< T >::paste
protectedvirtual

Clipboard cut/copy/paste.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 825 of file viewbase.cpp.

◆ performModeBasedResizeToContent()

template<class T >
void swift::gui::views::CViewBase< T >::performModeBasedResizeToContent
protectedvirtual

Perform resizing (no presizing) / non slot method for template.

See also
CViewBaseNonTemplate::presizeOrFullResizeToContents

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 608 of file viewbase.cpp.

◆ performUpdateContainer()

template<class T >
int swift::gui::views::CViewBase< T >::performUpdateContainer ( const swift::misc::CVariant variant,
bool  sort,
bool  resize 
)
protectedvirtual

Helper method with template free signature.

Parameters
variantcontains the container
sort
resize

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 620 of file viewbase.cpp.

◆ presizeOrFullResizeToContents()

template<class T >
void swift::gui::views::CViewBase< T >::presizeOrFullResizeToContents
virtual

Depending on CViewBaseNonTemplate::ResizeSubsetThreshold presize or fully resize.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 342 of file viewbase.cpp.

◆ reachedResizeThreshold()

template<class T >
bool swift::gui::views::CViewBase< T >::reachedResizeThreshold ( int  containrerSize = -1) const
protectedvirtual

Skip resizing because of size?

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 601 of file viewbase.cpp.

◆ removeFilter()

template<class T >
void swift::gui::views::CViewBase< T >::removeFilter
protectedvirtual

Remove filter.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 510 of file viewbase.cpp.

◆ removeIf()

template<class T >
template<class K0 , class V0 , class... KeysValues>
int swift::gui::views::CViewBase< T >::removeIf ( K0  k0,
V0  v0,
KeysValues...  keysValues 
)
inline

Remove elements matching some particular key/value pair(s).

Parameters
k0A pointer to a member function of T.
v0A value to compare against the value returned by k0.
keysValuesZero or more additional pairs of { pointer to member function of T, value to compare it against }.
Returns
The number of elements removed.

Definition at line 742 of file viewbase.h.

◆ removeSelectedRows()

template<class T >
int swift::gui::views::CViewBase< T >::removeSelectedRows
virtual

Remove selected rows.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 314 of file viewbase.cpp.

◆ replaceOrAdd()

template<class T >
template<class K1 , class V1 >
void swift::gui::views::CViewBase< T >::replaceOrAdd ( K1  key1,
V1  value1,
const ObjectType replacement 
)
inline

Replace elements matching the given element. If there is no match, push the new element on the end.

Definition at line 754 of file viewbase.h.

◆ rowCount()

template<class T >
int swift::gui::views::CViewBase< T >::rowCount
virtual

Elements in container.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 386 of file viewbase.cpp.

◆ rowOf()

template<class T >
int swift::gui::views::CViewBase< T >::rowOf ( const ObjectType obj) const

The row of the given object.

Fixme:
KB 4-19 any smarter solution?

Definition at line 219 of file viewbase.cpp.

◆ saveJson()

template<class T >
CStatusMessage swift::gui::views::CViewBase< T >::saveJson ( bool  selectedOnly = false,
const QString &  directory = {} 
)
protectedvirtual

Save JSON.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 789 of file viewbase.cpp.

◆ selectedObjects()

template<class T >
CViewBase< T >::ContainerType swift::gui::views::CViewBase< T >::selectedObjects
virtual

Selected objects.

Implements swift::gui::models::ISelectionModel< T::ContainerType >.

Definition at line 240 of file viewbase.cpp.

◆ selectObjects()

template<class T >
void swift::gui::views::CViewBase< T >::selectObjects ( const ContainerType selectedObjects)
virtual

◆ setNoSorting()

template<class T >
virtual void swift::gui::views::CViewBase< T >::setNoSorting ( )
inlinevirtual

Disable sorting.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 813 of file viewbase.h.

◆ setPercentageColumnWidths()

template<class T >
void swift::gui::views::CViewBase< T >::setPercentageColumnWidths

Set the widths based on the column percentages.

See also
CColumn::get

Definition at line 549 of file viewbase.cpp.

◆ setSorting()

template<class T >
bool swift::gui::views::CViewBase< T >::setSorting ( const swift::misc::CPropertyIndex propertyIndex,
Qt::SortOrder  order = Qt::AscendingOrder 
)
virtual

Sorting.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 456 of file viewbase.cpp.

◆ sortByPropertyIndex()

template<class T >
void swift::gui::views::CViewBase< T >::sortByPropertyIndex ( const swift::misc::CPropertyIndex propertyIndex,
Qt::SortOrder  order = Qt::AscendingOrder 
)
virtual

Sort by index.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 463 of file viewbase.cpp.

◆ unselectedObjects()

template<class T >
CViewBase< T >::ContainerType swift::gui::views::CViewBase< T >::unselectedObjects
virtual

Unselected objects.

Remarks
for filtered models this only returns the unselected filtered objects

Implements swift::gui::models::ISelectionModel< T::ContainerType >.

Definition at line 250 of file viewbase.cpp.

◆ updateContainer()

template<class T >
int swift::gui::views::CViewBase< T >::updateContainer ( const ContainerType container,
bool  sort = true,
bool  resize = true 
)

Update whole container.

Returns
int size after update

Definition at line 38 of file viewbase.cpp.

◆ updateSortIndicator()

template<class T >
void swift::gui::views::CViewBase< T >::updateSortIndicator
protectedvirtual

Set the sort indicator to the current sort column.

Implements swift::gui::views::CViewBaseNonTemplate.

Definition at line 627 of file viewbase.cpp.


The documentation for this class was generated from the following files: