/// <summary> /// Change the ownership of the ListViewLocker that is associated with the ListViewItem. /// </summary> /// <param name="lvi">The ListViewItem that should be updated.</param> /// <param name="ownership">A boolean to represent whether the user has ownership rights or not.</param> private void SetOwnership(ListViewItem lvi, bool ownership) { ListViewLocker lvl = _lvlManager.FindListViewLocker(lvi.Text); lvl.SetOwnership(ownership); lvi.SubItems[2].Text = lvl.HasOwnership() ? _languageManager.GetLanguage().BarItemOwnershipTrue : _languageManager.GetLanguage().BarItemOwnershipFalse; }
/// <summary> /// Open a file or folder into DeadLock. /// </summary> /// <param name="path">The path to the file or folder.</param> private void OpenPath(string path) { if (!File.Exists(path) && !Directory.Exists(path)) { return; } bool add = true; foreach (ListViewItem lv in lsvItems.Items) { if (lv.Text == path) { add = false; } } if (!add) { return; } Language l = LanguageManager.GetLanguage(); int index = lsvItems.Items.Count; ListViewLocker lvi = new ListViewLocker(path, l, index); lvi.SubItems.Add(l.MsgUnknown); Image img; if (File.GetAttributes(path).HasFlag(FileAttributes.Directory)) { img = Properties.Resources.folder; } else { Icon ico = Icon.ExtractAssociatedIcon(path); img = ico?.ToBitmap() ?? Properties.Resources.file; } imgFileIcons.Images.Add(img); img.Dispose(); lvi.SubItems.Add(lvi.HasOwnership() ? l.BarItemOwnershipTrue : l.BarItemOwnershipFalse); lsvItems.Items.Add(lvi); lsvItems.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); lsvItems.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }
/// <summary> /// Open a file or folder into DeadLock. /// </summary> /// <param name="path">The path to the file or folder.</param> private void OpenPath(string path) { if (!File.Exists(path) && !Directory.Exists(path)) { return; } if (_lvlManager.FindListViewLocker(path) != null) { return; } Language l = _languageManager.GetLanguage(); int index = lsvItems.Items.Count; ListViewItem lvi = new ListViewItem { Text = path, UseItemStyleForSubItems = false, ImageIndex = index }; lvi.SubItems.Add(l.MsgUnknown); Image img; if (File.GetAttributes(path).HasFlag(FileAttributes.Directory)) { img = Properties.Resources.folder; } else { Icon ico = Icon.ExtractAssociatedIcon(path); img = ico?.ToBitmap() ?? Properties.Resources.file; } imgFileIcons.Images.Add(img); img.Dispose(); ListViewLocker lvl = new ListViewLocker(path, _languageManager.GetLanguage()); lvi.SubItems.Add(lvl.HasOwnership() ? l.BarItemOwnershipTrue : l.BarItemOwnershipFalse); lsvItems.Items.Add(lvi); _lvlManager.AddListViewLocker(lvl); lsvItems.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); lsvItems.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }
/// <summary> /// Change the ownership of the ListViewLocker. /// </summary> /// <param name="lvi">The ListViewLocker that should be updated.</param> /// <param name="ownership">A boolean to represent whether the user has ownership rights or not.</param> private void SetOwnership(ListViewLocker lvi, bool ownership) { lvi.SetOwnership(ownership); lvi.SubItems[2].Text = lvi.HasOwnership() ? LanguageManager.GetLanguage().BarItemOwnershipTrue : LanguageManager.GetLanguage().BarItemOwnershipFalse; }
private async void lsvItems_DoubleClick(object sender, EventArgs e) { if (lsvItems.SelectedItems.Count == 0) { return; } lsvDetails.Items.Clear(); ListViewLocker lvl = (ListViewLocker)lsvItems.SelectedItems[0]; Language l = LanguageManager.GetLanguage(); try { CancelSelectedTask(lvl); await Task.Run(() => { while (lvl.IsRunning()) { } }); lvl.SetLocker(new List <ProcessLocker>()); if (!File.Exists(lvl.Text) && !Directory.Exists(lvl.Text)) { imgFileIcons.Images.RemoveByKey(lvl.Text); lsvItems.Items.Remove(lvl); return; } SetLoading(lvl, 1); SetLoading(lvl, 2); lvl.SetRunning(true); List <ProcessLocker> lockers = await lvl.GetLockerDetails(); if (!lvl.HasCancelled()) { if (lockers.Count == 0) { lvl.SubItems[1].Text = l.MsgUnlocked; lvl.SubItems[1].ForeColor = Color.Green; } else { lvl.SubItems[1].Text = l.MsgLocked; lvl.SubItems[1].ForeColor = Color.Red; } lvl.SubItems[2].Text = lvl.HasOwnership() ? l.BarItemOwnershipTrue : l.BarItemOwnershipFalse; foreach (ProcessLocker p in lockers) { ListViewItem lvi = new ListViewItem { Text = p.GetFileName() }; lvi.SubItems.Add(p.GetFilePath()); lvi.SubItems.Add(p.GetProcessId().ToString()); lsvDetails.Items.Add(lvi); } lvl.SetLocker(lockers); lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); } else { lvl.SetLocker(new List <ProcessLocker>()); SetCancelled(lvl); } } catch (Exception ex) { MessageBoxAdv.Show(ex.Message, "DeadLock", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { lvl.SetRunning(false); } }