diff --git a/src/blackgui/components/statusmessagesdetail.cpp b/src/blackgui/components/statusmessagesdetail.cpp index 0c4d8c1b8..ca9ab8138 100644 --- a/src/blackgui/components/statusmessagesdetail.cpp +++ b/src/blackgui/components/statusmessagesdetail.cpp @@ -120,6 +120,7 @@ namespace BlackGui newMsgs.keepLatest(m_maxLogMessages); } + ui->tvp_StatusMessages->adjustOrderColumn(newMsgs); ui->tvp_StatusMessages->updateContainerMaybeAsync(newMsgs); } diff --git a/src/blackgui/models/statusmessagelistmodel.cpp b/src/blackgui/models/statusmessagelistmodel.cpp index 1e20e1e18..b5253b723 100644 --- a/src/blackgui/models/statusmessagelistmodel.cpp +++ b/src/blackgui/models/statusmessagelistmodel.cpp @@ -52,16 +52,23 @@ namespace BlackGui } } + void CStatusMessageListModel::adjustOrderColumn(const CStatusMessageList &messages) + { + this->setMode(m_mode, messages); + } + void CStatusMessageListModel::setMode(CStatusMessageListModel::Mode mode) { m_columns.clear(); m_sortColumn = CStatusMessage::IndexUtcTimestamp; + m_mode = mode; switch (mode) { case DetailedWithOrder: m_columns.addColumn(CColumn::orderColumn()); m_sortColumn = CStatusMessage::IndexOrder; + m_sortOrder = Qt::DescendingOrder; Q_FALLTHROUGH(); case Detailed: { @@ -71,8 +78,6 @@ namespace BlackGui m_columns.addColumn(col); m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage)); m_columns.addColumn(CColumn::standardString("category", CStatusMessage::IndexCategoryHumanReadableOrTechnicalAsString)); - - m_sortOrder = Qt::DescendingOrder; } break; case SimplifiedWithOrder: @@ -86,9 +91,6 @@ namespace BlackGui col.setSortPropertyIndex(CStatusMessage::IndexSeverityAsString); m_columns.addColumn(col); m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage)); - - m_sortColumn = CStatusMessage::IndexUtcTimestamp; - m_sortOrder = Qt::DescendingOrder; } break; } diff --git a/src/blackgui/models/statusmessagelistmodel.h b/src/blackgui/models/statusmessagelistmodel.h index a82a87067..7c09e872a 100644 --- a/src/blackgui/models/statusmessagelistmodel.h +++ b/src/blackgui/models/statusmessagelistmodel.h @@ -50,8 +50,14 @@ namespace BlackGui //! Set mode and adjust order/no order void setMode(Mode mode, const BlackMisc::CStatusMessageList &messages); + //! Adjust order column depending on messages + void adjustOrderColumn(const BlackMisc::CStatusMessageList &messages); + //! \copydoc QAbstractItemModel::data virtual QVariant data(const QModelIndex &index, int role) const override; + + private: + Mode m_mode; //!< used mode }; } // ns } // ns diff --git a/src/blackgui/views/statusmessageview.cpp b/src/blackgui/views/statusmessageview.cpp index e0de111ae..b3bf1b97b 100644 --- a/src/blackgui/views/statusmessageview.cpp +++ b/src/blackgui/views/statusmessageview.cpp @@ -38,6 +38,11 @@ namespace BlackGui this->derivedModel()->setMode(mode, messages); } + void CStatusMessageView::adjustOrderColumn(const CStatusMessageList &messages) + { + this->derivedModel()->adjustOrderColumn(messages); + } + void CStatusMessageView::addFilterDialog() { if (this->getFilterDialog()) { return; } // already existing diff --git a/src/blackgui/views/statusmessageview.h b/src/blackgui/views/statusmessageview.h index 667adb5ee..cf0a44808 100644 --- a/src/blackgui/views/statusmessageview.h +++ b/src/blackgui/views/statusmessageview.h @@ -40,6 +40,9 @@ namespace BlackGui //! Set mode and adjust order/no order void setMode(Models::CStatusMessageListModel::Mode mode, const BlackMisc::CStatusMessageList &messages); + //! \copydoc BlackGui::Models::CStatusMessageListModel::adjustOrderColumn + void adjustOrderColumn(const BlackMisc::CStatusMessageList &messages); + //! Add my own filter dialog void addFilterDialog();