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
@@ -374,8 +380,7 @@ namespace BlackMisc
QObject(parent),
m_cache(cache)
{
connect(this, &CValuePage::valuesWantToCache, cache, &CValueCache::changeValues);
connect(cache, &CValueCache::valuesChanged, this, &CValuePage::setValuesFromCache);
m_cache->connectPage(this);
}
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);
std::tuple<CVariant, qint64, bool> getValue(const QString &key);
virtual void connectPage(Private::CValuePage *page);
signals:
//! \private
void valuesChanged(const BlackMisc::CValueCachePacket &values, QObject *changedBy);