• Home
  • Blog
  • Add-ons
  • Forum
  • Wiki
  • Developers
Nightingale - The tune of life, the tune of yours
  • Portal
  • Search
  • Member List
  • Calendar
  • Help
  • Portal
  • Search
  • Member List
  • Calendar
  • Help
Guest Hi, Guest
  • Login
  • Register
Login
Username:
Password: Lost Password?
 
Nightingale Forums Development Technical Development Help with issue #225

Pages (2): 1 2 Next »
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Help with issue #225
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#1
Tongue  12-29-2013, 01:53 AM (This post was last modified: 02-11-2014, 12:55 AM by luisgmarine.)
Hey guys, again another issue in progress.

Link on GITHUB: Issue #225

Link of my working tree: https://github.com/luisgmarine/nightinga...taEditorV5

Current picture of progresss: http://imagebin.org/287310

Things to do:
  • More comments to better explain some of the loops
  • Remove unecessary new lines
  • Look to implement indexOf() as opposed to having multiple chain for loops to do comparisons. Could be a speed thing.
  • currently the code has two seperate places where you can hide/unhide elements i the window. Need to move the hiding/unhiding of elements to a seperate function that can then be called when needed. This reduces the amount of redudant code. The new function should be able to take in a user's string property list, the default list of all row elements loaded on the window. The menuitems checked state should also be handled here, thus it would require the list of menuitems adding a third parameter. The checkItem() function already hides the row elements according to the the users string property list.
  • as opposed to using the already existing preference to determine if the item is audio/video, you can simplyy get it by a string using something like item.sbproperty(read some of the comments by Dirk)

