Report loading file with no matching engine
Re-enable old code, now show in header instead of popup.
This commit is contained in:
@@ -106,6 +106,9 @@
|
|||||||
|
|
||||||
#include "GPU_draw.h"
|
#include "GPU_draw.h"
|
||||||
|
|
||||||
|
/* only to report a missing engine */
|
||||||
|
#include "RE_engine.h"
|
||||||
|
|
||||||
#ifdef WITH_PYTHON
|
#ifdef WITH_PYTHON
|
||||||
#include "BPY_extern.h"
|
#include "BPY_extern.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -436,6 +439,33 @@ static void wm_file_read_post(bContext *C, bool is_startup_file)
|
|||||||
|
|
||||||
WM_event_add_notifier(C, NC_WM | ND_FILEREAD, NULL);
|
WM_event_add_notifier(C, NC_WM | ND_FILEREAD, NULL);
|
||||||
|
|
||||||
|
/* report any errors */
|
||||||
|
{
|
||||||
|
ReportList *reports = NULL;
|
||||||
|
Scene *sce;
|
||||||
|
|
||||||
|
for (sce = G.main->scene.first; sce; sce = sce->id.next) {
|
||||||
|
if (sce->r.engine[0] &&
|
||||||
|
BLI_findstring(&R_engines, sce->r.engine, offsetof(RenderEngineType, idname)) == NULL)
|
||||||
|
{
|
||||||
|
if (reports == NULL) {
|
||||||
|
reports = CTX_wm_reports(C);
|
||||||
|
}
|
||||||
|
|
||||||
|
BKE_reportf(reports, RPT_ERROR,
|
||||||
|
"Engine '%s' not available for scene '%s' "
|
||||||
|
"(an addon may need to be installed or enabled)",
|
||||||
|
sce->r.engine, sce->id.name + 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reports) {
|
||||||
|
if (!G.background) {
|
||||||
|
WM_report_banner_show(C);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!G.background) {
|
if (!G.background) {
|
||||||
/* in background mode this makes it hard to load
|
/* in background mode this makes it hard to load
|
||||||
* a blend file and do anything since the screen
|
* a blend file and do anything since the screen
|
||||||
@@ -514,24 +544,6 @@ bool WM_file_read(bContext *C, const char *filepath, ReportList *reports)
|
|||||||
|
|
||||||
wm_file_read_post(C, false);
|
wm_file_read_post(C, false);
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* gives popups on windows but not linux, bug in report API
|
|
||||||
* but disable for now to stop users getting annoyed */
|
|
||||||
/* TODO, make this show in header info window */
|
|
||||||
{
|
|
||||||
Scene *sce;
|
|
||||||
for (sce = G.main->scene.first; sce; sce = sce->id.next) {
|
|
||||||
if (sce->r.engine[0] &&
|
|
||||||
BLI_findstring(&R_engines, sce->r.engine, offsetof(RenderEngineType, idname)) == NULL)
|
|
||||||
{
|
|
||||||
BKE_reportf(reports, RPT_ERROR, "Engine '%s' not available for scene '%s' "
|
|
||||||
"(an addon may need to be installed or enabled)",
|
|
||||||
sce->r.engine, sce->id.name + 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
else if (retval == BKE_READ_EXOTIC_OK_OTHER)
|
else if (retval == BKE_READ_EXOTIC_OK_OTHER)
|
||||||
|
Reference in New Issue
Block a user