-
Notifications
You must be signed in to change notification settings - Fork 9
/
README
139 lines (120 loc) · 6.86 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
========================================================================
VarTypes
Author: Stefan Zickler <http://szickler.net>, (C) 2007-2015
Available at: https://github.com/szi/vartypes
(Formerly at: http://code.google.com/p/vartypes/)
========================================================================
This software is free: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License Version 3,
as published by the Free Software Foundation.
This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
Version 3 in the file COPYING that came with this distribution.
If not, see <http://www.gnu.org/licenses/>.
========================================================================
=======================================================================
Changelog:
12/23/15 - v0.8 - Fixed Issue #2 (VarIntVal constructor was checking
_val before it was set)
- Made shared_ptr explicitly use std::tr1 namespace
- Cleanup in VarTypesFactory
- Added import/export options
- More coherent use of shared_ptr
- Added VarAny wrapper
- Added runtime loader interface, for at-runtime
loading of vartype .so's (optional feature)
- Changed emit to Q_EMIT
- Integrated example into CMakeLists.txt and removed
.pro build file.
06/10/11 - v0.7 - Changed to shared_ptr model for all VarTypes.
- VarTypes now requires the tr1 C++ extensions.
10/25/10 - v0.6 - Re-licensed from GPL to LGPL, so VarTypes can now be
used in commercial applications.
- Added CMake files for building shared library.
- Removed directory prefixes from include directives to
be compliant with cmake's library installation.
- Qt is now a requirement for compilation. Removed all
VDATA_NO_QT statements.
12/04/09 - v0.5 - The VarTypes system now lives in the "VarTypes"
namespace.
- renamed "VarData" class to "VarType"
- restructured code to separate between a full "VarType"
and its containing raw data value "VarVal",
allowing better integration in projects
where pure high-performance data-types are required
without the VarData overhead (caused by e.g.
mutexes and the string-label + render-flags
associated with each VarData type).
- VarTypes are now template-instanciated through
"VarTypeTemplate"
- added the VarTypesFactory class, allowing easier,
single-point creation of custom user-defined VarTypes
by inheriting the VarTypesFactory.
- added the clone() and cloneDeep() operators for
all VarVals.
- added binary string store load interface.
- renamed all enumerations using more reasonable
conventions
- changed "renderFlags" to just "Flags" since
they control much more than just render behavior.
- changed string handling in XML i/o for
code safety improvements
- compilation should now work in windows
4/16/09 - v0.4 - added multi-item selection type
- added VarNotifier class to catch change-events
for entire sub-trees
- fixed several bugs
- improved visualization:
- used persistent editors where applicable
- bools now based on checkboxes
- moves delegate functionality into respective
type classes
10/31/08 - v0.3 - added string enums, fixed various performance bugs
- added doxygen-style headers to files and classes
11/13/07 - v0.2 - basic thread-safety added
- added VarQWidget and VarTrigger (buttons) types
- added persistent editor flag
- added no-load and no-save flags
9/27/07 - v0.1 - first release
========================================================================
About: VarTypes is a feature-rich, object-oriented framework
for managing variables in C++ / QT4.
Features: VarTypes allows hierarchical organization, thread-safety,
load/store to/from xml, QT4-based signals, QT4-based model/view
visualization.
VarTypes aims to make it easy for application developers to
integrate automatic settings loading/storage, even for complex
trees of settings. At the same time it allows a user to comfortably
edit such settings in real-time without any risks of concurrency
problems.
Among supported base types are int, bool, double, string,
string enumerations, lists, binary data, and triggers.
More complex types can be added easily by inheriting the
VarData base-class.
Requires: cmake, Qt >=4.5, C++ tr1 libraries (automatically supplied by
many modern compilers).
Usage: The VarTypes library can be built by running:
1) make
2) sudo make install
Note that cmake is required to build it.
An example including the QT4 GUI is located in the example/
directory. It is built automatically along with the library
(but is not installed as part of the install command).
To run the example:
build/vartype_example
All the interesting code on how to construct a vartree and
GUI is located in example/src/mainwindow.cpp
Files: vartypes/primitives/
includes all basic vartype-datastructures
vartypes/VarTypes.h
is the main header to include to make use of the system
vartypes/primitives/VarType.h
is the base-class of all vartypes
vartypes/gui/
includes all GUI related QT widgets.
vartypes/xml/
includes the XML file parser/writer which was written by
and is copyrighted by Frank Vanden Berghen.