Cleanup: Remove last G.main's from WM code.

Was mostly validating valid usages of G.main -> G_MAIN actually.
This commit is contained in:
2018-06-14 12:34:13 +02:00
parent 0eb3246713
commit 66407e15cb
7 changed files with 34 additions and 31 deletions

View File

@@ -176,7 +176,7 @@ void WM_cursor_modal_restore(wmWindow *win)
void WM_cursor_wait(bool val)
{
if (!G.background) {
wmWindowManager *wm = G.main->wm.first;
wmWindowManager *wm = G_MAIN->wm.first;
wmWindow *win = wm ? wm->windows.first : NULL;
for (; win; win = win->next) {

View File

@@ -210,7 +210,7 @@ void WM_event_add_notifier(const bContext *C, unsigned int type, void *reference
void WM_main_add_notifier(unsigned int type, void *reference)
{
Main *bmain = G.main;
Main *bmain = G_MAIN;
wmWindowManager *wm = bmain->wm.first;
wmNotifier *note;
@@ -235,7 +235,7 @@ void WM_main_add_notifier(unsigned int type, void *reference)
*/
void WM_main_remove_notifier_reference(const void *reference)
{
Main *bmain = G.main;
Main *bmain = G_MAIN;
wmWindowManager *wm = bmain->wm.first;
if (wm) {
@@ -255,7 +255,7 @@ void WM_main_remove_notifier_reference(const void *reference)
void WM_main_remap_editor_id_reference(ID *old_id, ID *new_id)
{
Main *bmain = G.main;
Main *bmain = G_MAIN;
bScreen *sc;
for (sc = bmain->screen.first; sc; sc = sc->id.next) {
@@ -611,7 +611,7 @@ void WM_event_print(const wmEvent *event)
*/
void WM_report_banner_show(void)
{
wmWindowManager *wm = G.main->wm.first;
wmWindowManager *wm = G_MAIN->wm.first;
ReportList *wm_reports = &wm->reports;
ReportTimerInfo *rti;
@@ -646,7 +646,7 @@ static void wm_add_reports(ReportList *reports)
{
/* if the caller owns them, handle this */
if (reports->list.first && (reports->flag & RPT_OP_HOLD) == 0) {
wmWindowManager *wm = G.main->wm.first;
wmWindowManager *wm = G_MAIN->wm.first;
/* add reports to the global list, otherwise they are not seen */
BLI_movelisttolist(&wm->reports.list, &reports->list);

View File

@@ -147,8 +147,8 @@ static void wm_window_match_init(bContext *C, ListBase *wmlist)
wmWindowManager *wm;
wmWindow *win, *active_win;
*wmlist = G.main->wm;
BLI_listbase_clear(&G.main->wm);
*wmlist = G_MAIN->wm;
BLI_listbase_clear(&G_MAIN->wm);
active_win = CTX_wm_window(C);
@@ -188,7 +188,7 @@ static void wm_window_match_init(bContext *C, ListBase *wmlist)
for (win = wm->windows.first; win; win = win->next) {
BLI_strncpy(win->screenname, win->screen->id.name, MAX_ID_NAME);
if (win != wm->winactive) {
BLI_remlink(&G.main->screen, win->screen);
BLI_remlink(&G_MAIN->screen, win->screen);
//BLI_addtail(screenbase, win->screen);
}
}
@@ -423,12 +423,12 @@ void WM_file_autoexec_init(const char *filepath)
}
}
void wm_file_read_report(bContext *C)
void wm_file_read_report(bContext *C, Main *bmain)
{
ReportList *reports = NULL;
Scene *sce;
for (sce = G.main->scene.first; sce; sce = sce->id.next) {
for (sce = bmain->scene.first; sce; sce = sce->id.next) {
if (sce->r.engine[0] &&
BLI_findstring(&R_engines, sce->r.engine, offsetof(RenderEngineType, idname)) == NULL)
{
@@ -455,6 +455,7 @@ void wm_file_read_report(bContext *C)
*/
static void wm_file_read_post(bContext *C, const bool is_startup_file, const bool use_userdef)
{
Main *bmain = CTX_data_main(C);
bool addons_loaded = false;
wmWindowManager *wm = CTX_wm_manager(C);
@@ -466,7 +467,7 @@ static void wm_file_read_post(bContext *C, const bool is_startup_file, const boo
CTX_wm_window_set(C, wm->windows.first);
ED_editors_init(C);
DAG_on_visible_update(CTX_data_main(C), true);
DAG_on_visible_update(bmain, true);
#ifdef WITH_PYTHON
if (is_startup_file) {
@@ -496,8 +497,8 @@ static void wm_file_read_post(bContext *C, const bool is_startup_file, const boo
WM_operatortype_last_properties_clear_all();
/* important to do before NULL'ing the context */
BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_VERSION_UPDATE);
BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_VERSION_UPDATE);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_POST);
/* Would otherwise be handled by event loop.
*
@@ -505,7 +506,6 @@ static void wm_file_read_post(bContext *C, const bool is_startup_file, const boo
* While its possible state of startup file may be wrong,
* in this case users nearly always load a file to replace the startup file. */
if (G.background && (is_startup_file == false)) {
Main *bmain = CTX_data_main(C);
BKE_scene_update_tagged(bmain->eval_ctx, bmain, CTX_data_scene(C));
}
@@ -514,7 +514,7 @@ static void wm_file_read_post(bContext *C, const bool is_startup_file, const boo
/* report any errors.
* currently disabled if addons aren't yet loaded */
if (addons_loaded) {
wm_file_read_report(C);
wm_file_read_report(C, bmain);
}
if (!G.background) {
@@ -524,7 +524,7 @@ static void wm_file_read_post(bContext *C, const bool is_startup_file, const boo
else {
BKE_undosys_stack_clear(wm->undo_stack);
}
BKE_undosys_stack_init_from_main(wm->undo_stack, CTX_data_main(C));
BKE_undosys_stack_init_from_main(wm->undo_stack, bmain);
BKE_undosys_stack_init_from_context(wm->undo_stack, C);
}
@@ -659,7 +659,7 @@ int wm_homefile_read(
bool use_factory_settings, bool use_empty_data, bool use_userdef,
const char *filepath_startup_override, const char *app_template_override)
{
Main *bmain = G.main; /* Context does not always have valid main pointer here... */
Main *bmain = G_MAIN; /* Context does not always have valid main pointer here... */
ListBase wmbase;
bool success = false;
@@ -1088,7 +1088,7 @@ bool write_crash_blend(void)
BLI_strncpy(path, BKE_main_blendfile_path_from_global(), sizeof(path));
BLI_replace_extension(path, sizeof(path), "_crash.blend");
if (BLO_write_file(G.main, path, fileflags, NULL, NULL)) {
if (BLO_write_file(G_MAIN, path, fileflags, NULL, NULL)) {
printf("written: %s\n", path);
return 1;
}
@@ -1224,7 +1224,7 @@ void wm_autosave_location(char *filepath)
const char *savedir;
#endif
if (G.main && G.relbase_valid) {
if (G_MAIN && G.relbase_valid) {
const char *basename = BLI_path_basename(BKE_main_blendfile_path_from_global());
int len = strlen(basename) - 6;
BLI_snprintf(path, sizeof(path), "%.*s.blend", len, basename);
@@ -1374,7 +1374,7 @@ void wm_open_init_use_scripts(wmOperator *op, bool use_prefs)
void WM_file_tag_modified(void)
{
wmWindowManager *wm = G.main->wm.first;
wmWindowManager *wm = G_MAIN->wm.first;
if (wm->file_saved) {
wm->file_saved = 0;
/* notifier that data changed, for save-over warning or header */
@@ -1391,6 +1391,7 @@ void WM_file_tag_modified(void)
*/
static int wm_homefile_write_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
char filepath[FILE_MAX];
@@ -1403,7 +1404,7 @@ static int wm_homefile_write_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
BLI_callback_exec(G.main, NULL, BLI_CB_EVT_SAVE_PRE);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_SAVE_PRE);
/* check current window and close it if temp */
if (win && win->screen->temp)
@@ -1421,7 +1422,7 @@ static int wm_homefile_write_exec(bContext *C, wmOperator *op)
/* force save as regular blend file */
fileflags = G.fileflags & ~(G_FILE_COMPRESS | G_FILE_AUTOPLAY | G_FILE_HISTORY);
if (BLO_write_file(CTX_data_main(C), filepath, fileflags | G_FILE_USERPREFS, op->reports, NULL) == 0) {
if (BLO_write_file(bmain, filepath, fileflags | G_FILE_USERPREFS, op->reports, NULL) == 0) {
printf("fail\n");
return OPERATOR_CANCELLED;
}
@@ -1430,7 +1431,7 @@ static int wm_homefile_write_exec(bContext *C, wmOperator *op)
G.save_over = 0;
BLI_callback_exec(G.main, NULL, BLI_CB_EVT_SAVE_POST);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_SAVE_POST);
return OPERATOR_FINISHED;
}

View File

@@ -260,7 +260,7 @@ void WM_init(bContext *C, int argc, const char **argv)
/* allow a path of "", this is what happens when making a new file */
#if 0
if (BKE_main_blendfile_path_from_global()[0] == '\0')
BLI_make_file_string("/", G.main->name, BKE_appdir_folder_default(), "untitled.blend");
BLI_make_file_string("/", G_MAIN->name, BKE_appdir_folder_default(), "untitled.blend");
#endif
BLI_strncpy(G.lib, BKE_main_blendfile_path_from_global(), sizeof(G.lib));
@@ -278,6 +278,7 @@ void WM_init(bContext *C, int argc, const char **argv)
/* that prevents loading both the kept session, and the file on the command line */
}
else {
Main *bmain = CTX_data_main(C);
/* note, logic here is from wm_file_read_post,
* call functions that depend on Python being initialized. */
@@ -288,10 +289,10 @@ void WM_init(bContext *C, int argc, const char **argv)
* note that recovering the last session does its own callbacks. */
CTX_wm_window_set(C, CTX_wm_manager(C)->windows.first);
BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_VERSION_UPDATE);
BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_VERSION_UPDATE);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_POST);
wm_file_read_report(C);
wm_file_read_report(C, bmain);
if (!G.background) {
CTX_wm_window_set(C, NULL);

View File

@@ -804,7 +804,7 @@ wmKeyMap *WM_modalkeymap_add(wmKeyConfig *keyconf, const char *idname, const Enu
if (!items) {
/* init modal items from default config */
wmWindowManager *wm = G.main->wm.first;
wmWindowManager *wm = G_MAIN->wm.first;
if (wm->defaultconf) {
wmKeyMap *defaultkm = WM_keymap_list_find(&wm->defaultconf->keymaps, km->idname, 0, 0);

View File

@@ -502,7 +502,7 @@ void wm_window_title(wmWindowManager *wm, wmWindow *win)
char str[sizeof(((Main *)NULL)->name) + 24];
BLI_snprintf(str, sizeof(str), "Blender%s [%s%s]", wm->file_saved ? "" : "*",
BKE_main_blendfile_path_from_global(),
G.main->recovered ? " (Recovered)" : "");
G_MAIN->recovered ? " (Recovered)" : "");
GHOST_SetTitle(win->ghostwin, str);
}
else

View File

@@ -31,6 +31,7 @@
#ifndef __WM_FILES_H__
#define __WM_FILES_H__
struct Main;
struct wmOperatorType;
/* wm_files.c */
@@ -39,7 +40,7 @@ int wm_homefile_read(
struct bContext *C, struct ReportList *reports,
bool use_factory_settings, bool use_empty_data, bool use_userdef,
const char *filepath_startup_override, const char *app_template_override);
void wm_file_read_report(bContext *C);
void wm_file_read_report(bContext *C, struct Main *bmain);
void WM_OT_save_homefile(struct wmOperatorType *ot);
void WM_OT_userpref_autoexec_path_add(struct wmOperatorType *ot);