ButcherImage *ButcherProjectAreaConfigPreview::GetPreview()
{
    if (ConfigChanged())
    {
        if (GetProject()->Views().Exists(viewid_) && NeedImage())
        {
            ButcherProjectBaseAutoProgress progress(this,
                wxString::Format(_("Generating preview for %s, please wait..."),
                    areaconfig_->GetArea()->GetDescription().c_str()));
            try
            {
                std::auto_ptr<ButcherImage> simage(GetProject()->Views()[viewid_]->CreateAreaImage(areaconfig_->GetArea()));
                if (HavePreview() && simage.get())
                    SetPreview(simage->Save(areaconfig_->ImageInfo().GetSaveParams()));
                else
                    SetPreview(simage.release());
            } catch(...) {
                //lasterror_=true;
                //throw;
                SetPreview(GetProject()->Views()[viewid_]->CreateAreaErrorImage(areaconfig_->GetArea()));
            }
        }
        else
            SetPreview(NULL);
    }
    return preview_;
}
예제 #2
0
bool ConfigChanged(const Config *c)
{
	switch (c->Type)
	{
	case CONFIG_TYPE_STRING:
		return strcmp(c->u.String.Value, c->u.String.Last) != 0;
	case CONFIG_TYPE_INT:
		return c->u.Int.Value != c->u.Int.Last;
	case CONFIG_TYPE_FLOAT:
		return c->u.Float.Value != c->u.Float.Last;
	case CONFIG_TYPE_BOOL:
		return c->u.Bool.Value != c->u.Bool.Last;
	case CONFIG_TYPE_ENUM:
		return c->u.Enum.Value != c->u.Enum.Last;
	case CONFIG_TYPE_GROUP:
		CA_FOREACH(Config, child, c->u.Group)
			if (ConfigChanged(child))
			{
				return true;
			}
		CA_FOREACH_END()
		return false;
	default:
		CASSERT(false, "Unknown config type");
		return false;
	}
}
예제 #3
0
파일: Settings.cpp 프로젝트: OrN/dolphin
Settings::Settings()
{
  qRegisterMetaType<Core::State>();
  Core::SetOnStateChangedCallback([this](Core::State new_state) {
    QueueOnObject(this, [this, new_state] { emit EmulationStateChanged(new_state); });
  });

  Config::AddConfigChangedCallback(
      [this] { QueueOnObject(this, [this] { emit ConfigChanged(); }); });

  SetCurrentUserStyle(GetCurrentUserStyle());
}