View Issue Details

IDProjectCategoryView StatusLast Update
0000553MediaMonkey 4Main Panel/Toolbars/Menuspublic2007-10-12 20:44
Reporterrusty Assigned To 
PriorityimmediateSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Fixed in Version3.0 
Summary0000553: Enable Basic Tree / Column customization
DescriptionNumerous users have expressed the interest to modify the node hierarchy that we support by default (e.g. Genre, Album, Artist instead of Genre, Artist, Album).

This is something that I've seen in the Wen Software MP3 database. It is also useful for users who use the DB for other types of music (e.g. Classical music).
Additional InformationImplementation of this feature may affect the strategy taken for supporting classical music in SDB.

See:
http://www.songs-db.com/forum/viewtopic.php?t=622
See filtering bug 0000102 as well.

http://www.songs-db.com/forum/viewtopic.php?t=631

http://www.songs-db.com/forum/viewtopic.php?t=1527

http://www.songs-db.com/forum/viewtopic.php?t=1267
TagsNo tags attached.
Fixed in build1084

Relationships

related to 0002822 closedjiri Ability to disable 'Shuffle' for certain tracks 
parent of 0003416 closedpetr Filters & Views: per filter Track Browser config 
related to 0000628 closedpetr Configurable Toolbar for Shortcuts (favorites) 
related to 0003189 closedpetr it is more convoluted then it needs to be to hide a column 
related to 0003309 closedLudek Options UI cleanup 
related to 0003373 closedLudek Auto-sync list: cleanup in relation to support for multiple types of content & filters 
related to 0003551 closedpetr Artists/Composer nodes missing '+' signs for child nodes. 

Activities

rusty

2003-10-29 16:40

administrator   ~0002686

In the following link, the suggestion was made that such customization could be done directly in the main UI (options panel not required). I think that this makes sense, although I'd want to review the Wen Software implementation.

See: http://www.songs-db.com/forum/viewtopic.php?t=863&view=previous

rusty

2003-10-30 14:12

administrator   ~0002695

Last edited: 2003-10-30 14:16

Upon further reflection, it'll probably require more detailed configuration since we'll likely want to allow the user to set for each node:
Node, Subnode, Sort order of Subnode, Display characteristics

See: http://www.songs-db.com/forum/viewtopic.php?t=809

edited on: 10-30-03 09:16

jiri

2004-06-16 10:17

administrator   ~0004303

Last edited: 2004-06-16 10:18

I would suggest to implement two things:
 - Allow users to disable (hide) individual nodes, namely: Location, Title, Genre, Year, Rating, Classification, Files to edit, Virtual CD, Previews, Web. In case of Genre and Year their toolbar buttons would be hidden as well. Configuration of visibility could be in 'Appearance' options sheet.

 - It's very hard to implement this in UI completely, thus I would rather suggest to use implementation by plug-ins/scripts. This is far more flexible - script writer can implement absolutely anything. The UI would allow users to easily download e.g. Classical music add-on, or Enhanced views add-on (with more complex tree structure).

edited on: 06-16-04 06:18

rusty

2004-06-16 12:41

administrator   ~0004304

I more or less agree with your suggestion of what the most important functionality is (although I think it's also important to allow the user to set navigation bar shortcuts independently of the tree--provided the nodes are listed in the tree), however, I thought that we also agreed that it's important to expose the configuration functionality via the ui (i.e. UI would act via scripts)?

I'm fairly certain that implementing this without UI (at least via config panel) control will not answer most users needs.

rusty

2007-06-22 20:59

administrator   ~0009545

Magic Nodes is one of the most used scripts because of MM deficiencies in this area. Biggest problem is:

-Some users want to have Album Artist node
-Some users want an Artist node (one that is completely independent of Album Artist)
-Some users want to add/remove nodes for classical music
-Some users want to get rid of other MM nodes

I suggest that for MM 3.0, we offer the following config. Note that the box under 'show the following' should be constructed dynamically based on nodes that have been hardcoded or scripted into MM:

Show the following:
---------------------------
[x] Now Playing
. . Library
. . [x] Location
. . [x] Title
. . [x] Artist with Album Artist
. . [ ] Artist
. . [ ] Album Artist
. . [x] Composer
. . [ ] Conductor
. . [x] Album
. . [x] Genre
. . [x] Year
. . [x] Rating
. . [x] Classification
. . [x] Files to edit
. . [x] Virtual CD
. . [x] Previews
[x] Playlists
[x] Podcasts
[x] My Computer
[x] Net Radio
[x] Web
----------------------------

[ ] Show 'All' for physical folders at _________ (i.e. combine the 2 options for Location/My Computer)
[ ] Show .m3u playlists


NOTE:
Another way of controlling which nodes are active in the tree is in the same manner that we currently control which columns appear. i.e. Right-click anywhere on the tree --> Options --> Tree Nodes --> dropdown list of tree nodes that can be checked/unchecked without going into an options menu.

user_Morten

2007-06-22 22:28

developer   ~0009546

And also, I want the possibility to not show sub-sub-nodes (like WMP11 for instance).

jiri

2007-06-26 09:07

administrator   ~0009579

I agree with the proposal, just some additions:

1. I was wondering how to add our new Filtering functionality to this feature, so that users could e.g. show Conductor node in Classical filter, but not any other filter. I think that I have a good solution:

Show the following under ______[v] filter: {values: Library, Music, Classical, Audiobooks, ...}
-------------------
[x] Now Playing
....
[x] Web

When none filter is selected (i.e. whole Library), it would all work as expected, i.e. user would click the checkboxes and change values between 'checked' and 'unchecked'.

When a filter is selected, all checkboxes would have a default value of that 'middle' state (i.e. neither checked nor unchecked) meaning, that the node visibility would depend on checkbox state in whole Library. So, then user would cycle between 'unchecked', 'middle' and 'checked' values in checkboxes here.

2. I agree with the proposal to construct the list of nodes dynamically, based on nodes present in MM, i.e. including nodes added by scripts.

3. I agree with that choice of

. . [x] Artist with Album Artist
. . [ ] Artist
. . [ ] Album Artist

but I'd suggest to keep naming the nodes 'Artist', 'Artist' and 'Album Artist' in the main MM window, i.e. use 'Artist with Album Artist' string only here for clarification.

4. Technical: the tree of nodes here would be certainly based on VT.

5. I'm not sure about Morten's comment about 'sub-sub-nodes'. If you mean specifications of what to show deeped in nodes structure, I guess that it might be useful for some people, but I'd defer this.

Assigning to Rusty for the final review, could be assigned to Petr then.

user_Morten

2007-06-26 09:34

developer   ~0009580

5. What I mean is a way to not show the sub-content of in example the Artist-node. In other words the option to remove the "+"-button from these nodes (Artist, Albun, Title etc.), because in MediaMonkey v3.0 there are plenty of other ways to browse the sub-content of this music. (By searching, using the track browser, using links etc.) This is the first thing that makes the tree crowded and should be made possible to not view.

user_Dale

2007-06-26 09:58

updater   ~0009582

upon Mortens explanation, I realise I was about to post something similar.

currently, using the new "track browser", one of these root nodes alone (eg, artist, album, etc.) can be used to navigate all music quite easily. Alot of users do not need all of that tree, therefore, if they prefer to navigate by the track browser.
Therefore... it should be possible to turn off ALL subnodes of the library node and only use the library node itself (in which case the library node needs to list all tracks - which it should do anyway)

user_Morten

2007-06-26 10:45

developer   ~0009586

Here is a picture which shows what I mean.

http://img248.imageshack.us/img248/4014/subsubnodesjc0.png

There are however some things which needs to be fixed in order to do this.

1) Location needs some new UI so that you don't need the "+"-button.
2) Same with the nodes "Classification" to "Previews".

