M todos.txt => todos.txt +4 -2
@@ 1,2 1,4 @@
-1. Remove all direct use of ErrorContentDialog
-2. Fix how unsubscribe is handled>
\ No newline at end of file
+- Support filters
+- Add re-generate thumbnail support
+- Add dynamic thumbnail count based on video length
+- Make repository streamable<
\ No newline at end of file
M vorg-windows/BrowseDetailPage.xaml.cpp => vorg-windows/BrowseDetailPage.xaml.cpp +9 -6
@@ 28,8 28,11 @@ BrowseDetailPage::BrowseDetailPage()
BrowseDetailPage::~BrowseDetailPage()
{
mDetailData.Actors().VectorChanged(mActorsVectorChangedToken);
+ mActorsVectorChangedToken = event_token();
mDetailData.Tags().VectorChanged(mTagsVectorChangedToken);
+ mTagsVectorChangedToken = event_token();
mDetailData.PropertyChanged(mDetailDataPropertyChangedToken);
+ mDetailDataPropertyChangedToken = event_token();
}
vorg_windows::VideoDetailData BrowseDetailPage::DetailData() const
@@ 169,22 172,22 @@ void BrowseDetailPage::SaveButton_Click(const Windows::Foundation::IInspectable
}
void BrowseDetailPage::VideoDataEditor_StudioTextChanged(
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
{
sender.ItemsSource(mApp->CompleteStudios(sender.Text()));
}
void BrowseDetailPage::VideoDataEditor_ActorTextChanged(
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
{
sender.ItemsSource(mApp->CompleteActors(sender.Text()));
}
void BrowseDetailPage::VideoDataEditor_TagTextChanged(
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
{
sender.ItemsSource(mApp->CompleteTags(sender.Text()));
}
M vorg-windows/BrowsePage.xaml.cpp => vorg-windows/BrowsePage.xaml.cpp +7 -0
@@ 29,6 29,7 @@ BrowsePage::~BrowsePage()
if (galleryPage != nullptr)
{
galleryPage.ShowVideoDetail(mShowVideoDetailToken);
+ mShowVideoDetailToken = event_token();
return;
}
@@ 36,7 37,9 @@ BrowsePage::~BrowsePage()
if (detailPage != nullptr)
{
detailPage.BackFromDetail(mBackFromDetailToken);
+ mBackFromDetailToken = event_token();
detailPage.VideoModified(mVideoModifiedToken);
+ mVideoModifiedToken = event_token();
return;
}
}
@@ 75,6 78,7 @@ void BrowsePage::BrowseGalleryPage_ShowVideoDetail(const vorg_windows::BrowseGal
// Unsubscribe from ShowVideoDetail
vorg_windows::BrowseGalleryPage galleryPage = ContentFrame().Content().as<vorg_windows::BrowseGalleryPage>();
galleryPage.ShowVideoDetail(mShowVideoDetailToken);
+ mShowVideoDetailToken = event_token();
// Get video detail
vorg_windows::VideoPreviewData previewData{nullptr};
@@ 100,6 104,9 @@ void BrowsePage::BrowseDetailPage_BackFromDetail(const vorg_windows::BrowseDetai
// Unsubscribe from BackFromDetail
vorg_windows::BrowseDetailPage detailPage = ContentFrame().Content().as<vorg_windows::BrowseDetailPage>();
detailPage.BackFromDetail(mBackFromDetailToken);
+ mBackFromDetailToken = event_token();
+ detailPage.VideoModified(mVideoModifiedToken);
+ mVideoModifiedToken = event_token();
// Navigate to BrowseGalleryPage
GoToGallery(true);
M vorg-windows/HoverThumbnailDisplay.xaml.cpp => vorg-windows/HoverThumbnailDisplay.xaml.cpp +1 -0
@@ 23,6 23,7 @@ HoverThumbnailDisplay::HoverThumbnailDisplay()
HoverThumbnailDisplay::~HoverThumbnailDisplay()
{
mTimer.Tick(mTickToken);
+ mTickToken = event_token();
}
Windows::Foundation::Collections::IObservableVector<hstring> HoverThumbnailDisplay::Thumbnails() const
M vorg-windows/ImportEditPage.xaml.cpp => vorg-windows/ImportEditPage.xaml.cpp +6 -6
@@ 39,22 39,22 @@ void ImportEditPage::SubmitButton_Click(const Windows::Foundation::IInspectable
}
void ImportEditPage::VideoDataEditor_StudioTextChanged(
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
{
sender.ItemsSource(mApp->CompleteStudios(sender.Text()));
}
void ImportEditPage::VideoDataEditor_ActorTextChanged(
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
{
sender.ItemsSource(mApp->CompleteActors(sender.Text()));
}
void ImportEditPage::VideoDataEditor_TagTextChanged(
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
- const winrt::Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBox &sender,
+ const Microsoft::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs &)
{
sender.ItemsSource(mApp->CompleteTags(sender.Text()));
}
M vorg-windows/ImportPage.xaml.cpp => vorg-windows/ImportPage.xaml.cpp +20 -0
@@ 29,12 29,31 @@ ImportPage::ImportPage()
[this](auto &sender, auto &args) { this->ImportSelectionPage_SelectionFinished(sender, args); });
}
+ImportPage::~ImportPage()
+{
+ vorg_windows::ImportSelectionPage selectionPage = ContentFrame().Content().as<vorg_windows::ImportSelectionPage>();
+ if (selectionPage != nullptr)
+ {
+ selectionPage.SelectionFinished(mSelectionFinishedToken);
+ mSelectionFinishedToken = event_token();
+ return;
+ }
+ vorg_windows::ImportEditPage editPage = ContentFrame().Content().as<vorg_windows::ImportEditPage>();
+ if (editPage != nullptr)
+ {
+ editPage.EditFinished(mEditFinishedToken);
+ mEditFinishedToken = event_token();
+ return;
+ }
+}
+
void ImportPage::ImportSelectionPage_SelectionFinished(const vorg_windows::ImportSelectionPage &,
const Windows::Foundation::IInspectable &)
{
// Remove SelectionFinished handler
vorg_windows::ImportSelectionPage selectionPage = ContentFrame().Content().as<vorg_windows::ImportSelectionPage>();
selectionPage.SelectionFinished(mSelectionFinishedToken);
+ mSelectionFinishedToken = event_token();
// Navigate to ImportEditPage
Microsoft::UI::Xaml::Media::Animation::SlideNavigationTransitionInfo transitionInfo;
@@ 67,6 86,7 @@ void ImportPage::ImportEditPage_EditFinished(const vorg_windows::ImportEditPage
// No more file
// Remove EditFinished handler
editPage.EditFinished(mEditFinishedToken);
+ mEditFinishedToken = event_token();
// Navigate to ImportSelectionPage
Microsoft::UI::Xaml::Media::Animation::SlideNavigationTransitionInfo transitionInfo;
M vorg-windows/ImportPage.xaml.h => vorg-windows/ImportPage.xaml.h +1 -0
@@ 9,6 9,7 @@ namespace winrt::vorg_windows::implementation
struct ImportPage : ImportPageT<ImportPage>
{
ImportPage();
+ ~ImportPage();
void ImportSelectionPage_SelectionFinished(const vorg_windows::ImportSelectionPage &,
const Windows::Foundation::IInspectable &);
M vorg-windows/MainWindow.xaml.cpp => vorg-windows/MainWindow.xaml.cpp +5 -0
@@ 56,6 56,11 @@ MainWindow::MainWindow() : mGalleryData(single_threaded_observable_vector<Window
landingPage.OpenRepo([this](auto &sender, auto &args) { this->LandingPage_OpenRepo(sender, args); });
}
+MainWindow::~MainWindow()
+{
+ PageCleanup();
+}
+
void MainWindow::NavigationView_ItemInvoked(const Controls::NavigationView &,
const Controls::NavigationViewItemInvokedEventArgs &args)
{
M vorg-windows/MainWindow.xaml.h => vorg-windows/MainWindow.xaml.h +1 -0
@@ 12,6 12,7 @@ namespace winrt::vorg_windows::implementation
struct MainWindow : MainWindowT<MainWindow>
{
MainWindow();
+ ~MainWindow();
// Handlers
void NavigationView_ItemInvoked(const Microsoft::UI::Xaml::Controls::NavigationView &sender,