QUOTE(kode54 @ May 26 2004, 03:37 AM)
QUOTE(musicmusic @ May 25 2004, 07:35 AM)
More to the point I would rather have autoscroll anyway, i just havent had it since this stupid mouse that wanted intellipoint 5. Mind you I have kind of gotten used to no autoscroll anyway.
You can configure the middle button to produce a middle click by setting the action to AutoScroll.
I do have it set to that.

What did you mean? I don't have any problems with middle clicks.
QUOTE(Lyx @ May 26 2004, 01:53 PM)
mm, first i'd like to explain the intention behind this idea:
One of the nice things about fb2k is the various amount of plugins which change and add stuff to the display. However, what this also means is that preferences get fragmented all over the place.
[...]
The result of the above - if technically possible - could be that a user just has to download a single config-file containing a foobar-style, import it, and then automatically has all the affected plugins configured to match that style.
Not just colors, but also strings, font-settings, etc.
Yes it would be something like that. The main point I would have said upNorth has done below.
Other points are:
- The global (non-track) string does not have to use tagz, it wouldn't make much of a difference either way.
- Personally I would not just give plugins access to the string(s) but process it for them. (minor point)
- I am not sure where you are going with the config page cloning. You wouldn't need to clone config pages to make them be imported/exported.
The importer & exporter would also need to be made to ask what you want to import and export
..sounds like fun, and a lot of work. I am not going to do anything that complicated, if someone else does I would gladly use their implementation in columns ui.
If the global support is developed more as discussed below I may move it to a separate plugin with an api but that is it, it is far too much work otherwise..
QUOTE(lyx)
P.S.: You mentioned that the copy-string may be built into the core. Am i right to guess that since its configured under the standard-gui, that the standard_gui someway interfaces with it? If yes, couldn't any other plugin do this as well then? (i.e. foo_configurator)
I think you shuold look again at preferences, those strings are not under the standard ui.
Yes all components can access those strings, and modify them, and get callbacks when they are modified etc...
I was refering to the fact that I format the playlist/window title/status bar/systray strings on my side, whilst the copy string is formatted on the core's side, and so i can't make/force global variables to be available there.
QUOTE(upNorth @ May 27 2004, 01:46 PM)
@musicmusic:
It seems I have a major problem explaining my ideas. Sorry about that. I still believe the idea is good though.
Just to confirm, I really ment to really disable parts of the global code, not just skip a part of an $if() statement. I don't really know all the technical terms, and that makes it even more difficult, but if I'm not mistaken, the word "parse" means interpreting the code on runtime. If so, then disabling code by using an $if() statement (with alot of contents) still means it has to be parsed. Right?
Yes I was trying that on your dynamic string, putting it in a big $if and seeing what impact it had on speed. The portion that fitted in the edit box on the columns ui config page went from 2 ms to 0.5 ms. So parsing the string is kind of slow.
QUOTE(upNorth @ May 27 2004, 01:46 PM)
TAGZ isn't really suited for constructing guessing code, and if you still want to do it, and catch alot of exceptions, then it turns out pretty long. Not much to do about that.
Anyway, I kind of got a better idea last night, "Global extensions". Although my plan was to make a long explanation later with pictures and all, I'll try to give it here instead with some ASCII art.
Description of the idea:You keep the global section as is, but makes it possible to extended it with these "extensions". An extension is a separate part of code located in it's own input box/formatting window, that can be inserted into the global section. All of these extension are localized under a new tab called "extentions" following the already present "Global" and "Colours (Global)" tabs. In this new tab, extentions can be enabled/disabled, created and deleted, alot like how columns work now. The enable/disable checkbox would make it easy for users (as in not only the creator) of a formatting to turn features on and off, something that IMHO is currently not that easy to communicate to everyone. A checkbox is alot more intuitive than starting a code with a config section using e.g. $puts(Caps_first_letter,1) where 1=yes and 0=no. Below in an example of how I imagine it implemented in this tab:
CODE
_______ ________________ __________________
|Globals| |Colours (Global)| |Global Extensions|
--------------------------------| |----------------------------
_______________________________________________________________
| _ More info(button) |
| |v|(checkbox) Description(text) Edit(button) | Extention 1:
|______________________________________________________________|
_______________________________________________________________
| _ More info(button)|
| |_|(checkbox) Description(text) Edit(button) | Extention 2:
|______________________________________________________________|
_______________________________________________________________
| _ [More info]|
| |v| Guess values when tags are missing [Edit] | Extention 3:
|______________________________________________________________|
And so on
New extension(button) Delete extension(button)
------------------------------------------------------------------------------
Extension 3 shows an example.
The Edit button opens a pop up window containing three input boxes. One with the code, one with the "description" input and one with the contents of "More Info".
The "More Info" button opens a popup with additional info about this setting/extension. Just in case the user would like more info than the "description" gives.
The first checkbox is associated with a new variable available in the global section, called e.g. %__ext_1% (
true/
false depending on the state of the checkbox). It could be used like this in the global section:
$if(%__ext_1%, $execute_extension(1))
When this line is reached in the global section, the code associated with that extension is parsed/prosessed/executed (whatever the right word is...) if the checkbox is checked, before it continues to the next line in the global string.
As I see it, you still have only
one globals section, but the contents of it would be more dynamic. The benefits are (I hope) that you don't need to parse alot of code that won't be used (e.g. guessing, touch up like $chaps2(), remove underscore...) and it would be alot easier for users without formatting/coding knowledge to utilize the options the creator of the formatting has made available to them. To make this work for chooseing color themes too I guess you might need radio buttons

