Merging r45810 through r45876 from trunk into soc-2011-tomato
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 23 Apr 2012 10:19:59 +0000 (10:19 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 23 Apr 2012 10:19:59 +0000 (10:19 +0000)
1  2 
source/blender/blenloader/intern/readfile.c
source/blender/editors/transform/transform_conversions.c
source/blender/makesdna/DNA_scene_types.h
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_tracking.c
source/blender/makesrna/intern/rna_userdef.c

index 93cf4f2037b418a3451dbe3474b58bafe7f22c1a,b3d586fd78d169be949393b7f3e12c40680482cc..a52c9a5b682b7cae79bcda680e11842584874c3d
@@@ -612,7 -612,7 +612,7 @@@ static void bh4_from_bh8(BHead *bhead, 
                }
  
                /* this patch is to avoid a long long being read from not-eight aligned positions
-                  is necessary on any modern 64bit architecture) */
+                * is necessary on any modern 64bit architecture) */
                memcpy(&old, &bhead8->old, 8);
                bhead4->old = (int) (old >> 3);
  
@@@ -1138,7 -1138,7 +1138,7 @@@ int BLO_is_a_library(const char *path, 
                if (!fd || !BLO_has_bfile_extension(fd+1)) return 0;
  
                /* now we know that we are in a blend file and it is safe to 
-                  assume that gp actually points to a group */
+                * assume that gp actually points to a group */
                if (strcmp("Screen", gp)!=0)
                        BLI_strncpy(group, gp, GROUP_MAX);
        }
