Status message fix, copy timestamp in assigmnet operator

* the timestamp of status message was not copied, so every time a status message was sorted or otherwise assigned the ts got lost or wrongly assigned.
* this meant the log messages were in wrong order, leading to very confusing results in the log screen or file.
* also added new timestamp formatter
* new function "BlackMisc::CVariant displayRole(const PQ &pq) const" which can be used if the PQ is already available
This commit is contained in:
Klaus Basan
2018-05-11 03:00:30 +02:00
parent 40cd720e13
commit 1f9f148519
5 changed files with 18 additions and 9 deletions

View File

@@ -80,6 +80,7 @@ namespace BlackMisc
CPropertyIndexVariantMap::registerMetadata();
CRgbColor::registerMetadata();
CStatusMessage::registerMetadata();
qDBusRegisterMetaType<CStatusMessage::StatusSeverity>();
CStatusMessageList::registerMetadata();
CValueCachePacket::registerMetadata();
CVariant::registerMetadata();

View File

@@ -97,10 +97,12 @@ namespace BlackMisc
QReadLocker readLock(&other.m_lock);
auto handledBy = other.m_handledByObjects;
qint64 ts = other.m_timestampMSecsSinceEpoch;
readLock.unlock(); // avoid deadlock
QWriteLocker writeLock(&this->m_lock);
QWriteLocker writeLock(&m_lock);
m_handledByObjects = handledBy;
m_timestampMSecsSinceEpoch = ts;
return *this;
}

View File

@@ -53,7 +53,7 @@ namespace BlackMisc
CMessageBase() {}
//! Construct a message with some specific category.
explicit CMessageBase(const CLogCategory &category) : m_categories( { category }) {}
explicit CMessageBase(const CLogCategory &category) : m_categories({ category }) {}
//! Construct a message with some specific categories.
explicit CMessageBase(const CLogCategoryList &categories) : m_categories(categories) {}