Skip to content

Commit

Permalink
Merge branch 'master' into pk/vs2010
Browse files Browse the repository at this point in the history
Conflicts:
	ReactiveUI.Routing/ReactiveUI.Routing_WP7.csproj
	ReactiveUI.Testing/ReactiveUI.Testing_WP7.csproj
	ReactiveUI.Tests/ReactiveUI.Tests_SL5.csproj
  • Loading branch information
Peter Klavins committed Jun 27, 2012
2 parents 6f788ab + de77e01 commit 4149910
Show file tree
Hide file tree
Showing 33 changed files with 13,155 additions and 7,872 deletions.
2 changes: 1 addition & 1 deletion ReactiveUI.Blend/Properties/AssemblyInfo.cs
Expand Up @@ -3,4 +3,4 @@

[assembly: AssemblyDescription("An MVVM framework that integrates the Reactive Extensions")]
[assembly: AssemblyProduct("ReactiveUI for Expression Blend")]
[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]
1 change: 1 addition & 0 deletions ReactiveUI.Blend/ReactiveUI.Blend_WP7.csproj
Expand Up @@ -49,6 +49,7 @@
<Reference Include="Microsoft.Reactive.Testing">
<HintPath>..\ext\WP71\Microsoft.Reactive.Testing.dll</HintPath>
</Reference>
<Reference Include="mscorlib.Extensions" />
<Reference Include="NLog">
<HintPath>..\packages\NLog.2.0.0.2000\lib\sl4-windowsphone71\NLog.dll</HintPath>
</Reference>
Expand Down
2 changes: 1 addition & 1 deletion ReactiveUI.Routing/Properties/AssemblyInfo.cs
Expand Up @@ -9,6 +9,6 @@
[assembly: AssemblyDescription("A ViewModel-based Routing framework for RxUI")]
[assembly: AssemblyProduct("ReactiveUI.Routing")]

[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]
[assembly: InternalsVisibleTo("ReactiveUI.Routing.Tests")]
[assembly: InternalsVisibleTo("ReactiveUI.Routing.Explorables")]
1 change: 1 addition & 0 deletions ReactiveUI.Routing/ReactiveUI.Routing_WP7.csproj
Expand Up @@ -75,6 +75,7 @@
<Reference Include="Microsoft.Reactive.Testing">
<HintPath>..\ext\WP71\Microsoft.Reactive.Testing.dll</HintPath>
</Reference>
<Reference Include="mscorlib.Extensions" />
<Reference Include="NLog">
<HintPath>..\packages\NLog.2.0.0.2000\lib\sl3-wp\NLog.dll</HintPath>
</Reference>
Expand Down
45 changes: 29 additions & 16 deletions ReactiveUI.Routing/RoutedViewHost.cs
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Reactive.Linq;
using System.Linq;
using System.Reactive.Subjects;
using System.Text;
using System.Windows;
using ReactiveUI;
Expand Down Expand Up @@ -33,7 +34,9 @@ public class RoutedViewHost : TransitioningContentControl
set { SetValue(RouterProperty, value); }
}
public static readonly DependencyProperty RouterProperty =
DependencyProperty.Register("Router", typeof(RoutingState), typeof(RoutedViewHost), new PropertyMetadata(null));
DependencyProperty.Register("Router", typeof(RoutingState), typeof(RoutedViewHost), new PropertyMetadata(null, routerChanged));

readonly Subject<RoutingState> routerChange;

/// <summary>
/// This content is displayed whenever there is no page currently
Expand All @@ -48,24 +51,34 @@ public class RoutedViewHost : TransitioningContentControl

