Amarok-git

  •  
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
one more typo fix
one more typo fix

fix typo, add space at the end of the line
fix typo, add space at the end of the line

Prevent crash when uninitialized.…
Prevent crash when uninitialized.

BUG:292392

FIXED_In:2.6

Fixe syntax error…
Fixe syntax error

Escaping special caracters in a link in a dialog text, silly me.

Add better information to the LikeBack dialog…
Add better information to the LikeBack dialog

Added a line explaining that LikeBack is not a support tool.

Fix crash when remounting UMS.…
Fix crash when remounting UMS.

Fix crash when a device holding a UmsCollection is mounted again after an unmount without removing the device in between.

The crash occours because the QSharedPointer m_mc is cleared during an unmount but not initialized when mounted again. I fixed this issue by initializing m_mc in the init-method and not in the constructor.

Patch by Volker Christian

BUG:289751

FIXED-IN:2.6

REVIEW:103774

FindMySQLAmarok.cmake: do not rely on mysql_config --variable=...…
FindMySQLAmarok.cmake: do not rely on mysql_config --variable=...

As least mysql 5.1.* doesn't support this syntax and emits usage

information when called, which is then feed into MYSQL_INCLUDE_DIR

which in turn makes very funny output when -Wmissing-include-dirs is

passed to gcc. This has been reported in [1] and further discussion

about this was at [2].

[1] http://mail.kde.org/pipermail/amarok-devel/2011-December/009663.html

[2] http://mail.kde.org/pipermail/amarok-devel/2011-December/009668.html

MYSQL_INCLUDE_DIR is now found by looking up mysql.h in a predefined

list of directories (not nice, but works).

Patch author is Christophe Giboudeaux, comment form Matej Laitl follows:

It was suggested that Amarok should use FindMySQL.cmake from kdelibs

that doesn't call mysql_config at all, but I've found that at least

call to mysql_config --libs cannot be easily avoided without

hard-coding that MySQL depends on ssl, pthread, crypt libraries to

Amarok.

    • -13
    • +11
    /cmake/modules/FindMySQLAmarok.cmake
Bump the taglib requirement. commit 717342ed includes taglib/flacpicture.h which is not in Taglib 1.6…
Bump the taglib requirement. commit 717342ed includes taglib/flacpicture.h which is not in Taglib 1.6

REVIEW: 103781

Fix crash when cagibi is not installed
Fix crash when cagibi is not installed

fix typos of UserBase authors, re-sync
fix typos of UserBase authors, re-sync

Sync documentation with UserBase.
Sync documentation with UserBase.

    • binary
    /doc/Icon-action-dynamic-amarok.png
    • binary
    /doc/Icon-document-export.png
    • binary
    /doc/Icon-document-import.png
    • binary
    /doc/Icon-document-new.png
    • binary
    /doc/Icon-document-properties.png
    • binary
    /doc/Icon-edit-clear-list.png
    • binary
    /doc/Icon-edit-clear-locationbar-rtl.png
  1. … 240 more files in changeset.
SVN_SILENT made messages (.desktop file)
SVN_SILENT made messages (.desktop file)

Fix crash in Meta::MediaDeviceHandler::setupAlbumMap() (my bad)…
Fix crash in Meta::MediaDeviceHandler::setupAlbumMap() (my bad)

Thanks for your report, jlimberger@gmail.com, I made a mistake when

refactoring other code in Amarok.

BUG: 291968

Fix lyrics autorefresh in some cases.…
Fix lyrics autorefresh in some cases.

There were some issues mostly when playing streams. Lyrics would stuck

with empty text and wouldn't autorefresh until the track was changed or

manually refreshed. That's because cachedLyrics() is always empty for

streams. Therefore it makes sense to additionally check if either artist

or track title have changed as well.

Author: Modestas Vainius

REVIEW: 102110

Update Amarok to work with Cagibi >= 0.2.0 D-BUS API…
Update Amarok to work with Cagibi >= 0.2.0 D-BUS API

Cagibi 0.2.0 changed the D-BUS API including method locations and the return format of deviceDetails.

At the same time, since Amarok still has KDE 4.4 as the lowest requirement, Cagibi 0.1.0 compatibility is required.

This patch adds support for both versions

Author: Nikhil Shantanu Marathe

REVIEW: 102384

Update playlist selection at appropriate time when text changed in search…
Update playlist selection at appropriate time when text changed in search

When "show only matches" is enabled the listview tries to select the track

and emit a signal about whether or not it matched before the proxy timeout

has triggered the update. This happens to work anyway when additional

keystrokes are narrowing the results but causes problems when I typo. For

example, in my play list, "laz" returns 15 results and "lazz" returns 0.

If I then backspace the second "z", it doesn't select the top track and

the lineedit widget still appears in red.

This is a fairly direct solution: moving the relevant selection code to

the timeout handler with some member vars to store the required arguments.

If there's a better way to go about it please let me know and I'll try to

bring it up to scratch.

Author: Thomas Karpiniec

REVIEW: 101974

    • -13
    • +22
    /src/playlist/view/listview/PrettyListView.cpp
    • -0
    • +4
    /src/playlist/view/listview/PrettyListView.h
Line feed nedeed because the label makes window too wide…
Line feed nedeed because the label makes window too wide

Author: Pavel Punegov

REVIEW: 103298

Add an absolute date filter…
Add an absolute date filter

Author: Daniel Faust

REVIEW: 103546

    • -14
    • +103
    /src/dialogs/EditFilterDialog.cpp
    • -58
    • +156
    /src/widgets/MetaQueryWidget.cpp
Prevent FavoredRandomTrackNavigator choosing files chosen very recently…
Prevent FavoredRandomTrackNavigator choosing files chosen very recently

Author: Brendon Higgins

