fixed loading of base64-encoded data being generated via Qt3-version of QDataStream-class
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@617 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2007-11-27 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* include/plugin.h:
|
||||
* include/base64.h:
|
||||
* src/lib/base64.cpp:
|
||||
fixed loading of base64-encoded data being generated via Qt3-version
|
||||
of QDataStream-class
|
||||
|
||||
2007-11-27 Javier Serrano Polo <jasp00/at/terra/dot/es>
|
||||
|
||||
* include/main_window.h:
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QString>
|
||||
|
||||
class QVariant;
|
||||
#include <QtCore/QVariant>
|
||||
|
||||
|
||||
namespace base64
|
||||
@@ -49,7 +48,8 @@ namespace base64
|
||||
memcpy( *_data, data.constData(), *_size );
|
||||
}
|
||||
QString encode( const QVariant & _data );
|
||||
QVariant decode( const QString & _b64 );
|
||||
QVariant decode( const QString & _b64,
|
||||
QVariant::Type _force_type = QVariant::Invalid );
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
desc( NULL )
|
||||
{
|
||||
const QList<QVariant> l =
|
||||
base64::decode( _dump_data ).
|
||||
base64::decode( _dump_data, QVariant::List ).
|
||||
toList();
|
||||
if( l.empty() )
|
||||
{
|
||||
|
||||
@@ -52,7 +52,7 @@ QString encode( const QVariant & _data )
|
||||
|
||||
|
||||
|
||||
QVariant decode( const QString & _b64 )
|
||||
QVariant decode( const QString & _b64, QVariant::Type _force_type )
|
||||
{
|
||||
char * dst = NULL;
|
||||
int dsize = 0;
|
||||
@@ -63,6 +63,12 @@ QVariant decode( const QString & _b64 )
|
||||
QDataStream in( &buf );
|
||||
QVariant ret;
|
||||
in >> ret;
|
||||
if( _force_type != QVariant::Invalid && ret.type() != _force_type )
|
||||
{
|
||||
buf.reset();
|
||||
in.setVersion( QDataStream::Qt_3_3 );
|
||||
in >> ret;
|
||||
}
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user