Bug 145490 - set double click for playlists as playlist switch
Summary: set double click for playlists as playlist switch
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: Playlists/Saved Playlists (show other bugs)
Version: 2.3-GIT
Platform: openSUSE Linux
: NOR wishlist
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-16 11:27 UTC by Maciej Pilichowski
Modified: 2013-06-27 18:35 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.8


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maciej Pilichowski 2007-05-16 11:27:27 UTC
Version:            (using KDE KDE 3.5.6)
Installed from:    SuSE RPMs

Ok, now I now that setting it to "append to current playlist" was intentional:
http://bugs.kde.org/show_bug.cgi?id=145468

so here is my wish -- please set it as to load playlist. 

Reasons:
* there is a perfect mouse system for appending -- drag&drop, it is already in KDE, it is natural
* with current behaviour there is no easy way (mouse only) to load playlist -- you have to RMB, then choose item from popup menu, so both LMB actions are in favor of only one function (append)
* the double LMB is the fastest thing you can do with mouse so it should be related to most common task -- here is the question is amarok primarily a composer or a player. The former sounds weird because there is no point in organizing playlists if you don't want to use them (right?)

So, my wish is -- please reconsider setting double LMB for playlist as "activate". It would be consistent with KDE and also with the playlist content pane (there, double LMB stands for "activate").
Comment 1 Matěj Laitl 2013-05-25 11:15:49 UTC
Git commit a43e7e6f5a14307f543e7807a8d2351af027635a by Matěj Laitl.
Committed on 23/05/2013 at 18:54.
Pushed by laitl into branch 'master'.

Make playlist-related actions consistent throughout Amarok code (behaviour change)

This commits boasts a couple of changes, starting with the
uncontroversial ones:

 1. The Playlist::AddOptions enum is extended with extended with
"convenience consistency" aliases:
    OnDoubleClickOnSelectedItems
    OnMiddleClickOnSelectedItems
    OnReturnPressedOnSelectedItems
    OnPlayMediaAction
    OnAppendToPlaylistAction
    OnReplacePlaylistAction
    OnQueueToPlaylistAction

...and all callers of PlaylistController::insertOptioned() are modified
to use one of these values instead of the "low-level" flags like
DirectPlay that are actually tested for in the insertOptioned()
implementation. This serves that we remain consistent across Amarok
from now on.

 2. The actual "low-level" enum values have been changed and
insertOptioned() was updated accordingly:
    a) PrependToQueue, which implies Queue, was added.
    b) StartPlay (start playing unless something is already playing)
       was removed. No caller uses it anymore (see below) and this was
       convoluted anyway, IMO.
    c) DirectPlay now implies PrependToQueue. This may seem strange,
       but the rationale is following: when you directplay just one
       track (which is the case 90% of the time), it is played
       immediately, and this should apply even when you add more
       tracks. PrependToQueue makes this possible without hacks and is
       invisible in case of just one track, because it is immediately
       popped from the queue. Plus it has a positive side-effect of
       inserting the track at a meaningful place (affects what track is
       played next).
    d) LoadAndPlay and LoadAndPlayImmediatelly were removed, because
       they were replaces with consistency aliases.

 3. Thanks to 2b), 2c) and implementation changes, the actual action
    performed upon a certain trigger no longer depends on any state.
    The state of playlist search no longer affects whether a track will
    be played in case of DirectPlay.

 4. insertOptioned() was cleaned up and changed, for example it tries
    to choose the best place to insert tracks according to
    PrependToQueue or Queue.

 5. The convenience aliases were assigned as follows:

    OnDoubleClickOnSelectedItems = OnReturnPressedOnSelectedItems =
    = OnPlayMediaAction = DirectPlay.
    OnMiddleClickOnSelectedItems = OnAppendToPlaylistAction = Append (0).
    OnReplacePlaylistAction = Replace (no-brainer).
    OnQueueToPlaylistAction = Queue (no-brainer).

    These aren't of course set in stone, they were however chosen to be
    as much consistent with other KDE apps as possible.

Especially the "DirectPlay implies PrependToQueue" change is a bit
controversial, my opinion in that matter is anything but strong and I'm
open to any discussion. But perhaps try to use it for a couple of days
to get over the barrier of change.

