void AMActionRunnerBottomBarCurrentView3::onCurrentActionChanged(AMAction3 *action)
{
	AMActionRunnerCurrentViewBase::onCurrentActionChanged(action);

	if (action && !action->parentAction() && qobject_cast<AMLoopAction3 *>(action)){

		rootLoopAction_ = qobject_cast<AMLoopAction3 *>(action);
		increaseIterations_->setEnabled(true);
		increaseIterations_->setVisible(true);
		decreaseIterations_->setEnabled(true);
		decreaseIterations_->setVisible(true);
		connect(rootLoopAction_, SIGNAL(currentIterationChanged(int)), this, SLOT(onLoopIterationUpdate(int)));
		connect(rootLoopAction_, SIGNAL(currentSubActionChanged(int)), this, SLOT(onRootLoopSubActionChanged(int)));
		connect(rootLoopAction_, SIGNAL(statusTextChanged(QString)), this, SLOT(onStatusTextChanged(QString)));
		connect(rootLoopAction_->info(), SIGNAL(infoChanged()), this, SLOT(onRootLoopActionLoopCountChanged()));
	}
    void BucketBBMManager::registerApp()
    {
        if (mRegistrationHandler == 0) {
            // If no registration handler exist when trying register, create one
            // and connect to its signals, so that updates can be relayed via this
            // objects properties.
            mRegistrationHandler = new RegistrationHandler(this);

            bool connectResult;
            Q_UNUSED(connectResult);

            connectResult = connect(mRegistrationHandler, SIGNAL(statusTextChanged(QString)), SLOT(onStatusTextChanged(QString)));
            Q_ASSERT(connectResult);

            connectResult = connect(mRegistrationHandler, SIGNAL(registeredChanged(bool)), SLOT(onRegisteredChanged(bool)));
            Q_ASSERT(connectResult);
        }