user_Dale

2007-06-26 11:11

updater   ~0009588

In regard to doing this from an options menu. I agree that this is the way to go - as it may be too complicated to allow directly... however, hiding individual nodes (like album, artist, etc.) CAN be done directly by simply showing "hide this node" in the right click context menu when the node is clicked on.

Showing it again can be done from the options menu (wherever that is implemented).

jiri

2007-06-26 11:23

administrator   ~0009589

Ok, based on these suggestions, points 1-4 are still perfectly valid, but 5. could be specified as:

5.
 a. Show all Library content in Library node.
 b. Expand the above specified UI a little, so that e.g. Artist node would look like:

[x] Artist
  [x] Individual Artists
    [x] Albums of Artists

and thus user could disable hierarchy of nodes. Note that this wouldn't be applicable to nodes created by scripts (since we don't know the hierarchy), but it probably isn't a problem, it's user's decision to install/uninstall each of such scripts.
 c. Representation of some nodes without using hierarchy - maybe in such a case it would make sense to force showing of Browser window prefilled with related fields. E.g. after clicking Categories node, instead of further clicking '+' to expand the node, Browser would appear with 'Tempo', 'Mood' and 'Ocassion' (possibly also 'Quality'?) fields, so that user could directly locate requested tracks.

In any case, this starts making 5. a little more complex, it would probably make sense to move it (or at least some parts) to a new issue and discuss it there.

user_Dale

2007-06-26 14:06

updater   ~0009593

by that do you mean allow the track browser columns to be remembered independantly for each node?

eg. click on Year and track browser shows | Year | Artist | Album |
    click on Artist and track browser shows | Artist | Year | Album |
    click on Genre and the track browser shows | Genre | Artist | Album |

jiri

2007-06-26 14:31

administrator   ~0009595

Right, something like this. I'm not sure about implementation details yet, but I'd say the particularly that example in 5c. with Classification node really makes sense - at least for users who would like to get rid of the tree hierarchy.

user_Dale

2007-06-27 04:32

updater   ~0009602

I don't think it needs to force the user to use th track browser instead (on certain nodes) - if I'm understanding correctly that you were implying that; some people still like to use the tree method.

jiri

2007-06-27 09:58

administrator   ~0009603

Indeed, I'm definitely not fan of getting rid of the tree. My idea was to give user an option to disable the tree (as Morten suggested), e.g. by

[x] Library
  ...
  [x] Classification
    [ ] Tempo, Mood, Ocassion

Then, if user disables Tempo, Mood and Ocassion nodes this way, Browser could be used the way I described when Classification node is selected. It's just an idea, maybe not great, but it handles the option of simplifying tree somewhat.

rusty

2007-06-28 05:41

administrator   ~0009610

Last edited: 2007-06-28 05:42

My initial reason for raising the priority was because the suggested implementation would be relatively quick/simple to implement. There's definitely room for much more improvement, but if we want to get 3.0 out the door, we'll have to defer some of it.

Re. 5) ability to control subnodes:
-Morten's idea of allowing the user to flatten the tree is covered in 1346, which is deferred because of the work involved.
-Jiri's idea of:
 - a)show the entire library seems to make sense as it's little to no work
 - b)make child items in the tree configurable seems simple enough, but I don't think it adds much value and could necessitate other work such as persisting columns on a per node basis, so I'd defer this.
 - c) (flattening the tree) would add way too much work at this time

Other issues that came up on IM discussions are that:
6) Configuration is on a per filter basis, so the primary means of configuration should probably be via the filter config (but accesible elsewhere as well)
7) Ideally columns should be configurable via a similar per-filter mechanism. This is a bit more complex because columns need to be enabled/disabled AND ordered, however, it is necessary for classical music (i.e. Classical music filter should trigger a classical music view).
8) Ideally the UI for configuring the Tree and Columns should be exception-based. i.e. user should be able to configure a default Tree/Column configuration and define exceptions for particular Filters. The difficulties of such an approach are that:
 - it's difficult to visually indicate exceptions to column order.
 - column settings vary by Filter and by view (details/Album Art/Album Art + Details), so there would need to be a means of setting exceptions for each view.

Originally Discussed implementation (probably not realistic):
On the Edit Filter or Manage Filters dialog there could be an 'Options' button that would allow the user to set per filter options:

Filter Options:
------------------------------------------------------------
 ------------------------  ------------------------
 |Customize Tree:       |  |Customize Columns     |
 |[ ] Artist            |  | [ ] Artist           |
 |[ ] Album             |  | [ ] Album            |
 | ...                  |  |                      |
 ------------------------  ------------------------
 [ ] Enable Bookmarking
 [ ] Ignore Shuffle
 [ ] Disable Crossfading
