- if ( (0 == mCurrentStatus.length || STOP == mCurrentStatus.state) // stopped or null
- || // same track as current playing
- (mCurrentStatus.length == length && !mCurrentStatus.title.isNull() && !title.isNull() && 0 == QString::compare(mCurrentStatus.title, title)) ){
- mCurrentStatus.newtrack = false;
+ if (mIsFirstStatusCall) {
+ mIsFirstStatusCall = false;
+ mCurrentStatus.newtrack = true; // unneeded but self-documenting
+ }
+ else if (STOP == oldState && STOP != mCurrentStatus.state) {
+ mCurrentStatus.newtrack = true; // unneeded but self-documenting
+ }
+ else {
+ if ( (0 == mCurrentStatus.length || STOP == mCurrentStatus.state) // stopped or null
+ || // same track as current playing
+ (mCurrentStatus.length == length && !mCurrentStatus.title.isNull() && !title.isNull() && 0 == QString::compare(mCurrentStatus.title, title)) ){
+ mCurrentStatus.newtrack = false;
+ }