faeran Posted September 1, 2021 Share Posted September 1, 2021 Hi everyone. The 11.18 Beta 1 is now out with the following changes: New Feature: Filtering games in LaunchBox is now much more flexible; you can filter to pretty much anything on the fly with the new filter button in the left-hand sidebar, next to the search box New Feature: Anything you filter on the fly with the above new feature can be easily saved to a dynamic playlist Improvement: Performance while selecting games in LaunchBox is now faster due to improvements in populating the game details sidebar Fixed: Login screen would immediately close when checking "Force New Login" in the XBOX import wizard if you had previously logged in Fixed: The ROM import wizard wasn't always importing all games when using MAME metadata (the full-set importer was unaffected) Fixed: The keyboard focus border wasn't being drawn correctly in LaunchBox's Grid View with the default theme (recently introduced) Fixed: Big Box CoverFlow views can once again use "Box" as image type in addition to "Boxes" (recently introduced theme compatibility issue that was affecting some older themes) Thanks for the help with beta testing LaunchBox. 8 Link to comment Share on other sites More sharing options...
Krakerman Posted September 1, 2021 Share Posted September 1, 2021 Only applies to newer LB Themes the Old theme does not have that new feature Link to comment Share on other sites More sharing options...
RULLUR Posted September 2, 2021 Share Posted September 2, 2021 Is there a way we can get to where we can search the "Versions" category? I've been waiting on that one for a while. Link to comment Share on other sites More sharing options...
bundangdon Posted September 2, 2021 Share Posted September 2, 2021 11 hours ago, faeran said: Hi everyone. The 11.18 Beta 1 is now out with the following changes: New Feature: Filtering games in LaunchBox is now much more flexible; you can filter to pretty much anything on the fly with the new filter button in the left-hand sidebar, next to the search box New Feature: Anything you filter on the fly with the above new feature can be easily saved to a dynamic playlist Improvement: Performance while selecting games in LaunchBox is now faster due to improvements in populating the game details sidebar Fixed: Login screen would immediately close when checking "Force New Login" in the XBOX import wizard if you had previously logged in Fixed: The ROM import wizard wasn't always importing all games when using MAME metadata (the full-set importer was unaffected) Fixed: The keyboard focus border wasn't being drawn correctly in LaunchBox's Grid View with the default theme (recently introduced) Fixed: Big Box CoverFlow views can once again use "Box" as image type in addition to "Boxes" (recently introduced theme compatibility issue that was affecting some older themes) Thanks for the help with beta testing LaunchBox. Wow! But it's a shame that the new filtering feature doesn't work with other LB themes. I tried this latest beta with the default theme and it works great, but it's not available in the LBPlex theme, which is the one I almost always use Link to comment Share on other sites More sharing options...
Retro808 Posted September 2, 2021 Share Posted September 2, 2021 4 hours ago, bundangdon said: Wow! But it's a shame that the new filtering feature doesn't work with other LB themes. I tried this latest beta with the default theme and it works great, but it's not available in the LBPlex theme, which is the one I almost always use Yeah, unfortunately the theme developers who made Launchbox themes will need to update the theme to include the new button. Drop this in the LBPlex theme's \Views folder. It has the button added. SideBarView.xaml 2 Link to comment Share on other sites More sharing options...
bundangdon Posted September 2, 2021 Share Posted September 2, 2021 11 minutes ago, Retro808 said: Yeah, unfortunately the theme developers who made Launchbox themes will need to update the theme to include the new button. Drop this in the LBPlex theme's \Views folder. It has the button added. SideBarView.xaml 43.47 kB · 0 downloads Yep, that worked perfectly. Thanks a lot! 1 Link to comment Share on other sites More sharing options...
C-Beats Posted September 2, 2021 Share Posted September 2, 2021 13 hours ago, Krakerman said: Only applies to newer LB Themes the Old theme does not have that new feature We will get it added to Old Default as well, though any custom theme's you (or the theme dev) will have to add the button yourself. 2 Link to comment Share on other sites More sharing options...
JoeViking245 Posted September 2, 2021 Share Posted September 2, 2021 17 hours ago, faeran said: the new filter button This is a SWEET feature!! Love it! And since we're only in Beta... Getting an error that forces LaunchBox to close (after clicking Close on the error message box). After selecting a Platform (say Atari 2600) and clicking the Filter icon (without selecting anything) then click on a different Platform (NES [arbitrary selection]), Filter icon (again, no selection), select Arcade, filter icon... so far so good... Select All Platforms, Filter icon (still not selecting a specific filter) then select Arcade (again) and click the Filter icon, an error message pops up. Spoiler Index was outside the bounds of the array. App: LaunchBox Version: 11.18-beta-1 Type: System.IndexOutOfRangeException Site: System.Windows.LocalValueEnumerator GetLocalValueEnumerator() Source: WindowsBase at System.Windows.DependencyObject.GetLocalValueEnumerator() at System.Windows.TreeWalkHelper.InvalidateResourceReferences(DependencyObject d, ResourcesChangeInfo info) at System.Windows.TreeWalkHelper.OnResourcesChanged(DependencyObject d, ResourcesChangeInfo info, Boolean raiseResourceChangedEvent) at System.Windows.FrameworkElement.OnAncestorChangedInternal(TreeChangeInfo parentTreeState) at System.Windows.TreeWalkHelper.OnAncestorChanged(DependencyObject d, TreeChangeInfo info, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at MS.Internal.PrePostDescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren) at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren) at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d) at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at MS.Internal.PrePostDescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren) at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren) at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d) at System.Windows.DescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode) at MS.Internal.PrePostDescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode) at System.Windows.TreeWalkHelper.InvalidateOnTreeChange(FrameworkElement fe, FrameworkContentElement fce, DependencyObject parent, Boolean isAddOperation) at System.Windows.FrameworkElement.ChangeLogicalParent(DependencyObject newParent) at System.Windows.FrameworkElement.AddLogicalChild(Object child) at System.Windows.Controls.Primitives.Popup.OnChildChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType) at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal) at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) at System.Windows.Controls.Primitives.Popup.CreateRootPopupInternal(Popup popup, UIElement child, Boolean bindTreatMousePlacementAsBottomProperty) at System.Windows.Controls.ContextMenu.HookupParentPopup() at System.Windows.Controls.ContextMenu.OnIsOpenChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType) at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal) at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) at System.Windows.Controls.ContextMenu.set_IsOpen(Boolean value) at Unbroken.LaunchBox.Windows.Desktop.ViewModels.SideBarViewModel.<>c__DisplayClass86_1.PushSimpleStruct(Object , Boolean ) at Unbroken.LaunchBox.Windows.Desktop.ViewModels.SideBarViewModel.<>c__DisplayClass86_1.PublishInvalidTemplate() at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore() at System.Windows.Threading.DispatcherOperation.InvokeImpl() --- End of stack trace from previous location where exception was thrown --- at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout) at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout) at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout) at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority) at Unbroken.LaunchBox.Windows.Threading.PatchMetaGlobal(Object , Object , DispatcherPriority ) at Unbroken.LaunchBox.Windows.Threading.Invoke(Action callback, DispatcherPriority priority) at Unbroken.LaunchBox.Windows.Desktop.ViewModels.SideBarViewModel.<>c__DisplayClass86_0.CountInvalidTemplate() at Unbroken.LaunchBox.Windows.Threading.<>c__DisplayClass0_0.ListTraversalReg(Object ) at Unbroken.LaunchBox.Windows.Threading.<>c__DisplayClass0_0.InitIdentifiableDispatcher() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() Recent Log: 6:12:31 AM Exception There may have been a few more Platform/Filter clicks in there, but the error would appear with the Arcade Platform (and then clicking the Filter icon). Again, it did not do it every time when selecting Arcade, then clicking Filter. But always the 'last time'. It also seemed to happen after going from All to Arcade. (possibly coincidence) Tested using the Default theme and on 2 different PC's (2 separate LB installs). Debug 2021-09-02 06-10-32 AM.log Link to comment Share on other sites More sharing options...
C-Beats Posted September 2, 2021 Share Posted September 2, 2021 Thanks for the heads up @JoeViking245, sounds like @faeran was able to replicate so I'll take a look at it and get that fixed for next version. Link to comment Share on other sites More sharing options...
C-Beats Posted September 2, 2021 Share Posted September 2, 2021 5 minutes ago, C-Beats said: Thanks for the heads up @JoeViking245, sounds like @faeran was able to replicate so I'll take a look at it and get that fixed for next version. Course as I say that now neither of us can get it to do it again... Probably related to multi-threading. Are you seeing it often @JoeViking245 or it a hit/miss sorta thing? Link to comment Share on other sites More sharing options...
neil9000 Posted September 2, 2021 Share Posted September 2, 2021 5 minutes ago, C-Beats said: Course as I say that now neither of us can get it to do it again... Probably related to multi-threading. Are you seeing it often @JoeViking245 or it a hit/miss sorta thing? I can't seem to replicate either. Link to comment Share on other sites More sharing options...
JoeViking245 Posted September 2, 2021 Share Posted September 2, 2021 56 minutes ago, C-Beats said: Are you seeing it often or it a hit/miss sorta thing? I'm seeing it happen more hit than miss but have narrowed it down to only 2 Platforms that it happens on. Arcade and Sega Model 3. It seemed (for a minute) that if I clicked on Sega Model 3 and then selected a game, let it populate the right sidebar, then click the Filter icon, it would work (not error). But that's probably all phycological as that 'technique' didn't consistently continue to work. But it did a couple times. So it is hit or miss, but only on the 2 Platforms. But seems I can 'easily' [often] make it hit again. Link to comment Share on other sites More sharing options...
faeran Posted September 2, 2021 Author Share Posted September 2, 2021 Beta 2 is out now with the following changes: Improvement: Added Complete, Favorite, and Installed fields to the new filter button Fixed: The filter button's "Save to Playlist" feature should now work with all sidebar drop-down filters Fixed: Added the new filter button to the "Old Default" theme 5 Link to comment Share on other sites More sharing options...
C-Beats Posted September 2, 2021 Share Posted September 2, 2021 27 minutes ago, faeran said: Fixed: Added the new filter button to the "Old Default" theme @Krakerman Can you confirm you have it now? Link to comment Share on other sites More sharing options...
Krakerman Posted September 2, 2021 Share Posted September 2, 2021 (edited) @C-Beats Yes It's there now ? Thank you sir Edited September 2, 2021 by Krakerman Link to comment Share on other sites More sharing options...
Cineaste Posted September 3, 2021 Share Posted September 3, 2021 22 hours ago, Retro808 said: Yeah, unfortunately the theme developers who made Launchbox themes will need to update the theme to include the new button. Drop this in the LBPlex theme's \Views folder. It has the button added. SideBarView.xaml 43.47 kB · 11 downloads Is this universally applicable? I tried doing so with Rincewind but it messes up the theme. Link to comment Share on other sites More sharing options...
Retro808 Posted September 3, 2021 Share Posted September 3, 2021 4 minutes ago, Thornback said: Is this universally applicable? I tried doing so with Rincewind but it messes up the theme. The file i posted is only for LBPlex. The Rincewind theme would need its file updated. Link to comment Share on other sites More sharing options...
Cineaste Posted September 3, 2021 Share Posted September 3, 2021 11 minutes ago, Retro808 said: The file i posted is only for LBPlex. The Rincewind theme would need its file updated. My bad, thanks for clarifying. Link to comment Share on other sites More sharing options...
Mr. RetroLust Posted September 3, 2021 Share Posted September 3, 2021 Loving the new filters option! Thanks ? 1 Link to comment Share on other sites More sharing options...
Rlad Posted September 3, 2021 Share Posted September 3, 2021 (edited) If you click the filter button before searching for anything you get an error. Straight from loading LB i mean, if you've previously searched for something it doesn't happen. Spoiler Index was outside the bounds of the array. App: LaunchBox Version: 11.18-beta-2 Type: System.IndexOutOfRangeException Site: System.Windows.LocalValueEnumerator GetLocalValueEnumerator() Source: WindowsBase at System.Windows.DependencyObject.GetLocalValueEnumerator() at System.Windows.TreeWalkHelper.InvalidateResourceReferences(DependencyObject d, ResourcesChangeInfo info) at System.Windows.TreeWalkHelper.OnResourcesChanged(DependencyObject d, ResourcesChangeInfo info, Boolean raiseResourceChangedEvent) at System.Windows.FrameworkElement.OnAncestorChangedInternal(TreeChangeInfo parentTreeState) at System.Windows.TreeWalkHelper.OnAncestorChanged(DependencyObject d, TreeChangeInfo info, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at MS.Internal.PrePostDescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(FrameworkElement fe, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren) at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren) at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d) at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at MS.Internal.PrePostDescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(FrameworkElement fe, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren) at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren) at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d) at System.Windows.DescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode) at MS.Internal.PrePostDescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode) at System.Windows.TreeWalkHelper.InvalidateOnTreeChange(FrameworkElement fe, FrameworkContentElement fce, DependencyObject parent, Boolean isAddOperation) at System.Windows.FrameworkElement.ChangeLogicalParent(DependencyObject newParent) at System.Windows.FrameworkElement.AddLogicalChild(Object child) at System.Windows.Controls.Primitives.Popup.OnChildChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType) at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal) at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) at System.Windows.Controls.Primitives.Popup.CreateRootPopupInternal(Popup popup, UIElement child, Boolean bindTreatMousePlacementAsBottomProperty) at System.Windows.Controls.ContextMenu.HookupParentPopup() at System.Windows.Controls.ContextMenu.OnIsOpenChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType) at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal) at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) at System.Windows.Controls.ContextMenu.set_IsOpen(Boolean value) at Unbroken.LaunchBox.Windows.Desktop.ViewModels.SideBarViewModel.<>c__DisplayClass87_1.IncludeRemoteSystem(Object , Boolean ) at Unbroken.LaunchBox.Windows.Desktop.ViewModels.SideBarViewModel.<>c__DisplayClass87_1.WriteIterableObject() at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore() at System.Windows.Threading.DispatcherOperation.InvokeImpl() --- End of stack trace from previous location where exception was thrown --- at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout) at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout) at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout) at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority) at Unbroken.LaunchBox.Windows.Threading.DefineStatelessProcess(Object , Object , DispatcherPriority ) at Unbroken.LaunchBox.Windows.Threading.Invoke(Action callback, DispatcherPriority priority) at Unbroken.LaunchBox.Windows.Desktop.ViewModels.SideBarViewModel.<>c__DisplayClass87_0.AssetIterableObject() at Unbroken.LaunchBox.Windows.Threading.<>c__DisplayClass0_0.CloneConcreteReg(Object ) at Unbroken.LaunchBox.Windows.Threading.<>c__DisplayClass0_0.AssetCompositeCandidate() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- at System.Threading.ThreadHelper.ThreadStart() Recent Log: 13:48:14 Exception Edited September 4, 2021 by Rlad Link to comment Share on other sites More sharing options...
Recommended Posts