diff --git a/src/blackgui/models/listmodelbasenontemplate.cpp b/src/blackgui/models/listmodelbasenontemplate.cpp index a2dbf9aaa..536774bd2 100644 --- a/src/blackgui/models/listmodelbasenontemplate.cpp +++ b/src/blackgui/models/listmodelbasenontemplate.cpp @@ -116,6 +116,12 @@ namespace BlackGui return changedColumn || changedOrder; } + CPropertyIndex CListModelBaseNonTemplate::getSortProperty() const + { + if (!this->hasValidSortColumn()) { return CPropertyIndex::empty(); } + return m_columns.at(m_sortColumn).getPropertyIndex(); + } + bool CListModelBaseNonTemplate::hasValidSortColumn() const { if (!(m_sortColumn >= 0 && m_sortColumn < m_columns.size())) { return false; } diff --git a/src/blackgui/models/listmodelbasenontemplate.h b/src/blackgui/models/listmodelbasenontemplate.h index 0c527c5c6..66ec6b8a6 100644 --- a/src/blackgui/models/listmodelbasenontemplate.h +++ b/src/blackgui/models/listmodelbasenontemplate.h @@ -90,6 +90,9 @@ namespace BlackGui //! Get sort column property index virtual int getSortColumn() const { return m_sortColumn; } + //! Sorted by property + BlackMisc::CPropertyIndex getSortProperty() const; + //! Has valid sort column? virtual bool hasValidSortColumn() const; diff --git a/src/blackgui/views/statusmessageview.cpp b/src/blackgui/views/statusmessageview.cpp index b3bf1b97b..12944496e 100644 --- a/src/blackgui/views/statusmessageview.cpp +++ b/src/blackgui/views/statusmessageview.cpp @@ -43,6 +43,11 @@ namespace BlackGui this->derivedModel()->adjustOrderColumn(messages); } + bool CStatusMessageView::isSortedByTimestampOrOrder() const + { + return this->derivedModel()->isSortedByTimestampOrOrder(); + } + void CStatusMessageView::addFilterDialog() { if (this->getFilterDialog()) { return; } // already existing diff --git a/src/blackgui/views/statusmessageview.h b/src/blackgui/views/statusmessageview.h index cf0a44808..bc5c642a9 100644 --- a/src/blackgui/views/statusmessageview.h +++ b/src/blackgui/views/statusmessageview.h @@ -43,12 +43,15 @@ namespace BlackGui //! \copydoc BlackGui::Models::CStatusMessageListModel::adjustOrderColumn void adjustOrderColumn(const BlackMisc::CStatusMessageList &messages); - //! Add my own filter dialog - void addFilterDialog(); + //! \copydoc BlackGui::Models::CStatusMessageListModel::isSortedByTimestampOrOrder + bool isSortedByTimestampOrOrder() const; //! \copydoc BlackMisc::CStatusMessageList::keepLatest void keepLatest(int desiredSize); + //! Add my own filter dialog + void addFilterDialog(); + //! Filter dialog if any Filters::CStatusMessageFilterDialog *getFilterDialog() const; }; diff --git a/src/blackgui/views/viewbase.h b/src/blackgui/views/viewbase.h index f16e4bb78..70b5616eb 100644 --- a/src/blackgui/views/viewbase.h +++ b/src/blackgui/views/viewbase.h @@ -177,6 +177,18 @@ namespace BlackGui //! \copydoc BlackGui::Models::CListModelBaseNonTemplate::setNoSorting virtual void setNoSorting() = 0; + //! \copydoc BlackGui::Models::CListModelBaseNonTemplate::getSortProperty + virtual BlackMisc::CPropertyIndex getSortProperty() const = 0; + + //! \copydoc BlackGui::Models::CListModelBaseNonTemplate::getSortColumn + virtual int getSortColumn() const = 0; + + //! \copydoc BlackGui::Models::CListModelBaseNonTemplate::hasValidSortColumn + virtual bool hasValidSortColumn() const = 0; + + //! \copydoc BlackGui::Models::CListModelBaseNonTemplate::getSortOrder + virtual Qt::SortOrder getSortOrder() const = 0; + //! Allow to drag and/or drop value objects virtual void allowDragDrop(bool allowDrag, bool allowDrop, bool allowDropJsonFile = false) = 0; @@ -719,6 +731,10 @@ namespace BlackGui virtual bool setSorting(const BlackMisc::CPropertyIndex &propertyIndex, Qt::SortOrder order = Qt::AscendingOrder) override; virtual void sortByPropertyIndex(const BlackMisc::CPropertyIndex &propertyIndex, Qt::SortOrder order = Qt::AscendingOrder) override; virtual void setNoSorting() override { m_model->setNoSorting(); } + virtual BlackMisc::CPropertyIndex getSortProperty() const override { return m_model->getSortProperty(); } + virtual int getSortColumn() const override { return m_model->getSortColumn(); } + virtual bool hasValidSortColumn() const override { return m_model->hasValidSortColumn(); } + virtual Qt::SortOrder getSortOrder() const override { return m_model->getSortOrder(); } //! @} //! Column count