Ejemplo n.º 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;
        }
Ejemplo n.º 2
0
 private void clearItemsToolStripMenuItem_Click(object sender, EventArgs e)
 {
     foreach (ListViewItem lvi in lsvItems.Items)
     {
         ListViewLocker lvl = (ListViewLocker)lvi;
         lvl.CancelTask();
     }
     lsvItems.Items.Clear();
     lsvDetails.Items.Clear();
     imgFileIcons.Images.Clear();
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Cancel the ListViewLocker task, if applicable.
 /// </summary>
 /// <param name="lvi">The ListViewLocker that should be updated.</param>
 /// <returns>A boolean to represent whether the task was cancelled or not.</returns>
 private static bool CancelSelectedTask(ListViewLocker lvi)
 {
     if (lvi == null)
     {
         return(false);
     }
     if (!lvi.IsRunning())
     {
         return(false);
     }
     lvi.CancelTask();
     return(true);
 }
Ejemplo n.º 4
0
        private void cancelCurrentOperationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }

            ListViewLocker selected = (ListViewLocker)lsvItems.SelectedItems[0];

            if (CancelSelectedTask(selected))
            {
                SetCancelled(selected);
            }
        }
Ejemplo n.º 5
0
        private async void unlockToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }

            Language       l        = _languageManager.GetLanguage();
            ListViewItem   selected = lsvItems.SelectedItems[0];
            ListViewLocker lvl      = _lvlManager.FindListViewLocker(selected.Text);

            CancelSelectedTask(selected);
            await Task.Run(() =>
            {
                while (lvl.IsRunning())
                {
                }
            });

            try
            {
                SetLoading(selected, 1);

                lvl.SetRunning(true);
                await lvl.Unlock();

                if (!lvl.HasCancelled())
                {
                    selected.SubItems[1].ForeColor = Color.Green;
                    selected.SubItems[1].Text      = l.MsgSuccessfullyUnlocked;
                }
                else
                {
                    SetCancelled(selected);
                }
            }
            catch (Exception ex)
            {
                MessageBoxAdv.Show(ex.Message + Environment.NewLine + ex.StackTrace, "DeadLock", MessageBoxButtons.OK, MessageBoxIcon.Error);
                selected.SubItems[1].ForeColor = Color.Red;
                selected.SubItems[1].Text      = l.MsgCouldNotUnlock;
            }
            finally
            {
                lvl.SetRunning(false);
            }

            lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Cancel a ListViewLocker task, if applicable.
        /// </summary>
        /// <param name="lvi">The ListViewItem that is associated with a ListViewLocker.</param>
        /// <returns>A boolean to represent whether the task was cancelled or not.</returns>
        private bool CancelSelectedTask(ListViewItem lvi)
        {
            ListViewLocker lvl = _lvlManager.FindListViewLocker(lvi.Text);

            if (lvl == null)
            {
                return(false);
            }
            if (!lvl.IsRunning())
            {
                return(false);
            }
            lvl.CancelTask();
            return(true);
        }
Ejemplo n.º 7
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);
        }
Ejemplo n.º 8
0
        private async void moveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }

            ListViewItem   selected = lsvItems.SelectedItems[0];
            ListViewLocker lvl      = _lvlManager.FindListViewLocker(selected.Text);
            Language       l        = _languageManager.GetLanguage();

            CancelSelectedTask(selected);
            await Task.Run(() =>
            {
                while (lvl.IsRunning())
                {
                }
            });

            try
            {
                SetLoading(selected, 1);

                lvl.SetRunning(true);
                await lvl.Move();

                if (!lvl.HasCancelled())
                {
                    selected.SubItems[1].ForeColor = Color.Green;
                    selected.SubItems[1].Text      = l.MsgSuccessfullyMoved;
                }
                else
                {
                    SetCancelled(selected);
                }
            }
            catch (Exception ex)
            {
                MessageBoxAdv.Show(ex.Message, "DeadLock", MessageBoxButtons.OK, MessageBoxIcon.Error);
                selected.SubItems[1].ForeColor = Color.Red;
                selected.SubItems[1].Text      = l.MsgCouldNotMove;
            }
            finally
            {
                lvl.SetRunning(false);
            }
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
0
        private void lsvItems_SelectedIndexChanged(object sender, EventArgs e)
        {
            lsvDetails.Items.Clear();
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }

            ListViewLocker lvl = (ListViewLocker)lsvItems.SelectedItems[0];

            foreach (ProcessLocker p in lvl.GetLockers())
            {
                ListViewItem lvi = new ListViewItem {
                    Text = p.GetFileName()
                };
                lvi.SubItems.Add(p.GetFilePath());
                lvi.SubItems.Add(p.GetProcessId().ToString());
                lsvDetails.Items.Add(lvi);
            }
        }
Ejemplo n.º 11
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;
 }
Ejemplo n.º 12
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);
            }
        }