BUG: 244442

FIXED-IN: 2.6

REVIEW: 101836

Possibility to give an UMS-Collaction a descriptive name…
Possibility to give an UMS-Collaction a descriptive name

Author: Volker Christian

REVIEW: 103736

CollectionLocation: make associated collection pointer non-const…
CollectionLocation: make associated collection pointer non-const

CollectionLocation is used to copy/move/delete tracks from collection,

it is irrational that it would point to _constant_ parentCollection.

Also make Collection::location() non const, same rationale. This allows

to get rid of a fair bunch (well, 7) of const_casts.

_All_ places where there methods/arguments/attributes are updated to

reflect the change (even ones that would compile without changing).

Furthermore {DatabaseCollection,SqlCollection}::is{Writable,Organizable}

can use the default implementation, which is tweaked to be null pointer

safe.

Many classes that subclass CollectionLocation called its default

constructor, this is now fixed to call its

CollectionLocation( Collection *parentCollection ) constructor so that

default implementation of CollectionLocation::collection() works.

(UmsCollectionLocation even introduced its own ::umsCollection() method

probably because generic collection() did not work (surprise), it is

removed in favor of default ::collection() implementation)

    • -3
    • +3
    /src/browsers/CollectionTreeItemModel.cpp
    • -0
    • +1
    /src/browsers/filebrowser/FileView.cpp
  1. … 27 more files in changeset.
CollectionLocation.h: document {copyUrlsTo,removeUrlsFrom}Collection…
CollectionLocation.h: document {copyUrlsTo,removeUrlsFrom}Collection

Tell what the implementation should call.

MetaFile: guess album artist as in SQL collection scanner, compilations…
MetaFile: guess album artist as in SQL collection scanner, compilations

Call albumArtist = ArtistHelper::bestGuessAlbumArtist( albumArtist,

artist, genre, composer ); afer the data are read from file tags.

This makes album artist field consistent for tracks in Local collection

and tracks in file browser or drag & dropped to Amarok playlist, but it

has some downsides:

* Amarok will essentially lie about what album artist is assigned to a

track, most notably will replace empty album artist by track artist

and will replace "Various Artists" by empty artist.

* Editing album artist will be strange in corner cases: in particular

if user sets album artist to "Various Artists", it will be written

to file tags as-is, but displayed as empty album artist. Other case

would be when user sets album artist to empty string, but this is

currently prevented due to a bug/feature in TagDialog.

(every occurrence of "Various Artists" also accepts localized version

of the string)

Above change is needed for upcoming "MemoryCollection: use also album

artist as identifying key in album map" change for UmsCollection, but

if someone opposes, similar change can be made on UmsCollection level.

Also, implement MetaFile::FileAlbum isCompilation() which is now easy

as it can return albumArtist.isEmpty()

DIGEST: unify album artist handling in Amarok

MetaFile::Track: simplify isPlayable(), isEditable(), fix tests…
MetaFile::Track: simplify isPlayable(), isEditable(), fix tests

QFileInfo is a nice class, use it. The testmetafiletrack failed when

run as root, because it sets permissions of a test file to 0x000 and

then asserts on !track.isEditable(), but for root every file is

editable regardless of its permissions. Skip this one assert is such

case. (when the file is writeable even with no permission bits set)

MemoryCollection: use also album artist as identifying key in album map…
MemoryCollection: use also album artist as identifying key in album map

This has some far-reaching consequences which I believe are only

positive, most notably Amarok is able to differentiate between 2 albums

with same name but different album artists in USB Mass Storage

collection and in "new" iPod collection. This unifies album artist

handling across MemoryCollection and SqlCollection, 2 major collection

storage implementations in Amarok.

Technically, AlbumMap is changed from:

typedef QMap<QString, Meta::AlbumPtr> AlbumMap;

to:

class AlbumMap : public QMap<Meta::AlbumKey, Meta::AlbumPtr>

with insert(), remove(), value(), contains() QMap methods hidden and

reimplemented for convenience and to prevent coding mistakes. (you no

longer can add album under wrong key)

This change is tested to work with new iPod collection, UMS collection

(depends on previous "MetaFile: guess album artist as in SQL collection

scanner, compilations"), all tests still pass.

Only area that received just very basic testing are online

service collections that are also affected by this change.

Docstrings and comments extended thanks to suggestions by Maximilian

Kossick.

DIGEST: Albums with same name but different album artist are now

correctly separated in USB Mass Storage, iPod and various

online service collections.

REVIEW: 103715

    • -2
    • +12
    /src/core/meta/support/MetaKeys.cpp
  1. … 6 more files in changeset.
Update changelog for BookmarkTriangle fix. The fix was submitted by Charles Reiss. Many thanks.
Update changelog for BookmarkTriangle fix. The fix was submitted by Charles Reiss. Many thanks.

Avoid using deleted BookmarkTriangles or null BookmarkPopups…
Avoid using deleted BookmarkTriangles or null BookmarkPopups

BUG: 283753

FIXED-IN: 2.5

Remove collections/db/DatabaseMeta.h entirely. Was unused.…
Remove collections/db/DatabaseMeta.h entirely. Was unused.

Only ScanResultProcessor.cpp included the file, but it didn't really

used it. 570 lines of code less, yay!

DIGEST: optimization: Dead code removal

Remove setUidUrl from EditCapability. Unused and uneeded…
Remove setUidUrl from EditCapability. Unused and uneeded

With additional hints from Matěj

    • -7
    • +0
    /src/core-impl/meta/proxy/MetaProxy.cpp
    • -2
    • +0
    /src/core/capabilities/EditCapability.h
CMake: Move occurence of OPENGL_INCLUDE_DIR var
CMake: Move occurence of OPENGL_INCLUDE_DIR var