public RoutedViewHost()
{
this.ObservableFromDP(x => x.Router)
.Subscribe(x => {
if (_inner != null) {
_inner.Dispose();
_inner = null;
}
routerChange = new Subject<RoutingState>();

_inner = x.Value.ViewModelObservable().Subscribe(vm => {
if (vm == null) {
Content = DefaultContent;
return;
}
routerChange.Subscribe(x => {
if (_inner != null) {
_inner.Dispose();
_inner = null;
}
_inner = x.ViewModelObservable().Subscribe(vm => {
if (vm == null) {
Content = DefaultContent;
return;
}
var view = RxRouting.ResolveView(vm);
view.ViewModel = vm;
Content = view;
});
var view = RxRouting.ResolveView(vm);
view.ViewModel = vm;
Content = view;
});
});
}

static void routerChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
// XXX: This is to work around the fact that ObservableFromDP
// is broken in WinRT
var This = ((RoutedViewHost) dependencyObject);
This.routerChange.OnNext(This.Router);
}

}
}
20 changes: 14 additions & 6 deletions ReactiveUI.Routing/ViewModelViewHost.cs
@@ -1,5 +1,7 @@
using System;
using System.Reactive;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Windows;
using ReactiveUI.Xaml;

Expand Down Expand Up @@ -27,7 +29,9 @@ public class ViewModelViewHost : TransitioningContentControl
set { SetValue(ViewModelProperty, value); }
}
public static readonly DependencyProperty ViewModelProperty =
DependencyProperty.Register("ViewModel", typeof(IReactiveNotifyPropertyChanged), typeof(ViewModelViewHost), new PropertyMetadata(null));
DependencyProperty.Register("ViewModel", typeof(IReactiveNotifyPropertyChanged), typeof(ViewModelViewHost), new PropertyMetadata(null, somethingChanged));

readonly Subject<Unit> updateViewModel = new Subject<Unit>();

/// <summary>
/// If no ViewModel is displayed, this content (i.e. a control) will be displayed.
Expand All @@ -37,14 +41,13 @@ public class ViewModelViewHost : TransitioningContentControl
set { SetValue(DefaultContentProperty, value); }
}
public static readonly DependencyProperty DefaultContentProperty =
DependencyProperty.Register("DefaultContent", typeof(object), typeof(ViewModelViewHost), new PropertyMetadata(null));
DependencyProperty.Register("DefaultContent", typeof(object), typeof(ViewModelViewHost), new PropertyMetadata(null, somethingChanged));

public ViewModelViewHost()
{
var latestViewModel = Observable.CombineLatest(
this.ObservableFromDP(x => x.ViewModel).Select(x => x.Value).StartWith((IReactiveNotifyPropertyChanged)null),
this.ObservableFromDP(x => x.DataContext).Select(x => x.Value).OfType<IReactiveNotifyPropertyChanged>().StartWith((IReactiveNotifyPropertyChanged)null),
(vm, dc) => vm ?? dc);
var latestViewModel = updateViewModel
.Select(_ => (IReactiveNotifyPropertyChanged)(ViewModel ?? DataContext))
.StartWith((IReactiveNotifyPropertyChanged) null);

latestViewModel.Subscribe(vm => {
if (vm == null) {
Expand All @@ -57,5 +60,10 @@ public ViewModelViewHost()
Content = view;
});
}

static void somethingChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
((ViewModelViewHost)dependencyObject).updateViewModel.OnNext(Unit.Default);
}
}
}
2 changes: 1 addition & 1 deletion ReactiveUI.Serialization.Esent/Properties/AssemblyInfo.cs
Expand Up @@ -8,4 +8,4 @@
[assembly: AssemblyTitle("ReactiveUI.Serialization.Esent")]
[assembly: AssemblyDescription("ESENT-based storage provider for ReactiveUI.Serialization")]
[assembly: AssemblyProduct("ReactiveUI.Serialization")]
[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]
2 changes: 1 addition & 1 deletion ReactiveUI.Serialization/Properties/AssemblyInfo.cs
Expand Up @@ -9,6 +9,6 @@
[assembly: AssemblyDescription("A key-value based serialization library for ReactiveUI")]
[assembly: AssemblyProduct("ReactiveUI.Serialization")]

[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]
[assembly: InternalsVisibleTo("ReactiveUI.Serialization.Tests")]
[assembly: InternalsVisibleTo("ReactiveUI.Serialization.Explorables")]
2 changes: 1 addition & 1 deletion ReactiveUI.Testing/Properties/AssemblyInfo.cs
Expand Up @@ -4,4 +4,4 @@