@@@ -1606,7 -1606,7 +1606,7 @@@ static void IDP_DirectLinkProperty(IDPr
                         * in the same field as int val; val2 in the
                         * IDPropertyData struct, they have to deal with
                         * endianness specifically
+                        *
                         * in theory, val and val2 would've already been swapped
                         * if switch_endian is true, so we have to first unswap
                         * them then reswap them as a single 64-bit entity.
@@@ -2290,17 -2290,19 +2290,19 @@@ static void lib_nodetree_do_versions_up
  
  /* verify types for nodes and groups, all data has to be read */
  /* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic
* typedefs*/
 * typedefs */
  static void lib_verify_nodetree(Main *main, int UNUSED(open))
  {
        bNodeTree *ntree;
        int i;
        bNodeTreeType *ntreetype;
  
-       /* this crashes blender on undo/redo
+       /* this crashes blender on undo/redo */
+ #if 0
                if (open==1) {
                        reinit_nodesystem();
-               }*/
+               }
+ #endif
        
        /* set node->typeinfo pointers */
        for (i=0; i < NUM_NTREE_TYPES; ++i) {
@@@ -2936,12 -2938,12 +2938,12 @@@ static void direct_link_text(FileData *
  
        text->compiled= NULL;
  
- /*
+ #if 0
        if (text->flags & TXT_ISEXT) {
                reopen_text(text);
                }
                else {
- */
+ #endif
  
        link_list(fd, &text->lines);
        link_list(fd, &text->markers);
@@@ -3242,8 -3244,8 +3244,8 @@@ static void lib_link_material(FileData 
                if (ma->id.flag & LIB_NEEDLINK) {
                        if (ma->adt) lib_link_animdata(fd, &ma->id, ma->adt);
  
-                       /*Link ID Properties -- and copy this comment EXACTLY for easy finding
-                       of library blocks that implement this.*/
+                       /* Link ID Properties -- and copy this comment EXACTLY for easy finding
+                        * of library blocks that implement this.*/
                        if (ma->id.properties) IDP_LibLinkProperty(ma->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
  
                        ma->ipo= newlibadr_us(fd, ma->id.lib, ma->ipo);
@@@ -3683,8 -3685,8 +3685,8 @@@ static void lib_link_mesh(FileData *fd
                if (me->id.flag & LIB_NEEDLINK) {
                        int i;
  
-                       /*Link ID Properties -- and copy this comment EXACTLY for easy finding
-                       of library blocks that implement this.*/
+                       /* Link ID Properties -- and copy this comment EXACTLY for easy finding
+                        * of library blocks that implement this.*/
                        if (me->id.properties) IDP_LibLinkProperty(me->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
                        if (me->adt) lib_link_animdata(fd, &me->id, me->adt);
  
                        /*check if we need to convert mfaces to mpolys*/
                        if (me->totface && !me->totpoly) {
                                /* temporarily switch main so that reading from
-                                  external CustomData works */
+                                * external CustomData works */
                                Main *gmain = G.main;
                                G.main = main;
                                
@@@ -3779,9 -3781,9 +3781,9 @@@ static void direct_link_mdisps(FileDat
  
                        if (mdisps[i].totdisp && !mdisps[i].level) {
                                /* this calculation is only correct for loop mdisps;
-                                  if loading pre-BMesh face mdisps this will be
-                                  overwritten with the correct value in
-                                  bm_corners_to_loops() */
+                                * if loading pre-BMesh face mdisps this will be
+                                * overwritten with the correct value in
+                                * bm_corners_to_loops() */
                                float gridsize = sqrtf(mdisps[i].totdisp);
                                mdisps[i].level = (int)(logf(gridsize - 1.0f) / M_LN2) + 1;
                        }
@@@ -3852,7 -3854,7 +3854,7 @@@ static void direct_link_mesh(FileData *
        direct_link_animdata(fd, mesh->adt);
  
        /* normally direct_link_dverts should be called in direct_link_customdata,
-          but for backwards compat in do_versions to work we do it here */
+        * but for backwards compat in do_versions to work we do it here */
        direct_link_dverts(fd, mesh->totvert, mesh->dvert);
  
        direct_link_customdata(fd, &mesh->vdata, mesh->totvert);
                mesh->mr->verts = newdataadr(fd, mesh->mr->verts);
                
                /* If mesh has the same number of vertices as the
-                  highest multires level, load the current mesh verts
-                  into multires and discard the old data. Needed
-                  because some saved files either do not have a verts
-                  array, or the verts array contains out-of-date
-                  data. */
+                * highest multires level, load the current mesh verts
+                * into multires and discard the old data. Needed
+                * because some saved files either do not have a verts
+                * array, or the verts array contains out-of-date
+                * data. */
                if (mesh->totvert == ((MultiresLevel*)mesh->mr->levels.last)->totvert) {
                        if (mesh->mr->verts)
                                MEM_freeN(mesh->mr->verts);
@@@ -4567,7 -4569,7 +4569,7 @@@ static void direct_link_object(FileDat
        ob->flag &= ~OB_FROMGROUP;
  
        /* loading saved files with editmode enabled works, but for undo we like
-          to stay in object mode during undo presses so keep editmode disabled */
+        * to stay in object mode during undo presses so keep editmode disabled */
        if (fd->memfile)
                ob->mode &= ~(OB_MODE_EDIT|OB_MODE_PARTICLE_EDIT);
        
@@@ -4802,8 -4804,8 +4804,8 @@@ static void lib_link_scene(FileData *fd
        sce= main->scene.first;
        while (sce) {
                if (sce->id.flag & LIB_NEEDLINK) {
-                       /*Link ID Properties -- and copy this comment EXACTLY for easy finding
-                       of library blocks that implement this.*/
+                       /* Link ID Properties -- and copy this comment EXACTLY for easy finding
+                        * of library blocks that implement this.*/
                        if (sce->id.properties) IDP_LibLinkProperty(sce->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
                        if (sce->adt) lib_link_animdata(fd, &sce->id, sce->adt);
                        
@@@ -5222,7 -5224,7 +5224,7 @@@ static void butspace_version_132(SpaceB
  }
  
  /* note: file read without screens option G_FILE_NO_UI; 
-    check lib pointers in call below */
+  * check lib pointers in call below */
  static void lib_link_screen(FileData *fd, Main *main)
  {
        bScreen *sc;
                                                sclip->clip= newlibadr_us(fd, sc->id.lib, sclip->clip);
  
                                                sclip->scopes.track_preview = NULL;
 +                                              sclip->draw_context = NULL;
                                                sclip->scopes.ok = 0;
                                        }
                                }
@@@ -5745,7 -5746,7 +5747,7 @@@ static void direct_link_screen(FileDat
        sc->swap= 0;
        
        /* hacky patch... but people have been saving files with the verse-blender,
-          causing the handler to keep running for ever, with no means to disable it */
+        * causing the handler to keep running for ever, with no means to disable it */
        for (a=0; a<SCREEN_MAXHANDLER; a+=2) {
                if ( sc->handler[a]==SCREEN_HANDLER_VERSE) {
                        sc->handler[a]= 0;
                                //for (cl= sconsole->scrollback.first; cl; cl= cl->next)
                                //      cl->line= newdataadr(fd, cl->line);
                                
-                               /*comma expressions, (e.g. expr1, expr2, expr3) evalutate each expression,
-                                 from left to right.  the right-most expression sets the result of the comma
-                                 expression as a whole*/
+                               /* comma expressions, (e.g. expr1, expr2, expr3) evalutate each expression,
+                                * from left to right.  the right-most expression sets the result of the comma
+                                * expression as a whole*/
                                for (cl= sconsole->history.first; cl; cl= cl_next) {
                                        cl_next= cl->next;
                                        cl->line= newdataadr(fd, cl->line);
@@@ -6065,8 -6066,10 +6067,10 @@@ static void direct_link_speaker(FileDat
        spk->adt= newdataadr(fd, spk->adt);
        direct_link_animdata(fd, spk->adt);
  
-       /*spk->sound= newdataadr(fd, spk->sound);
-       direct_link_sound(fd, spk->sound);*/
+ #if 0
+       spk->sound= newdataadr(fd, spk->sound);
+       direct_link_sound(fd, spk->sound);
+ #endif
  }
  
  /* ************** READ SOUND ******************* */
@@@ -7396,7 -7399,7 +7400,7 @@@ static void do_version_mdef_250(Main *m
  
                                if (mmd->bindcos) {
                                        /* make bindcos NULL in order to trick older versions
-                                          into thinking that the mesh was not bound yet */
+                                        * into thinking that the mesh was not bound yet */
                                        mmd->bindcagecos= mmd->bindcos;
                                        mmd->bindcos= NULL;
  
@@@ -8539,9 -8542,9 +8543,9 @@@ static void do_versions(FileData *fd, L
                bScreen *sc;
                Object *ob;
  
-               /*  As of now, this insures that the transition from the old Track system
-                       to the new full constraint Track is painless for everyone. - theeth
-               */
+               /* As of now, this insures that the transition from the old Track system
+                * to the new full constraint Track is painless for everyone. - theeth
+                */
                ob = main->object.first;
  
                while (ob) {
                        list = &ob->constraints;
  
                        /* check for already existing TrackTo constraint
-                          set their track and up flag correctly */
+                        * set their track and up flag correctly */
  
                        if (list) {
                                bConstraint *curcon;
                Object *ob;
  
  
-               /*  As of now, this insures that the transition from the old Track system
-                       to the new full constraint Track is painless for everyone.*/
+               /* As of now, this insures that the transition from the old Track system
+                * to the new full constraint Track is painless for everyone.*/
                ob = main->object.first;
  
                while (ob) {
                        list = &ob->constraints;
  
                        /* check for already existing TrackTo constraint
-                          set their track and up flag correctly */
+                        * set their track and up flag correctly */
  
                        if (list) {
                                bConstraint *curcon;
                }
        }
        /* ton: made this 230 instead of 229,
-          to be sure (tuho files) and this is a reliable check anyway
-          nevertheless, we might need to think over a fitness (initialize)
-          check apart from the do_versions() */
+        * to be sure (tuho files) and this is a reliable check anyway
+        * nevertheless, we might need to think over a fitness (initialize)
+        * check apart from the do_versions() */
  
        if (main->versionfile <= 230) {
                bScreen *sc;
                                sce->toolsettings->segments = 32;
                                sce->toolsettings->rings = 32;
                                sce->toolsettings->vertices = 32;
-                               sce->toolsettings->editbutflag =1;
                        }
                        sce= sce->id.next;      
                }
                        list = &ob->constraints;
  
                        /* check for already existing MinMax (floor) constraint
-                          and update the sticky flagging */
+                        * and update the sticky flagging */
  
                        if (list) {
                                bConstraint *curcon;
                }
  
                /* Copy over old per-level multires vertex data
-                  into a single vertex array in struct Multires */
+                * into a single vertex array in struct Multires */
                for (me = main->mesh.first; me; me=me->id.next) {
                        if (me->mr && !me->mr->verts) {
                                MultiresLevel *lvl = me->mr->levels.last;
                        ob->m_contactProcessingThreshold = 1.0f; //pad3 is used for m_contactProcessingThreshold
                        if (ob->parent) {
                                /* check if top parent has compound shape set and if yes, set this object
-                                  to compound shaper as well (was the behavior before, now it's optional) */
+                                * to compound shaper as well (was the behavior before, now it's optional) */
                                Object *parent= newlibadr(fd, lib, ob->parent);
                                while (parent && parent != ob &&  parent->parent != NULL) {
                                        parent = newlibadr(fd, lib, parent->parent);
                                                seq->sound = sound_new_file(main, str);
                                        }
                                        /* don't know, if anybody used that
-                                          this way, but just in case, upgrade
-                                          to new way... */
+                                        * this way, but just in case, upgrade
+                                        * to new way... */
                                        if ((seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) &&
                                           !(seq->flag & SEQ_USE_PROXY_CUSTOM_DIR))
                                        {
  
                /* Add default gravity to scenes */
                for (sce= main->scene.first; sce; sce= sce->id.next) {
-                       if ((sce->physics_settings.flag & PHYS_GLOBAL_GRAVITY) == 0
-                               && len_v3(sce->physics_settings.gravity) == 0.0f) {
+                       if ((sce->physics_settings.flag & PHYS_GLOBAL_GRAVITY) == 0 &&
+                           len_v3(sce->physics_settings.gravity) == 0.0f)
+                       {
                                sce->physics_settings.gravity[0] = sce->physics_settings.gravity[1] = 0.0f;
                                sce->physics_settings.gravity[2] = -9.81f;
                                sce->physics_settings.flag = PHYS_GLOBAL_GRAVITY;
                int a, tot;
  
                /* shape keys are no longer applied to the mesh itself, but rather
-                  to the derivedmesh/displist, so here we ensure that the basis
-                  shape key is always set in the mesh coordinates. */
+                * to the derivedmesh/displist, so here we ensure that the basis
+                * shape key is always set in the mesh coordinates. */
  
                for (me= main->mesh.first; me; me= me->id.next) {
                        if ((key = newlibadr(fd, lib, me->key)) && key->refkey) {
                        int i, convert=0;
                        
                        /* convert to new color management system:
-                        while previously colors were stored as srgb, 
-                        now they are stored as linear internally, 
-                        with screen gamma correction in certain places in the UI. */
+                        * while previously colors were stored as srgb,
+                        * now they are stored as linear internally,
+                        with screen gamma correction in certain places in the UI. */
  
                        /* don't know what scene is active, so we'll convert if any scene has it enabled... */
                        while (sce) {
        
        if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 13)) {
                /* NOTE: if you do more conversion, be sure to do it outside of this and
-                  increase subversion again, otherwise it will not be correct */
+                * increase subversion again, otherwise it will not be correct */
                Object *ob;
                
                /* convert degrees to radians for internal use */
                        
                        for (sce=main->scene.first; sce; sce=sce->id.next) {
                                /* there are files with invalid audio_channels value, the real cause
-                                  is unknown, but we fix it here anyway to avoid crashes */
+                                * is unknown, but we fix it here anyway to avoid crashes */
                                if (sce->r.ffcodecdata.audio_channels == 0)
                                        sce->r.ffcodecdata.audio_channels = 2;
  
  
                {
                        /* convert deprecated sculpt_paint_unified_* fields to
-                          UnifiedPaintSettings */
+                        * UnifiedPaintSettings */
                        Scene *scene;
                        for (scene= main->scene.first; scene; scene= scene->id.next) {
                                ToolSettings *ts= scene->toolsettings;
        if (main->versionfile < 263)
        {
                /* set fluidsim rate. the version patch for this in 2.62 was wrong, so
-                  try to correct it, if rate is 0.0 that's likely not intentional */
+                * try to correct it, if rate is 0.0 that's likely not intentional */
                Object *ob;
  
                for (ob = main->object.first; ob; ob = ob->id.next) {
                Object *ob;
                ModifierData *md;
        
-               for(ob = main->object.first; ob; ob = ob->id.next) {
-                       for(md=ob->modifiers.first; md; md=md->next) {
-                               if(md->type == eModifierType_Lattice) {
+               for (ob = main->object.first; ob; ob = ob->id.next) {
+                       for (md=ob->modifiers.first; md; md=md->next) {
+                               if (md->type == eModifierType_Lattice) {
                                        LatticeModifierData *lmd = (LatticeModifierData *)md;
                                        lmd->strength = 1.0f;
                                }
                        for (md = ob->modifiers.first; md; md = md->next) {
                                if (md->type == eModifierType_Fluidsim) {
                                        FluidsimModifierData *fmd = (FluidsimModifierData *)md;
-                                       if(fmd->fss->viscosityMode == 3) {
+                                       if (fmd->fss->viscosityMode == 3) {
                                                fmd->fss->viscosityValue = 5.0;
                                                fmd->fss->viscosityExponent = 5;
                                        }
-                                       else if(fmd->fss->viscosityMode == 4) {
+                                       else if (fmd->fss->viscosityMode == 4) {
                                                fmd->fss->viscosityValue = 2.0;
                                                fmd->fss->viscosityExponent = 3;
                                        }
@@@ -13453,10 -13455,10 +13456,10 @@@ BlendFileData *blo_read_file_internal(F
  
                case ID_LI:
                        /* skip library datablocks in undo, this works together with
-                          BLO_read_from_memfile, where the old main->library is restored
-                          overwriting  the libraries from the memory file. previously
-                          it did not save ID_LI/ID_ID blocks in this case, but they are
-                          needed to make quit.blend recover them correctly. */
+                        * BLO_read_from_memfile, where the old main->library is restored
+                        * overwriting  the libraries from the memory file. previously
+                        * it did not save ID_LI/ID_ID blocks in this case, but they are
+                        * needed to make quit.blend recover them correctly. */
                        if (fd->memfile)
                                bhead= blo_nextbhead(fd, bhead);
                        else
@@@ -13626,7 -13628,7 +13629,7 @@@ static void expand_doit(FileData *fd, M
                                        /* This crashes files, must look further into it */
                                        
                                        /* Update: the issue is that in file reading, the oldnewmap is OK, but for existing data, it has to be
-                                          inserted in the map to be found! */
+                                        * inserted in the map to be found! */
                                        if (id->flag & LIB_PRE_EXISTING)
                                                oldnewmap_insert(fd->libmap, bhead->old, id, 1);
                                        
                        }
                        else {
                                /* this is actually only needed on UI call? when ID was already read before, and another append
-                                  happens which invokes same ID... in that case the lookup table needs this entry */
+                                * happens which invokes same ID... in that case the lookup table needs this entry */
                                oldnewmap_insert(fd->libmap, bhead->old, id, 1);
                                // commented because this can print way too much
                                // if (G.debug & G_DEBUG) printf("expand: already read %s\n", id->name);
@@@ -14431,11 -14433,11 +14434,11 @@@ static void give_base_to_objects(Main *
                
                if ( ob->id.flag & LIB_INDIRECT ) {
                        
-                               /* IF below is quite confusing!
-                               if we are appending, but this object wasnt just added along with a group,
-                               then this is already used indirectly in the scene somewhere else and we didnt just append it.
-                               
-                               (ob->id.flag & LIB_PRE_EXISTING)==0 means that this is a newly appended object - Campbell */
+                       /* IF below is quite confusing!
+                        * if we are appending, but this object wasnt just added along with a group,
+                        * then this is already used indirectly in the scene somewhere else and we didnt just append it.
+                        *
+                        * (ob->id.flag & LIB_PRE_EXISTING)==0 means that this is a newly appended object - Campbell */
                        if (is_group_append==0 || (ob->id.flag & LIB_PRE_EXISTING)==0) {
                                
                                int do_it= 0;
@@@ -14513,7 -14515,7 +14516,7 @@@ static void give_base_to_groups(Main *m
  }
  
  /* returns true if the item was found
- * but it may already have already been appended/linked */
 * but it may already have already been appended/linked */
  static ID *append_named_part(Main *mainl, FileData *fd, const char *idname, const short idcode)
  {
        BHead *bhead;
index 7755b35b2b2db7aa152cb39c13e001290291a52d,57540b58f61d8cc515afabd106a1735a194924b5..98ccd17226c2f84add51ab0cdcb722878bb9f756
@@@ -1961,7 -1961,7 +1961,7 @@@ static void editmesh_set_connectivity_d
  
        BM_ITER_ELEM (efa, &iter, eve, BM_FACES_OF_VERT) {
                if (BM_elem_flag_test(efa, BM_ELEM_SELECT)) {
-                       BM_face_center_mean_calc(efa, cent_r);
+                       BM_face_calc_center_mean(efa, cent_r);
                        break;
                }
        }
@@@ -1984,7 -1984,7 +1984,7 @@@ static void get_edge_center(float cent_
  static void VertsToTransData(TransInfo *t, TransData *td, BMEditMesh *em, BMVert *eve, float *bweight)
  {
        td->flag = 0;
-       //if(key)
+       //if (key)
        //      td->loc = key->co;
        //else
        td->loc = eve->co;
@@@ -5749,13 -5749,10 +5749,13 @@@ static void createTransTrackingData(bCo
        ARegion *ar = CTX_wm_region(C);
        SpaceClip *sc = CTX_wm_space_clip(C);
        MovieClip *clip = ED_space_clip(sc);
 +      int width, height;
  
        t->total = 0;
  
 -      if (!clip || !BKE_movieclip_has_frame(clip, &sc->user))
 +      BKE_movieclip_get_size(clip, &sc->user, &width, &height);
 +
 +      if (!clip || width == 0 || height == 0)
                return;
  
        if (!ELEM(t->mode, TFM_RESIZE, TFM_TRANSLATION))
@@@ -6008,8 -6005,7 +6008,7 @@@ void createTransData(bContext *C, Trans
                        
                }
        }
-       else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT) 
-               && PE_start_edit(PE_get_current(scene, ob))) {
+       else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT) && PE_start_edit(PE_get_current(scene, ob))) {
                createTransParticleVerts(C, t);
                t->flag |= T_POINTS;
  
index f3109270ba831b22044fe0a14b593b708288c420,e21ca52ecb34fba1e8d519f23e37c8e918755be4..8267a7d9c35716d2a0df92d9c0ab1389d2a6dade
@@@ -176,16 -176,14 +176,16 @@@ typedef struct SceneRenderLayer 
        struct Material *mat_override;
        struct Group *light_override;
        
 -      unsigned int lay;               /* scene->lay itself has priority over this */
 -      unsigned int lay_zmask; /* has to be after lay, this is for Z-masking */
 +      unsigned int lay;                 /* scene->lay itself has priority over this */
 +      unsigned int lay_zmask;   /* has to be after lay, this is for Z-masking */
 +      unsigned int lay_exclude; /* not used by internal, exclude */
        int layflag;
        
 -      int pad;
 -      
        int passflag;                   /* pass_xor has to be after passflag */
        int pass_xor;
 +
 +      int samples;
 +      int pad;
  } SceneRenderLayer;
  
  /* srl->layflag */
@@@ -642,10 -640,6 +642,6 @@@ typedef struct GameData 
  
  /* physicsEngine */
  #define WOPHY_NONE            0
- #define WOPHY_ENJI            1
- #define WOPHY_SUMO            2
- #define WOPHY_DYNAMO  3
- #define WOPHY_ODE             4
  #define WOPHY_BULLET  5
  
  /* obstacleSimulation */
@@@ -887,7 -881,7 +883,7 @@@ typedef struct ToolSettings 
  
        /* Subdivide Settings */
        short cornertype;
-       short editbutflag;
+       short pad3;
        /*Triangle to Quad conversion threshold*/
        float jointrilimit;
        /* Editmode Tools */
  
        /* Auto-Keying Mode */
        short autokey_mode, autokey_flag;       /* defines in DNA_userdef_types.h */
-       
        /* Multires */
        char multires_subdiv_type;
        char pad2[5];
-       
        /* Skeleton generation */
        short skgen_resolution;
        float skgen_threshold_internal;
        char  skgen_postpro_passes;
        char  skgen_subdivisions[3];
        char  skgen_multi_level;
-       
        /* Skeleton Sketching */
        struct Object *skgen_template;
        char bone_sketching;
index 3fc753d0578fe409207d7b0da3f6d09c84b4f377,d2eef1cdd43dd5f68aefbdbcb8fc13d492ea7350..359b1e4ee00f6fdc17c8b801e9e1e5b99edbb33c
@@@ -1780,7 -1780,7 +1780,7 @@@ static void rna_def_unified_paint_setti
                                 "Instead of per-brush strength, the strength is shared across brushes");
  
        /* unified paint settings that override the equivalent settings
-          from the active brush */
+        * from the active brush */
        prop = RNA_def_property(srna, "size", PROP_INT, PROP_DISTANCE);
        RNA_def_property_int_funcs(prop, NULL, "rna_UnifiedPaintSettings_size_set", NULL);
        RNA_def_property_range(prop, 1, MAX_BRUSH_PIXEL_RADIUS*10);
@@@ -1905,19 -1905,6 +1905,19 @@@ void rna_def_render_layer_common(Struct
        if (scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_Scene_glsl_update");
        else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
  
 +      prop = RNA_def_property(srna, "layers_exclude", PROP_BOOLEAN, PROP_LAYER);
 +      RNA_def_property_boolean_sdna(prop, NULL, "lay_exclude", 1);
 +      RNA_def_property_array(prop, 20);
 +      RNA_def_property_ui_text(prop, "Exclude Layers", "Exclude scene layers from having any influence");
 +      if (scene) RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, "rna_Scene_glsl_update");
 +      else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 +
 +      if(scene) {
 +              prop = RNA_def_property(srna, "samples", PROP_INT, PROP_UNSIGNED);
 +              RNA_def_property_ui_text(prop, "Samples", "Override number of render samples for this render layer, 0 will use the scene setting");
 +              RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
 +      }
 +
        /* layer options */
        prop = RNA_def_property(srna, "use", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "layflag", SCE_LAY_DISABLE);
index faf14e62564df22f53e05e851f4eb616ba0640a5,c3a46c3964319b9b4112f145be5064811ffcfd57..85adf5247177cba017bc34661df5e61a48d549d3
@@@ -168,8 -168,8 +168,8 @@@ void rna_trackingTrack_name_set(Pointer
        BLI_strncpy(track->name, value, sizeof(track->name));
  
        /* TODO: it's a bit difficult to find list track came from knowing just
-                movie clip ID and MovieTracking structure, so keep this naive
-                        search for a while */
+        *       movie clip ID and MovieTracking structure, so keep this naive
+        *       search for a while */
        if (BLI_findindex(tracksbase, track) < 0) {
                MovieTrackingObject *object = tracking->objects.first;
  
@@@ -607,12 -607,6 +607,12 @@@ static void rna_def_trackingSettings(Bl
        RNA_def_property_ui_text(prop, "Show Expanded", "Show the expanded in the user interface");
        RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1);
  
 +      /* solver settings */
 +      prop = RNA_def_property(srna, "use_tripod_solver", PROP_BOOLEAN, PROP_NONE);
 +      RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
 +      RNA_def_property_boolean_sdna(prop, NULL, "motion_flag", TRACKING_MOTION_TRIPOD);
 +      RNA_def_property_ui_text(prop, "Tripod Motion", "Tracking footage is shooted by tripod camera and should use special sovler for this");
 +
        /* limit frames */
        prop = RNA_def_property(srna, "default_frames_limit", PROP_INT, PROP_NONE);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
index 4f066d9f1ad32e537048e489a13d6594c2fa8cce,ae236da6952b823b25c4cda09bf3541d6826dd33..62b9c4f4e66de275a2e3cf5562a3750911c2e8a4
@@@ -482,14 -482,15 +482,15 @@@ static void rna_def_userdef_theme_ui_st
        RNA_def_property_struct_type(prop, "ThemeFontStyle");
        RNA_def_property_ui_text(prop, "Panel Style", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
- /*    (not used yet)
+       /*      (not used yet) */
+ #if 0
        prop= RNA_def_property(srna, "group_label", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_pointer_sdna(prop, NULL, "grouplabel");
        RNA_def_property_struct_type(prop, "ThemeFontStyle");
        RNA_def_property_ui_text(prop, "Group Label Font", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
- */
+ #endif
        prop = RNA_def_property(srna, "widget_label", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_pointer_sdna(prop, NULL, "widgetlabel");
@@@ -2002,7 -2003,6 +2003,7 @@@ static void rna_def_userdef_theme_space
        RNA_def_struct_ui_text(srna, "Theme Clip Editor", "Theme settings for the Movie Clip Editor");
  
        rna_def_userdef_theme_spaces_main(srna);
 +      rna_def_userdef_theme_spaces_list_main(srna);
  
        prop = RNA_def_property(srna, "marker_outline", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "marker_outline");
        RNA_def_property_range(prop, 0, 255);
        RNA_def_property_ui_text(prop, "Handle Vertex Size", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 +
 +      prop = RNA_def_property(srna, "strips", PROP_FLOAT, PROP_COLOR_GAMMA);
 +      RNA_def_property_float_sdna(prop, NULL, "strip");
 +      RNA_def_property_array(prop, 3);
 +      RNA_def_property_ui_text(prop, "Strips", "");
 +      RNA_def_property_update(prop, 0, "rna_userdef_update");
 +
 +      prop = RNA_def_property(srna, "strips_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
 +      RNA_def_property_float_sdna(prop, NULL, "strip_select");
 +      RNA_def_property_array(prop, 3);
 +      RNA_def_property_ui_text(prop, "Strips Selected", "");
 +      RNA_def_property_update(prop, 0, "rna_userdef_update");
  }
  
  static void rna_def_userdef_themes(BlenderRNA *brna)
@@@ -2908,7 -2896,7 +2909,7 @@@ static void rna_def_userdef_system(Blen
                {28, "SERBIAN_LATIN", 0, "Serbian latin (Srpski latinica)", "sr_RS@latin"},
                { 7, "SWEDISH", 0, "Swedish (Svenska)", "sv_SE"},
                {30, "TURKISH", 0, "Turkish (Türkçe)", "tr_TR"},
- /*            {18, "UKRAINIAN", 0, "Ukrainian (Український)", "uk_UA"},*/ /* XXX No po's yet. */
+               {18, "UKRAINIAN", 0, "Ukrainian (Український)", "uk_UA"},
                { 0, NULL, 0, NULL, NULL}};
  
  #ifdef WITH_CYCLES