Remove QGlib::String again. It sucks.
authorGeorge Kiagiadakis <kiagiadakis.george@gmail.com>
Sun, 4 Jul 2010 17:52:09 +0000 (20:52 +0300)
committerGeorge Kiagiadakis <kiagiadakis.george@gmail.com>
Sun, 4 Jul 2010 17:52:09 +0000 (20:52 +0300)
commit17ff96d61e02a15e3516d6b5232badef46a0811d
tree058ddee3b948c4cbbe2a5d190c6dd1113ccd28ba
parent3e8d7e31e0244f75af80f5f00b3eec4c1e2cd944
Remove QGlib::String again. It sucks.

From now on the following policy will apply:
- Any methods that need to take a string argument will take a const char*.
This is because native gstreamer functions also take a const char* and in most
cases the programmer just passes an ascii string literal, so there is no need
to copy it in some string class and then let gstreamer copy it again. QString
is out of the question in this case, since it copies and converts to utf16, only
to let the wrapper function copy it again and convert it back to ascii. In case
the programmer needs to pass a QString to such a function, he should first convert
it to utf8 with QString::toUtf8(). This will be documented later.
- Any methods that need to return a string should return a QString.
This is because: 1) we need to make sure that the programmer won't do anything stupid
with the string, such as not free it or hold a reference to a free()-ed string, so
we can't return char* like the C functions do. 2) Usually these strings are used
for display or comparison, so the programmer needs to have an encoding-safe way
to do that and this is what QString offers. Returning a QByteArray and forcing the
programmer to convert it to unicode is not a good option.
45 files changed:
src/CMakeLists.txt
src/QGlib/String [deleted file]
src/QGlib/closure.cpp
src/QGlib/global.h
src/QGlib/object.cpp
src/QGlib/object.h
src/QGlib/paramspec.cpp
src/QGlib/paramspec.h
src/QGlib/quark.cpp
src/QGlib/quark.h
src/QGlib/signal.cpp
src/QGlib/signal.h
src/QGlib/signalimpl_p.h
src/QGlib/string.cpp [deleted file]
src/QGlib/string.h [deleted file]
src/QGlib/string_p.h [new file with mode: 0644]
src/QGlib/type.cpp
src/QGlib/type.h
src/QGlib/value.cpp
src/QGlib/value.h
src/QGst/bin.cpp
src/QGst/bin.h
src/QGst/caps.cpp
src/QGst/caps.h
src/QGst/childproxy.cpp
src/QGst/childproxy.h
src/QGst/element.cpp
src/QGst/element.h
src/QGst/elementfactory.cpp
src/QGst/elementfactory.h
src/QGst/ghostpad.cpp
src/QGst/ghostpad.h
src/QGst/object.cpp
src/QGst/object.h
src/QGst/pad.cpp
src/QGst/pad.h
src/QGst/pipeline.cpp
src/QGst/pipeline.h
src/QGst/pluginfeature.cpp
src/QGst/pluginfeature.h
src/QGst/structure.cpp
src/QGst/structure.h
tests/childproxytest.cpp
tests/signalstest.cpp
tests/structuretest.cpp