-------------------------------------------------------------


note: checkboxes for Tree and Column customization are 3-state checkboxes (Default(grey), Yes, No). Also, the Ignore Shuffle and related options are covered in 0002822.

The problem with this approach is that column ordering cannot be handled in this UI (i.e. adding Move Up/Down buttons would work but would not be able to work on an exception basis. Nor could this approach handle multiple views.

Thus in the short term, my recommendation would be to not follow an exception-based approach and use a UI along the lines of:

Filter Options:
------------------------------------------------------------
 -------------------------------------------------  
 | Customize Tree:                                |  
 | [ ] Artist                                     |  
 | [ ] Album                                      |  
 | ...                                           |  
 -------------------------------------------------  
 
 -------------------------------------------------
 | Customize Columns:
 | Available Fields           Show Fields in this order
 | ------------------         ----------------------
 | | Artist          | Add--> | Artist              |
 | | Album           | <--Rem | Album               |
 | | ...             |        | ...                 |
 | -------------------         ---------------------
 [ ] Enable Bookmarking
 [ ] Ignore Shuffle
 [ ] Disable Crossfading
-------------------------------------------------------------


 In the interest of time, we may simply want to leave the current means of enabling and arranging columns, but:
-Allow configurations to persist per Filter/per View
-Add a function to 'Reset to default view' when right-clicking columns

jiri

2007-06-28 16:00

administrator   ~0009614

9. I find that 'exception based' configuration as a _very_ important aspect of making the functionality really useful and useful friendly. Here is a possible modification of your proposal that takes this into account:

Filter Options:
------------------------------------------------------------
 --Customize Tree:-------------------------------------  
 | Node                     | Filter specific visibility
 | [x] Artist               |  [ ]                    |  
 | [x] Album                |  [ ]                    |  
 | ...                      |  [ ]                    |  
 ------------------------------------------------------

 --Customize Fields:-----------------------------------  
 | Field                    | Filter specific visibility
 | [x] Artist               |  [ ]                    |  
 | [x] Album                |  [ ]                    |  
 | ...                      |  [ ]                    |  
 ------------------------------------------------------
 | [v] [']   [x] Same order as in default filter      |
 ------------------------------------------------------
  
 [ ] Enable Bookmarking
 [ ] Ignore Shuffle
 [ ] Disable Crossfading
-------------------------------------------------------------


In this proposal, both Tree nodes and Fields (Columns) can be configured for the given filter and also for the default (i.e. none) filter. There are certainly several alternatives to this proposal, e.g. to use some drop-downs instead of checkboxes, etc.

As for ordering of Fields, I'd suggest to add up and down arrows that would let user to change positions of individual Fields. Then there a checkbox [x] Same order as in default filter - it would disable the filter-specific ordering fields, i.e. the default order would be used (and so user wouldn't have to update changes made in one filter into other filters as well).

10. As for a place where to show this configuration, I'd suggest to place it to Options dialog with a drop-down selection of the filter being configured, i.e. like

_Music________ [v] {values: None (Default), Music, Audiobooks, ...}

Then, in Filter configuration dialog, user would have a button for additional configuration of the filter that would open Options dialog with given sheet and given filter selected.

11. There is still the problem of different column settings for different types of nodes. I don't see any good solution for this that would work well and wouldn't be overly complicated in its configuration. The only good way I see is to change the behaviour of MM 2.5 and don't store column settings per view, but have one per whole MM (except for Now Playing node).

rusty

2007-07-02 18:41

administrator   ~0009637

9) I like the '^' 'v' arrows you propose. More in line with the rest of the MM UI.

I'm not sure I understand 'Filter specific visibility'. Does it contain a list of filters for each field so that the user can configure which of those filters the field is active for?

10) Can you clarify:
_Music________ [v] {values: None (Default), Music, Audiobooks, ...}
where would this appear and what does it represent?

11) I assume you mean 1 view per filter + 1 custom view for Now Playing.

In terms of how this would work, different views (Album Art, Album Art Details, Details) do require that different fields be displayed and in slightly different orders. I suppose, though, that we can define a single set of Attributes that would apply across those three views though--and irrelevant attributes would simply not be displayed.

Re. different configurations per node type, I can't think of anywhere that MM implements this--except for i) Sort Order per node type, and ii) different columns for the NP view. I don't think i) would be a problem (we could continue to implement sorting within each view), and re. ii) we could just implement this as a separate view as you propose.

jiri

2007-07-04 09:10

administrator   ~0009644

9&10) The idea is that user will select the filter to configure in Options dialog (or it would be pre-selected if user gets to this configuration from Filters dialog) using this control:

_Music________ [v] {values: None (Default), Music, Audiobooks, ...}

and then the 'Filter specific visibility' column would show checkboxes with states defined by the selected filter.

There are certainly several improvements possible, like:
a) when None (Default) filter is selected, 'Filter specific visibility' column would be hidden.
b) 'Filter specific visibility' column title could be based on filter name, e.g. '<filter> filter visibility' (or some better wording?)

11) Right, 1 view per filter + 1 custom view for Now Playing.

Yes, hopefully we can define Album Art and Album Art Details views as some kind of subset of Details view (i.e. show Artist, Album, Composer, ... columns based on visibility settings of the given filter).

If you agree, please join all our comments to a specification that could be started being developed (or let's discuss over IM).

rusty

2007-08-03 05:42

administrator   ~0010054

This summarizes various discussions regarding the implementation of filters and associated views.

a)
Tools>Options>Library > View
--------------------------------------------------------
 --Choose Columns:--------  --Choose Tree Nodes---------
 | [x] Artist             | | [x] Artist
 | [x] Album              | | [x] Album
 | [ ] Album Artist       | | [ ] Album Artist
 | ...                    | | ...
 -------------------------| |---------------------------
 | v ^                    | | v ^
 -------------------------  ----------------------------
 [Custom Views]
--------------------------------------------------------


b)
If the user clicked the [Custom Views] button, then it would open up the Manage Filters dialog. The Manage Filters would work as follows:

------------------------------------------------------------
Manage Filters
------------------------------------------------------------
(o) None                                   | [Configure]
( ) Music                                  |
( ) Audiobooks                             |
( ) Podcasts                               |
 <Add Filter>                              |
-------------------------------------------------------------
[^] [v] [x]                                 [OK] [Cancel]
------------------------------------------------------------

Note: order of filter is meaninful in terms of matching a track to a particular filter.  e.g. if a track matches both Music and Audiobook, it will be considered music since music is listed first.


c)
If the user clicks 'Add Filter', 'Configure', or Double-clicks, the filter criteria tab in the Filter Options dialog opens for the relevant filter.  
If None is selected and the user presses 'Configure' the user is sent to Library > View.

------------------------------------------------------------
Filter Options
------------------------------------------------------------
 Name: _______________________________
------------------------------------------------------------
| [Criteria] | View | Player |
 -----------------------------------------------------------
  Match _all_ of the following criteria:
  ...
  ...
 -----------------------------------------------------------
 | [^] [v] [x]                   
------------------------------------------------------------
                                            [OK] [Cancel]
------------------------------------------------------------

Note: MM may need to 'know' what content type filters map to so that tracks are matched to the appropriate tab in the auto-sync list. If it turns out that we really need this then something along the following lines will need to be added in this dialog:
. Content Type: _____________________ (General Music, Audiobook, Podcast)


d)
If the user clicks the 'View' tab they have the option of customizing the view.  For each column/node, the user has the option of setting (Enable--check, Disable--no check, Use default view setting--greyed out box)

------------------------------------------------------------
Filter Options
------------------------------------------------------------
 Name: _______________________________
------------------------------------------------------------
| Criteria |[ View ]| Player |
 -----------------------------------------------------------
 --Choose Columns:----------  --Choose Tree Nodes---------
 | [%] Artist               | | [%] Artist
 | [%] Album                | | [%] Album
 | [%] Album Artist         | | [%] Album Artist
 | ...                      | | ...
 ---------------------------| |---------------------------
 | [ ] Custom Order  [^] [v]| | [ ] Custom order  [^] [v]
 ---------------------------| ----------------------------
------------------------------------------------------------
                                            [OK] [Cancel]
------------------------------------------------------------

Note: Jiri mentioned that ordering of custom tree nodes may be technically difficult and thus left as an implementation decision. From a user perspective, it's important since e.g. for classical music, Composer would probably be listed before Artist, whereas for contemporary music, Artist would be listed first.


e)
For each Filter, the user can also configure whether MM should override the default settings (which are bookmarking disabled, shuffle not ignored, crossfading allowed).

------------------------------------------------------------
Filter Options
------------------------------------------------------------
 Name: _______________________________
------------------------------------------------------------
| Criteria | View | [Player] |
 -----------------------------------------------------------
 [ ] Enable Bookmarking
 [ ] Ignore Shuffle
 [ ] Disable Crossfading
 ------------------------------------------------------------
------------------------------------------------------------
                                            [OK] [Cancel]
------------------------------------------------------------


f)
In terms of editing columns by right clicking on them, the context menu would be changed as follows:

Choose columns
Choose columns by filter
--------------------------------
Artist
Album
...

Note: if no filter is active and the user clicks 'Choose columns by filter', then the user is just sent to the 'Manage Filters' dialog.


g)
In terms of editing nodes by right-clicking on them, the context menu for every top level node in the library contains an 'Options' entry.  The Options submenu should be changed from:
  -Show Tree titlebar
  -Show Tree shortcuts

--->
 -Choose Tree nodes
 -Choose Tree nodes by filter
 ----------------------------------------
 -Show Tree titlebar
 -Show Tree shortcuts

Note: if no filter is active and the user clicks 'Choose Tree nodes by filter', then the user is just sent to the 'Manage Filters' dialog.


h) get rid of the options in Tools > Options > Player > Auto-DJ/Now Playing:
 -Save playback postion for tracks with genre containing:__________
 -Never crossfade tracks with genre containing: _______________

rusty

2007-08-06 20:51

administrator   ~0010064

Petr raised 2 issues with the above spec:
1) Some users might want to copy settings from an existing filter. e.g.
  "Copy settings from filter ________ [Apply]"
   Better yet, to deal with space constraints, we could just add an [Import Settings] button next to the Filter name on the Filter Options panel (item c)

2) Circular calling between Manage Filters and Tools>Options>Library>View could be a problem (e.g. if the user clicks 'Customize' for the filter=None and then clicks [Custom Views] on Library>View. The suggested way around this would be to:
 i) Change 'Manage Filters' to 'Manage Filters and Views', and 'Filter Options' to 'Filter/View Options'
 ii) Move Manage Filters and Views to the Options panel as: Library > Filters and Views
 iii) Make the 'None' Filter look a little different, since it isn't really a filter but it is listed first (e.g. slightly lighter color)
 iv) When the user clicks 'Configure' for the None 'filter', the Filter/View Options Panel opens, but the only available tab is the View tab (unlike for other tabs)


b)
If the user clicked the Tools>Options>Library>Filters&Views, the following appears:

------------------------------------------------------------
Manage Filters & Views
------------------------------------------------------------
(o) None                                   | [Configure]
( ) Music                                  |
( ) Audiobooks                             |
( ) Podcasts                               |
 <Add Filter>                              |
-------------------------------------------------------------
[^] [v] [x]                                 [OK] [Cancel]
------------------------------------------------------------

IMPORTANT NOTE: A track can match to multiple filters, however, the order of the filters will effect which filter a track matches first.  The effect of matching a filter first is that the Player settings are applied to the track in question when that filter is matched.  e.g. if a track matches both Music and Audiobook, the Player settings for music will be applied (i.e. bookmarking will not be enabled) since Music is listed before Audiobook. The 'None' filter is 'special' and order doesn't affect it (i.e. it's always applied last).


a)
If the user clicks 'Configure' for the None filter, the following appears:

------------------------------------------------------------
Filter & View Options
------------------------------------------------------------
 Name: No Filter (default view)
