HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: TheQwertiest on 2017-11-23 10:19:08

Title: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 10:19:08
CaTRoX (QWR Edition)
(https://i.imgur.com/15LCGzs.png) (https://i.imgur.com/15LCGzs.png)

CUI theme based on the design and color scheme of eXtremeHunter1972's infamous CaTRoX theme!

Features (https://theqwertiest.github.io/CaTRoX_QWR/docs/features/):
 - Three player modes: Full, Playlist and Art.
 - Custom playlist with extensive customization.
 - Integrated YouTube support (via foo_youtube and Find & Play script).
 - Tree style media library viewer (via `Library Tree` script).
 - Borderless player window.
 - Fully modularized via script packages.
 - And more!

See Installation Guide (https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/) to get started!

Links
 - Download link (https://github.com/TheQwertiest/CaTRoX_QWR/releases/latest)
 - Homepage (https://theqwertiest.github.io/CaTRoX_QWR)
 - Changelog (https://github.com/TheQwertiest/CaTRoX_QWR/blob/master/CHANGELOG.md)

Included 3rd party scripts
 - Find & Play (Panel_YT.js): https://hydrogenaud.io/index.php?topic=121006 by WilB.
 - Library Tree (Panel_Library.js): https://hydrogenaud.io/index.php/topic,110938.0.html by WilB.
 - Various samples from foo_jscript_panel: https://github.com/TheQwertiest/smp_2003 by marc2003.

Credits
 - eXtremeHunter1972: original CaTRoX theme (http://extremehunter1972.deviantart.com/art/CaTRoX-1-April-2014-368146015 (http://extremehunter1972.deviantart.com/art/CaTRoX-1-April-2014-368146015)).
 - marc2003: original foo_jscript_panel, sample scripts and various JS consultations.
 - WilB: YouTube Track Manager script and Library Tree script.
 - Respective authors of the components used in the theme.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2003 on 2017-11-23 11:13:26
Some bugs.  :P

1)
thumbs doesn't download anything because this line in thumbs.js points to a file that doesn't exist - you chose not to bundle any files with your component.

Code: [Select]
this.vbs_file = fb.ComponentPath + 'samples\\complete\\vbs\\download.vbs';

2)
last.fm similar artists crashes because you've updated lodash without adding bind to this map function...

Code: [Select]
this.data = _(_.get(_.jsonParseFile(this.filename), 'similarartists.artist', []))
.map(function (item) {
return {
name : item.name,
width : _.textWidth(item.name, panel.fonts.normal),
url : this.properties.link.value == 0 ? item.url : 'artist HAS ' + item.name
};
}, this)
  .value();
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 11:20:21
Some bugs.  :P
1)
thumbs doesn't download anything because this line in thumbs.js points to a file that doesn't exist - you chose not to bundle any files with your component.
2)
last.fm similar artists crashes because you've updated lodash without adding bind to this map function...

Thanks! =)
So much for the smooth release...

Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2003 on 2017-11-23 11:32:58
Another thing... because the site hosting panel stack splitter has gone, you should post a link to this thread in the uploads section:

https://hydrogenaud.io/index.php/topic,114249.0.html


Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 12:00:45
Another thing... because the site hosting panel stack splitter has gone, you should post a link to this thread in the uploads section:
https://hydrogenaud.io/index.php/topic,114249.0.html
That's weird: http://foo2k.chottu.net/ is accessible for me as well as link to PSS (http://foo2k.chottu.net/foo_uie_panel_splitter.zip)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2003 on 2017-11-23 12:14:09
That IS weird. Last time I looked it was just a holding page. As you can see from the thread I linked to, that was some months ago.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 13:56:42
Version: 4.0.2
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.0.2
Changelog:

Kudos @marc2003 for bug hunting =)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: always.beta on 2017-11-23 14:48:23
JScript Panel (Cover Panel)
JavaScript 运行时错误:
正则表达式中缺少 ']'
File: ...\js\lodash.min.js
Line: 1, Col: 6969
<source text only available at compile time>
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 14:54:47
JScript Panel (Cover Panel)
JavaScript 运行时错误:
正则表达式中缺少 ']'
File: ...\js\lodash.min.js
Line: 1, Col: 6969
<source text only available at compile time>
What OS and IE version do you have?

Did you import theme.fcl?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: always.beta on 2017-11-23 15:08:04
What OS and IE version do you have?

Did you import theme.fcl?
windows 10 pro insider per 17035 + IE 11.1000.17035.0.
I import theme.fcl.

Panel_yt.js file encoding needs to be converted to UTF-8 with BOM.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: always.beta on 2017-11-23 15:34:29
(1)Playlist modes > Click on the volume bar
 “setInterval”未定义
...\js\volume.js
Line: 141, Col: 21

(2)Display > Columns UI > Layout > Mini > OK, > Aw,crashed...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 15:43:54
(1)Playlist modes > Click on the volume bar
 “setInterval”未定义
...\js\volume.js
Line: 141, Col: 21
Welp, hard to test everything myself ^^.

Quote
(2)Display > Columns UI > Layout > Mini > OK, > Aw,crashed...
Heh, this one is a relic of old times, I even forgot that it existed :D

Thanks for the bug reports. These two will be fixed soon.

JScript Panel (Cover Panel)
JavaScript 运行时错误:
正则表达式中缺少 ']'
File: ...\js\lodash.min.js
Line: 1, Col: 6969
<source text only available at compile time>
Does it crash on fb2k launch?
Try selecting\creating empty playlist and reloading fb2k. Does it crash in such case as well?

Quote
Panel_yt.js file encoding needs to be converted to UTF-8 with BOM.
Why though? Does it break something when it is without BOM?

Still at my wits end about lodash crash in Cover Panel though...
Oooohkay.... Now I'm getting somewhere - it seems this has something to do with character encoding. Probably you have a track with kanji characters selected, which somehow breaks lodash.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2003 on 2017-11-23 16:15:22
Try the standard (not minified) version and then you'll see where the problem is.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 16:26:36
Try the standard (not minified) version and then you'll see where the problem is.
Well, I know, where the problem is: https://github.com/lodash/lodash/blob/4.17.4/lodash.js#L253
I've even found a mention of the problem: https://github.com/lodash/lodash/issues/2625

But still wondering what actually causes it and how to fix it. :\
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-23 19:19:03
Version: 4.0.2a
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.0.2a
Changelog:

Kudos @always.beta  ;)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: always.beta on 2017-11-24 05:40:03
4.0.2a has the same problem. I need to convert panel_yt.js and lodash.min.js file codes to utf-8 with BOM before I can use it normally.
The panel_yt.js file 884 line has full-width characters.
Still crashes when clicking on volume bar in Playlist Mode, PREPROCESSOR is still missing the timeout-shim.js file.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-24 08:55:29
4.0.2a has the same problem. I need to convert panel_yt.js and lodash.min.js file codes to utf-8 with BOM before I can use it normally.
The panel_yt.js file 884 line has full-width characters.
Still crashes when clicking on volume bar in Playlist Mode, PREPROCESSOR is still missing the timeout-shim.js file.
Damn, wrong .fcl uploaded...
Does adding BOM fix the crash in Cover Panel?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Coreda on 2017-11-24 09:56:03
Always nice to see JScript Panel see some use, and with a dark theme, too.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: always.beta on 2017-11-24 11:45:52
Does adding BOM fix the crash in Cover Panel?
Yes, it will fix the crash in Cover Panel. (Almost all of the panels on startup have this error, not just the cover panel.  :D )
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-24 12:29:27
Version: 4.0.2b
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.0.2b
Changelog:

Kudos @always.beta  :P
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2003 on 2017-11-24 16:05:20
That lodash thing was bugging me so I looked in to it some more...

a) that lodash file is not the original from source. It's been mangled in some way and I'm almost certain the original would have worked correctly without adding a BOM.

b) having said that, utf8 files without BOM (like the youtube script) are not handled correctly in the preprocessor section and this is a component issue which needs to be fixed.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-11-24 17:05:53
a) that lodash file is not the original from source. It's been mangled in some way and I'm almost certain the original would have worked correctly without adding a BOM.
Welp, I used CDNJS to get lodash, but I doubt that CDN choice really matters here, since the original problem was caused by invalid unicode decoding of the script file. Who knows though, I might be wrong, but I don't have a VM with chinese locale to test it properly ¯\_(ツ)_/¯

[EDIT]: On the second thought, you are probably right, since the problematic line is handled differently in minified version from CDNJS compared to vanilla one: it replaced all unicode character codes with the actual characters, which is very likely to be the source of problem...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2003 on 2017-11-24 17:20:00
It's more luck than judgement no one else has noticed/complained about this.

A most simple test which shows the shortcoming:

Save as a.js (plain UTF8 without BOM in your foobar profile)
Code: [Select]
var a = "’";

Then in a fresh panel...
Code: [Select]
// ==PREPROCESSOR==
// @import "%fb2k_profile_path%a.js"
// ==/PREPROCESSOR==

fb.trace(a);

outputs this..

Code: [Select]
’

edit: I have now fixed this for the next release. Luckily the functions for handling it were already in place - I never would have figured it out myself.  :'(



Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-12-04 10:02:33
Version: 4.0.3
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.0.3
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2017-12-24 12:42:37
Version: 4.0.4
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.0.4
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-01-10 13:10:31
Version: 4.0.5
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.0.5
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: davideleo on 2018-01-10 14:52:09
Is the modded jscript panel your development of marc2003's last version? Did I miss some other post about it?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-01-10 17:29:21
Is the modded jscript panel your development of marc2003's last version? Did I miss some other post about it?
Not really: v1.3.2.2 is the the latest available JScript from marc2003 prior git take-down. The included component is just a rebase of my old extensions on top of it =)

I'm not sure if marc2003 is coming back to these boards, but he resumed the development of the original JScript. This theme will be updated once the new version of JScript is ready for release.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-06 13:10:13
Version: 4.1.0
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.1.0
Changelog:

Added
Changed
Fixed
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: arch21 on 2018-02-07 09:11:45
hi, just looking your theme. you have release version 4.1.0 but with file name catrox_qwr_edition_4.0.5.zip, is it just wrong naming or completely different release?
anyway link above is invalid. regards :)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-07 09:31:00
hi, just looking your theme. you have release version 4.1.0 but with file name catrox_qwr_edition_4.0.5.zip, is it just wrong naming or completely different release?
anyway link above is invalid. regards :)
Darn! Thanks for noticing! That's why copy-pasting is a bad practice... >_<""

Correct link for v4.1.0: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.1.0
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Air KEN on 2018-02-07 10:09:23
still catrox_qwr_edition_4.0.5.zip.

