internal void Clean() { ReplyStatus = null; Text = ""; IsSensitive = false; ContentWarningText = ""; ContentWarning.IsChecked = false; Medias.Clear(); SelectedVisibilityIndex = 0; _draftId = -1; }
public async Task OnLoad(object data) { bool loadImage = data as bool? ?? true; foreach (var acc in Accounts) { acc.UseChanged -= Acc_UseChanged; } Accounts = ContextList?.Contexts?.Select(c => new AccountEntry(c, loadImage)).ToList(); if (Accounts == null) { LogTo.Warn("No accounts found"); return; } foreach (var acc in Accounts) { acc.UseChanged += Acc_UseChanged; } var defAccount = Accounts.FirstOrDefault(a => a.IsDefault) ?? Accounts.First(); defAccount.Use = true; if (PreSelectedAccounts.Any()) { foreach (var acc in Accounts) { acc.Use = PreSelectedAccounts.Contains(acc.Context.UserId); } } RaisePropertyChanged(nameof(Accounts)); InitializeText(); ConfirmationSet = false; Medias.Clear(); AttachedMedias.Clear(); KnownUserNames = (await Cache.GetKnownUsers().ConfigureAwait(false)).Select(u => u.UserName).ToList(); RaisePropertyChanged(nameof(KnownUserNames)); KnownHashtags = (await Cache.GetKnownHashtags().ConfigureAwait(false)).ToList(); RaisePropertyChanged(nameof(KnownHashtags)); ScheduleDate = DateTime.Now; ScheduleTime = DateTime.Now; DeletionDate = DateTime.Now; DeletionTime = DateTime.Now; IsTweetScheduled = false; IsDeletionScheduled = false; }
public void GenerateLibraryThread(object param) { lock (GenerateMutexLock) { if (GenerateMutex) { return; } GenerateMutex = true; } lock (Medias) Medias.Clear(); lock (Playlists) Playlists.Clear(); lock (Paths) Paths.Clear(); var playlistHandler = new ManualResetEvent(false); ThreadPool.QueueUserWorkItem(GenerateLibraryThreadPlaylist, playlistHandler); var tmps = new List <Tuple <String, String[], ManualResetEvent, ClickStyle, int> > { Tuple.Create(MusicPath, MediaItem.MusicExtensions, new ManualResetEvent(false), ClickStyle.MUSIC, 100), Tuple.Create(VideoPath, MediaItem.VideoExtensions, new ManualResetEvent(false), ClickStyle.VIDEO, 1), Tuple.Create(ImagePath, MediaItem.ImageExtensions, new ManualResetEvent(false), ClickStyle.IMAGE, 200), }; foreach (var dir in ConfigFile.Instance.Data.BiblioFiles) { tmps.Add(Tuple.Create(dir, MediaItem.MusicExtensions, new ManualResetEvent(false), ClickStyle.MUSIC, 100)); tmps.Add(Tuple.Create(dir, MediaItem.VideoExtensions, new ManualResetEvent(false), ClickStyle.VIDEO, 1)); tmps.Add(Tuple.Create(dir, MediaItem.ImageExtensions, new ManualResetEvent(false), ClickStyle.IMAGE, 200)); } foreach (var tmp in tmps) { ThreadPool.QueueUserWorkItem(GenerateLibraryThreadMedia, tmp); } playlistHandler.WaitOne(); foreach (var tmp in tmps) { tmp.Item3.WaitOne(); } lock (Paths) Paths.Clear(); lock (GenerateMutexLock) GenerateMutex = false; }
private void SetupCommands() { AddFiles.CanExecuteCommand = e => true; AddFiles.ExecuteCommand = e => OnAddFileClicked(); Convert.CanExecuteCommand = e => Medias.Count != 0; Convert.ExecuteCommand = e => { if (IsWorking) { tokenSource.Cancel(); } else { OnConvert(); } }; Clear.CanExecuteCommand = e => Medias.Count != 0; Clear.ExecuteCommand = e => Medias.Clear(); Remove.CanExecuteCommand = e => SelectedMediaIndex != -1 && Medias.Count != 0; Remove.ExecuteCommand = e => MediasView.RemoveAt(SelectedMediaIndex); }
public async Task OnLoad(object data) { foreach (var acc in Accounts) { acc.UseChanged -= Acc_UseChanged; } Accounts = ContextList.Contexts.Select(c => new AccountEntry(c)).ToList(); foreach (var acc in Accounts) { acc.UseChanged += Acc_UseChanged; } var defAccount = Accounts.FirstOrDefault(a => a.IsDefault) ?? Accounts.First(); defAccount.Use = true; if (PreSelectedAccounts.Any()) { foreach (var acc in Accounts) { acc.Use = PreSelectedAccounts.Contains(acc.Context.UserId); } } RaisePropertyChanged(nameof(Accounts)); InitializeText(); ConfirmationSet = false; Medias.Clear(); AttachedMedias.Clear(); KnownUserNames = (await Cache.GetKnownUsers().ConfigureAwait(false)).Select(u => u.UserName).ToList(); RaisePropertyChanged(nameof(KnownUserNames)); KnownHashtags = (await Cache.GetKnownHashtags().ConfigureAwait(false)).ToList(); RaisePropertyChanged(nameof(KnownHashtags)); }
protected override void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { if (Packages != null) { if (Packages.Count > 0) { foreach (SelectablePackage package in Packages) { package.Dispose(); } } Packages.Clear(); Packages = null; } if (Dependencies != null) { Dependency.ClearLogics(Dependencies); Dependencies = null; } // TODO: dispose managed state (managed objects) if (ParentCategory != null) { ParentCategory = null; } if (Parent != null) { Parent = null; } if (TopParent != null) { TopParent = null; } if (UserFiles != null) { foreach (UserFile file in UserFiles) { file.FilesSaved.Clear(); } UserFiles.Clear(); UserFiles = null; } if (Medias != null) { foreach (Media media in Medias) { media.SelectablePackageParent = null; } Medias.Clear(); Medias = null; } if (UIComponent != null) { UIComponent.Package = null; UIComponent = null; } if (ParentUIComponent != null) { ParentUIComponent.Package = null; ParentUIComponent = null; } if (TopParentUIComponent != null) { TopParentUIComponent.Package = null; TopParentUIComponent = null; } if (RelhaxWPFComboBoxList != null) { for (int i = 0; i < RelhaxWPFComboBoxList.Count(); i++) { if (RelhaxWPFComboBoxList[i] != null) { RelhaxWPFComboBoxList[i] = null; } } RelhaxWPFComboBoxList = null; } if (ChildBorder != null) { ChildBorder = null; } if (ChildStackPanel != null) { ChildStackPanel = null; } if (ParentBorder != null) { ParentBorder = null; } if (ParentStackPanel != null) { ParentStackPanel = null; } if (ContentControl != null) { ContentControl = null; } if (ScrollViewer != null) { ScrollViewer = null; } if (TreeViewItem != null) { TreeViewItem = null; } if (TreeView != null) { TreeView = null; } if (TabIndex != null) { TabIndex = null; } } // TODO: free unmanaged resources (unmanaged objects) and override finalizer // TODO: set large fields to null disposedValue = true; } base.Dispose(disposing); }