------------------------------------------------------------
| [ View ]
 -----------------------------------------------------------
 --Choose Columns:----------  --Choose Tree Nodes---------
 | [x] Artist               | | [x] Artist
 | [x] Album                | | [x] Album
 | [ ] Album Artist         | | [ ] Album Artist
 | ...                      | | ...
 ---------------------------| |---------------------------
 | [^] [v]                  | | [^] [v]
 ---------------------------| ----------------------------
------------------------------------------------------------
                                            [OK] [Cancel]
------------------------------------------------------------

Note: The checkboxes are 2-state checkboxes (enable/disabled)


c)
If the user clicks 'Add Filter', 'Configure', or Double-clicks, the filter criteria tab in the Filter Options dialog opens for the relevant filter.  

------------------------------------------------------------
Filter & View Options
------------------------------------------------------------
 Name: _______________________________
------------------------------------------------------------
| [Criteria] | View | Player |
 -----------------------------------------------------------
  Match _all_ of the following criteria:
  ...
  ...
 -----------------------------------------------------------
 | [^] [v] [x]                   
------------------------------------------------------------
 [Import Settings]                          [OK] [Cancel]
------------------------------------------------------------

Note: MM may need to 'know' what content type filters map to so that tracks are matched to the appropriate tab in the auto-sync list. If it turns out that we really need this then something along the following lines will need to be added in this dialog:
. Content Type: _____________________ (General Music, Audiobook, Podcast)


d)
If the user clicks the 'View' tab they have the option of customizing the view.  For each column/node, the user has the option of setting (Enable--check, Disable--no check, Use default view setting--greyed out box)

------------------------------------------------------------
Filter & View Options
------------------------------------------------------------
 Name: _______________________________
------------------------------------------------------------
| Criteria |[ View ]| Player |
 -----------------------------------------------------------
 --Choose Columns:----------  --Choose Tree Nodes---------
 | [%] Artist               | | [%] Artist
 | [%] Album                | | [%] Album
 | [%] Album Artist         | | [%] Album Artist
 | ...                      | | ...
 ---------------------------| |---------------------------
 | [ ] Custom Order  [^] [v]| | [ ] Custom order  [^] [v]
 ---------------------------| ----------------------------
------------------------------------------------------------
 [Import Settings]                            [OK] [Cancel]
------------------------------------------------------------

Note: Jiri mentioned that ordering of custom tree nodes may be technically difficult and thus left as an implementation decision. From a user perspective, it's important since e.g. for classical music, Composer would probably be listed before Artist, whereas for contemporary music, Artist would be listed first.


e)
For each Filter, the user can also configure whether MM should override the default settings (which are bookmarking disabled, shuffle not ignored, crossfading allowed).

------------------------------------------------------------
Filter & View Options
------------------------------------------------------------
 Name: _______________________________
------------------------------------------------------------
| Criteria | View | [Player] |
 -----------------------------------------------------------
 [ ] Enable Bookmarking
 [ ] Ignore Shuffle
 [ ] Disable Crossfading
 ------------------------------------------------------------
------------------------------------------------------------
 [Import Settings]                            [OK] [Cancel]
------------------------------------------------------------


f)
In terms of editing columns by right clicking on them, the context menu would be changed as follows:

Choose columns
Choose columns by filter
--------------------------------
Artist
Album
...

Note: if no filter is active and the user clicks 'Choose columns by filter', then the user is just sent to the 'Manage Filters' dialog.


g)
In terms of editing nodes by right-clicking on them, the context menu for every top level node in the library contains an 'Options' entry.  The Options submenu should be changed from:
  -Show Tree titlebar
  -Show Tree shortcuts

--->
 -Choose Tree nodes
 -Choose Tree nodes by filter
 ----------------------------------------
 -Show Tree titlebar
 -Show Tree shortcuts

Note: if no filter is active and the user clicks 'Choose Tree nodes by filter', then the user is just sent to the 'Manage Filters' dialog.


h) get rid of the options in Tools > Options > Player > Auto-DJ/Now Playing:
 -Save playback postion for tracks with genre containing:__________
 -Never crossfade tracks with genre containing: _______________

i) If the user clicks 'Import Settings' on the Filter & View Options dialog, the following dialog would appear:
  -----------------------------------------------
   Import Settings
  -----------------------------------------------
   Copy filter settings from: __________________^
                                   [OK] [Cancel]
  -----------------------------------------------

rusty

2007-08-09 15:15

administrator   ~0010084

I forgot to include the following:

j) The default configuration should be:
---------------------------
[x] Now Playing
. . Library
. . [x] Location
. . [x] Title
. . [x] Artist with Album Artist
. . [ ] Artist
. . [ ] Album Artist
. . [x] Composer
. . [ ] Conductor
. . [x] Album
. . [x] Genre
. . [x] Year
. . [x] Rating
. . [x] Classification
. . [x] Files to edit
. . [x] Virtual CD
. . [x] Previews
[x] Playlists
[x] Podcasts
[x] My Computer
[x] Net Radio
[x] Web

Notes:
-There are several new nodes here including:
. -Composer
. -Conductor
. -Album Artist (this would work like Album Artist(=Artist) in WMP)
. -Artist (this would work exactly like Artist (=Contributing Artist) nodes in WMP)
. -Album Artist & Artist (this is the current type of node)
-Implementation should be compatible with MagicNodes or similar scripts, if possible.

user_Dale

2007-08-17 04:34

updater   ~0010161

this may be a little late in development of this issue... however, I think this deserves some thought:

if you connect an external player.. it pops up as a MAIN node..
however, if you insert a cd, to see it you have to expand the my computer node..

It should be made possible to hide the my computer node, but have an audio cd's insert appear as a main node like portable players do.

Dale.

petr

2007-08-17 14:40

developer   ~0010166

dale : i think we can track this in new issue, because functionality described in this issue is finished.

petr

2007-08-17 14:40

developer   ~0010167

Done. Will be in 1061.

jiri

2007-08-17 18:29

administrator   ~0010174

