mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
				synced 2023-10-19 15:58:31 +00:00 
			
		
		
		
	fixed bug that parameters with both dynamic tokens and relative width, height, posx or posy values are not parsed correctly
This commit is contained in:
		
							
								
								
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -241,4 +241,5 @@ Version 0.3.3 | |||||||
|  |  | ||||||
| - added viewelement <lastrecordings> with information about 5 newest | - added viewelement <lastrecordings> with information about 5 newest | ||||||
|   recordings in main menu |   recordings in main menu | ||||||
|  | - fixed bug that parameters with both dynamic tokens and relative width, | ||||||
|  |   height, posx or posy values are not parsed correctly | ||||||
|   | |||||||
| @@ -206,10 +206,27 @@ void cTemplatePixmap::ParseDynamicFunctionParameters(map <string,string> *string | |||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ReplaceWidthFunctions(); |     bool replacedWidth  = ReplaceWidthFunctions(); | ||||||
|     ReplaceHeightFunctions(); |     bool replacedHeight = ReplaceHeightFunctions(); | ||||||
|     ReplacePosXFunctions(); |     bool replacedPosX =   ReplacePosXFunctions(); | ||||||
|     ReplacePosYFunctions(); |     bool replacedPosY =   ReplacePosYFunctions(); | ||||||
|  |  | ||||||
|  |     if (!replacedWidth && !replacedHeight && !replacedPosX && !replacedPosY) | ||||||
|  |         return; | ||||||
|  |  | ||||||
|  |     InitIterator(); | ||||||
|  |     func = NULL; | ||||||
|  |     while(func = GetNextFunction()) { | ||||||
|  |         if (func->ParsedCompletely()) | ||||||
|  |             continue; | ||||||
|  |         func->SetStringTokens(stringTokens); | ||||||
|  |         func->SetIntTokens(intTokens); | ||||||
|  |         func->ParseParameters(); | ||||||
|  |         if (func->Updated()) | ||||||
|  |             func->CompleteParameters(); | ||||||
|  |         func->UnsetIntTokens(); | ||||||
|  |         func->UnsetStringTokens(); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| bool cTemplatePixmap::CalculateDrawPortSize(cSize &size, map < string, vector< map< string, string > > > *loopTokens) { | bool cTemplatePixmap::CalculateDrawPortSize(cSize &size, map < string, vector< map< string, string > > > *loopTokens) { | ||||||
| @@ -376,7 +393,8 @@ bool cTemplatePixmap::Ready(void) { | |||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cTemplatePixmap::ReplaceWidthFunctions(void) { | bool cTemplatePixmap::ReplaceWidthFunctions(void) { | ||||||
|  |     bool replaced = false; | ||||||
|     InitIterator(); |     InitIterator(); | ||||||
|     cTemplateFunction *func = NULL; |     cTemplateFunction *func = NULL; | ||||||
|     while(func = GetNextFunction()) { |     while(func = GetNextFunction()) { | ||||||
| @@ -397,14 +415,18 @@ void cTemplatePixmap::ReplaceWidthFunctions(void) { | |||||||
|                     func->SetWidth(type, label, funcWidth); |                     func->SetWidth(type, label, funcWidth); | ||||||
|                     if (func->Updated()) { |                     if (func->Updated()) { | ||||||
|                         func->CompleteParameters(); |                         func->CompleteParameters(); | ||||||
|  |                     } else { | ||||||
|  |                         replaced = true; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |     return replaced; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cTemplatePixmap::ReplaceHeightFunctions(void) { | bool cTemplatePixmap::ReplaceHeightFunctions(void) { | ||||||
|  |     bool replaced = false; | ||||||
|     InitIterator(); |     InitIterator(); | ||||||
|     cTemplateFunction *func = NULL; |     cTemplateFunction *func = NULL; | ||||||
|     while(func = GetNextFunction()) { |     while(func = GetNextFunction()) { | ||||||
| @@ -425,14 +447,18 @@ void cTemplatePixmap::ReplaceHeightFunctions(void) { | |||||||
|                     func->SetHeight(type, label, funcHeight); |                     func->SetHeight(type, label, funcHeight); | ||||||
|                     if (func->Updated()) { |                     if (func->Updated()) { | ||||||
|                         func->CompleteParameters(); |                         func->CompleteParameters(); | ||||||
|  |                     } else { | ||||||
|  |                         replaced = true; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |     return replaced; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cTemplatePixmap::ReplacePosXFunctions(void) { | bool cTemplatePixmap::ReplacePosXFunctions(void) { | ||||||
|  |     bool replaced = false; | ||||||
|     InitIterator(); |     InitIterator(); | ||||||
|     cTemplateFunction *func = NULL; |     cTemplateFunction *func = NULL; | ||||||
|     while(func = GetNextFunction()) { |     while(func = GetNextFunction()) { | ||||||
| @@ -454,15 +480,19 @@ void cTemplatePixmap::ReplacePosXFunctions(void) { | |||||||
|                         func->SetX(type, label, funcX); |                         func->SetX(type, label, funcX); | ||||||
|                         if (func->Updated()) { |                         if (func->Updated()) { | ||||||
|                             func->CompleteParameters(); |                             func->CompleteParameters(); | ||||||
|  |                         } else { | ||||||
|  |                             replaced = true; | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |     return replaced; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cTemplatePixmap::ReplacePosYFunctions(void) { | bool cTemplatePixmap::ReplacePosYFunctions(void) { | ||||||
|  |     bool replaced = false; | ||||||
|     InitIterator(); |     InitIterator(); | ||||||
|     cTemplateFunction *func = NULL; |     cTemplateFunction *func = NULL; | ||||||
|     while(func = GetNextFunction()) { |     while(func = GetNextFunction()) { | ||||||
| @@ -484,12 +514,15 @@ void cTemplatePixmap::ReplacePosYFunctions(void) { | |||||||
|                         func->SetY(type, label, funcY); |                         func->SetY(type, label, funcY); | ||||||
|                         if (func->Updated()) { |                         if (func->Updated()) { | ||||||
|                             func->CompleteParameters(); |                             func->CompleteParameters(); | ||||||
|  |                         } else { | ||||||
|  |                             replaced = true; | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |     return replaced; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cTemplatePixmap::Debug(void) { | void cTemplatePixmap::Debug(void) { | ||||||
|   | |||||||
| @@ -31,11 +31,11 @@ protected: | |||||||
|     int containerHeight; |     int containerHeight; | ||||||
|     cGlobals *globals; |     cGlobals *globals; | ||||||
|     //functions replacing {width(label)} and {height(label)} tokens |     //functions replacing {width(label)} and {height(label)} tokens | ||||||
|     void ReplaceWidthFunctions(void); |     bool ReplaceWidthFunctions(void); | ||||||
|     void ReplaceHeightFunctions(void); |     bool ReplaceHeightFunctions(void); | ||||||
|     //functions replacing {posx(label)} and {posy(label)} tokens |     //functions replacing {posx(label)} and {posy(label)} tokens | ||||||
|     void ReplacePosXFunctions(void); |     bool ReplacePosXFunctions(void); | ||||||
|     void ReplacePosYFunctions(void); |     bool ReplacePosYFunctions(void); | ||||||
|     //Get Scrolling Function |     //Get Scrolling Function | ||||||
|     cTemplateFunction *GetScrollFunction(void); |     cTemplateFunction *GetScrollFunction(void); | ||||||
| public: | public: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user