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