Things that could be improved/implemented:
1. Edit Filter and View Options could (well, should) be wider.
2. Since the lists are relatively large there, d&d would be handy.
3. I can't press OK until some criteria are added. Is this really necessary? Couldn't a filter be useful even for full Library (thanks to diffent View settings)?
4. Track Browser could benefit from this implementation - e.g. it would make sense to show Composer, Conductor and Year columns in case of Classical filter. A possible implementation:
On View tab of filter configuration add:
[ ] Custom Track Browser fields {shown for filters, not for the default view}
  Field 1: _Artist_____ [v]
  Field 2: _Album______ [v]
  Field 3: _Genre______ [v]

rusty

2007-08-17 21:13

administrator   ~0010186

I agree re. 1 and 3 for the short term. I don't think 2 is really important.

Re. 4, that's a great idea. I'm going to move it into a new feature once I review the current implementation.

rusty

2007-08-20 00:39

administrator   ~0010196

Last edited: 2007-08-21 16:04

5) Cosmetic issues
a) Change 'Name' --> 'Name:'
b) Change 'Content Type' --> 'Type:' and align text box dropdown
c) Change 'Artist with Album Artist' to 'Artist & Album Artist'
d) When the user clicks Tools > Options > Filters & Views, the 'Configure' button should be outside the box (e.g. like in the Output Plugins panel.
e) I'm not quite sure why we need a standalone 'Manage Filters...' dialog. i.e. I would have thought that whenever the user needs to get to the 'Manage Filters' dialog, then Tools > Options > Filters & Views should open. BUT if we decide we need to keep it, then it should have a 'Configure' button on the right, just like in the options panel.

6) Defaults
a) Default view should only include 'Artist & Album Artist' node
b) Audiobooks should be content type Audiobook. With enable bookmarking, ignore shuffle, and disable crossfading.

7) What is Content type='none' ? It's unclear what this would do.

8) When importing settings, the name of the filter is deleted

9) The first time that the Default View Options dialog is run, the order in which Tree nodes are displayed in the dialog doesn't match the order of tree nodes as they appear in the tree. Thus when the user clicks 'OK', the Tree is modified, even if the user hasn't made any changes!

10a) Special nodes such as a device called 'Removable Disk E:' or an iPod, appear in the Default view Options Tree Nodes list only when plugged in. I don't think that it should be possible to manage such nodes in this manner since they may not be plugged in. Rather what should happen is that something Generic should appear such as '[x] Active Devices' and these should appear in the location specified.

To clarify: my intent is just to have a single node called '[ ] Devices'. I think it's much easier to manage than forcing the user to move around each device as it is plugged in, but if this is technically difficult, then it's not the end of the world.

Decision is to defer this.

10b) I just realized that this functionality isn't working. i.e.
-Plug in iPod
-Change the node's location for the default view
-Unplug the iPod
-Plug the iPod back in
-->It appears at the old location.

11a) Drag and Drop functionality for the 'Artist & Album Artist' node is broken. i.e. previously, when dragging a track with Identical Artist and Album Artist to a new Artist&Album Artist node, both would change. Now only Artist changes.

12) After triggering the last bug, the track in question doesn't appear in the Album Artist tree.
NOT A BUG--ignore item 12 this is a testing error.

13) Drag and Drop doesn't work for the Artist/Album Artist/Composer/Conductor fields

14) When users are in the manage filters dialog, they expect to be able to manage the Default View by double clicking on it, however, doing so doesnt work. This could be resolved by issue 1e).

15) The fact that there is no Type=Podcast means that podcast currently play usingthe default playback settings. What most users would probably want, though, is: enable bookmarking, ignore shuffle, and disable crossfading? Or is

16) Choose tree nodes / Choose tree nodes by filter
    Choose columns / Choose columns by filter

These functions are confusing. The problem is that when a user attempts to edit columns/nodes, they expect that they are doing so for the current view. In the current implementation, though, 'Choose tree nodes' or 'Choose columns' always changes the default view which will usually have unintended consequences. The simplest solution would be to make:
- 'Choose columns' / 'Choose tree nodes' to edit the current view
- use 'Edit Filter & Views' to launch the Manage Filters panel

17. <Jiri>Currently, if a have a filter _without_ custom column order and d&d a
column somewhere, it changes the filter to _have_ custom column order. While
I see and understand the logic, I'd say that it would be more useful to
apply such a change to the default filter and thus to any filter that
doesn't have custom column order. (the same applies for tree).
    
<Petr>
It's a bit complicated. In one point of view it makes sense to change
default settings, but in other user will change settings for default
(by disabling filter) and then need to reorder columns in filters
settings. In this case user will need to change columns order in
filter's settings and it's not much comfortable. Maybe we can add some
information when user changes columns order for a first time (for a
first time and in case filter haven't enabled custom order).
Something like :
"Current filter isn't enabled for custom order. Enable custom order
for this filter ? [ Yes ] [ No ]"

<Rusty> I actually agree with the approach that Petr's taken since it is consistent with the way in which Columns are enabled/disabled (i.e. they're enabled/disabled for the current view, so they should be dragged and dropped for the current view). The only way around this would be if the behaviour was consistently the other way i.e. columns are enabled/disabled and moved for the default view.

So whatever prompt we provide would have to apply to both scenarios. Would something like the following work?

"Would you like to apply this change to the default view? [Yes] [No]"

The only problem is that it might get annoying to see this over and over...but 'do not ask again' could be dangerous...

Petr has a better idea so user can disable this dialog for current filter or globally.:
Would you like to apply this change to the default view?
   [ ] do not ask again
   [x] do not ask again for this filter
                       [Yes] [No]

Decision: defer this (wait for user feedback)

18. <Jiri> One more issue: If I doubleclick a filter in Manage Filters window,
sometimes (depending on saved position of the next window) not only Edit
Filter dialog appears, also a query editing window appears on top -
apparently due to the fact that the window thinks that the double click
applies to it.

petr

2007-08-21 15:17

developer   ~0010227

Done. Will be in 1062.

rusty

2007-08-23 16:00

administrator   ~0010273

There are a few minor issues, but a couple of Major issues remaining as well (note: we may want to move 13,20,21 to a new bug for problems with the new nodes):

5bi) Change 'Content Type:' --> 'Type:'
5bii) The text box should be aligned with that of 'Name:_________'

7) It's possible to create a filter with Content Type= "", however, it's unclear what this means

13) Drag and Drop doesn't work for Composer/Conductor fields