[assembly: AssemblyDescription("Classes that aid in testing ReactiveUI projects")]
[assembly: AssemblyProduct("ReactiveUI.Testing")]
[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]
1 change: 1 addition & 0 deletions ReactiveUI.Testing/ReactiveUI.Testing_WP7.csproj
Expand Up @@ -69,6 +69,7 @@
<Reference Include="Microsoft.Reactive.Testing">
<HintPath>..\ext\WP71\Microsoft.Reactive.Testing.dll</HintPath>
</Reference>
<Reference Include="mscorlib.Extensions" />
<Reference Include="NLog">
<HintPath>..\packages\NLog.2.0.0.2000\lib\sl4-windowsphone71\NLog.dll</HintPath>
</Reference>
Expand Down
2 changes: 1 addition & 1 deletion ReactiveUI.Xaml/Properties/AssemblyInfo.cs
Expand Up @@ -5,7 +5,7 @@

[assembly: AssemblyDescription("An MVVM framework that integrates the Reactive Extensions")]
[assembly: AssemblyProduct("ReactiveUI.Xaml")]
[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]

#if !(WINRT || SILVERLIGHT || MONO)
[assembly: ThemeInfo(
Expand Down
1 change: 1 addition & 0 deletions ReactiveUI.Xaml/ReactiveUI.Xaml_WP7.csproj
Expand Up @@ -69,6 +69,7 @@
<Reference Include="AsyncCtpLibrary_Phone">
<HintPath>..\ext\WP71\AsyncCtpLibrary_Phone.dll</HintPath>
</Reference>
<Reference Include="mscorlib.Extensions" />
<Reference Include="NLog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.2.0.0.2000\lib\sl4-windowsphone71\NLog.dll</HintPath>
</Reference>
Expand Down
16 changes: 1 addition & 15 deletions ReactiveUI/ContractStubs.cs
Expand Up @@ -17,7 +17,7 @@ internal class Contract

#endif

#if (SILVERLIGHT && !SILVERLIGHT5) || IOS || WINRT
#if IOS || WINRT

namespace System.ComponentModel
{
Expand All @@ -44,18 +44,4 @@ public interface INotifyPropertyChanging

#endif

#if IOS

namespace System.Windows.Input
{
public interface ICommand
{
bool CanExecute(object parameter);
void Execute(object parameter);
event EventHandler CanExecuteChanged;
}
}

#endif

// vim: tw=120 ts=4 sw=4 et :
2 changes: 1 addition & 1 deletion ReactiveUI/Properties/AssemblyInfo.cs
Expand Up @@ -4,7 +4,7 @@

[assembly: AssemblyDescription("An MVVM framework that integrates the Reactive Extensions")]
[assembly: AssemblyProduct("ReactiveUI")]
[assembly: AssemblyVersion("3.1.2.0")]
[assembly: AssemblyVersion("3.1.3.0")]

[assembly: InternalsVisibleTo("ReactiveUI.Explorables")]
[assembly: InternalsVisibleTo("ReactiveUI.Xaml")]
Expand Down
1 change: 1 addition & 0 deletions ReactiveUI/ReactiveUI_WP7.csproj
Expand Up @@ -69,6 +69,7 @@
<Reference Include="AsyncCtpLibrary_Phone">
<HintPath>..\ext\WP71\AsyncCtpLibrary_Phone.dll</HintPath>
</Reference>
<Reference Include="mscorlib.Extensions" />
<Reference Include="NLog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.2.0.0.2000\lib\sl4-windowsphone71\NLog.dll</HintPath>
</Reference>
Expand Down
2 changes: 1 addition & 1 deletion ReactiveUI/RxApp.cs
Expand Up @@ -335,7 +335,7 @@ public static bool IsServiceLocationConfigured()
internal static IScheduler findDispatcherScheduler()
{
#if WINRT
return System.Reactive.Concurrency.CoreDispatcherScheduler.Default;
return System.Reactive.Concurrency.CoreDispatcherScheduler.Current;
#else
Type result = null;
try {
Expand Down
Binary file modified ext/winrt/Microsoft.Reactive.Testing.dll
Binary file not shown.

0 comments on commit 4149910

Please sign in to comment.