Page 1 of 1

How can I return to previous view after a refresh?

Posted: Thu Oct 18, 2012 7:47 pm
by Nanya
If I use "SDB.MainTracksWindow.Refresh" in a script, how can I return to the previous view afterward? I.e., back to the same albums and tracks that were selected?

Re: How can I return to previous view after a refresh?

Posted: Fri Oct 19, 2012 12:31 am
by trixmoto
Well if you've refreshed then the same tracks might not be there, but I guess you could store a list of all the track IDs before calling refresh, and then select all the ones with those IDs afterwards.

Re: How can I return to previous view after a refresh?

Posted: Fri Oct 19, 2012 5:41 pm
by Nanya
Yeah, I tried this code: (Tracks is a SDBSongList)

Code: Select all

SDB.MainTracksWindow.Refresh
Dim oShell
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "^a"
SDB.UI.MainWindowFocus = 2
SDB.MainTracksWindow.RemoveSelectedTracks
For a = 0 to Tracks.Count - 1
  SDB.MainTracksWindow.AddTrack(Tracks.Item(a))
  SDB.MainTracksWindow.Selected(a) = true
Next
SDB.MainTracksWindow.FinishAdding
Problem is, oShell.SendKeys "^a" tries to execute before the refresh is finished, so it gets nothing. Putting a timer or sleep doesn't work, it just postpones the refresh. The only way to get it to select everything is to have a messagebox to pop up and the user closes it. I'm not sure what I'm doing wrong.