19) There's a problem that the tree isn't updated to reflect changes to the filter in some cases. e.g.
-Switch to Filter > Music, which by default shows 'Artist & Album Artist'
-Go to manage filters and change the config for Filter > Music so that 'Artist' and 'Album Artist' are enabled and 'Artist & Album Artist' is disabled. Click ok.
-->Tree expands and looks like it's being modified, but then it contracts again and Artist / Album Artist nodes don't appear!
-Switch to 'Classical' filter and then back to 'Music'
-->The 'Artist' and 'Album Artist' filters appear

20) The 'Artist' node doesn't function as expected:
-It should show all tracks by a given Artist but it doesn't, but at the moment, many of the tracks by a given artist only appear within the 'Album' subnodes, and only an apparently random subset of tracks appears in the Artist node.
-Many Artists don't appear as a subnode node in the Artist node (e.g. tragically hip)
-Empty nodes aren't auto-deleted

21) Album Artist node doesn't function as expected
-Many Album Artist don't appear as a subnode node in the Artist node (e.g. 'Various')
-Drag and drop of all tracks from Album Artist A to Album Artist B doesn't auto-remove 'Album Artist A' from the 'Album Artist node'

21) Ignore 'The' settings aren't used for displaying 'Artist' and 'Album Artist' nodes.

Test note: need to test 6) and 9)

petr

2007-08-24 17:51

developer   ~0010303

Fixed. Will be in 1064

rusty

2007-08-26 05:17

administrator   ~0010342

Last edited: 2007-08-26 15:13

Tested 1064, and it's almost done except for the following:

7) It's still possible to create a filter with Content Type= "", however, it's unclear what this means.

per IM discussions:
The podcast tab on the auto-synclist is filled in with items that are Unspecified and have Status=Is podcast. So we need a third type that can cause music to be listed on the podcast tab, and exclude the content from the other tabs.
==> We should make the following changes:
a) Change 'General Music' to 'Music' (so it matches the tab in the synclist)
b) Change "" to "Other"
c) Make 'Music' the default
d) future?: we could add an 'Other' tab to the Auto-synch list for items that are Type=Other but not podcasts. That way they won't get 'lost'.

20) The 'Artist' node still doesn't function as expected:
-It should show all tracks by a given Artist but it doesn't, but at the moment, many of the tracks by a given artist only appear within the 'Album' subnodes. This is best illustrated via a compilation Album:
 -Garden State Soundtrack, Title=Caring is Creepy, Artist=The Shins, Album Artist=Various
-->Artist/The Shins doesn't exist! (doesn't make sense since Artists should be shown in the 'Artist' node (NOT REPRODUCIBLE)
-->Artist/Various does exist! (doesn't make sense since 'Various' is an Album Artist)
-->'Caring is creepy' appears in Artist/Various/Garden State Soundtrack. This doesn't make sense--it should appear in Artist/The Shins AND Artist/The Shins/Garden State i.e. MM should either:
a) not display Albums as subnodes
b) display Album subnodes only for those Albums where the user contributed at least one track. When the user clicks the subnode, they should see the tracks by the Artist.

21) Album Artist node doesn't function as expected
-Filter settings aren't applied to child nodes of this node (instead all artists seem to appear as tree nodes)

22) 'Unknown' node is unpopulated for some new fields.
Composer/Unknown: isn't populated
Conductor/Unknown: isn't populated

23) In the view tab, 'Choose columns' is on the left, and 'Choose tree nodes' is on the right. This is counter-intutive since in the default UI, the Tree is on the left and the columns are to the right. On a couple of occasions, I found myself configuring the wrong items because of this. We should just switch these (for both filters and default view).

petr

2007-08-26 14:18

developer   ~0010356

Last edited: 2007-08-26 16:38

Fixed.

rusty

2007-08-27 01:06

administrator   ~0010360

Tested 1065. The only issue I noticed is:

21) Album Artist node doesn't function as expected
-Album Artists aren't listed if the Album Name is unknown (I think that there's a similar issue for Album Art but I couldn't find it).

rusty

2007-08-27 14:10

administrator   ~0010376

Tagging as resolved and moving the Album Artist representation issue to a separate bug.

jiri

2007-09-29 20:08

administrator   ~0011054

There is a problem in how rules like 'Enable bookmarking' are applied, the active filter takes part in the decision, which seems to be incorrect.

jiri

2007-09-29 22:08

administrator   ~0011055

Fixed in build 1082.

Previously it definitely wasn't right, but now it isn't clear which way to use, whether to base the decision on:

1. The first matched filter.
2. The fact that given feature is enabled/disabled in _any_ matched filter.

In my opinion 2. (currently implemented after my fix) is correct, because:

a. It's more easier to understand for a user.
b. It doesn't require re-arranging filters in order to make this work - because this order might be in conflict with the way user wants to see the filters.

So, now it's easily possible to have e.g. filters:
Music
Audiobooks (with enabled bookmarking)
Live tracks (a subset of Music - with disabled crossfading)

In case it isn't clear let's discuss over IM.

Btw, it would possibly make sense to add a new type of filter 'Hidden' - that would be used in cases where user needs the filter to achieve something (e.g. enable Bookmarking for some tracks), but doesn't want to see the filter while browsing Library.

rusty

2007-09-30 00:58

administrator   ~0011057

I just want to make sure I understand. In the following cases, how will MM be able to discern which playback settings the user desires?

a) Filter B is a complete subset of filter A (e.g. Filter A is Music, Filter B is 'classical')
b) Filter B partially overlaps with filter A (e.g. Filter A is Music, Filter B is 'Kids stuff' where kids stuff can be kids music or kids audiobooks)

For case a) perhaps MM is smart enough to figure out that one set of tracks is a subset of the other, and therefore applies the subset's rule preferentially. But for case b), how would MM 'know' what to do?

user_Dale

2007-09-30 04:20

updater   ~0011060

Last edited: 2007-09-30 04:24

How this works needs to be clarified for the user.
All this time, as a user, I was under the impression that the playback settings for a filter were applied to all tracks when the filter was made active, and ignored when it wasn't.

This is the logical conclusion most people will jump to, not having viewed this conversation; because:

