| 
									
										
										
										
											2017-04-27 20:18:03 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2015-07-25 22:08:25 -07:00
										 |  |  | #ifndef PREFSMACROS_H
 | 
					
						
							|  |  |  | #define PREFSMACROS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define SB(V, B) s.setValue(V, (int)(B->isChecked() ? 1 : 0))
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define GET_UNIT(name, field, f, t)                                 \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));                                 \ | 
					
						
							|  |  |  | 	if (v.isValid())                                            \ | 
					
						
							|  |  |  | 		prefs.units.field = (v.toInt() == (t)) ? (t) : (f); \ | 
					
						
							|  |  |  | 	else                                                        \ | 
					
						
							|  |  |  | 		prefs.units.field = default_prefs.units.field | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-06 13:44:22 -07:00
										 |  |  | #define GET_UNIT3(name, field, f, l, type)                          \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));                                 \ | 
					
						
							|  |  |  | 	if (v.isValid() && v.toInt() >= (f) && v.toInt() <= (l))    \ | 
					
						
							|  |  |  | 		prefs.units.field = (type)v.toInt();                \ | 
					
						
							|  |  |  | 	else                                                        \ | 
					
						
							|  |  |  | 		prefs.units.field = default_prefs.units.field | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-25 09:22:19 +01:00
										 |  |  | #define GET_UNIT_BOOL(name, field)                      \
 | 
					
						
							| 
									
										
										
										
											2017-11-21 15:52:01 +01:00
										 |  |  | 	v = s.value(QString(name));                     \ | 
					
						
							|  |  |  | 	if (v.isValid())                                \ | 
					
						
							| 
									
										
										
										
											2017-11-25 09:22:19 +01:00
										 |  |  | 		prefs.units.field = v.toBool();         \ | 
					
						
							| 
									
										
										
										
											2017-11-21 15:52:01 +01:00
										 |  |  | 	else                                            \ | 
					
						
							| 
									
										
										
										
											2017-10-09 08:46:18 +02:00
										 |  |  | 		prefs.units.field = default_prefs.units.field | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-25 22:08:25 -07:00
										 |  |  | #define GET_BOOL(name, field)                           \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));                     \ | 
					
						
							|  |  |  | 	if (v.isValid())                                \ | 
					
						
							|  |  |  | 		prefs.field = v.toBool();               \ | 
					
						
							|  |  |  | 	else                                            \ | 
					
						
							|  |  |  | 		prefs.field = default_prefs.field | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define GET_DOUBLE(name, field)             \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));         \ | 
					
						
							|  |  |  | 	if (v.isValid())                    \ | 
					
						
							|  |  |  | 		prefs.field = v.toDouble(); \ | 
					
						
							|  |  |  | 	else                                \ | 
					
						
							|  |  |  | 		prefs.field = default_prefs.field | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define GET_INT(name, field)             \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));      \ | 
					
						
							|  |  |  | 	if (v.isValid())                 \ | 
					
						
							|  |  |  | 		prefs.field = v.toInt(); \ | 
					
						
							|  |  |  | 	else                             \ | 
					
						
							|  |  |  | 		prefs.field = default_prefs.field | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define GET_ENUM(name, type, field)                 \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));                 \ | 
					
						
							|  |  |  | 	if (v.isValid())                            \ | 
					
						
							|  |  |  | 		prefs.field = (enum type)v.toInt(); \ | 
					
						
							|  |  |  | 	else                                        \ | 
					
						
							|  |  |  | 		prefs.field = default_prefs.field | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-25 09:22:19 +01:00
										 |  |  | #define GET_INT_DEF(name, field, defval)                                 \
 | 
					
						
							| 
									
										
										
										
											2015-07-25 22:08:25 -07:00
										 |  |  | 	v = s.value(QString(name));                                      \ | 
					
						
							|  |  |  | 	if (v.isValid())                                                 \ | 
					
						
							| 
									
										
										
										
											2017-11-25 09:22:19 +01:00
										 |  |  | 		prefs.field = v.toInt();                                 \ | 
					
						
							| 
									
										
										
										
											2015-07-25 22:08:25 -07:00
										 |  |  | 	else                                                             \ | 
					
						
							|  |  |  | 		prefs.field = defval | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define GET_TXT(name, field)                                             \
 | 
					
						
							|  |  |  | 	v = s.value(QString(name));                                      \ | 
					
						
							|  |  |  | 	if (v.isValid())                                                 \ | 
					
						
							|  |  |  | 		prefs.field = strdup(v.toString().toUtf8().constData()); \ | 
					
						
							|  |  |  | 	else                                                             \ | 
					
						
							| 
									
										
										
										
											2017-11-25 09:22:19 +01:00
										 |  |  | 		prefs.field = copy_string(default_prefs.field) | 
					
						
							| 
									
										
										
										
											2015-07-25 22:08:25 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define SAVE_OR_REMOVE_SPECIAL(_setting, _default, _compare, _value)     \
 | 
					
						
							|  |  |  | 	if (_compare != _default)                                        \ | 
					
						
							|  |  |  | 		s.setValue(_setting, _value);                            \ | 
					
						
							|  |  |  | 	else                                                             \ | 
					
						
							|  |  |  | 		s.remove(_setting) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define SAVE_OR_REMOVE(_setting, _default, _value)                       \
 | 
					
						
							|  |  |  | 	if (_value != _default)                                          \ | 
					
						
							|  |  |  | 		s.setValue(_setting, _value);                            \ | 
					
						
							|  |  |  | 	else                                                             \ | 
					
						
							|  |  |  | 		s.remove(_setting) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // PREFSMACROS_H
 | 
					
						
							|  |  |  | 
 |