mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-28 11:45:40 +08:00
refs #338 Convenience methods.
This commit is contained in:
@@ -46,6 +46,13 @@ namespace BlackMisc
|
|||||||
//! \warning This must only be called from the main thread.
|
//! \warning This must only be called from the main thread.
|
||||||
CLogPatternHandler *handlerForPattern(const CLogPattern &pattern);
|
CLogPatternHandler *handlerForPattern(const CLogPattern &pattern);
|
||||||
|
|
||||||
|
//! Return a pattern handler for subscribing to all validation warnings and errors.
|
||||||
|
//! \warning This must only be called from the main thread.
|
||||||
|
CLogPatternHandler *handlerForValidation()
|
||||||
|
{
|
||||||
|
return handlerForPattern(CLogPattern::exactMatch(CLogCategory::validation()).withSeverityAtOrAbove(CStatusMessage::SeverityWarning));
|
||||||
|
}
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
//! Emitted when a message is logged in this process.
|
//! Emitted when a message is logged in this process.
|
||||||
void localMessageLogged(const BlackMisc::CStatusMessage &message);
|
void localMessageLogged(const BlackMisc::CStatusMessage &message);
|
||||||
@@ -128,6 +135,25 @@ namespace BlackMisc
|
|||||||
*/
|
*/
|
||||||
void messageLogged(const CStatusMessage &message);
|
void messageLogged(const CStatusMessage &message);
|
||||||
|
|
||||||
|
public:
|
||||||
|
/*!
|
||||||
|
* Convenience method to connect the messageLogged signal to a slot in the given receiver object.
|
||||||
|
*/
|
||||||
|
template <typename T, typename F>
|
||||||
|
QMetaObject::Connection subscribe(T *receiver, F slot)
|
||||||
|
{
|
||||||
|
return connect(this, &CLogPatternHandler::messageLogged, receiver, slot);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Convenience method to connect the messageLogged signal to a functor.
|
||||||
|
*/
|
||||||
|
template <typename F>
|
||||||
|
QMetaObject::Connection subscribe(F slot)
|
||||||
|
{
|
||||||
|
return connect(this, &CLogPatternHandler::messageLogged, slot);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class CLogHandler;
|
friend class CLogHandler;
|
||||||
CLogPatternHandler(QObject *parent) : QObject(parent) {}
|
CLogPatternHandler(QObject *parent) : QObject(parent) {}
|
||||||
|
|||||||
@@ -112,8 +112,7 @@ void MainWindow::init(const CRuntimeConfig &runtimeConfig)
|
|||||||
this->connect(this->ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedAtcStationsUpdateInterval, this->ui->comp_MainInfoArea->getAtcStationComponent(), &::CAtcStationComponent::setUpdateIntervalSeconds);
|
this->connect(this->ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedAtcStationsUpdateInterval, this->ui->comp_MainInfoArea->getAtcStationComponent(), &::CAtcStationComponent::setUpdateIntervalSeconds);
|
||||||
|
|
||||||
// log messages
|
// log messages
|
||||||
auto *logHandler = CLogHandler::instance()->handlerForPattern(CLogPattern().withSeverityAtOrAbove(CStatusMessage::SeverityInfo));
|
CLogHandler::instance()->handlerForPattern(CLogPattern().withSeverityAtOrAbove(CStatusMessage::SeverityInfo))->subscribe(this, &MainWindow::ps_displayStatusMessageInGui);
|
||||||
this->connect(logHandler, &CLogPatternHandler::messageLogged, this, &MainWindow::ps_displayStatusMessageInGui);
|
|
||||||
|
|
||||||
Q_ASSERT(connect);
|
Q_ASSERT(connect);
|
||||||
Q_UNUSED(connect); // suppress GCC warning in release build
|
Q_UNUSED(connect); // suppress GCC warning in release build
|
||||||
|
|||||||
Reference in New Issue
Block a user