okay thanks! I'm quite happy editing nfo files so I'll do this. cheers! feature request to include a button/menu option for this in MC ;)
I mostly prefer using tvdb for scraper but I have a couple of shows where some of the specials are missing on tvdb and listed on tmdb. I can't seem to change scraper to tmdb though without changing it for my entire library, am I missing something? I can see it's possible to have different scrapers for different root folders but I don't really want to move some of my library to a different folder just for them to be scraped the way I want. I've tried running rescraper wizard > tmdb id, but this doesn't...
aha - looks like this might be an issue then. thanks, looks like I will have to manually Refresh() as needed
actually thinking about it I can probably just follow the treelistview IsExpanding events to follow nodes as they expand, and then subscribe to each objects PropertyUpdated event as they do. shouldn't take more than a few lines of code
yes, it will work, and it's a whole lot of extra code if I can simply use INotifyPropertyUpdated to do it. the objects themselves already handle everything with regards to reflecting the disk/directory structure, each object has a FileSystemWatcher that watches for changes in its own directory, and it reloads its child objects as necessary. all of this already works, the object.Children property (which the ChildGetter delegate returns) already holds the correct information if changes are made on...
yes, it will work, and it's a whole lot of extra code if I can simply use INotifyPropertyUpdated to do it. the objects themselves already handle everything with regards to reflecting the disk/directory structure, each object has a FileSystemWatcher that watches for changes in its own directory, and it reloads its child objects as necessary. all of this already works the whole point of objectlistview is to get away from the model of presenting a dictionary of key/value pairs which reflect a separate...
unfortunately I'm not easily able to notice a change in the model objects, because my code does not know about most of the model objects - the only model objects my code knows about are the roots (the top level) of the treelistview (in this case, a list of drive letters). all of the child objects are created by and owned by their parent objects, they are returned using the ChildGetter delegate (which itself returns a property Children which is a List<> of objects), none of the objects know about...
unfortunately I'm not able to notice a change in the model objects, because my code does not know about most of the model objects - the only model objects my code knows about are the roots (the top level) of the treelistview (in this case, a list of drive letters). all of the child objects are created by and owned by their parent objects, they are returned using the ChildGetter delegate (which itself returns a property Children which is a List<> of objects), none of the objects know about each other...
I have a treelistview with objects that implement INotifyPropertyUpdated, and the event PropertyChanged is invoked when an object's children have been changed, my intent here being that the treelistview will refresh the model and reload the model's children using the ChildGetter delegate to show the changes despite setting UseNotifyPropertyChanged = true on the treelistview, and checking and confirming that the PropertyChanged event is fired when I expect it to be, nothing changes in the treelistview...
I have a treelistview with objects that implement INotifyPropertyUpdated, and the event PropertyChanged is invoked when an object's children have been changed, my intent here being that the treelistview will refresh the model and reload the model's children using the ChildGetter delegate to show the changes despite setting UseNotifyPropertyChanged = true on the treelistview, and checking and confirming that the PropertyChanged event is fired when I expect it to be, nothing changes in the treelistview...
I've got a small function that allows the user to modify all selected rows with a single choice works fine for most usage, selecting 20 or 50 or 1000 rows or whatever this is a simple OLV with no images, it's not a treeview or a datalistview or anything, it's just a simple objectlistview with about 7 columns, a handful of simple delegates to handle string formatting, row grouping, a filter, and there is one editable cell which edits with a dropdown selection box there is also a context menu with...
realised that was giving me "." and ".." folders, so rather than deal with those in my application loop, I have modified that block of code as follows. this seems to be working, and my file/folder enumerating is absolutely racing through now. honestly this is taking something like 15-20% the time it used to. incredible! thanks so much for your help on this if (hasCurrent || !advanceNext) { while ((((FileAttributes)findData.dwFileAttributes & FileAttributes.Directory) == FileAttributes.Directory)...
okay well I'm not really sure I understand that specific change, but I commented out that segment of code that skips over directories, and that works, I'm getting directories and files all in one go with all the info attached. sorted!
hmm one thought that instantly comes to mind - I need to get the info from each folder same as the files, as in I need the CreationTime and LastWriteTime need to be returned from the folders does the existing FindNextFile() which wraps WIN32_FIND_DATA get this same information from folders as it does from files? if so then I think I should be okay adapting this
thanks - but my function doesn't scan into subfolders at all, it only scans the top level folder, to return all files and folders, so this isn't going to work as no matching files would be returned from subfolders. if I did try to go down that road, the function would then be scanning many thousands of additional files for no purpose other than to find their containing folders. in fact this would then produce many layers of subfolders when I'm only looking for the subfolders of the top level, so...
That's useful to know I was picking over the FastFileInfo code last night and I notice that it does actually get all files and folders from the target, then it skips over the folders before returning the files only my project needs to get information for all the files and all the folders - currently I'm using FastFileInfo to enumerate over the files then System.IO to enumerate over the folders. It's very clearly fetching the same set of information two times (this is to a UNC share over a VPN over...
can this be adapted to also provide a faster alternative to GetDirectories()?
I'm trying to quickly modify the default enum editor so that it only displays certain values (the enum has about 10 values, but on each row of my OLV only 2-3 values need to be available, depending on the other data) I'm just trying to get something functional and I'll probably come back to this to make it nicer in the future, for now I just want it to work I've used a delegate to set up a new combobox which I've populated the way I need, but I can't get a value back from it - I've used an aspectputter...
I'm trying to quickly modify the default enum editor so that it only displays certain values (the enum has about 10 values, but on each row of my OLV only 2-3 values need to be available, depending on the other data) I'm just trying to get something functional and I'll probably come back to this to make it nicer in the future, for now I just want it to work I've used a delegate to set up a new combobox which I've populated the way I need, but I can't get a value back from it - I've used an aspectputter...
I'm trying to quickly modify the default enum editor so that it only displays certain values (the enum has about 10 values, but on each row of my OLV only 2-3 values need to be available, depending on the other data) I'm just trying to get something functional and I'll probably come back to this to make it nicer in the future, for now I just want it to work I've used a delegate to set up a new combobox which I've populated the way I need, but I can't get a value back from it - I've used an aspectputter...
I'm trying to quickly modify the default enum editor so that it only displays certain values (the enum has about 10 values, but on each row of my OLV only 2-3 values need to be available, depending on the other data) I'm just trying to get something functional and I'll probably come back to this to make it nicer in the future, for now I just want it to work I've used a delegate to set up a new combobox which I've populated the way I need, but I can't get a value back from it - I've used an aspectputter...
nevermind - I was trying to start and open the actual OLV library and not the demo project (doesn't matter which one you're looking at, it's the "start project" selected in the toolbar that matters)
nevermind - I was building the actual OLV library and not the demo
yeah I did that and it builds successfully without errors, but those errors on the designer view remain, and the project won't run. are they supposed to run or be viewable in designer? it's kind of hard to know if going through the code of a particular demo is going to be useful without being able to see what the demo actually does
Not sure what's going wrong here - I'm trying to open the demos to see how a few things are done I notice there's separate versions for 2005, 2008, 2010, 2012, well I'm using 2019 so I try opening the 2012 one This is what I get
okay thanks is there any documentation that explains this? do I need to add the newThing both to the list and to the control? like things.Add(newThing); olv.AddObject(newThing); And will this be a general rule, any additions I will need to add to my List and also to the control? Where I am with this is at the end of "getting started". Everything made sense so far, my "thing" class has a few delegates handling the string conversion, images, etc, all working fine, all making sense. I've had a look...
// a list of things with one Thing in it List<Thing> things = new List<Thing>(); things.Add(new Thing("first thing")); olv.SetObjects(things); // this works fine Thing newThing = new Thing("second thing"); things.Add(newThing); // how do I make this appear? olv.RefreshObject(newThing); // this does nothing olv.RefreshObjects(things); // this does nothing
// a list of things with one Thing in it List<Thing> things = new List<Thing>(); things.Add(new Thing("first thing")); olv.SetObjects(things); // this works fine Thing newThing = new Thing("second thing"); things.Add(newThing)); // how do I make this appear? olv.RefreshObject(newThing); // this does nothing olv.RefreshObjects(things); // this does nothing
// a list of things with one Thing in it List<thing> things = new List<thing>(); things.Add(new Thing("first thing"));</thing></thing> olv.SetObjects(things); // this works fine Thing newThing = new Thing("second thing"); things.Add(newThing)); // how do I make this appear? olv.RefreshObject(newThing); // this does nothing olv.RefreshObjects(things); // this does nothing
I'm confused. I've populated my object list and it's working fine I add more items to it, and they don't appear I've gone through the "cookbook" and seen brief references made to RefreshObject() and to AddObject() but these are just mentioned in passing and it's not clear how they are supposed to be used. It's really confusing because this seems like pretty fundamental stuff but I can't find any documentation on this at all? The only thing I can find that mentions RefreshObject() is something that...
I'm confused. I've populated my object list and it's working fine I add more items to it, and they don't appear I've gone through the "cookbook" and seen brief references made to RefreshObject() and to AddObject() but these are just mentioned in passing and it's not clear how they are supposed to be used. It's really confusing because this seems like pretty fundamental stuff but I can't find any basic documentation on this at all? The only thing I can find that mentions RefreshObject() is some code...
that won't work, there are specific rules on TVDB for how specials are listed, and the series is locked. these are extras from the bluray that don't qualify as "specials" under the TVDB rules. regardless, I would like to include them in Kodi.
If we've got tv episodes that aren't listed in the database, is there any way to manually add these as new entries? I've got a bunch of extras I'd like to add as specials, which aren't in the tvdb database
what would actually be perfect would be a feature to lock any manually edited data from being overwritten when the movie is rescraped. so as well as specifically locking out certain fields altogether, if we've previously chosen certain artwork, or manually updated some other data (including the sort order) for a movie, then those changes get locked from rescraping by default (obviously you'd want to be able to turn this behaviour off as well). when data is manually edited, perhaps a small icon or...
this would be a very useful feature as things have changed over time, most of my library is missing bits of art or extra stuff here and there. some are missing trailers. some are missing actors folders. it's not consistent across the whole library. the easiest way to fix this is to select the entire library and "rescrape all" but then I lose the custom sort orders that I've put in manually for the big movie sets. the only other thing I can do is select the entire library and then individually rescrape...