- 1st, you define criteria for a filter
- then, you then define the view settings for the filter - which implies that the settings associated with a filter only occur when the filter is active (as that's how the view settings work).
- then, you define player settings - which get activated differently to how the view settings get activated (which is not a logical conclusion for the user to make)

The quickest fix for this confusion is to use some of the blank space within the player tab to display an explanation. eg:

"Player settings will be applied to all tracks which fit into this filter, REGARDLESS of the current active filter"


I agree with Jiri regarding the need for a "hidden" filter... but I would go one step further.
I think it would be least confusing if the player tab was not available for any visible filters, and ONLY when you chose to make a filter hidden, would it become available (at which point the view tab would become unavailable)

This is more logical and easier to understand, because the player settings have nothing to do with being able to activate a filter and the view settings have nothing to do with the player settings.

this would mean:
- the user defines visible filters that only affect the nodes and tracks visible
- the user defines hidden filters that only define how the player works (which might be the same or might be different to the visible ones, but can easily be imported if so).



the manage filters and views list could then be broken into two sections to make it completely clear:

- Manage Filtered Views
o-------------
o-------------
o-------------
- Manage Filtered Play Settings
o-------------
o-------------
o-------------

user_Dale

2007-09-30 04:32

updater   ~0011062

Breaking it up should also make it easier regarding the issue Rusty mentioned about filter A and filter B crossovers.

The issue will still be there, but because these filters are hidden, the user shouldn't define:

filter A = all music
filter B = classical

instead, it could be:

filter A = all music (but not classical)
filter B = classical

(this couldn't be done previously because it would affect the visible tracks)..


Therefore, in this section, it could simply be noted that:
"songs which occur in multiple filters will adopt the settings of the first filter in the list"
(so order becomes important again)
- rather than you guys trying to figure out a logical way to make it combine multiple filters and settings

jiri

2007-09-30 09:20

administrator   ~0011064

Re. Rusty's question: No, MM doesn't try to be smart in this - the logic currently is: If a track belongs to a filter where one of the checkboxes (Bookmarking, Shuffling or Crossfading) is ticked, it is applied. Thus order of filters certainly doesn't matter. The reasons for this are described in my previous comment.

Let's look on some filter structure that would make sense:

1. Music - nothing is ticked, default settings make sense
2. Audiobooks - Bookmarking, no Shuffle, no Crossfading are all ticked
3. Podcasts - Bookmarking, no Shuffle, no Crossfading are all ticked
4. Life music - no Crossfading is ticked. Some users might want to make this filter hidden, because they don't want to see it, it would be for that disabling of crossfading only.
5. Classical - no Crossfading is ticked
6. Kids stuff - Nothing is ticked? I guess that all needed is already described by Music and Audiobooks filters.

So, ordering isn't needed, only a ticked checkbox is considered, unticked is understood as the default behavior.

One more reason for Hidden filters would be (for example), if user had some music podcasts and would like to specify that:
a. Spoken word Podcasts - Bookmarking, no Shuffle, no Crossfading are all ticked
b. Music Podcasts - nothing is ticked

In such a case, user could set both these filters to be hidden, and only have one Podcast filter that wouldn't be hidden, but wouldn't modify playback behavior at all.

re. Dale's idea to completely split filters to two types - I don't think it's necessary, as I show in the example above, most often user won't need Hidden filters (the need for filters and controling playback behavior overlap in most cases), they would be needed for some special cases only and then it doesn't seem to be too big problem to have it organized as I suggested.

user_Dale

2007-09-30 09:56

updater   ~0011065

Last edited: 2007-09-30 09:58

That makes sense to me, however, there still needs to be an explanation of how it works, clearly visible, within that player tab (there's plenty of room for it.

It should say something like:
"Ticked settings will be applied to all tracks which fit into this filter, REGARDLESS of the current active filter.
Unticked Settings will be ignored."


the reason this still needs to be explained is simply because it's confusing as I mentioned above, however, a specific example of what users might try to do, with no explanation, is below:

1. Music - no crossfading is ticked
2. Dance Music - crossfading is unticked (they want crossfading back)

Which wouldn't work,
instead, they would need to do this:

1. Music - nothing is ticked
2. NOT Dance Music - no crossfading is ticked



so it makes sense.. but needs the explanation to point out the above.

user_Dale

2007-09-30 10:27

updater   ~0011066

on a related note, int he "type" drop down, shouldn't "podcast" be listed?

Dale.

rusty

2007-09-30 13:28

administrator   ~0011067

OK I see, but Dale's last example is one reason why the other approach might be preferable. Regardless, let's go with the approach you propose.

So the two changes would be:

1) On the View tab, to the right of the Type dropdown, add:
 . [ ] Hidden
 . Tooltip: Don't show this filter in the list of filter in the Main Panel

2) On the Player tab:
 . Choose rules for tracks that match the filter:

The only question is whether to defer to 3.01. I suggest that we should (strings are already frozen and 1 translation complete). If you agree, please change to 'Urgent'.

jiri

2007-09-30 16:51

administrator   ~0011068

1) I thought that 'Hidden' would be a new value of the Type dropdown, because in case filter is hidden, the other values don't make much sense.

Re. Timeframe - Since there will be other small changes in translations (some omissions in the strings to be translated), I think that we can make the changes.

rusty

2007-10-01 18:08

administrator   ~0011090

1) Re. hidden: you're right (since the purpose of the 'type' is to map filters to the relevant tab in the sync dialog)

Re. translation: ok, so let's go ahead.

jiri

2007-10-03 14:38

administrator   ~0011152

A clarification re. what should be implemented:

1. Type dropdown should contain a new item 'Hidden', when it's selected:
 a. The filter shouldn't be shown elsewhere in MM UI.
 b. Options from Player sheet should still be applied.
 c. View tab should be hidden, since it doesn't make sense in this case.
 d. It could be shown in gray in the list of all filters in Options dialog?

2. On the Player tab add a text:
 'Choose rules for tracks that match the filter:'

petr

2007-10-03 23:54

developer   ~0011180

Done. Hidden filters will be shown in the filters list same as other, but without radio button. Will be in 1084.

rusty

2007-10-12 20:44

administrator   ~0011303

Verified 1087.