Preferences: add is_dirty member
Tag preferences as dirty when changed (prepare for adding auto-save).
This commit is contained in:
@@ -617,6 +617,9 @@ bool BKE_blendfile_userdef_write_all(ReportList *reports)
|
||||
}
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
U.runtime.is_dirty = false;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
@@ -7566,6 +7566,11 @@ static void button_activate_exit(
|
||||
if (block->flag & UI_BLOCK_POPUP_MEMORY) {
|
||||
ui_popup_menu_memory_set(block, but);
|
||||
}
|
||||
|
||||
/* Not very elegant, but ensures preference changes force re-save. */
|
||||
if (but->rnaprop && (but->rnapoin.data == &U)) {
|
||||
U.runtime.is_dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* disable tooltips until mousemove + last active flag */
|
||||
|
||||
@@ -537,6 +537,11 @@ typedef struct WalkNavigation {
|
||||
char _pad0[6];
|
||||
} WalkNavigation;
|
||||
|
||||
typedef struct UserDef_Runtime {
|
||||
char is_dirty;
|
||||
char _pad0[7];
|
||||
} UserDef_Runtime;
|
||||
|
||||
typedef struct UserDef {
|
||||
/* UserDef has separate do-version handling, and can be read from other files */
|
||||
int versionfile, subversionfile;
|
||||
@@ -767,6 +772,9 @@ typedef struct UserDef {
|
||||
char viewport_aa;
|
||||
|
||||
char _pad5[2];
|
||||
|
||||
/** Runtime data (keep last). */
|
||||
UserDef_Runtime runtime;
|
||||
} UserDef;
|
||||
|
||||
/* from blenkernel blender.c */
|
||||
|
||||
@@ -184,8 +184,11 @@ static void rna_userdef_version_get(PointerRNA *ptr, int *value)
|
||||
value[2] = userdef->subversionfile;
|
||||
}
|
||||
|
||||
static void rna_userdef_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
|
||||
static void rna_userdef_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
{
|
||||
UserDef *userdef = (UserDef *)ptr->data;
|
||||
userdef->runtime.is_dirty = true;
|
||||
|
||||
WM_main_add_notifier(NC_WINDOW, NULL);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user