Things done:
  • After the constructors parses through the users preference there is an issue where the menu items are not properly checked/unchecked.
  • When you hide the 'File Location' property, it leaves behind a small button. The button is actually what is used to trigger an open dialog box for the 'File Location' property. This could either be automatically built in, or it is another element that is created with an ID that can be removed/hidden when the user does not want to view this property.
  • after I assign the JSON string to a preference and covert it back to a javascript array, the constructor can't seem to load the converted array.
  • Figure out where to store the string preferences as a json value
  • Create a new parameter for what ever function is in charge of loading the metadata dialog, in order to have separate arrays to hold properties selected by the user for videos and music. Need to track down where the metadata dialog window is being called from (when the users right-clicks and selects it, find out where that is being triggered. I remember doing a search in the codebase for "isVideo" (thanks to rsjtdrjgfuzkfg)
  • When calling the constructor for the advance tab some of the elements are improperly being tagged with ID and Class name that are the same, thus creating duplicate attribute values for elements and not properly distinguishing between the two different attributes (ID and Class)
  • Advanced tab is enabled for videos.
  • Remove the string that is calling our onMenupopupHidden function from the constructor as this could possibly lead to a security hole. Instead there should be another way to trigger the function call. Right now creating a DOM Listener is the best option (thanks to rsjtdrjgfuzkfg)
  • Change the current menu label value to "trackeditor.tab.advanced" = "Advanced" as a string.
  • Create an array from the currently checked items in the menupopup. This is triggered when the menupopup window closes.
  • Implement a way for the TrackEditorAdvancedTab() function to take in an array as a parameter, that will will used to populate a custom list of tags the user wants displayed in the advanced tab.
  • Properly display the names of the propertyID's in the menupopup. Solved using propInfo.displayName. It turns the ugly URLS "http://song/blah/blah/#track" to "Track" Wink
  • Implement a way to reload the advance Tab once changes have been made. Right now I'm looking at loading all the items and hiding them according if they are not on the checked items list.
  • Fix the weird scrolling situation when the menupopup is active. Right now it scrolls the window behind it, causing this funky things to happen.
  • Change the alignment of the menu to the right(thanks to freaktechnik for pointing out the "flex" attribute to allow you to use the "align" attribute properly).

Things that should be happening when testing:

When editing metadata for a media item, the advanced tab should now be enabled by default. The advanced tab should have a menu bar at the top that the user can click and check tag properties that the user wants displayed in the tab.

Thanks for all suggestions/help!

-Luis
Find
Reply
rsjtdrjgfuzkfg Offline
Developer
*******
Posts: 664
Threads: 15
Joined: Oct 2011
Reputation: 15
#2
12-29-2013, 02:27 AM
For the reference: I added some gitHub comments.
Songbird/Nightingale Community Developer and German Translator
Find
Reply
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#3
01-10-2014, 01:17 PM (This post was last modified: 01-10-2014, 01:21 PM by luisgmarine.)
I'm having a hard time finding out where this is implemented in the code.

http://imagebin.org/285966

My idea would be to implement something similar in the advance tab. I think that some sort of drop down box, and a menu that displays the tags in this format would give the power users an advantage to best control what tags they want displayed inside the advanced tab.

We would also need to agree on what we would consider the "default options," i.e., the default tag fields that are selected. Or we can just scratch the option to "Restore Defaults," and have all of the show up, and then force the user to uncheck the ones he doesn't want. (which is nice, but might be a pain for some users the first time they go to edit a song Wink)

I have sort of already modified the code to be able to take in an array of properties to display in the advance tab. However, there needs to be a lot more planning before getting down to some actual implementation. I would need to find a way to store this array so that we can use it later, for example if the user closes the metadata editor and opens it back up, it would be intuitive to make sure his selections were saved. The next thing is that I have to implement a way for the advance tab to refresh every time that the user either check/unchecks one of the properties in the menu.

What are your guys thoughts?
Find
Reply
freaktechnik Offline
CCO (Chief Crashing Officer)
*******
Posts: 498
Threads: 24
Joined: Sep 2010
Reputation: 11
#4
01-10-2014, 08:46 PM
(01-10-2014, 01:17 PM)luisgmarine Wrote: I'm having a hard time finding out where this is implemented in the code.

http://imagebin.org/285966

From just looking over the code, I think it's this binding. Which is cool, as you could reuse it... If not, try searching through the playlist.xml binding, since that's where the columns come from.
freaktechnik
Website Find
Reply
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#5
01-11-2014, 04:36 AM
Thanks, I was able to find it in playlist.xml, or at least the place where the action of right click is called. Which is actually what I want because then I can figure out how it goes about building that menu.
Find
Reply
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#6
01-12-2014, 05:20 AM
updated the main post to reflect all current changes, including a picture of the current progress. Wrote everything into small problems to make it easier for myself to track what I'm doing. School starts soon and I don't want to loose where I am.
Find
Reply
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#7
01-13-2014, 02:28 PM
Just updated everything and pushed a commit to my branch. Please check it out and let me know what you guys think.
Find
Reply
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#8
01-14-2014, 11:41 AM
What about maybe splitting up the list of attributes that populates the menupopup, into two distinct buttons and menupopups. One set will contain all tags that are read-only, and the other set will contain all tags that are editable.
Find
Reply
luisgmarine Offline
Junior Member
**
Posts: 19
Threads: 3
Joined: Dec 2013
Reputation: 0
#9
01-18-2014, 02:36 PM (This post was last modified: 01-18-2014, 04:47 PM by luisgmarine.)
updated the current picture in the work in progress. My working branch should also be cleaner and only displaying one commit for easy viewing. Let me know what you guys think.
Find
Reply
rsjtdrjgfuzkfg Offline
Developer
*******
Posts: 664
Threads: 15
Joined: Oct 2011
Reputation: 15
#10
01-19-2014, 01:26 AM
(01-18-2014, 02:36 PM)luisgmarine Wrote: Let me know what you guys think.

I added some notes to the commit on gitHub.
Songbird/Nightingale Community Developer and German Translator
Find
Reply
« Next Oldest | Next Newest »
Pages (2): 1 2 Next »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)
  • Return to Top
  • Lite (Archive) Mode
  • RSS Syndication
Current time: 03-24-2023, 08:08 PM Powered By MyBB, © 2002-2023 MyBB Group.
Design By AliReza_Tofighi In WhiteCrow Software Group.
white outlined nightingale project logo

Nightingale is free!
It is an Open Source project released under the terms of the GNU General Public License v2 (GPL v2).
For more details, please read the license information.

Follow us!
f  g  t

Support
  • Community Forum
  • Official Blog
  • Add-ons
  • Wiki
  • Help Forum
Contribute
  • Developer's Center
  • Translate Nightingale
  • Source Code
  • Report a Bug
Ressources
  • Download Nightingale
Linear Mode
Threaded Mode