Yes I thought of the same after thinking about what you said actually.
I was going to say that that choosing the colour scheme should really be taken out of tagz, as well as enabling tag guessing like you say.
Choosing a different colour scheme will insert the relevent code into the global string, same for tag guessing, resulting in a slightly more dynamic string as you say. Either that or they are formatted separately, I am not sure what is a better idea.
It would not be through some $functions though, i can't add custom functions like that for one.
Anyway, I am just not sure exactly how the user should be able to add these options/sections into the config page. I think it would end up being a list (maybe a dropdown) with the sections, another dropdown list with the options/categories for that section (e.g. the colour themes, or maybe different levels of tag guessing), a checkbox to enable/disable the section, and the string for the chosen categoriess for that section. And some new/remove buttons for the sections and options.
i think that is the most sensible way with some flexibility.
QUOTE(upNorth @ May 27 2004, 01:46 PM)
So, did I manage to explain my idea this time? If so, does it sound like a good idea, or is it way "over the top"?
And, am I by any chance your worst nightmare?

Dont worry, it is a good idea, kind of far fetched but still a good idea. No, my nightmares aren't that bad.

QUOTE(upNorth @ May 27 2004, 01:46 PM)
Oh, by the way, could you make the current time and date available as metadata? I thought I could use it in combination with foo_playcount to highlight tracks in the playlist that has been played today. I have foo_history already, but I would like to see this in my playlist too.
The problem is that the time would change every second or minute, and the cache would need to be flushed, and whather strings would then be reformatted, and the playlist repainted.
Date is ok, I just am not sure how to get a notification of when the day changes (for it to correctly update if your computer is on for long time).
What format should it be in? Or separate day/month/year fields?
QUOTE(Lyx @ May 27 2004, 02:39 PM)
is there any advantage in having a seperate global-colorstring page?
It is simpler for me to process that way, and the global variables is an optional feature.
QUOTE(Lyx @ May 27 2004, 06:32 PM)
edit: could it be that there are problems with reseting the color via
in a column after a transition happened?
CODE
// artist-part
$if($not($strcmp(%_artist%,$char())),
$transition(%_artist%,$get(artist_color),$get(artist_color2))
)
// !!!!!!!!!!! here the color isn't reseted properly !!!!!!!!!!!!
// seperator
$if($or(%_artist%,$strcmp(%_enable_folders%,1)),' - ')
// album-part
I think it may invert the desired colour possibly. I will fix it for 0.1.1...