refs #601 Refactor signal/slot connections from CValuePage constructor into virtual method of CValueCache

so that derived classes can override the behaviour.
This commit is contained in:
Mathew Sutcliffe
2016-03-09 20:42:49 +00:00
parent f680cee8ed
commit 899d94ca74
2 changed files with 9 additions and 2 deletions

View File

@@ -365,6 +365,12 @@ namespace BlackMisc
} }
} }
void CValueCache::connectPage(CValuePage *page)
{
connect(page, &CValuePage::valuesWantToCache, this, &CValueCache::changeValues);
connect(this, &CValueCache::valuesChanged, page, &CValuePage::setValuesFromCache);
}
//////////////////////////////// ////////////////////////////////
// Private :: CValuePage // Private :: CValuePage
@@ -374,8 +380,7 @@ namespace BlackMisc
QObject(parent), QObject(parent),
m_cache(cache) m_cache(cache)
{ {
connect(this, &CValuePage::valuesWantToCache, cache, &CValueCache::changeValues); m_cache->connectPage(this);
connect(cache, &CValueCache::valuesChanged, this, &CValuePage::setValuesFromCache);
} }
CValuePage &CValuePage::getPageFor(QObject *parent, CValueCache *cache) CValuePage &CValuePage::getPageFor(QObject *parent, CValueCache *cache)

View File

@@ -240,6 +240,8 @@ namespace BlackMisc
Element &getElement(const QString &key, QMap<QString, ElementPtr>::const_iterator pos); Element &getElement(const QString &key, QMap<QString, ElementPtr>::const_iterator pos);
std::tuple<CVariant, qint64, bool> getValue(const QString &key); std::tuple<CVariant, qint64, bool> getValue(const QString &key);
virtual void connectPage(Private::CValuePage *page);
signals: signals:
//! \private //! \private
void valuesChanged(const BlackMisc::CValueCachePacket &values, QObject *changedBy); void valuesChanged(const BlackMisc::CValueCachePacket &values, QObject *changedBy);