Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Spider Monkey Panel (foo_spider_monkey_panel) (Read 341896 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #925
Is it possible to check for compatibility Spider Monkey Panel v.1.4.1 and foo dockable panels (foo_dockable_panels).
foobar 1.5 crash when I want to add Spider Monkey Panel v.1.4.1. using foo dockable panels.
foo_dockable_panels is a known crashware, hence I'm not really keen on investing time in fixing it's compatibility.

There is foo_flowing though, that looks like a better alternative: https://hydrogenaud.io/index.php?topic=120109.0

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #926
About the query checks, meanwhile this edit to my helpers should work for everybody. I'm assuming:
- The sort patters are those and only those.
- The TF part should be right, which can not be checked easily (and should be done using native methods). If you put something like a func without quotes after sort it will still crash.
- The TF part has at least 2 quotes when using functions, but obviously it's not fool-perfect.
- The TF part uses pairs of quotes (2, 4, 6..) when there is a function.

So a SMP method to check the sorting would still be preferred.

Code: [Select]
function checkQuery(query, bAllowEmpty, bAllowSort = false) {
let bPass = true;
if (!bAllowEmpty && !query.length) {return false;}
let queryNoSort = query;
if (bAllowSort) {
const fromIndex = query.indexOf('SORT');
if (query.indexOf('SORT') !== -1) {
if (query.indexOf(' SORT BY ') !== -1) {queryNoSort = query.split(' SORT BY ')[0]}
else if (query.indexOf(' SORT DESCENDING BY ') !== -1) {queryNoSort = query.split(' SORT DESCENDING BY ')[0]}
else if (query.indexOf(' SORT ASCENDING BY ') !== -1) {queryNoSort = query.split(' SORT ASCENDING BY ')[0]}
else {return false;} // Has a typo on sort
if (query.indexOf('$', fromIndex) !== -1) { // Functions require quotes around them
const firstQuote = query.indexOf('"', fromIndex);
if (firstQuote === -1)  {return false;}
else if (firstQuote === query.lastIndexOf('"')) {return false;}
else if (query.slice(fromIndex).match(/"/g).length % 2 !== 0) {return false;}
}
}
}
try {fb.GetQueryItems(new FbMetadbHandleList(), queryNoSort);}
catch (e) {bPass = false;}
return bPass;
}

// Must check query first to be sure it's a valid query!
function stripSort(query) {
let queryNoSort = query;
if (query.indexOf('SORT') !== -1) {
if (query.indexOf(' SORT BY ') !== -1) {queryNoSort = query.split(' SORT BY ')[0]}
else if (query.indexOf(' SORT DESCENDING BY ') !== -1) {queryNoSort = query.split(' SORT DESCENDING BY ')[0]}
else if (query.indexOf(' SORT ASCENDING BY ') !== -1) {queryNoSort = query.split(' SORT ASCENDING BY ')[0]}
}
return queryNoSort;
}

 

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #928
Okay, set this as the content of one.js and let's see if this is minimally reproducible for you:
Fixed in the dev build


Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #930
The player crashes when adding a new panel to the layout.
Not sure, how you've managed to reach that state, but I've added a safe-guard in the dev build.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #931
Panels also crash when browsing the menu for a long time.
Spoiler (click to show/hide)


Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #933
Hey @TheQwertiest, glad you're back  8)

Just wanted to let you know Opentype (.otf) fonts are not initialized with utils.CheckFont and loaded via gdi.Font in AFTER installing GDI+.
But Truetype (.ttf) fonts are displayed correctly... I don't know if it's a SMP or Wine issue...

Last month I wrote two emails to Wine-Devs and still haven't received an answer... I guess they have other problems ;)
Here is an excerpt from the mail:

Spoiler (click to show/hide)

-TT

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #934
@TheQwertiest, thank you. With the "Shift" button, it does not open the full list of the "View" menu, or does not open it at all.
Spoiler (click to show/hide)

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #935
@TT , not sure what your problem is, can you attach a repro code?

@kutuzof if you are talking about `fb.CreateMainMenuManager()` + `Init('View')`, then, well, works for me. You could try `MainMenuManager All-In-One.js` sample to see if it makes a difference. You may also try increasing `base_id` and `count` in `BuildMenu` in case you are somehow reaching the limit.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #936
Hey @TheQwertiest, glad you're back  8)

Just wanted to let you know Opentype (.otf) fonts are not initialized with utils.CheckFont and loaded via gdi.Font in AFTER installing GDI+.
But Truetype (.ttf) fonts are displayed correctly... I don't know if it's a SMP or Wine issue...

Last month I wrote two emails to Wine-Devs and still haven't received an answer... I guess they have other problems ;)
Here is an excerpt from the mail:

Spoiler (click to show/hide)

-TT

For anyone else wondering regarding the same issue:

The only downloadable form of GDI+ is for Windows XP, and Windows XP never supported OTF.

-TT

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #937
Okay, set this as the content of one.js and let's see if this is minimally reproducible for you:
Fixed in the dev build
Sweet, I'll have to give that a check.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #938
Sweet, I'll have to give that a check.
I would really appreciate if you could take a look at your PR, so that I could ship it with the release =)

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #939
Version: 1.5.0
Link: https://github.com/TheQwertiest/foo_spider_monkey_panel/releases/tag/v1.5.0
Changelog:
Spoiler (click to show/hide)
Detailed description of API changes: https://theqwertiest.github.io/foo_spider_monkey_panel/docs/script_documentation/api_changes/#v150

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #940
Great work @TheQwertiest !

Just tested v1.5 out and it works smooth, the performance is also better!

Thanks for your dedication and hard work!
Now I only need to fix the drag and drop issue on Wine and we're ready to go =)

Cheers

-TT

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #941
- Deleted -

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #942
Regarding the playlist lock functionality, I really think you need to provide a method to get the playlist lock name. Knowing a playlist is locked but not knowing who owns it will lead to confusion if providing buttons/menus to add/edit/remove them.

Since I added this functionality to JScript Panel and the JSplaylist sample, these menu options would be greyed out if another component owned the lock.






Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #944
Updated Script Showcase page:
  • Added `Quick Navigation` table for easier navigation around the page.
  • Added scripts by @WilB, @kgena_ua and @regor.
  • Added `Georgia` and `Georgia ReBORN` themes by @MordredKLB and @TT.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #945
Great. Btw, I can provide you the images for my scripts if you want to add them.

Would it be possible to add a framework category? To add there base scripts which can be used by users to create its own full scripts. Documentation would be present along the repositories:
https://github.com/regorxxx/Menu-Framework-SMP

Currently working on an options framework: as you can see it's pretty much equal to Wilb html's one, but within an SMP panel, so functional for non IE and wine users. And it would work with arbitrary input, so valid for any type of script.
Spoiler (click to show/hide)

And a tag map framework: (both maps use the same base framework, the cloud tag is equally composed by points with coordinates)
Spoiler (click to show/hide)



Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #947
Currently working on an options framework: as you can see it's pretty much equal to Wilb html's one, but within an SMP panel, so functional for non IE and wine users. And it would work with arbitrary input, so valid for any type of script.
Cool stuff. Randomly, I also started down this road, but decided to build out a full UI library first before generating config pages from json schemas. I went with material design as my basis because I thought it'd be fun and challenging. Here's what I've got so far:



It's pretty accurate, even down to the subtle onhover effects (see Blue Toggle). Had to make some changes to FSM to get the text box highlighting stuff to work correctly, but now that 1.5 is released I'll probably start back working on this. The color pickers are a little janky, and need some way to type in values, and I need to make some usability improvements to how you create controls, but otherwise it's pretty much done. If you're interested i can share the code before it makes it to Georgia.


Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #949
FWIW, the native windows colour picker is available (utils.ColourPicker).
Yeah, I was trying to do it without using any modal popups (select controls obviously have JS popups) because the UX nerd in me wants to show how things look while you're dragging sliders -- i.e. I can show mocked portions of the screen and adjust colors on the fly -- which I think is a better experience, but ultimately I may just scrap it and go that route. They do kinda stick out from everything else unfortunately. I did some research on better color picker controls, but pretty much all of them are beyond the scope of what's possible with FSM or my own knowledge of color spaces.