CHANGES:
 * Playlist-related actions were harmonized: double-clicking, pressing
   enter or using any "play media" action will prepend tracks to queue
   and immediately start playing; middle-clicking appends to playlist;
   append or replace actions will no longer start playback.

CCMAIL: amarok-promo@kde.org
CCMAIL: amarok-devel@kde.org
Related: bug 145468, bug 194549
FIXED-IN: 2.8
GUI: Behavioural change in some places, to increase consistency. Please
check that the docs don't mention the old behaviour, see CHANGES.
DIGEST: Amarok harmonizes playlist-related actions (double-clicking,
pressing Enter, middle clicking...)

M  +4    -0    ChangeLog
M  +4    -5    playground/src/context/applets/coverbling/CoverBlingApplet.cpp
M  +1    -1    playground/src/context/applets/coverbling/CoverBlingApplet.h
M  +1    -1    playground/src/context/applets/covergrid/AlbumItem.cpp
M  +5    -8    src/App.cpp
M  +5    -5    src/MainWindow.cpp
M  +1    -1    src/amarokurls/BookmarkTreeView.cpp
M  +8    -11   src/browsers/CollectionTreeView.cpp
M  +1    -1    src/browsers/CollectionTreeView.h
M  +7    -7    src/browsers/filebrowser/FileView.cpp
M  +1    -1    src/browsers/playlistbrowser/DynamicView.cpp
M  +10   -12   src/browsers/playlistbrowser/PlaylistBrowserView.cpp
M  +3    -3    src/browsers/playlistbrowser/PlaylistBrowserView.h
M  +12   -6    src/context/applets/albums/AlbumsView.cpp
M  +2    -1    src/context/applets/albums/AlbumsView.h
M  +2    -2    src/context/applets/similarartists/ArtistWidget.cpp
M  +2    -1    src/dbus/mpris1/TrackListHandler.cpp
M  +1    -1    src/dbus/mpris2/MediaPlayer2Player.cpp
M  +63   -48   src/playlist/PlaylistController.cpp
M  +19   -7    src/playlist/PlaylistController.h
M  +0    -1    src/playlist/PlaylistModel.cpp
M  +12   -18   src/playlist/view/listview/InlineEditorWidget.cpp
M  +9    -9    src/playlist/view/listview/PrettyListView.cpp
M  +1    -1    src/playlistgenerator/Preset.cpp
M  +2    -2    src/scriptengine/AmarokPlaylistScript.cpp
M  +1    -1    src/services/amazon/AmazonStore.cpp
M  +1    -1    src/services/lastfm/LastFmService.cpp
M  +3    -3    src/services/lastfm/LastFmTreeView.cpp
M  +1    -1    src/services/lastfm/SimilarArtistsAction.cpp

http://commits.kde.org/amarok/a43e7e6f5a14307f543e7807a8d2351af027635a
Comment 2 Matěj Laitl 2013-06-27 18:35:27 UTC
Git commit 71a0e27a7aa1899f063affd4854abf650978887b by Matěj Laitl.
Committed on 27/06/2013 at 10:40.
Pushed by laitl into branch 'master'.

Finally harmonize the double-click and other playlist-related actions

CHANGES:
 * Playlist-related actions were harmonized, double-clicking or pressing enter will
   append tracks to playlist, middle-clicking or using any "play media" action will
   prepend tracks to queue and immediately start playing; append or replace actions will
   no longer start playback.

Funnily enough, this is exactly what Myriam suggested from the start, but
wasn't understood by me, because her Amarok behaved differently than mine
(how so?) and we both referred to that behaviour.

The CHANGES above are current state vs. Amarok 2.7.1 and ignore any
intermediate steps.
Related: bug 145468, bug 194549
FIXED-IN: 2.8
GUI: revisit playlist-related actions, the changes are more subtle now, see CHANGES
CCMAIL: amarok-devel@kde.org
CCMAIL: amarok-promo@kde.org

M  +4    -4    ChangeLog
M  +3    -3    src/playlist/PlaylistController.h

http://commits.kde.org/amarok/71a0e27a7aa1899f063affd4854abf650978887b