foo_jscript_panel_modded [JScript Panel (foo_jscript_panel)]
↑Please change component name, file name and version.  ;)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-07 10:15:40
Fixed >_<""""""""""""""""""""""

PS: No need to redownload, it was just a wrong zip name, the contents are correct.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-02-07 19:07:35
Hey QWR, kind of a weird question, but how much work did you do with the playlist side of things? With ExtremeHunter's permission I ripped his playlist code out for use in my theme about 4-5 years ago. I've fixed most of the bugs I think, but there's a lot of code that seems unnecessary. I'm interested if you've changed it drastically.

Currently considering whether I want to update.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-07 22:28:45
Hey QWR, kind of a weird question, but how much work did you do with the playlist side of things? With ExtremeHunter's permission I ripped his playlist code out for use in my theme about 4-5 years ago. I've fixed most of the bugs I think, but there's a lot of code that seems unnecessary. I'm interested if you've changed it drastically.

Currently considering whether I want to update.
Well, uh, actually, like most of the theme, it does not share any code with the extremehunter's version at all =)
Playlist was rewritten from scratch and only the original design was retained. It became quite big though (feature-wise as well), but hopefully code is much easier to understand and to modify (it is for me obviously :P).
Feel free to ask here or via PM if you have any questions about the code.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-02-07 23:37:48
Haha, cool. Everytime I have to touch it I think of how it needs a complete rewrite, but then I think of how it works 95% and how I've spent so much time already fixing it....

If you're okay with me potentially cribbing large chunks of your code for my own theme, I'll give it a looksee. :)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-08 09:08:24
Haha, cool. Everytime I have to touch it I think of how it needs a complete rewrite, but then I think of how it works 95% and how I've spent so much time already fixing it....

Those 5% that were nearly impossible to fix and being unable to add new features without breaking something somewhere is what forced the rewrite...

If you're okay with me potentially cribbing large chunks of your code for my own theme, I'll give it a looksee. :)
You can use whatever code you want as long as the credit is given where it's due =) Theme uses @marc2003 samples and also includes some of the @WilB scripts (see https://github.com/TheQwertiest/CaTRoX_QWR and it's wiki for more info)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-19 11:11:29
Version: 4.1.1
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.1.1
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Porcus on 2018-02-19 11:40:36
Interesting. Is there a way to do without foo_ui_hacks, which violates the SDK license?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-19 12:00:58
Interesting. Is there a way to do without foo_ui_hacks, which violates the SDK license?
Nope, not possible: most of the major theme features rely on functionality provided by foo_ui_hacks and are impossible to implement with vanilla JScript alone.

PS: And as was said many times before, technically foo_ui_hacks does not violate SDK license, since it does not use fb2k SDK at all. Moreover, in 2018-02-05 SDK license update Peter removed the following part
Quote
Usage restrictions:
It is illegal to use this SDK as a part of foobar2000 components that operate outside of legally documented programming interfaces (APIs), such as using window procedure hooks to modify user interface behaviors. We believe components doing so to be harmful to our userbase by introducing compatibility issues and dependencies on undocumented behaviors of our code that may change at any time without any notice or an update to the SDK which would reflect the change.
thus even if foo_ui_hacks was using vanilla fb2k C++ SDK it would not violate it's license.

PPS: Loved @Peter 's comment in that SDK update changelog: "A less restrictive license - common sense cannot be enforced" - so true >_<
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Porcus on 2018-02-19 12:47:09
Ah! Thanks for updating me.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-19 16:20:05
Added a short description about Track Grouping feature on CaTRoX wiki (https://github.com/TheQwertiest/CaTRoX_QWR/wiki/Playlist-panel#group-header)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-02-19 17:06:24
Great work man, I really like the theme except for the library tree.
Is there an easy way to replace it with the standard Album List viewer? I'm not so experienced with modding things myself.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-20 10:14:54
Great work man, I really like the theme except for the library tree.
Is there an easy way to replace it with the standard Album List viewer? I'm not so experienced with modding things myself.
Replace the highlighted JScript Panel with the one you like =)
Spoiler (click to show/hide)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-02-20 21:41:54
Alright that works. I had to download a Columns UI component for it too.
Any idea how I can adjust the size of it? It still looks a bit awkward and covers most of the bottom 2 tabs.
Also I found these colour options but I can't adjust them. Are they set in a script?

Spoiler (click to show/hide)

Appreciate the help =)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-21 09:36:11
Alright that works. I had to download a Columns UI component for it too.
Any idea how I can adjust the size of it? It still looks a bit awkward and covers most of the bottom 2 tabs.
Spoiler (click to show/hide)

Appreciate the help =)
You probably replaced the wrong panel. The panel you need to replace is called 'Library' in Panel Stack Splitter.

Quote
Also I found these colour options but I can't adjust them. Are they set in a script?
Most of the theme colors are hard-coded in script files (i.e. it does not use CUI color settings), so you'll have to replace them manually if you want to change them.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Senchou on 2018-02-21 16:24:35
First of all, many thanks for your incredible theme. I have found some odd behaviour with "Various Artists" compilations showing the very first artist instead of album artist:

(https://i.imgur.com/VghjiQF.png)

Can I change it on my side or is a randomly generated feature (aka bug)?

Kind regards
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-21 18:33:14
First of all, many thanks for your incredible theme. I have found some odd behaviour with "Various Artists" compilations showing the very first artist instead of album artist.

Can I change it on my side or is a randomly generated feature (aka bug)?

Rather it's a randomly generated oversight (aka lack of testing) =)
Title query in header uses first track in group for evaluation.
You can change this title query in grouping preset manager (see >>link<< (https://github.com/TheQwertiest/CaTRoX_QWR/wiki/Playlist-panel#track-grouping)) with something like
Code: [Select]
$if($greater($len(%album artist%),0),%album artist%,%artist%)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Senchou on 2018-02-21 21:12:59
That did the trick, many thanks!

(https://i.imgur.com/fjMsL7x.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-02-23 17:19:03
Hey,
so WilB is an awesome guy who asked me for feedback and wants to fix most of the issues I had with Library Tree.
Looking at the components I didn't install it myself though. So is this somewhere in your modded JScript thing? Would I be able to change to a new version of Library Tree myself without breaking a bunch of other stuff? His update is not done yet, I'm just asking.

Also I've had some issues with hotkeys.
Middle mouseclick on an item in Library Tree is supposed to add to playlist but does nothing.
CTRL-O for 'Open Folder Containing Selected Item'    opens my Documents folder, not the proper album folder.
CTRL-Q for 'Add Selected Item to Playback Queue', SHIFT-Q for 'Remove Selected Item from Playback Queue', CTRL-SHIFT-Q for 'Clear Playback Queue'            Are these supposed to add to the playlist or just go inbetween the end of the current and the start of the next song? Either way I see a 0 pop up for the Library Tree jump search thing and nothing happens.
I had the same problem with some other hotkeys I tried to set up in the foobar options.

Not sure if you're the right person to ask here but the Top Rated filter finds nothing, even though I've tagged a few songs with 5 stars.

So despite that it's been fun exploring your theme. I like it a lot.  ;)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: WilB on 2018-02-23 19:08:56
You may need to set up the top rating "View Filter" in library tree panel properties.

Default:
rating IS 5. That works if the rating field is really present in a tag. "$meta(rating)" IS 5 can also be used.

If you just put the rating in the playback statistics database it needs to be:

%rating% IS 5

As I said, I couldn't reproduce the middle click thing either on CaTRoX or my own themes. I have no idea what's going on, but you said you had a lot of errors on installation??? I suppose something in CaTRoX could be interfering???

Playback queue is not related to library tree. I've stopped jump search occasionally showing when it shouldn't in next version of library tree.

I have also added the user-definable hot keys you pm'd me about for the next version of library tree.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-23 22:03:30
so WilB is an awesome guy

Yes, he is ;)

Hey,
so WilB is an awesome guy who asked me for feedback and wants to fix most of the issues I had with Library Tree.
Looking at the components I didn't install it myself though. So is this somewhere in your modded JScript thing? Would I be able to change to a new version of Library Tree myself without breaking a bunch of other stuff? His update is not done yet, I'm just asking.

Can't guarantee that, since I've tested the latest version of my theme only with the 1.3.9.2 version of Library Tree script, but the future versions will still most likely work fine with the theme. My modded JScript does not really change anything in the functionality of the original JScript component, it only adds new features needed for the theme.

Also I've had some issues with hotkeys.
Middle mouseclick on an item in Library Tree is supposed to add to playlist but does nothing.
CTRL-O for 'Open Folder Containing Selected Item'    opens my Documents folder, not the proper album folder.
CTRL-Q for 'Add Selected Item to Playback Queue', SHIFT-Q for 'Remove Selected Item from Playback Queue', CTRL-SHIFT-Q for 'Clear Playback Queue'            Are these supposed to add to the playlist or just go inbetween the end of the current and the start of the next song? Either way I see a 0 pop up for the Library Tree jump search thing and nothing happens.
I had the same problem with some other hotkeys I tried to set up in the foobar options.

Hotkey for 'Open Folder Containing Selected Item' is actually SHIFT-O (fixed documentation on wiki), but it is bugged in the current theme release and causes a script crash, sorry for that >_<""

CTRL-O is the fb2k default hotkey for File/Open...

CTRL/SHIFT-Q are used to manage playback queue and not a playlist. Playback queue contains tracks that will be played next and does not affect the playlist in any way. E.g. you have a playlist [item_1, item_2, item_3]; currently your playback order is 'Default' and  item_1 is playing; you add item_3 to the playback queue; after item_1 finishes playing item_3 will be played next instead of item_2, whilst the playlist remains unchanged.

Middle-click does not work for me either, I'll try to find if it is caused by something in my theme or if it is the problem in the original @WilB 's script.

Not sure if you're the right person to ask here but the Top Rated filter finds nothing, even though I've tagged a few songs with 5 stars.

Will test it later and see if it works.

So despite that it's been fun exploring your theme. I like it a lot.  ;)

Thanks! Glad you liked it! Keep having fun :D

[EDIT] Welp, I've just crashed the Library Tree script (stack overflow error), while trying to test Top Rated filter -_-
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-23 22:21:15
I couldn't reproduce the middle click thing either on CaTRoX or my own themes
Is middle-click adding selected item to the current playlist supposed to be the default behaviour in Library Tree script? Cause it does not work for me either =(

About 'Top Rated' filter: when I rate any song in my playlist with Top Rated filter open, it causes Library Tree to hang and then crash with 'stack overflow' error.

PS: I can move this discussion to the Library Tree thread, if desired.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: WilB on 2018-02-23 22:54:11
Middle-click was a feature put in by request to add tracks to the end of the playlist in the order clicked. With es_playlist, el_playlist and sim_playlist they refocus so the added tracks are always visible. The add function includes plman.EnsurePlaylistItemVisible... So it works properly for me with those playlist viewers.

I can kind of reproduce with CaTRoX if the playlist is already filled. The track(s) are added but the focus position of the CaTRoX playlist doesn't change. So since they're added to the end you may not see them & may not realise they're added. The same issue is present if the right click menu "Add to Current Playlist" is used. Again its working properly with the standard playlist viewers mentioned above.

Regarding the hang, I was aware of a stability issue with 1.3.9.2 that I had fixed for the next release and hopefully it covers the issue you encountered. But I will test further...

[EDIT] I just tried CUI album list in CaTRoX  with album list right click menu "Add to Playlist". That doesn't work properly with CaTRoX playlist either, i.e. it behaves the same as Library Tree.

HTH
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-24 09:04:21
Middle-click was a feature put in by request to add tracks to the end of the playlist in the order clicked.
It seems that on my system mbtn_down and mbtn_up callbacks are not called at all, i.e. it's not a problem in your script, but probably in JScript itself (or may be in my system).

With es_playlist, el_playlist and sim_playlist they refocus so the added tracks are always visible. The add function includes plman.EnsurePlaylistItemVisible... So it works properly for me with those playlist viewers.
Hm... I've never actually bothered with plman.EnsurePlaylistItemVisible before, so it might be not working at all in my theme =) Will try to fix it though.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-02-24 10:15:27
If you just put the rating in the playback statistics database it needs to be:

%rating% IS 5
Yup, that fixed it.

As I said, I couldn't reproduce the middle click thing either on CaTRoX or my own themes. I have no idea what's going on, but you said you had a lot of errors on installation??? I suppose something in CaTRoX could be interfering???
I had messed around with a lot of the options and crashed the script several times yeah.
Since then I've reinstalled everything and haven't seen that behaviour again. Unfortunately I can't tell you anymore what settings I had used. Might have been just a typo in a settings dialogue though.

Playback queue is not related to library tree. I've stopped jump search occasionally showing when it shouldn't in next version of library tree.

I have also added the user-definable hot keys you pm'd me about for the next version of library tree.
Awesome!


It seems that on my system mbtn_down and mbtn_up callbacks are not called at all, i.e. it's not a problem in your script, but probably in JScript itself (or may be in my system).
Sounds like that's the problem.
My middle mouse button works normally in other programs but doesn't register in library tree. It's not that I don't see it being added, but nothing happens.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-24 16:56:33
Ok, I've found out what causes middle mouse to misbehave: when caption is hidden via foo_ui_hacks it sets middle mouse button to behave as window mover (i.e. when you press the mbtn you can move the player window), it can be changed back via Preferences > Display > Main Window > Move With... > Caption only. Not sure how to workaround that, but I have a few ideas...

The add function includes plman.EnsurePlaylistItemVisible
Yup, should be fixed now, that is in the next theme release =)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-24 17:34:39
Okay, for now I will just patch foo_ui_hacks to disable automatic 'Move With...' change. More hacks to ui_hacks! :D
Darn, actually it was in my script all along... Will be fixed in the next release...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-02-24 19:02:08
If you just put the rating in the playback statistics database it needs to be:

%rating% IS 5
Yup, that fixed it.

You can also force CaTRoX to read and write rating to tags instead of foo_playcount: SHIFT-Right-Click on playlist > Panel Properties > user.row.rating.from_tags > true

Note, that you have to do this for both playlists panels in Full and Playlist modes.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-02-25 10:14:59
You can also force CaTRoX to read and write rating to tags instead of foo_playcount: SHIFT-Right-Click on playlist > Panel Properties > user.row.rating.from_tags > true

Note, that you have to do this for both playlists panels in Full and Playlist modes.
Even better. Mousemiddleclick works now as well, thanks
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-26 14:09:52
Version: 4.2.0
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.2.0
Changelog:

theme.fcl was changed, so it must be re-imported for theme to work!

Special thanks to @Senchou, @N4s7y, @WilB and marc2k3 (https://github.com/marc2k3) for bug reports o/
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-26 15:14:52
Version: 4.2.0a
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.2.0a
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-03-26 17:13:39
Hm my foobar crashes on start after installing that.
I just copied in the files from the catrox folder and put the jscript panel dll in the components folder. Did I miss anything there?
It seems to be the jscript file. I tried importing the fcl while still using the old jscript (just so I can actually open foobar) but that doesn't work either.

Spoiler (click to show/hide)

Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-26 17:40:00
Hm my foobar crashes on start after installing that.
Updating fb2k to the latest beta 11 should solve your crashes ;)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-03-26 20:18:01
It did, thanks.
Looking really good so far.
Just one question: How does the original release date work? Does it need a specific tag? That looks quite useful.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-27 10:24:14
Just one question: How does the original release date work? Does it need a specific tag? That looks quite useful.
It uses "ORIGINAL RELEASE DATE" field, which takes values from TORY and TDOR meta-tags (see http://wiki.hydrogenaud.io/index.php?title=Foobar2000:ID3_Tag_Mapping). So if you want to use it, you have to set TORY or TDOR meta-tag.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-27 11:41:48
Version: 4.2.0b
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.2.0b
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-03-27 16:30:46
It uses "ORIGINAL RELEASE DATE" field, which takes values from TORY and TDOR meta-tags (see http://wiki.hydrogenaud.io/index.php?title=Foobar2000:ID3_Tag_Mapping). So if you want to use it, you have to set TORY or TDOR meta-tag.

I tried a few tags but can't get it to work. Am I missing something?
Also is there a good way to automatically tag things with orginal year included?

Spoiler (click to show/hide)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-27 17:02:50
I tried a few tags but can't get it to work. Am I missing something?
Yep, it seems my understanding of this metatag is lacking, I will test it more thoroughly now and will write a better description.

Also is there a good way to automatically tag things with orginal year included?
Dunno =)
There are probably tools to automate this, but this feature was done on request (i.e. I don't use this tag in my library), so...

[EDIT] Oookaaaay... So, I've researched a bit: if you are editing tags from fb2k, you should use ORIGINAL RELEASE DATE meta tag name. This field maps to the source file tags as mentioned here: http://wiki.hydrogenaud.io/index.php?title=Tag_Mapping#Dates

PS: Mp3Tag equivalent is ORIGYEAR
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: N4s7y on 2018-03-27 21:21:49
Alright ORIGINAL RELEASE DATE works for both mp3 and flac, meaning it shows in the playlist. ORIGYEAR doesn't for me.
Anyway that works for me. Thanks for getting rid of yet another slight annoyance for me =)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-03-28 11:04:39
ORIGYEAR doesn't for me.
By Mp3Tag I meant this program: https://www.mp3tag.de
For tagging done in fb2k ORIGINAL RELEASE DATE must be used (as you did)

Thanks for getting rid of yet another slight annoyance for me =)
Yw =)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Senchou on 2018-04-01 18:55:33
Many thanks for your work with this awesome theme.

Could it be possible to add Replay Gain information (album header or per file, dunno)? I recently noticed some files with very low volume and I realized that the issue was that they had a replaygain tag, but I figured it out by accident.

Thanks
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-04-02 10:06:19
Many thanks for your work with this awesome theme.

Could it be possible to add Replay Gain information (album header or per file, dunno)? I recently noticed some files with very low volume and I realized that the issue was that they had a replaygain tag, but I figured it out by accident.

Thanks
Actually, %replaygain_album_gain% is already present in grouping header :P

Example:
Spoiler (click to show/hide)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Senchou on 2018-04-02 11:31:43
Then I don't know what happened :-[

Thanks!
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-04-16 12:21:16
Version: 4.2.1
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.2.1
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-04-16 17:01:09
So, this is slightly tangential to the purpose of this thread, but I need some help ripping off your shit ;)

I finally decided I needed to switch from my version of Catrox's playlist circa 2013 to your version, after trying out your theme and seeing how silky smooth everything operated. Really awesome work, and the code is a billion times cleaner. So I copied all the code from your playlist panel, and tried to cram it into my theme.

My theme is just a single JScript panel, with no PSS's to be found. Your playlist assumes that it will take up the entire space of a panel. It wasn't too much work to shrink the playlist to the appropriate size in on_size, but now positioning it is turning out to be a pain in the ass.

(https://i.imgur.com/XKzFaNa.png)


It looks like PlaylistManager and Playlist both get initialized with x/y set to 0, but it doesn't look like there's a way to reposition them after creation, and when I try to hack it in the on_size, things go terribly wrong.

Do you have any ideas here? I'll keep plugging away at it, but at the moment I'm not making much progress on this front.

Edit: One other thing you might be able to help with. Everytime I update the playlist (i.e. due to a on_playlist_XXXX event) I get a crash in this.init_rows Fixed this. Hadn't deleted my Row constructor  O:)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-04-17 06:12:23
Nevermind. Took me about 4 hours, and some head to desk, but I finally got it.
Spoiler (click to show/hide)

I saw you had some comments in initialize_rows about array[ i] being a lot faster, but I noticed you didn't maximize your gains. Using direct index instead of .push ought to show noticeable savings on really large playlists as it's twice as fast in modern browsers. I'd expect IE9's difference might even be more pronounced.

Code: [Select]
function initialize_rows(playlist_items, playlist_size) {
        // Magic! For some reason using array[i] instead of IFbMetadbHandleList.Item(i) greatly increases performance :\
        var playlist_items_arr = [];
        for (var i = 0; i < playlist_size; ++i) {
            playlist_items_arr[i] = playlist_items.Item(i);
        }

        var rows = [];
        for (var i = 0; i < playlist_size; ++i) {
            rows[i] = new Row(that.list_x, 0, that.list_w, that.row_h, playlist_items_arr[i], i, cur_playlist_idx);
            if (!g_properties.show_header) {
                rows[i].is_odd = (i + 1) % 2;
            }
        }

        return rows;
    }
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-04-17 10:56:17
I saw you had some comments in initialize_rows about array[ i] being a lot faster, but I noticed you didn't maximize your gains. Using direct index instead of .push ought to show noticeable savings on really large playlists as it's twice as fast in modern browsers. I'd expect IE9's difference might even be more pronounced.
Welp, dunno about twice the performance, but it did yield me 10-15% in rows initialization speed and 6.5-7% in total playlist initialization speed, thanks!

PS: See https://stackoverflow.com/questions/614126/why-is-array-push-sometimes-faster-than-arrayn-value, i.e. it's not always viable to replace push() with [idx] =)

Nevermind. Took me about 4 hours, and some head to desk, but I finally got it.
Congrats =) But, IMO, you should've added this to PlaylistPanel instead (+ pass the x,y to the PlaylistManager and Playlist ctors).

Adding 'Disc' separator Row (like you did in your theme) won't be that simple though...
Also there is another problem: playlist's bottom part is cropped by the panel in my theme. Since you don't have that you'll have to crop it yourself somehow.
Additionally, FontAwesome is needed for some icons (like the Lock icon above the scrollbar).

Fell free to ask if you have any further questions about the script ;)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-04-17 16:46:53
Welp, dunno about twice the performance, but it did yield me 10-15% in rows initialization speed and 6.5-7% in total playlist initialization speed, thanks!
Awesome! I meant just the insert to the array was 2x over .push. I'm pleasantly surprised the gains were that big (I didn't have time to test last night). Figured it would definitely be noticeable on 1-2k entry playlists.

Congrats =) But, IMO, you should've added this to PlaylistPanel instead (+ pass the x,y to the PlaylistManager and Playlist ctors).

Adding 'Disc' separator Row (like you did in your theme) won't be that simple though...
Also there is another problem: playlist's bottom part is cropped by the panel in my theme. Since you don't have that you'll have to crop it yourself somehow.
Additionally, FontAwesome is needed for some icons (like the Lock icon above the scrollbar).

Fell free to ask if you have any further questions about the script ;)
I mistyped. I added it to the PlaylistPanel.on_size, and not Playlist.on_size. I'm nervous about the disc separator, but I'm also determined, so we'll see how it goes :D

I solved the cropping problem last night. You were already using a clipImg (which wasn't being clipped  8) ) so I updated Playlist.on_paint to have this code:
Code: [Select]
        if (this.items_to_draw.length) {
            var that = this;
            _.forEachRight(this.items_to_draw, function (item) {
    item.draw(gr, that.y, that.y + that.h);
            }, that);
Then I have Header.draw call those two variables top and bottom, and threw this code at the very bottom of Header.draw_normal_header():
Code: [Select]
		clipImg.ReleaseGraphics(grClip);
var y = this.y;
var h = this.h;
var srcY = 0;
if (this.y < top) {
y = top;
h = this.h - (top - this.y);
srcY = this.h - h;
} else if (this.y + this.h > bottom) {
h = bottom - this.y;
}
        gr.DrawImage(clipImg, this.x, y, this.w, h, 0, srcY, this.w, h, 0, 255);
        clipImg.Dispose();
The individual rows don't draw to a clip image, so no way to clip the top and bottom rows, but your code is already set up to cover up rows if the list has some spacing around it, so I just used that.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-04-17 18:20:23
BTW, my To-Do list is:

To avoid spamming up this thread, are you interested in the first three at all? It might be a little hard for me to do PRs in github since I've changed a few things that I know you DON'T want in the main branch, but I can at least open issues and share code snippets there if you prefer. I can also continue pasting stuff here if you like, or just STFU. :) Let me know what you want.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-04-19 10:09:03
BTW, my To-Do list is:
  • Disc header rows - maybe special case of Row, or a new DiscHeader object, can't decide yet - actually I've wanted to implement it myself =)
  • Caching artwork on playlist refresh to avoid reloading images - the idea is nice, but it all depends on the implementation (I'm not a fan of quick and dirty solutions =) )
  • playlist_info to bottom of window - I might hate how this ends up looking - this won't be compatible with my theme's looks, so that's a no

To avoid spamming up this thread, are you interested in the first three at all? It might be a little hard for me to do PRs in github since I've changed a few things that I know you DON'T want in the main branch, but I can at least open issues and share code snippets there if you prefer. I can also continue pasting stuff here if you like, or just STFU. :) Let me know what you want.
New feature suggestions or suggestions about modifying the existing ones are fine here, I think.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-04-19 14:28:29
@MordredKLB : I'll try to implement artwork caching
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-04-19 18:02:04
After a lot of thinking, I went with the simpler solution of making discHeader just a special case of Row. I'm not entirely happy with this, but the interaction with Header got complicated, and it allowed me to handle one special case really well.

Code: [Select]
    function initialize_rows(playlist_items, playlist_size) {
        // Magic! For some reason using array[i] instead of IFbMetadbHandleList.Item(i) greatly increases performance :\
        var playlist_items_arr = [];
        for (var i = 0; i < playlist_size; ++i) {
            playlist_items_arr[i] = playlist_items.Item(i);
        }

var rows = [];
var disc, lastDisc = '';
var tfo = fb.TitleFormat('$ifgreater(%totaldiscs%,1,,false)[' + tf.disc_subtitle + ']');
var disc_group = fb.TitleFormat('%album artist% %album% %edition% %discnumber%' + tf.disc_subtitle);

for (var i = 0; i < playlist_size; ++i) {
discHeader = false;
if (tfo.EvalWithMetadb(playlist_items_arr[i]) !== 'false') {
disc = disc_group.EvalWithMetadb(playlist_items_arr[i]);
if (disc != lastDisc) {
discHeader = true;
lastDisc = disc;
}
}
            rows[i] = new Row(that.list_x, 0, that.list_w, discHeader ? that.row_h * 2 : that.row_h, playlist_items_arr[i], i, cur_playlist_idx, discHeader);
            if (!g_properties.show_header) {
                rows[i].is_odd = (i + 1) % 2;
}
}
_.dispose(tfo);
_.dispose(disc_group);

        return rows;
    }
So discHeaders are a row that's double height, and in the Row.draw I just check for the discHeader flag, and adjust what and where I draw the text. This solution handles multi-disc releases with and without subtitles, single disc releases with a subtitle (I just don't show the Disc 1 in that case), and if for example, I've got a single disc reissue which combines multiple releases, I can just tag tracks 10-15 with a discsubtitle of "1985 Demo" and the header will show in the middle of the track list which is what I want.

The one problem with doing this is that it almost doubles the speed of initialize_rows, although I can still load 30k entries in <700ms which seems acceptable. I also think that's a problem even creating a DiscHeader object type would still run into because you're going to be forced to do a bunch of TF queries. The other problem is that I can't think of a "clean" way to get the run time of the individual disc, something that would be much simpler with DiscHeader.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-04-19 21:25:46
Well, I didn't think this thoroughly yet, but I wanted disc sub-header to be something like grouping header, i.e. selecting entirety of one disc, when clicked on, maybe collapsible and surely 100% optional. The actual implementation idea is yet to form, but we'll see how it goes...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-04-19 21:41:19
No, of course. Like I said, I went for the simplest solution at the moment. Doing it my way, I miss out on collapsible/selectable functionality which would be great to have... and it's much uglier if you want it disabled or if you're already grouping by discnumber.

I also ultimately decided that this early in my theme development I didn't want to drift too far from your main branch if I could help it :)

Just now though I did have another idea of how to approach this as it's own item when the groups are being created, so I might give this another pass and see how difficult it is.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-02 22:56:22
So I'm trying to implement DiscHeaders using the new BaseHeader stuff, but I'm running into some issues with interactions with sub_items and iterate_level() inside generate_all_items_to_draw().

I'm doing my DiscHeaders inside Headers' initialize_items() method. This allows me to create them in one pass which seemed far more efficient than my old method. It works so long as I don't have to scroll or calculate what to draw:

Here's my code:
Code: [Select]
    this.initialize_items = function (rows_to_process) {
        this.sub_items = [];
        if (!rows_to_process.length) {
            return 0;
        }

        var rows_processed = 0;
        var disc_header = undefined;
        var header = this;
        var num_disc_headers = 0;

        var query = grouping_handler.get_query();
        var tfo = fb.TitleFormat(query ? query : ''); // workaround a bug, because of which '' is sometimes treated as null :\

        var disc_tfo = fb.TitleFormat('$ifgreater(%totaldiscs%,1,%discnumber%,)[%discsubtitle%]');
        var disc_group = disc_tfo.EvalWithMetadb(_.head(rows_to_process).metadb);
        if (disc_group.length) {
            disc_header = new DiscHeader(this.x, 0, this.w, g_properties.row_h, _.head(rows_to_process).metadb, 0);
            disc_header.parent = this;
            disc_header.is_odd = true;
            disc_header.idx_in_header = num_disc_headers++;
            disc_header.idx = 0;
            header = disc_header;
            this.sub_items.push(disc_header);
        }

        var group = tfo.EvalWithMetadb(_.head(rows_to_process).metadb);
        _.forEach(rows_to_process, _.bind(function (item, i) {
            var cur_group = tfo.EvalWithMetadb(item.metadb);
            if (group !== cur_group) {
                return false;
            }
            var cur_disc = disc_tfo.EvalWithMetadb(item.metadb);
            if (cur_disc !== disc_group) {
                disc_group = cur_disc;
                if (disc_header) {
                    disc_header.initialize_items(disc_header.sub_items);
                }
                disc_header = new DiscHeader(this.x, 0, this.w, g_properties.row_h, item.metadb, 0);
                disc_header.parent = this;
                disc_header.idx_in_header = i + num_disc_headers++;
                disc_header.idx = num_disc_headers;
                header = disc_header;
                this.sub_items.push(disc_header);
            }
            item.idx_in_header = i + num_disc_headers;
            if (g_properties.show_header) {
                item.is_odd = !(i & 1);
            }
            item.parent = header;
            header.sub_items.push(item);
            rows_processed++;
        }, this));

        if (disc_header) {
            disc_header.initialize_items(disc_header.sub_items);
        }

        _.dispose(tfo);
        _.dispose(disc_tfo);

        metadb = _.head(this.sub_items).metadb;

        return rows_processed;
    };

Here's my confusion. What do idx and idx_in_header mean for DiscHeaders? Say I've got the following layout:

Header1
 * DiscHeader1
 - - Row1
 - - Row2
 * DiscHeader2
 - - Row3

Does the Header1 just have two sub_items (DiscHeader1 and 2) or does it have 5? DiscHeader1 presumably has two sub_items, right? Does Row3's idx_in_header referring to DiscHeader2 or Header? i.e. is does Row3 have idx_in_header = 0, 3, or 5?

I coded this assuming that Header1 would have two sub_items, and DiscHeader1 would also have two sub_items, but something isn't working right (or I've got a bug I haven't spotted).
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-03 10:39:48
Here's my confusion. What do idx and idx_in_header mean for DiscHeaders? Say I've got the following layout:

Header1
 * DiscHeader1
 - - Row1
 - - Row2
 * DiscHeader2
 - - Row3

Does the Header1 just have two sub_items (DiscHeader1 and 2) or does it have 5? DiscHeader1 presumably has two sub_items, right? Does Row3's idx_in_header referring to DiscHeader2 or Header? i.e. is does Row3 have idx_in_header = 0, 3, or 5?

I coded this assuming that Header1 would have two sub_items, and DiscHeader1 would also have two sub_items, but something isn't working right (or I've got a bug I haven't spotted).
For BaseHeader derived objects idx field contains the position of the object in the parent's sub_items field.
For Row objects idx contains a track's index in playlist instead. So idx_in_header is used to deduce it's position in parent. I.e. only Row objects have idx_in_header field.

sub_items hierarchy:

PlaylistContent.sub_items = [
Header1.sub_items = [
 * DiscHeader1.sub_items = [
 - - Row1
 - - Row2
  ];
 * DiscHeader2.sub_items = [
 - - Row3
  ];
 ];
];

Index enumeration:

Header1 | idx: 0
 * DiscHeader1 | idx: 0
 - - Row1 | idx_in_header: 0, idx: 0
 - - Row2 | idx_in_header: 1, idx: 1
 * DiscHeader2 | idx: 1
 - - Row3 | idx_in_header: 0, idx: 2
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-04 06:02:42
Thanks for the info, updated my DiscHeader initialization accordingly.

You've got a bug in all three instances of your iterate_level code. Took me a while to find it, but basically you can remove every assignment of:
var is_next_level_row = ...

and then replace all 3 lines that are
Code: [Select]
    if (!is_next_level_row) {
with
Code: [Select]
    if (_.isInstanceOf(_.head(header.sub_items), BaseHeader)) {

That'll get you iterating through every BaseHeader, and not just if the current BaseHeader's children are rows. Once I made the change magically everything started working.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-04 10:00:17
Once I made the change magically everything started working.
Not really magically, since I've tested the code with some dummy nested headers =)

Actually I've wanted to make this change at one point of the time, but kinda forgot >_<
But thanks for pointing it out ;)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-04 16:54:59
NP! There's still one issue with nested headers in the following case:

Header
 - Row 0
 - Row 1
 - DiscHeader 0
 - - Row 2

Your code as written will show DiscHeader0, but never draw any of its children. I've created a fix for it in generate_all_items_to_draw(), but for reasons I haven't fully debugged yet, if DiscHeader 0 is the first row to draw (due to scrolling) then nothing else in the playlist draws outside that DiscHeader. I should hopefully have a fix for that later today or tonight and I can share the code. This stuff can get complex! :D
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-04 19:25:22
Found a crash in QueueHandler. If I enqueue something from a filter, and then change filters, the PlaylistItemIndex of the first item is -1 (not found) and cur_queued_row is undefined, and we crash trying to reference it's queue_idx.

Inside queue_contents.forEach first lines should be:
Code: [Select]
            if (queued_item.PlaylistIndex !== cur_playlist_idx || queued_item.PlaylistItemIndex === -1) {
                return;
            }
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-04 20:18:55
Inside queue_contents.forEach first lines should be:
Code: [Select]
            if (queued_item.PlaylistIndex !== cur_playlist_idx || queued_item.PlaylistItemIndex === -1) {
                return;
            }
Thanks! Never would've caught that one, since I use only static playlists =)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-05 05:55:19
Okay, this one's kind of a doozy. I was able to fix the draw issue with a Header whose sub_items consists of Rows, and then a BaseHeader with its own Rows. Unfortunately the code was really unmanageable, so I took a step back and rewrote generate_all_items_to_draw(), and managed to cut iterate_levels in half, and the code is a lot more intuitive IMO. No more checking isInstanceOf, no more iterating through header_rows.sub_items individually... just find the header of first_item, then start at that header, and loop through all its sub_items, and siblings until cur_y > playlist height.

Code: [Select]
    function generate_all_items_to_draw(wy, wh, first_item) {
        var items_to_draw = [first_item];
        var cur_y = first_item.y + first_item.h;

        var done = false;
        var start_item_found = false;
        var first_item_header = first_item;
        while (first_item_header && first_item_header.parent !== _.head(that.sub_items).parent) {
            first_item_header = first_item_header.parent;
        }

        /**
         *
         * @param {Array<BaseHeader>|Array<Row>} sub_items
         * @param {Row|BaseHeader} start_item
         * @return {boolean} true, if start_item was used
         */
        function iterate_level(sub_items, start_item) {
            var start_idx = 0;
            if (first_item_header) {
                start_idx = first_item_header.idx;
                first_item_header = null;
            }
            for (var i = start_idx; i < sub_items.length; i++) {
                var item = sub_items[i];
                if (start_item_found) {
                    item.set_y(cur_y);

                    items_to_draw.push(item);
                    cur_y += item.h;
                }

                if (item === start_item) {
                    start_item_found = true;
                }

                if (cur_y >= wy + wh) {
                    done = true;
                    break;
                }

                if (item.is_collapsed) {
                    continue;
                }

                if (item.sub_items && item.sub_items.length) {
                    done = iterate_level(item.sub_items, start_item);
                    if (done) {
                        break;
                    }
                }
            }
            return done;
        }

        iterate_level(that.sub_items, first_item);

        return items_to_draw;
    }

I was feeling pretty good, and set out to rewrite generate_first_item_to_draw(), but my result was 10x-20x slower on very large playlists, and had to be scrapped. This means there's a "bug" in the Rows before BaseHeader case where the sub_items of BaseHeader can never be set as first_item_to_draw. I can't think of a way around this. It ought to be a really uncommon use case (mainly bad tagging) so I'm happy to live with it, but if you can figure out a way to target those rows without iterating through every. single. item. in the list, then you're a better programmer than I am.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-05 12:22:58
Okay, this one's kind of a doozy. I was able to fix the draw issue with a Header whose sub_items consists of Rows, and then a BaseHeader with its own Rows.
I'm not sure what draw issues are you talking about: I've just implemented a quick and dirty CD subheader and it works without any bugs :\
See https://github.com/TheQwertiest/CaTRoX_QWR/commit/382f2ee14043d8a57fb69e7ee237c4b2ef285f61


just find the header of first_item, then start at that header, and loop through all its sub_items, and siblings until cur_y > playlist height.
...
It ought to be a really uncommon use case
That is not really a performance-friendly solution: what if a header has a lot of items? Don't forget that header query is customizable, so it might not have any relation to artist, album name or cd number (i.e. it might have nothing to do with bad tagging).

You are correct, though, in that it might be possible to simplify iterator by collapsing Row iteration into the generic iteration.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-05 19:10:23
Yours works without bugs because you ensure that if a Header has a TestHeader, then ALL of it's sub_items are TestHeaders. My code doesn't make the same assumption, mainly because I add DiscHeaders when I encounter a different %disc_subtitle% tag, and I prefer not to show a DiscHeader in the single disc case. e.g.: https://i.imgur.com/7K5C6Bm.png

I do this by building out DiscHeaders in the Header.initialize_items meaning I only need to make a single pass through every item in the playlist, where yours will make two passes. Performance wise I feel that's a bigger concern than if people are grouping things in dumb ways :)

I'm thinking now that it may not be worth the trouble though and I should follow your method of enforcing all sub_items to be the same type. Your initialization is cleaner than mine, and you can make smarter assumptions in that case.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-05 19:28:01
Yours works without bugs because you ensure that if a Header has a TestHeader, then ALL of it's sub_items are TestHeaders.
Well, yeah =)
https://github.com/TheQwertiest/CaTRoX_QWR/blob/84c17d9d393be36d29838f7ca56bcca71d82c7a8/theme/Scripts/Panel_Playlist.js#L2932

I do this by building out DiscHeaders in the Header.initialize_items meaning I only need to make a single pass through every item in the playlist, where yours will make two passes. Performance wise I feel that's a bigger concern than if people are grouping things in dumb ways :)
It's just a quick mock-up (thus the 'TestHeader' class name), so it's initialization code is not optimal as well. Also see https://github.com/TheQwertiest/CaTRoX_QWR/commit/08665c72ab48008df280459a10be200f60cae69b

I prefer not to show a DiscHeader in the single disc case. e.g.: https://i.imgur.com/7K5C6Bm.png
...
I'm thinking now that it may not be worth the trouble though and I should follow your method of enforcing all sub_items to be the same type.
I don't see any reason for sub_items elements not to have the same type. If you have some tracks in the Header that do not have CD#, but all other tracks in that Header do, then, IMO, it's much cleaner UI-wise to give those untagged tracks a fake CD sub-header (like it is done in my mock-up implementation), since it will be hard to visually separate those track groups from each other otherwise (e.g. CD-numbered track group followed by unnumbered track group). Also, I think that such scenario is exactly the case of bad-tagging :P
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-05 21:09:16
I don't see any reason for sub_items elements not to have the same type. If you have some tracks in the Header that do not have CD#, but all other tracks in that Header do, then, IMO, it's much cleaner UI-wise to give those untagged tracks a fake CD sub-header (like it is done in my mock-up implementation), since it will be hard to visually separate those track groups from each other otherwise (e.g. CD-numbered track group followed by unnumbered track group). Also, I think that such scenario is exactly the case of bad-tagging :P
Haha, whether it was caused by bad tagging or was done intentionally, I was trying to handle it properly! Also, from a UI/UX perspective, I don't think there's any difficulty visually separating those groups in the screen shot I posted, but to each their own. :)

I think what I'm going to do is follow the TestHeader model for my DiscHeaders, and create fake DiscHeaders in the outlier case (in 2500 albums I think I have 5 or 6 that I want displayed this way), but flag them with a .do_not_draw property and then skip entries with that flag in the various iterate_levels.

In other experiments, I spent last night and this morning working on creating "hyperlinks" in the Header. I've got it working so I can click on Year and Artist to load a playlist with just albums with that Year or Artist. I'm planning on doing album and record labels as well. It's been kind of a pain in the ass because I've had to reimplement a bunch of on_mouse_ methods for Header, but it's starting to come together.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: embe on 2018-05-08 09:13:10
Hello,

I'm using an alternative font rendering engine on windows and was wondering why it doesn't apply to anything except for library tree and lyrics panel on your skin. It works okay on another skin that is purely jscript.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-08 12:06:34
I'm using an alternative font rendering engine on windows and was wondering why it doesn't apply to anything except for library tree and lyrics panel on your skin. It works okay on another skin that is purely jscript.
Well, all of the fonts I'm using in the theme are hard-coded (Segoe UI usually), so fb2k settings (and consequently Windows settings) do not affect the theme.
The only way to use custom fonts is to change them manually in the script files (most of the fonts are defined on the top of the script).
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: embe on 2018-05-08 16:24:36
I've changed the font to a different one, but the rendering engine hasn't. Well, I guess the problem may be elsewhere. Thanks anyway. :)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-08 19:54:29
I've changed the font to a different one, but the rendering engine hasn't. Well, I guess the problem may be elsewhere. Thanks anyway. :)
JScriptPanel uses GDI to render fonts. Maybe you're using something else in windows, but unless it replaces GDI the engine somehow, it won't change how fonts render in JScript.

I'm assuming that when you change fonts in the script, they actually do update to the new font. If they aren't you might not be entering the font name correctly (this can be a pain in the ass to figure out), or maybe you don't have the fonts you think you do installed. You can use utils.CheckFont(fontName) to make sure the fonts are actually being loaded correctly.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-05-08 22:00:26
Found a crash in QueueHandler. If I enqueue something from a filter, and then change filters, the PlaylistItemIndex of the first item is -1 (not found) and cur_queued_row is undefined, and we crash trying to reference it's queue_idx.

Inside queue_contents.forEach first lines should be:
Code: [Select]
            if (queued_item.PlaylistIndex !== cur_playlist_idx || queued_item.PlaylistItemIndex === -1) {
                return;
            }
QueueHandler crashed for me again today: "Unable to set property 'queue_idx' of undefined or null reference". Not sure how it got past those two checks though, and I haven't been able to reproduce since.

I did however run into another issue once where I'm in one playlist, I change playlists using foo_http_control, and then enqueue a song foo_http_control, and it ends up enqueuing songs from the first playlist. I think somewhere cur_playlist_idx may not be being set properly. This is also something I can't reliably reproduce, but I know I've seen it at least once before. (might also be a problem with foo_http_control?)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-09 14:26:10
QueueHandler crashed for me again today: "Unable to set property 'queue_idx' of undefined or null reference". Not sure how it got past those two checks though, and I haven't been able to reproduce since.

I did however run into another issue once where I'm in one playlist, I change playlists using foo_http_control, and then enqueue a song foo_http_control, and it ends up enqueuing songs from the first playlist. I think somewhere cur_playlist_idx may not be being set properly. This is also something I can't reliably reproduce, but I know I've seen it at least once before. (might also be a problem with foo_http_control?)
Hm... Most likely, both of these issues are caused by playlist not being changed (i.e. initialize_list method was not called). Dunno how that happens though. You may try making several playlists of different sizes - e.g. one with a single track, the other with more tracks - and switch between them while selecting the last item in the playlist. Ideally it should trigger the error much more often. If you manage to cause it more or less consistently, then we can move with investigating the logs (which can be turned on by trace_call variable).
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: embe on 2018-05-09 15:28:47
I've changed the font to a different one, but the rendering engine hasn't. Well, I guess the problem may be elsewhere. Thanks anyway. :)
JScriptPanel uses GDI to render fonts. Maybe you're using something else in windows, but unless it replaces GDI the engine somehow, it won't change how fonts render in JScript.

I'm assuming that when you change fonts in the script, they actually do update to the new font. If they aren't you might not be entering the font name correctly (this can be a pain in the ass to figure out), or maybe you don't have the fonts you think you do installed. You can use utils.CheckFont(fontName) to make sure the fonts are actually being loaded correctly.

The font itself changed for sure. The thing is that any other program that I use doesn't have this problem. Yeah, it changes the rendering of GDI. What I noticed is that if using elplaylist and the text is displayed using $drawstring the rendering doesn't change. However, if changed to $drawtext it's okay. I don't know whether that has any meaning in that case, though.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-09 16:12:27
What I noticed is that if using elplaylist and the text is displayed using $drawstring the rendering doesn't change. However, if changed to $drawtext it's okay. I don't know whether that has any meaning in that case, though.
It probably has: DrawString uses GDI+ rendering engine, while DrawText uses GDI. So, if your "engine substitution" only affects GDI, it won't affect DrawString.
My theme uses DrawString exclusively (for better ClearType hinting), while Library Tree script uses DrawText, which may explain the discrepancy you are experiencing.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: embe on 2018-05-09 16:27:01
That's exactly it. I've just changed drawstring to gdidrawtext and it renders properly. Unfortunately the text is misaligned now.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-09 16:34:50
That's exactly it. I've just changed drawstring to gdidrawtext and it renders properly. Unfortunately the text is misaligned now.
Yea, since the text width in the theme is measured with MeasureString (GDI+). You'll have to replace it with CalcTextWidth (GDI). Additionaly, you'll have to replace all StringFormat flags with corresponding GDI flags.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: embe on 2018-05-12 15:13:03
Well, since I'm not that knowledgeable and the skin is out of order after changing MeasureString, I'll call it a day and use it day that probably.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-14 11:43:19
Version: 4.3.0
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v4.3.0
Changelog:

Special thanks to @MordredKLB for disc sub-headers and art image cache ideas!
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: kitzik on 2018-05-15 07:30:51
New feature suggestions or suggestions about modifying the existing ones are fine here, I think.

Can I suggest new feature?  ;D  Maybe there is someone else besides me who wants to have a button to fast switch playback output device. It would be very handy for portable version using on multiple machines with different sound hardware. Thanks.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-05-15 15:09:23
Can I suggest new feature?  ;D  Maybe there is someone else besides me who wants to have a button to fast switch playback output device. It would be very handy for portable version using on multiple machines with different sound hardware. Thanks.
Could you elaborate it a bit, like should it just cycle between all available output devices?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: embe on 2018-06-26 13:04:32
I get the black blocks after the last song has played. Is that how it's supposed to be?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-06-26 19:37:13
... Is that how it's supposed to be?
Nope =)
I'll try to reproduce it and fix in the next release. Thanks for the report!

PS: For some reason or another I practically never ever reach the end of the playlists >_<
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-06-30 21:28:08
I haven't investigated this at all, but I realized yesterday that in my version of your playlist panel, if I select multiple songs and hit CTRL+Q to enqueue, it won't enqueue them all. Does that work correctly for you? There's a high probability I broke something, but I'm not at home this weekend to check.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-07-02 22:55:46
I checked today and it's present in your code as well. You completely ignore any en/dequeue of items if more than one row is selected.

To fix it, I added a get_selected_items method to SelectionHandler that just returns selected_items, and then I updated the key_handler code for "VKEY_Q" to be:
Code: [Select]
                if (modifiers.ctrl && modifiers.shift) {
                    queue_handler.flush();
                }
                else if (selection_handler.selected_items_count() >= 1) {
                    var rows = this.cnt.rows;
                    if (modifiers.ctrl) {
                        indexes = selection_handler.get_selected_items();
                        indexes.forEach(function (idx) {
                            queue_handler.add_row(rows[idx]);
                        });
                    }
                    else if (modifiers.shift) {
                        indexes = selection_handler.get_selected_items();
                        indexes.forEach(function (idx) {
                            queue_handler.remove_row(rows[idx]);
                        });
                    }
                }
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2018-07-04 13:45:07
I haven't investigated this at all, but I realized yesterday that in my version of your playlist panel, if I select multiple songs and hit CTRL+Q to enqueue, it won't enqueue them all. Does that work correctly for you? There's a high probability I broke something, but I'm not at home this weekend to check.

This is not a bug, but actually intentional: queue size is rather small, so it can't always hold all the selected items. So, rather then trying to guess which of those items should be put in queue and which should be discarded, I decided to enforce a sinqle item addition rule to the queue.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-07-04 16:36:24
Ahhh. Didn't realize there was a queue size limit. I think I'll play around with it and just prevent adding items after reaching the cap.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Nevodex on 2018-08-20 00:10:42
Looks like playcount statistic doesn't work correctly. The counter increases only when one minute of the song passes. Is it possible to change the behavior of counter to increase it immediately when song starts playing?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-08-20 06:29:59
Looks like playcount statistic doesn't work correctly. The counter increases only when one minute of the song passes. Is it possible to change the behavior of counter to increase it immediately when song starts playing?
foo_playcount is the component that handles counting plays of songs. It increments the count when 1 minute of the song has elapsed. That time is not user configurable. You'd have to find a different component or use your own custom playcount field that you increment manually when starting a song.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Nevodex on 2018-08-20 20:47:04
increment manually
Is it a joke?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-08-21 03:48:02
Is it a joke?
I meant "programmatically." It was late and I was thinking it could be done in jscript_panel in an on_playback_new_track callback, but jscript can't actually write tags. It might be doable in foo_customdb using your own playcount field, but outside that or finding another playcount component, you'd have to write your own.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: zeremy on 2018-08-21 11:09:52
Is it a joke?
I meant "programmatically." It was late and I was thinking it could be done in jscript_panel in an on_playback_new_track callback, but jscript can't actually write tags. It might be doable in foo_customdb using your own playcount field, but outside that or finding another playcount component, you'd have to write your own.

JScript Panel has its own Playback Stats that you could possibly add.
https://github.com/marc2k3/foo_jscript_panel/wiki/Playback-Stats
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: MordredKLB on 2018-08-21 17:04:10
That'd work. I forgot marc did his own index-db for playcount stuff.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ywoulditalk2u on 2019-07-13 01:31:56
Drag'n'drop still doesn't work the same as in original Catrox theme???
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: maniac736 on 2019-07-24 02:45:32
Hello. I had a problem installing this assembly. Installation made completely according to the instructions. However, when you first start the next assembly, an error occurs.
Quote
Error: JScript Panel v2.1.4 (Top Panel)
Ошибка выполнения JavaScript:
Недопустимый вызов или аргумент процедуры
File: E:\Foobar2000\Someone_else's_assembly\Catrox\\themes\CaTRoX\Scripts\Panel_Top.js
Line: 440, Col: 5
<source text only available at compile time>
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Khaos286 on 2019-10-20 10:40:53
The artist art is broken in the bio tab for me, is there any fix? Also thanks for the great theme.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2019-10-22 11:21:25
It will be fixed once SMP re-release is ready (sorry no ETA yet).
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Khaos286 on 2019-10-22 15:40:42
Gotcha thanks for the update.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2019-11-22 19:41:37
Hi. First thanks for sharing this great skin for foobar2000. I finally changed the player (I used the old winamp before until now!!). I have a doubt, how can I change the order of the header that appears in the capture? I want to put the artist where the album is and vice-versa on playlists ... Thanks again and sorry for my english, im from Spain.

Other question is... when i click on the magnifying glass icon at the corner, nothing happens. Where is the youtube/chrome launching configuration for make it work?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2019-11-24 00:09:36
Ok. i find the solution for LP headers. Right click on playlist, /Grouping/Manage Presets and change the location of variables from Title Query to Sub-Title Query.

Now i only need make works the magnifying glass icon, dont see the icon on preferences/configuration Layout, and his possible function...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2019-11-24 02:32:03
I'm reading the documentation now. Sorry for waste your time  ::) .
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2019-11-24 11:44:54
Other question is... when i click on the magnifying glass icon at the corner, nothing happens. Where is the youtube/chrome launching configuration for make it work?
You have to change foo_youtube language to english for the button to work: Preferences > Tools > Youtube Source > Maintenance > User Interface > Language .
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2019-11-25 01:40:08
Other question is... when i click on the magnifying glass icon at the corner, nothing happens. Where is the youtube/chrome launching configuration for make it work?
You have to change foo_youtube language to english for the button to work: Preferences > Tools > Youtube Source > Maintenance > User Interface > Language .

Can't make it work. Changed the language option and nothing happens. Do you know what I have to do, to make that button work as a in-playlist search engine?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: nickenzo on 2020-02-27 14:15:33
i have added splitter i script setting  but doesn't show any button ...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2020-03-08 18:33:30
I want to give my thanks to the creator of this theme. I use it every day. Very useful the three modes!!. Thanks again!!
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2020-03-20 12:46:49
Can't make it work.
If you are using latest foo_youtube version than you have to fix the context menu path:
Panel_Top.js:
Code: [Select]
fb.RunMainMenuCommand('View/Youtube Source/Search on Youtube')

change to
Code: [Select]
fb.RunMainMenuCommand('View/Youtube Source/Search on Site')
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Hat3L0v3 on 2020-05-24 08:53:52
Just registered to say thank you. But seems there is some bug, or maybe I installed something incorrectly? pic (https://i.imgur.com/qUVX7YZ.png)

Code: [Select]
Error: JScript Panel v2.1.4 (Top Panel)
JavaScript runtime error:
Invalid procedure call or argument
File: D:\Program Files\foobar2000\\themes\CaTRoX\Scripts\Panel_Top.js
Line: 440, Col: 5
<source text only available at compile time>

Will be nice if someone reply.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Pazur on 2020-10-10 15:05:01
While using this skin, no sorting methods work for me, wanna have albums be sorted by date, i changed sorting method to %date% in shell integration and also in columns ui filters, still nothing. I add folders from library view.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: 8no on 2020-11-11 04:58:54
idek
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Aubey on 2020-11-13 01:46:10
Would you be willing to add a wavebar? I've tried doing it myself but I haven't gotten far...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: snively on 2022-01-06 17:37:30
I'm getting 3 errors when trying to install the theme. Followed install instructions via the github. Using the modded JScript panel as well. Is this fixable or is the theme just too old?

(https://i.imgur.com/rYgNYFH.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-01-06 18:29:52
Those errors are from various files not being in the place they're supposed to be.

Perhaps if you're running fb2k v1.6 or later in portable mode, you need to put the theme files inside the profile folder and not in the root of the program folder which probably would have been the original instructions
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: snively on 2022-01-06 19:06:13
Yeah putting the theme in the program folder instead of the appdata folder did the trick, Appreciate it!
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TheQwertiest on 2022-01-16 22:19:35
Version: 5.0.0
Link: https://github.com/TheQwertiest/CaTRoX_QWR/releases/tag/v5.0.0
Changelog:
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2022-03-16 22:50:48
Got severely troubles trying to copy info from the InfoPanel (left one-right click and got crash error) (1-3.jpg)
Also while randomising playlist (with more than 140.000+tracks [error appears only on app boot (twice)] (4_!!!!.jpg) ) got some JS errors, even after the clean setup of everything/ Program / Compoments etc.

How can it b fixed?)

Win 11 Pro / FB2K 1.61
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-17 02:09:38
If you've got a text editor that can search recursively through a folder of files, look inside the theme folder (*.js) for _.setClipboardData and replace it with _setClipboardData

I have no idea about the playlist issue.

Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2022-03-17 07:35:36
If you've got a text editor that can search recursively through a folder of files, look inside the theme folder (*.js) for _.setClipboardData and replace it with _setClipboardData

Thanks a lot! fixed!)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TT on 2022-03-18 19:17:20
The playlist issue is just a triggering slow script problem because it needs to init so many tracks in ONE active playlist before all items have been fully initialized...

I don't really know how to optimize it but you can make a 'workaround' by increasing the time for the slow script popup in:
( In your case on startup when you get the red error screen, close the error message and hit CTRL+P, now you're already in the Preferences )

File > Preferences > Advanced. Scroll almost to the bottom and find in the Spider Monkey Panel the entry:
Script execution time limit before triggering a `slow script` warning (in seconds) set to 30.
Click Apply/OK and close foobar in your taskbar, restart foobar again.

-TT
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TT on 2022-03-18 19:38:15
Btw, I would be also interested how to change the color on the fly
Code: [Select]
var title_color = g_pl_colors.title_normal;
for all items in all rows without calling a full rows init ( initialize_rows(playlist_items) ) for performance reasons and ugly repaints...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-18 20:01:07
Are you joking? What are you on about? Changing colours is amazingly cheap. Not a single bit of text is changing so what are you blithering on about regarding row/playlist item init? The mind boggles. :/

Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-18 20:32:20
Can't believe I've resorted to this but the default script inside the panel is the most basic example of dynamic colour changing you'll ever see.

(https://i.imgur.com/IQZvCmM.gif)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TT on 2022-03-18 20:32:30
Are you joking? What are you on about? Changing colours is amazingly cheap. Not a single bit of text is changing so what are you blithering on about regarding row/playlist item init? The mind boggles. :/

Haha, I should be more precise, this is not regarding the original CatRox theme, but my theme =).
I have implemented an additional mouse row hover effect plus checking if background is bright/dark:

Code: [Select]
		// Playlist row hover
this.title_color = g_pl_colors.title_normal;

/** @enum {number} */
var rowState = {
normal:  0,
hovered: 1,
pressed: 2
};

//private:
var that = this;

/**
* @param {rowState} item
*/
this.changeRowState = function(item) {
switch (item) {
case rowState.normal: {
that.title_color = g_pl_colors.title_normal;
break;
}
case rowState.hovered: {
that.title_color = g_pl_colors.title_hovered;
break;
}
case rowState.pressed: {
that.title_color = g_pl_colors.title_selected;
break;
}
}
window.RepaintRect(playlist.x - 1, playlist.y, playlist.w + 1, playlist.h);
}

this.trace = function (x, y) {
return x >= this.x && x < this.x + this.w && y >= this.y && y < this.y + this.h;
};

this.on_mouse_move = function (x, y, m) {
this.changeRowState(this.trace(x, y) ? rowState.hovered : rowState.normal);
};

then I have on_mouse_move() calling changeRowState
Code: [Select]
                var item = this.get_item_under_mouse(x, y);
if (item instanceof Row) {
if (pref.show_tt || pref.show_truncatedText_tt) {
item.title_truncatedText_tt(x, y);
}
if (pref.playlistRowHover) {
try { // Prevent crash when playlist rows are not fully initialized
item.on_mouse_move(x, y, m);
} catch (e) {};
}
}

and on draw(gr):

Code: [Select]
	draw(gr) {
if (pref.playlistRowHover) {
if (needs_rows_repaint) {
repaintPlaylistRows();
needs_rows_repaint = false;
}
} else {
this.title_color = g_pl_colors.title_normal;
}
       gr.DrawString(this.title_text, title_font, this.title_color, cur_x, this.y, title_w, this.h, title_text_format);

this.title_color = g_pl_colors.title_normal;

The title_color also changes like mentioned when bg is bright/dark, it's all working on current visible window.Height but I still have ugly title_color repaints when scrolling ( at top/bottom ), because the title_color is one repaint behind ( the not yet visible ( hidden ) rows ).  :(

When calling initialize_rows(playlist_items) I can change title_color in all hidden item rows, but this is not the way.

Well it's not that bad, but sometimes white or black title_color repaints will be visible on different background colors...
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TT on 2022-03-18 20:45:57
Here is an example video what I mean:

Watch the playlist bottom when I scroll, it repaints the old title_color ( hidden, not yet visible item rows ):
https://filepost.io/d/WsW9Adj24u
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-18 21:03:12
I can't understand what's going on from those code snippets but if each item/row is an object and each one has its own colour properties, I'd say that's a poor design choice and needs to be reworked. "Hidden" rows having their own colours is just wrong.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: TT on 2022-03-18 21:21:17
TheQwertiest didn't have that in mind from the beginning what I've additional added and wanted to achieve. For Mordred's theme it's working, because he just repaints only the one nowPlaying row which is not a problem,
but I need to repaint all existing rows plus I've added a mouse hover func which makes these problems. Well, I need to figure out a workaround...

-TT 
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: sawyer on 2022-03-24 22:50:01
Hi, any way to fix this error?
(https://i.imgur.com/4ezTmGj.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-24 22:59:12
Well I think that command is related to foo_youtube and it is listed as a required component here...

https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/#required-components
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: sawyer on 2022-03-24 23:21:50
Well I think that command is related to foo_youtube and it is listed as a required component here...

https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/#required-components
I have it installed
 (https://i.imgur.com/1JGY4Yv.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-25 03:11:16
If you can work out where this script file lives in your foobar profile folder based on the URL...

https://github.com/TheQwertiest/CaTRoX_QWR/blob/33e9c0e91341f5c5ac43cb464de181b14c5d1dac/packages/Top/%7BF53D252E-3F0F-4EEA-AB97-569F9C001FE5%7D/main.js#L438

You can edit the highlighted line to

Code: [Select]
 var is_youtube_video_displayed = false;
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: sawyer on 2022-03-25 15:07:12
If you can work out where this script file lives in your foobar profile folder based on the URL...

https://github.com/TheQwertiest/CaTRoX_QWR/blob/33e9c0e91341f5c5ac43cb464de181b14c5d1dac/packages/Top/%7BF53D252E-3F0F-4EEA-AB97-569F9C001FE5%7D/main.js#L438

You can edit the highlighted line to

Code: [Select]
 var is_youtube_video_displayed = false;
Replacing this line helps, thanks.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: sawyer on 2022-03-25 15:18:37
If you can work out where this script file lives in your foobar profile folder based on the URL...

https://github.com/TheQwertiest/CaTRoX_QWR/blob/33e9c0e91341f5c5ac43cb464de181b14c5d1dac/packages/Top/%7BF53D252E-3F0F-4EEA-AB97-569F9C001FE5%7D/main.js#L438

You can edit the highlighted line to

Code: [Select]
 var is_youtube_video_displayed = false;
Also I can remove foo_youtube completely now?
Any way to remove inactive icons like this search icon from youtube?
(https://i.imgur.com/EnIR1JQ.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-03-25 16:26:38
Not tested but I'd trying making this entire function empty...

https://github.com/TheQwertiest/CaTRoX_QWR/blob/33e9c0e91341f5c5ac43cb464de181b14c5d1dac/packages/Top/%7BF53D252E-3F0F-4EEA-AB97-569F9C001FE5%7D/main.js#L264L316

Code: [Select]
function create_buttons(ww, wh) {}
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: da3dsoul on 2022-08-15 17:45:20
Thanks for this amazing foobar skin! I've been using it for last two weeks now and encountered one issue with thumbs not loading up automatically, although the checkmark is there. They can be manually loaded via RMB->Download. Is there a fix to download them automatically?  I opened the issue on your github https://github.com/TheQwertiest/CaTRoX_QWR/issues/22
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-08-15 17:59:01
Not tested the theme but right click the panel>Configure. Replace the contents with this...

https://raw.githubusercontent.com/TheQwertiest/smp_2003/master/thumbs.js
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: da3dsoul on 2022-08-15 18:24:42
Not tested the theme but right click the panel>Configure. Replace the contents with this...

https://raw.githubusercontent.com/TheQwertiest/smp_2003/master/thumbs.js
Configure opens up spider monkey configuration https://i.imgur.com/jx7DBIk.png , so instead I just replaced in foobar2000\profile\foo_spider_monkey_panel\packages\{1583C4B7-53AD-403F-8F7E-CB20490AAA26}\scripts\js_marc2003\js , but unfortunately it resulted in a crash https://i.imgur.com/CJ5bNpq.png
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-08-15 18:34:38
You're never supposed to put files from the js folder in the panel.

Either open the editor and copy/paste the contents from the github link or use the samples drop down combo box.

I can show it working for me.

(https://i.imgur.com/SJh0k0c.gif)

There are 2 conditions: automatic downloads only happen a second or 2 after playback begins and there must be no pre-existing images.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: da3dsoul on 2022-08-15 18:44:12
I'm struggling to find this editor, when RMB->Configure it opens monkey panel configuration, where do I go from there?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-08-15 18:47:37
I also said this...

Quote
or use the samples drop down combo box.

(https://i.imgur.com/A4jE8wJ.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: da3dsoul on 2022-08-15 18:58:16
It works now, thank you very much. Displaying is a bit weird, but it will do https://i.imgur.com/PRyzdwI.png
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2022-08-15 19:02:37
Well that's a tiny panel so if you can't resize it, at least right click and turn the thumbnails off.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2022-09-23 10:55:17
The playlist issue is just a triggering slow script problem because it needs to init so many tracks in ONE active playlist before all items have been fully initialized...

I don't really know how to optimize it but you can make a 'workaround' by increasing the time for the slow script popup in:
( In your case on startup when you get the red error screen, close the error message and hit CTRL+P, now you're already in the Preferences )

File > Preferences > Advanced. Scroll almost to the bottom and find in the Spider Monkey Panel the entry:
Script execution time limit before triggering a `slow script` warning (in seconds) set to 30.
Click Apply/OK and close foobar in your taskbar, restart foobar again.

-TT

Yes!!! Worked!!!))) Thanks a lot mate!
Cheers
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2022-10-12 21:39:00
The playlist issue is just a triggering slow script problem because it needs to init so many tracks in ONE active playlist before all items have been fully initialized...

I don't really know how to optimize it but you can make a 'workaround' by increasing the time for the slow script popup in:
( In your case on startup when you get the red error screen, close the error message and hit CTRL+P, now you're already in the Preferences )

File > Preferences > Advanced. Scroll almost to the bottom and find in the Spider Monkey Panel the entry:
Script execution time limit before triggering a `slow script` warning (in seconds) set to 30.
Click Apply/OK and close foobar in your taskbar, restart foobar again.

-TT

Yes!!! Worked!!!))) Thanks a lot mate!
Cheers

Working only at 30. Not 45 or 25 etc. Slow boot but no alerts
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: SFPunishment on 2022-10-22 10:32:16
I'm having this problem everytime i click on the "menu" button
What is happening? The other buttons works fine and this happens both playlist and art mode.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Michelist on 2022-10-26 09:02:18
Does anyone happen to have a ready-made 4k display configuration for this mod? I don't feel like customizing over 30 fonts, the controls and menu bar and who knows what else.

Michelist
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2023-02-19 19:07:56
Try text editor that can search recursively through a folder of files, look inside the theme folder (*.js) for _.menu and replace it with _menu, and replace it in "\packages" folder than reload configuration using win+shift and right-click
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2023-02-19 19:08:57
I'm having this problem everytime i click on the "menu" button
What is happening? The other buttons works fine and this happens both playlist and art mode.
Try text editor that can search recursively through a folder of files, look inside the theme folder (*.js) for _.menu and replace it with _menu, and replace it in "\packages" folder than reload configuration using win+shift and right-click
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Green_Buddha on 2023-02-19 19:16:44
Hi mates!

Got this problem while lyrics tab open:
when it tries to access to some lyrics source it's just shutting down without any errors..

Need help) any ideas how to fix this?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: deathster77 on 2023-04-23 10:38:46
I'm not an expert in JavaScript development, but sometimes I make some customizations to the tools I generally use.

In this case I have wrote an function to calculate album an track PLR.

Code: [Select]
function calculate_PLR(gain,gaindb) {

    var lufs = -1800 - gain.replace(/[^0-9+-]/g,'') ;
    var tpfs = gaindb.replace(/[^0-9+-]/g,'');

    var plr = tpfs - lufs

    var plr_value = plr.toString().substring(plr.toString().length -2) > 49 ? plr += 100 : plr;
    plr_value = plr.toString().substr(0,plr.toString().length -2)
    return plr_value;
}

I have add with success this code in Header-->draw_normal_header
Code: [Select]
if (_tf('[%replaygain_album_gain%]', metadb) && _tf('[%replaygain_album_peak_db%]', metadb)) {
    plr_cd = ' | ' + calculate_PLR(_tf('%replaygain_album_gain%', metadb),_tf('%replaygain_album_peak_db%', metadb)) + ' LU'
}

and in row-->draw
Code: [Select]
if (_tf('[%replaygain_track_gain%]', metadb) && _tf('[%replaygain_track_peak_db%]', metadb)) {
     var plr_track = calculate_PLR(_tf('%replaygain_track_gain%', metadb),_tf('%replaygain_album_track_db%', metadb))
}

I have implemented ad entry in "Appearance" in coherence with general theme.

I planning to make a correct use of PLR CD in sub-header option because if have, for example, a 2 disc set album, and sub-header option enabled, i must insert the PLR CD value in sub-header line, and not in Header line.

Will go insert in sub-header (DiskHeader-->draw) but I haven't metaDB variable. There are a way to take this variable? At this time I haven't find it.

Furthermore I noticed that this code It does not work anymore:

Code: [Select]
disc_number = _tf('$ifgreater(%totaldiscs%,1,[ | Disc: %discnumber%/%totaldiscs%]', metadb);

what is _tf()

Thanks in advance to anyone who can help me.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: hobbykiosk on 2023-04-24 19:27:00
hye all, i want to ask a question,
how to resize the wave and seekbar make it look bigger like on the right side
thanks for the advance
 (https://cdn.discordapp.com/attachments/1097459298784792620/1100125379643064351/Screenshot_2023-04-25_022224.png)
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: LastWay on 2023-05-22 23:22:59
Help I can't figure out how to do this third step: "Add Spider Monkey Panel panel."
I have it installed but I don't know where to go add it.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: LastWay on 2023-05-23 20:07:29
I got it figured out, never mind my message
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ApacheReal on 2023-06-17 08:58:48
I have the following error in all panels:

Error: Spider Monkey Panel v1.6.1..............................................................................
ActiveXObject_Constructor failed:
Invalid CLSID: UIHacks

File: Common.js
Line: 359, Column: 5
Stack trace:
  @Common.js:359:5
  @main.js:2:1

(https://i.postimg.cc/rRVmttXr/Screenshot-2023-06-17-095511.png) (https://postimg.cc/rRVmttXr)

Edit:

Fixed I forgot Untick 'Show toolbars'.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ApacheReal on 2023-06-17 10:07:28
I get the following error when I try to add an entry in the info panel.

Error: Spider Monkey Panel v1.6.1 (Track Info: CaTRoX: Track information v5.0.0 by TheQwertiest)
g_hta_window is not defined

File: main.js
Line: 645, Column: 9
Stack trace:
  request_new_tag@main.js:645:9
  TrackInfoList/this.on_mouse_rbtn_up/<@main.js:341:17
  Context.Item/this.execute_menu@Control_ContextMenu.js:250:9
  Context.Menu/this.execute_menu@Control_ContextMenu.js:166:29
  Context.MainMenu/this.execute@Control_ContextMenu.js:384:21
  TrackInfoList/this.on_mouse_rbtn_up@main.js:458:13
  on_mouse_rbtn_up@main.js:120:23

Another error:

Error: Spider Monkey Panel v1.6.1 (Album Cover: CaTRoX: Album cover v5.0.0 by TheQwertiest)
_.run is not a function

File: Common.js
Line: 503, Column: 11
Stack traces:
  link@Common.js:503:11
  ArtModule/this.append_menu_to/</<@Module_Art.js:531:31
  Context.Item/this.execute_menu@Control_ContextMenu.js:250:9
  Context.Menu/this.execute_menu@Control_ContextMenu.js:166:29
  Context.Menu/this.execute_menu@Control_ContextMenu.js:166:29
  Context.MainMenu/this.execute@Control_ContextMenu.js:384:21
  on_mouse_rbtn_up@main.js:116:9

Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ApacheReal on 2023-06-17 12:22:26
Double Click error

Error: Spider Monkey Panel v1.6.1 (Track Info: CaTRoX: Track information v5.0.0 by TheQwertiest)
_.input_cancellable is not a function

File: main.js
Line: 734, Column: 27
Stack trace:
  Row/this.edit_metadata@main.js:734:27
  TrackInfoList/this.on_mouse_lbtn_dblclk@main.js:287:14
  on_mouse_lbtn_dblclk@main.js:102:16
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Adno on 2023-06-22 23:50:25
The "pin window to top" and mode switcher (switch to playlist/art mode) buttons were not appearing for me. I had to install a pro version of fontawesome and change the script for the menu bar panel to use the new font (since it did not install as "FontAwesome") in order to have them show up.

Nice theme though. I'll slowly get replace the youtube and lastfm stuff with things I'll use but this is a nice change of pace from DarkOne.

Also, is there a way to scroll where I am in a song by scrolling over the seek bar?
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: Doud49 on 2023-08-07 16:06:51
Hi @TheQwertiest,
and first of all thank you for all you do with some assets around foobar2000 and SMP themes.

I installed today this product version CaTRoX_QWR v5.0.0 - SMP Edition and I encountered following crash error.
To avoid this kind of crash error on your theme (YT tab)
Code: [Select]
list[0] is undefined

 File: web.js
 Line: 1546, Column: 18
 Stack trace:
   analyse@web.js:1546:18
   onStateChange@web.js:1343:11
   on_mb_artist_id_search_done/mb_lfm_albums<@web.js:2076:60

For executing properly CaTRoX_QWR v5.0.0 - SMP Edition,
here is what I did and it runs without crash Of "Find And Play WilB's Package" :

My tests showed does it works for :
foobar2000 v2.1 preview 2023-08-01 [x86]
foobar2000 v2.0 [x86]
------
FOR COMPONENTS :
- copy libcurl.dll to root installation folder
- copy youtube-dl.exe to root installation folder (but can be externalized)
- installation of all components mentioned here : https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/
more precisely :

ComponentFileVersion
Columns UI foo_ui_columns.dll2.1.0-beta.3
Spider Monkey Panelfoo_spider_monkey_panel.dll1.6.1 or 1.6.1-mod
UI hacksfoo_ui_hacks.dll 2013-02-19
Panel Stack Splitter foo_uie_panel_splitter.dll0.3.8.3(alpha)
Musical Spectrumfoo_musical_spectrum.dll0.9.1
Playback Statistics foo_playcount.dll 3.1.5
Enhanced Playback Statistics foo_enhanced_playcount.dll5.0.0
Playlist Toolsfoo_utils.dll0.6.2 beta 6
OpenLyricsfoo_openlyrics.dll 1.6
Scrobble foo_scrobble.dll1.6.0.22456
Youtube source foo_youtube.dll 3.9 beta 2
In Foobar2000's preferences,
Tools > Youtube Source > Maintenance,    according to https://fy.3dyd.com/help/third_party_binaries/, parametering of

Binary  Source (settings)
ffmpeg  Internal Or External : ffmpeg version 4.x, 32-bit build with shared libraries
JavaScript Bundled
LAV filters External path
libcurl Internal (copy of libcurl.dll to root installation folder)
madVR External path
VSFilter External path
youtube-dl External path (copy of youtube-dl.exe to root installation folder)
So that :
Code: [Select]
foo_youtube: JavaScript (bundled.node): 5.12
 foo_youtube: madVR (external): 0.92.17
 foo_youtube: LAV Filters (external): Splitter 0.77.2, Video 0.77.2
 foo_youtube: VSFilter (external): 3.1.0.752
 foo_youtube: libcurl (internal): libcurl/7.68.0 Schannel zlib/1.2.11 brotli/1.0.7 nghttp2/1.40.0
 foo_youtube: youtube-dl (external): 2021.12.17
 with ffmpgeg Internal : foo_youtube: ffmpeg (internal): lavf 58.29.100, lavc 58.54.100, lavu 56.31.100
 or with ffmpeg external  : foo_youtube: ffmpeg (external): lavf 58.76.100, lavc 58.134.100, lavu 56.70.100, lswr 3.9.100
-------
FOR SMP PACKAGES:
Update of following packages
- {E85C9EF0-778B-46DD-AF20-F4BE831360DD} - Library Tree, version: 2.2.0-Beta.1 -> 2.4.0
- {F5E9D9EB-42AD-4A47-B8EE-C9877A8E7851} - Find & Play - 1.0.0-Beta.1 -> 1.3.0
----
I wrote this text to help those who will have difficulty installing and configuring this version of SMP.
I hope this will be useful. Maybe you can use it to repackage a new version of release and also update the readme, and your installation page. So the product of your work is still alive since 2022.
Note to users : as for an x64 version of the product, do not count on it, that would suppose that all the dll components are compiled in x64.
-----------------------------------------------------------
@TheQwertiest,
Perhaps you can do a new bundle of : 5.0.1 or 5.1.0 in

https://github.com/TheQwertiest/CaTRoX_QWR/releases
with
- {E85C9EF0-778B-46DD-AF20-F4BE831360DD} - Library Tree, version: 2.2.0-Beta.1 -> 2.4.0
- {F5E9D9EB-42AD-4A47-B8EE-C9877A8E7851} - Find & Play - 1.0.0-Beta.1 -> 1.3.0 ?
, an update in changelog
, a note for installation compatibility (with what I wrote above), and update instructions here : https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/ .

Thank you,
This is my way of thanking you, and trying to avoid that others often ask you these questions.
Regards.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ms1602 on 2023-09-05 09:32:45
How to disable spectrum visualization?

Thanks in advance for your help.

Edit: I already did, sorry  :))
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ms1602 on 2023-09-20 11:15:57
Hello,

https://imgbox.com/WQoKrNbU

Why does a thumbnail image of the disc appear in the first column, where the front cover should be? The back cover thumbnail does not display at all. In the regular version of the skin (Catrox) this problem does not occur.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: ANGO on 2023-09-27 16:30:52
Hi @TheQwertiest,
and first of all thank you for all you do with some assets around foobar2000 and SMP themes.

I installed today this product version CaTRoX_QWR v5.0.0 - SMP Edition and I encountered following crash error.
To avoid this kind of crash error on your theme (YT tab)
Code: [Select]
list[0] is undefined

 File: web.js
 Line: 1546, Column: 18
 Stack trace:
   analyse@web.js:1546:18
   onStateChange@web.js:1343:11
   on_mb_artist_id_search_done/mb_lfm_albums<@web.js:2076:60

For executing properly CaTRoX_QWR v5.0.0 - SMP Edition,
here is what I did and it runs without crash Of "Find And Play WilB's Package" :

My tests showed does it works for :
foobar2000 v2.1 preview 2023-08-01 [x86]
foobar2000 v2.0 [x86]
------
FOR COMPONENTS :
- copy libcurl.dll to root installation folder
- copy youtube-dl.exe to root installation folder (but can be externalized)
- installation of all components mentioned here : https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/
more precisely :

ComponentFileVersion
Columns UI foo_ui_columns.dll2.1.0-beta.3
Spider Monkey Panelfoo_spider_monkey_panel.dll1.6.1 or 1.6.1-mod
UI hacksfoo_ui_hacks.dll 2013-02-19
Panel Stack Splitter foo_uie_panel_splitter.dll0.3.8.3(alpha)
Musical Spectrumfoo_musical_spectrum.dll0.9.1
Playback Statistics foo_playcount.dll 3.1.5
Enhanced Playback Statistics foo_enhanced_playcount.dll5.0.0
Playlist Toolsfoo_utils.dll0.6.2 beta 6
OpenLyricsfoo_openlyrics.dll 1.6
Scrobble foo_scrobble.dll1.6.0.22456
Youtube source foo_youtube.dll 3.9 beta 2
In Foobar2000's preferences,
Tools > Youtube Source > Maintenance,    according to https://fy.3dyd.com/help/third_party_binaries/, parametering of

Binary  Source (settings)
ffmpeg  Internal Or External : ffmpeg version 4.x, 32-bit build with shared libraries
JavaScript Bundled
LAV filters External path
libcurl Internal (copy of libcurl.dll to root installation folder)
madVR External path
VSFilter External path
youtube-dl External path (copy of youtube-dl.exe to root installation folder)
So that :
Code: [Select]
foo_youtube: JavaScript (bundled.node): 5.12
 foo_youtube: madVR (external): 0.92.17
 foo_youtube: LAV Filters (external): Splitter 0.77.2, Video 0.77.2
 foo_youtube: VSFilter (external): 3.1.0.752
 foo_youtube: libcurl (internal): libcurl/7.68.0 Schannel zlib/1.2.11 brotli/1.0.7 nghttp2/1.40.0
 foo_youtube: youtube-dl (external): 2021.12.17
 with ffmpgeg Internal : foo_youtube: ffmpeg (internal): lavf 58.29.100, lavc 58.54.100, lavu 56.31.100
 or with ffmpeg external  : foo_youtube: ffmpeg (external): lavf 58.76.100, lavc 58.134.100, lavu 56.70.100, lswr 3.9.100
-------
FOR SMP PACKAGES:
Update of following packages
- {E85C9EF0-778B-46DD-AF20-F4BE831360DD} - Library Tree, version: 2.2.0-Beta.1 -> 2.4.0
- {F5E9D9EB-42AD-4A47-B8EE-C9877A8E7851} - Find & Play - 1.0.0-Beta.1 -> 1.3.0
----
I wrote this text to help those who will have difficulty installing and configuring this version of SMP.
I hope this will be useful. Maybe you can use it to repackage a new version of release and also update the readme, and your installation page. So the product of your work is still alive since 2022.
Note to users : as for an x64 version of the product, do not count on it, that would suppose that all the dll components are compiled in x64.
-----------------------------------------------------------
@TheQwertiest,
Perhaps you can do a new bundle of : 5.0.1 or 5.1.0 in

https://github.com/TheQwertiest/CaTRoX_QWR/releases
with
- {E85C9EF0-778B-46DD-AF20-F4BE831360DD} - Library Tree, version: 2.2.0-Beta.1 -> 2.4.0
- {F5E9D9EB-42AD-4A47-B8EE-C9877A8E7851} - Find & Play - 1.0.0-Beta.1 -> 1.3.0 ?
, an update in changelog
, a note for installation compatibility (with what I wrote above), and update instructions here : https://theqwertiest.github.io/CaTRoX_QWR/docs/installation/ .

Thank you,
This is my way of thanking you, and trying to avoid that others often ask you these questions.
Regards.

I just registered here because of your post to thank you. I like the Catrox theme, but had problems and error messages.
I was able to fix some. Thank You! :)

I also shared two additional solutions to issues with the developer:
Panel crash 1: https://github.com/TheQwertiest/CaTRoX_QWR/issues/24
Panel crash 2: https://github.com/TheQwertiest/CaTRoX_QWR/issues/21

I hope there is an update in the future.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2023-10-24 23:56:49
Please, can someone upload a zip file with all the components already installed (and updated) of this theme.
{text removed}
I like this theme so much but i can't update foobar2000 from version 1.6.3 to version 2.1 without getting errors everywhere.


MOD edited: Software license (https://www.foobar2000.org/license) does not permit redistribution of binaries other than unaltered installer.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: marc2k3 on 2023-10-25 09:30:50
There's no reason at all why upgrading to 2.1 should not work. Obviously you must use the 32bit version. The main components used by that theme are not available for 64bit.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: paQ on 2023-10-26 05:46:24
You are right marc2k3, I was trying to install the x64 version.

Thank you.
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: tegrofm on 2023-11-01 16:52:19
Hello,
I install Catrox QWR and I have frequently this message when I use the mini player

Quote
Error: Spider Monkey Panel v1.6.1 (Mini Player: CaTRoX: Mini player v5.0.0 by TheQwertiest)
discMask.Dispose is not a function

File: Module_Art.js
Line: 165, Column: 26
Stack trace:
  ArtModule/this.get_album_art_done@Module_Art.js:165:26
  UltraMini/this.on_get_album_art_done@main.js:253:20
  on_get_album_art_done@main.js:68:16
Thanks for your help
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: tegrofm on 2023-11-02 07:04:32
Hello,
I find a solution  by deleting the line
Thanks for your help
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: silverfun50 on 2024-02-19 02:19:00
Hello, I'm new to foobar. This skin has everything I needed, I loved it.  but I have a very Amateur question, where can I configure the font size of taskbar and playlist? my screen resolution is 2160p, I can barely see them. Thanks
Title: Re: CaTRoX (QWR Edition): fb2k theme
Post by: francesco on 2024-02-19 09:42:15
hi @TheQwertiest
wow beautiful skin!
do you think could be made one without external fonts just for a full portable version ?
or it's too hard use the installed fonts in w10 or w11?
do you think could be added a button to enable/disable replaygain?
thanks for the beautiful theme! O:)