Ref T529, allow to set mode in view/model

The version with the container allows to auto-detect if order is available
This commit is contained in:
Klaus Basan
2019-02-04 19:23:48 +01:00
committed by Mat Sutcliffe
parent b9bc0757c5
commit 32985c78da
4 changed files with 39 additions and 2 deletions

View File

@@ -37,11 +37,32 @@ namespace BlackGui
(void)QT_TRANSLATE_NOOP("ViewStatusMessageList", "all categories");
}
void CStatusMessageListModel::setMode(CStatusMessageListModel::Mode mode, const CStatusMessageList &messages)
{
switch (mode)
{
case DetailedWithOrder:
case Detailed:
this->setMode(messages.needsOrder() ? Detailed : DetailedWithOrder);
break;
case SimplifiedWithOrder:
case Simplified:
this->setMode(messages.needsOrder() ? Simplified : SimplifiedWithOrder);
break;
}
}
void CStatusMessageListModel::setMode(CStatusMessageListModel::Mode mode)
{
m_columns.clear();
m_sortColumn = CStatusMessage::IndexUtcTimestamp;
switch (mode)
{
case DetailedWithOrder:
m_columns.addColumn(CColumn::orderColumn());
m_sortColumn = CStatusMessage::IndexOrder;
Q_FALLTHROUGH();
case Detailed:
{
m_columns.addColumn(CColumn("time", CStatusMessage::IndexUtcTimestamp, new CDateTimeFormatter(CDateTimeFormatter::formatHmsz())));
@@ -51,10 +72,13 @@ namespace BlackGui
m_columns.addColumn(CColumn::standardString("message", CStatusMessage::IndexMessage));
m_columns.addColumn(CColumn::standardString("category", CStatusMessage::IndexCategoryHumanReadableOrTechnicalAsString));
m_sortColumn = CStatusMessage::IndexUtcTimestamp;
m_sortOrder = Qt::DescendingOrder;
}
break;
case SimplifiedWithOrder:
m_columns.addColumn(CColumn::orderColumn());
m_sortColumn = CStatusMessage::IndexOrder;
Q_FALLTHROUGH();
case Simplified:
{
m_columns.addColumn(CColumn("time", CStatusMessage::IndexUtcTimestamp, new CDateTimeFormatter(CDateTimeFormatter::formatHmsz())));

View File

@@ -33,7 +33,9 @@ namespace BlackGui
enum Mode
{
Detailed,
Simplified
DetailedWithOrder,
Simplified,
SimplifiedWithOrder
};
//! Constructor
@@ -45,6 +47,9 @@ namespace BlackGui
//! Set mode
void setMode(Mode mode);
//! Set mode and adjust order/no order
void setMode(Mode mode, const BlackMisc::CStatusMessageList &messages);
//! \copydoc QAbstractItemModel::data
virtual QVariant data(const QModelIndex &index, int role) const override;
};

View File

@@ -33,6 +33,11 @@ namespace BlackGui
this->derivedModel()->setMode(mode);
}
void CStatusMessageView::setMode(CStatusMessageListModel::Mode mode, const CStatusMessageList &messages)
{
this->derivedModel()->setMode(mode, messages);
}
void CStatusMessageView::addFilterDialog()
{
if (this->getFilterDialog()) { return; } // already existing

View File

@@ -37,6 +37,9 @@ namespace BlackGui
//! Set mode
void setMode(Models::CStatusMessageListModel::Mode mode);
//! Set mode and adjust order/no order
void setMode(Models::CStatusMessageListModel::Mode mode, const BlackMisc::CStatusMessageList &messages);
//! Add my own filter dialog
void addFilterDialog();