mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-06 14:16:32 +02:00
* More reliable and easier to read version check. Moved to TomahawkUtils, too.
This commit is contained in:
@@ -151,6 +151,7 @@ AtticaManager::pathFromId( const QString& resolverId ) const
|
|||||||
return m_resolverStates.value( resolverId ).scriptPath;
|
return m_resolverStates.value( resolverId ).scriptPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AtticaManager::uploadRating( const Content& c )
|
AtticaManager::uploadRating( const Content& c )
|
||||||
{
|
{
|
||||||
@@ -177,6 +178,7 @@ AtticaManager::uploadRating( const Content& c )
|
|||||||
emit resolverStateChanged( c.id() );
|
emit resolverStateChanged( c.id() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
AtticaManager::userHasRated( const Content& c ) const
|
AtticaManager::userHasRated( const Content& c ) const
|
||||||
{
|
{
|
||||||
@@ -247,6 +249,7 @@ AtticaManager::resolverIconFetched()
|
|||||||
m_resolverStates[ resolverId ].pixmap = icon;
|
m_resolverStates[ resolverId ].pixmap = icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AtticaManager::syncServerData()
|
AtticaManager::syncServerData()
|
||||||
{
|
{
|
||||||
@@ -273,7 +276,7 @@ AtticaManager::syncServerData()
|
|||||||
if ( ( r.state == Installed || r.state == NeedsUpgrade ) &&
|
if ( ( r.state == Installed || r.state == NeedsUpgrade ) &&
|
||||||
!upstream.version().isEmpty() )
|
!upstream.version().isEmpty() )
|
||||||
{
|
{
|
||||||
if ( newerVersion( r.version, upstream.version() ) )
|
if ( TomahawkUtils::newerVersion( r.version, upstream.version() ) )
|
||||||
{
|
{
|
||||||
m_resolverStates[ id ].state = NeedsUpgrade;
|
m_resolverStates[ id ].state = NeedsUpgrade;
|
||||||
QMetaObject::invokeMethod( this, "upgradeResolver", Qt::QueuedConnection, Q_ARG( Attica::Content, upstream ) );
|
QMetaObject::invokeMethod( this, "upgradeResolver", Qt::QueuedConnection, Q_ARG( Attica::Content, upstream ) );
|
||||||
@@ -283,57 +286,6 @@ AtticaManager::syncServerData()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
AtticaManager::newerVersion( const QString& older, const QString& newer ) const
|
|
||||||
{
|
|
||||||
// Version comparison: turns X.Y.Z into XYZ (adding 0 to X.Y. and 00 to X respectively)
|
|
||||||
if ( older.isEmpty() || newer.isEmpty() )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
QString oldDigits = older;
|
|
||||||
oldDigits = oldDigits.replace( ".", "" );
|
|
||||||
int oldDigitsInt;
|
|
||||||
|
|
||||||
if ( oldDigits.size() == 1 )
|
|
||||||
{
|
|
||||||
oldDigitsInt = oldDigits.append("00").toInt();
|
|
||||||
}
|
|
||||||
else if ( oldDigits.size() == 2 )
|
|
||||||
{
|
|
||||||
oldDigitsInt = oldDigits.append("0").toInt();
|
|
||||||
}
|
|
||||||
else if ( oldDigits.size() == 3 )
|
|
||||||
{
|
|
||||||
oldDigitsInt = oldDigits.toInt();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
|
|
||||||
QString newDigits = newer;
|
|
||||||
newDigits = newDigits.replace( ".", "");
|
|
||||||
int newDigitsInt;
|
|
||||||
|
|
||||||
if ( newDigits.size() == 1 )
|
|
||||||
{
|
|
||||||
newDigitsInt = newDigits.append("00").toInt();
|
|
||||||
}
|
|
||||||
else if ( newDigits.size() == 2 )
|
|
||||||
{
|
|
||||||
newDigitsInt = newDigits.append("0").toInt();
|
|
||||||
}
|
|
||||||
else if ( newDigits.size() == 3 )
|
|
||||||
{
|
|
||||||
newDigitsInt = newDigits.toInt();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Do the comparison
|
|
||||||
if ( newDigitsInt > oldDigitsInt )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AtticaManager::installResolver( const Content& resolver )
|
AtticaManager::installResolver( const Content& resolver )
|
||||||
@@ -354,6 +306,7 @@ AtticaManager::installResolver( const Content& resolver )
|
|||||||
job->start();
|
job->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AtticaManager::upgradeResolver( const Content& resolver )
|
AtticaManager::upgradeResolver( const Content& resolver )
|
||||||
{
|
{
|
||||||
|
@@ -112,7 +112,6 @@ private slots:
|
|||||||
void resolverIconFetched();
|
void resolverIconFetched();
|
||||||
|
|
||||||
void syncServerData();
|
void syncServerData();
|
||||||
bool newerVersion( const QString& older, const QString& newer ) const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString extractPayload( const QString& filename, const QString& resolverId ) const;
|
QString extractPayload( const QString& filename, const QString& resolverId ) const;
|
||||||
|
@@ -514,6 +514,35 @@ setNam( QNetworkAccessManager* nam, bool noMutexLocker )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
newerVersion( const QString& oldVersion, const QString& newVersion )
|
||||||
|
{
|
||||||
|
if ( oldVersion.isEmpty() || newVersion.isEmpty() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QStringList oldVList = oldVersion.split( ".", QString::SkipEmptyParts );
|
||||||
|
QStringList newVList = newVersion.split( ".", QString::SkipEmptyParts );
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
foreach ( const QString& nvPart, newVList )
|
||||||
|
{
|
||||||
|
if ( i + 1 > oldVList.count() )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
int nviPart = nvPart.toInt();
|
||||||
|
int oviPart = oldVList.at( i++ ).toInt();
|
||||||
|
|
||||||
|
if ( nviPart > oviPart )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if ( nviPart < oviPart )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
crash()
|
crash()
|
||||||
{
|
{
|
||||||
@@ -521,6 +550,7 @@ crash()
|
|||||||
*a = 1;
|
*a = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// taken from util/fileutils.cpp in kdevplatform
|
// taken from util/fileutils.cpp in kdevplatform
|
||||||
bool
|
bool
|
||||||
removeDirectory( const QString& dir )
|
removeDirectory( const QString& dir )
|
||||||
|
@@ -78,6 +78,7 @@ namespace TomahawkUtils
|
|||||||
DLLEXPORT QString ageToString( const QDateTime& time, bool appendAgoString = false );
|
DLLEXPORT QString ageToString( const QDateTime& time, bool appendAgoString = false );
|
||||||
DLLEXPORT QString filesizeToString( unsigned int size );
|
DLLEXPORT QString filesizeToString( unsigned int size );
|
||||||
DLLEXPORT QString extensionToMimetype( const QString& extension );
|
DLLEXPORT QString extensionToMimetype( const QString& extension );
|
||||||
|
DLLEXPORT bool newerVersion( const QString& oldVersion, const QString& newVersion );
|
||||||
|
|
||||||
DLLEXPORT NetworkProxyFactory* proxyFactory( bool noMutexLocker = false );
|
DLLEXPORT NetworkProxyFactory* proxyFactory( bool noMutexLocker = false );
|
||||||
DLLEXPORT QNetworkAccessManager* nam();
|
DLLEXPORT QNetworkAccessManager* nam();
|
||||||
|
Reference in New Issue
Block a user