Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
 /// <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;
 }
Beispiel #5
0
        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);
            }
        }