WIP: Brush assets project #106303

Draft
Julian Eisel wants to merge 358 commits from brush-assets-project into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
1 changed files with 12 additions and 9 deletions
Showing only changes of commit 038b29caa5 - Show all commits

View File

@ -1326,7 +1326,6 @@ static Image *image_open_single(Main *bmain,
static int image_open_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
ScrArea *area = CTX_wm_area(C);
Scene *scene = CTX_data_scene(C);
ImageUser *iuser = nullptr;
@ -1341,9 +1340,16 @@ static int image_open_exec(bContext *C, wmOperator *op)
image_open_init(C, op);
}
ListBase ranges = ED_image_filesel_detect_sequences(bmain, op, use_udim);
ImageOpenData *iod = static_cast<ImageOpenData *>(op->customdata);
Main *id_main = CTX_data_main(C);
if (iod->pprop.ptr.owner_id) {
id_main = BKE_main_from_id(id_main, iod->pprop.ptr.owner_id);
}
ListBase ranges = ED_image_filesel_detect_sequences(id_main, op, use_udim);
LISTBASE_FOREACH (ImageFrameRange *, range, &ranges) {
Image *ima_range = image_open_single(bmain, op, range, use_multiview);
Image *ima_range = image_open_single(id_main, op, range, use_multiview);
/* take the first image */
if ((ima == nullptr) && ima_range) {
@ -1360,9 +1366,6 @@ static int image_open_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
/* hook into UI */
ImageOpenData *iod = static_cast<ImageOpenData *>(op->customdata);
if (iod->pprop.prop) {
/* when creating new ID blocks, use is already 1, but RNA
* pointer use also increases user, so this compensates it */
@ -1378,7 +1381,7 @@ static int image_open_exec(bContext *C, wmOperator *op)
}
else if (area && area->spacetype == SPACE_IMAGE) {
SpaceImage *sima = static_cast<SpaceImage *>(area->spacedata.first);
ED_space_image_set(bmain, sima, ima, false);
ED_space_image_set(id_main, sima, ima, false);
iuser = &sima->iuser;
}
else {
@ -1418,9 +1421,9 @@ static int image_open_exec(bContext *C, wmOperator *op)
}
/* XXX BKE_packedfile_unpack_image frees image buffers */
ED_preview_kill_jobs(CTX_wm_manager(C), bmain);
ED_preview_kill_jobs(CTX_wm_manager(C), id_main);
BKE_image_signal(bmain, ima, iuser, IMA_SIGNAL_RELOAD);
BKE_image_signal(id_main, ima, iuser, IMA_SIGNAL_RELOAD);
WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, ima);
MEM_freeN(op->customdata);