Beispiel #1
0
void ResKeeper::updateRes()
{
    // check res or dependencies changed
    bool changed = m_resFactory->changed(m_name) || dependencyChanged() || !m_loaded;

    // reload if anything is changed
    if (changed) {
        try { // swallow all possible exceptions while resource loading
            auto loadedRes = m_resFactory->load(m_name, ExecType::ASYNC);
            if (loadedRes != nullptr) {
                m_res->pushRes(loadedRes);
                m_loaded = true;
                LOGI("Resource %s updated",  m_name.c_str());
            } else {
                LOGW("Resource %s update is rejected by factory",  m_name.c_str());
            }
        }
        catch (std::exception& e) {
            LOGE("Unexpected error during resource loading.\nDescription:\n%s", e.what());
        }
        catch (...) {
            LOGE("Unexpected error during resource loading.");
        }
    }
}
//-----------------------------------------------------------------------------
// Function: FileDependencyInfoWidget::descEditTextChanged()
//-----------------------------------------------------------------------------
void FileDependencyInfoWidget::descEditTextChanged()
{
    if (!dependency_->isLocked())
    {
        dependency_->setDescription(descEdit_.toPlainText());
        emit dependencyChanged(dependency_);
    }
}
//-----------------------------------------------------------------------------
// Function: FileDependencyInfoWidget::directionReversed()
//-----------------------------------------------------------------------------
void FileDependencyInfoWidget::directionReversed()
{
    if (!dependency_->isLocked())
    {
        dependency_->reverse();
        emit dependencyChanged(dependency_);
        updateFileLabel();
    }
}
//-----------------------------------------------------------------------------
// Function: FileDependencyInfoWidget::directionComboChanged()
//-----------------------------------------------------------------------------
void FileDependencyInfoWidget::directionCheckBoxChanged(int /*state*/)
{
    if (!dependency_->isLocked())
    {
        dependency_->setBidirectional(directionCheck_.isChecked());
        emit dependencyChanged(dependency_);
        updateFileLabel();

        // If dependency is bidirectional disable "Reverse direction"-button.
        if(dependency_->isBidirectional())
        {
            directionButton_.setEnabled(false);
        }
        // Else enable it.
        else
        {
            directionButton_.setEnabled(true);
        }
    }
}