Exemplo n.º 1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            trayIcon                    = new System.Windows.Forms.NotifyIcon();
            trayIcon.Text               = App.appName;
            trayIcon.Icon               = Properties.Resources.favicon;
            trayIcon.BalloonTipClosed  += TrayIcon_BalloonTipClosed;
            trayIcon.BalloonTipClicked += TrayIcon_BalloonTipClicked;

            timer.Tick    += new EventHandler(Timer_Tick);
            timer.Interval = new TimeSpan(0, 0, 1); //1 sekunda
            timer.Start();

            settings = settings.Load();
            settings.Save();

            Lang.SetLanguage(settings.Language);

            LinksStorage links = new LinksStorage();

            links = links.Load();

            foreach (Link link in links.List)
            {
                DownloadClient item = new DownloadClient(link.Url, link.Directory, link.TotalBytes, link.FileName);
                item.OnDownloadInit         += Client_OnDownloadInit;
                item.OnDownloadCompleted    += Client_OnDownloadCompleted;
                item.OnDownloadError        += Client_OnDownloadError;
                item.OnDownloadStateChanged += Client_OnDownloadStateChanged;
                item.SpeedLimit              = link.SpeedLimit;
                item.Refresh();
                item.LoadIcon();
                listView.Items.Add(item);
            }
        }
Exemplo n.º 2
0
 private void Client_OnDownloadStateChanged(DownloadClient item, States oldState, States newState)
 {
     if (newState != States.Error)
     {
         item.Refresh();
         listView.Items.Refresh();
         if (oldState == States.Error)
         {
             item.ErrorMsg = null;
         }
     }
 }
Exemplo n.º 3
0
        private void MenuItemOpen_Click(object sender, RoutedEventArgs e) //Otevřít
        {
            DownloadClient item = lastItem;

            try
            {
                if (File.Exists(item.FullPath))
                {
                    Process.Start(item.FullPath);
                }
            }
            catch (Win32Exception) { }
        }
Exemplo n.º 4
0
        private void Item_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            DownloadClient item = (sender as ListViewItem).DataContext as DownloadClient;

            try
            {
                if (File.Exists(item.FullPath))
                {
                    Process.Start(item.FullPath);
                }
            }
            catch (Win32Exception) { } //uživatel stisknul "ne" při pokusu získat admin oprávnění
        }
Exemplo n.º 5
0
        private void MenuItemLimit_Click(object sender, RoutedEventArgs e) //Omezit rychlost
        {
            DownloadClient item = lastItem;

            BandwidthWindow bandwidthWindow = new BandwidthWindow();

            bandwidthWindow.textBox.Text = (item.SpeedLimit / 1024).ToString();
            bandwidthWindow.Owner        = this;
            if (bandwidthWindow.ShowDialog() == true)
            {
                item.SpeedLimit = Int64.Parse(bandwidthWindow.textBox.Text) * 1024;
                item.Refresh();
                listView.Items.Refresh();
            }
        }
Exemplo n.º 6
0
        private void Client_OnDownloadCompleted(DownloadClient item)
        {
            item.LoadIcon();

            CheckQueue();

            if (settings.ShowNotification)
            {
                trayIcon.Visible = true;
                trayIcon.ShowBalloonTip(10, Lang.Translate("lang_download_completed"), item.FileName, System.Windows.Forms.ToolTipIcon.Info);
            }
            if (settings.PlaySound)
            {
                System.Media.SystemSounds.Asterisk.Play();
            }
        }
Exemplo n.º 7
0
        private void ListViewItem_ContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            ListViewItem   cItem = sender as ListViewItem;
            DownloadClient item  = cItem.DataContext as DownloadClient;

            lastItem = item;

            if (cItem != null && item != null)
            {
                //zakáže nebo povolí položku "Otevřít" podle toho, jestli soubor existuje
                MenuItem menuItem = cItem.ContextMenu.Items[0] as MenuItem;
                if (File.Exists(item.FullPath))
                {
                    menuItem.IsEnabled = true;
                }
                else
                {
                    menuItem.IsEnabled = false;
                }

                //zakáže nebo povolí položku "Otevřít ve složce" podle toho, jestli složka existuje
                menuItem = cItem.ContextMenu.Items[1] as MenuItem;
                if (Directory.Exists(item.Directory))
                {
                    menuItem.IsEnabled = true;
                }
                else
                {
                    menuItem.IsEnabled = false;
                }

                //zakáže položku "Přejmenovat", pokud finální jméno souboru ještě nebylo získáno
                menuItem = cItem.ContextMenu.Items[2] as MenuItem;
                if (item.FileName == "")
                {
                    menuItem.IsEnabled = false;
                }
                else
                {
                    menuItem.IsEnabled = true;
                }
            }
        }
Exemplo n.º 8
0
        private void MenuItemRename_Click(object sender, RoutedEventArgs e) //Přejmenovat
        {
            DownloadClient item = lastItem;

            if (item.FileName == "")
            {
                return;
            }

            RenameWindow renameWindow = new RenameWindow(item);

            renameWindow.Owner = this;

            if (renameWindow.ShowDialog() == true)
            {
                item.Refresh();
                listView.Items.Refresh();
            }
        }
Exemplo n.º 9
0
        private void buttonAdd_Click(object sender, RoutedEventArgs e)
        {
            AddWindow addWindow = new AddWindow();

            addWindow.Owner = this;
            if (addWindow.ShowDialog() == true)
            {
                string dir = addWindow.pathTextBox.Text;
                foreach (string url in addWindow.UrlList)
                {
                    DownloadClient item = new DownloadClient(url, dir);
                    item.SpeedLimit              = settings.SpeedLimit;
                    item.OnDownloadInit         += Client_OnDownloadInit;
                    item.OnDownloadCompleted    += Client_OnDownloadCompleted;
                    item.OnDownloadError        += Client_OnDownloadError;
                    item.OnDownloadStateChanged += Client_OnDownloadStateChanged;

                    if (DownloadClient.ActiveCount < settings.MaxDownloads)
                    {
                        item.Start();
                    }
                    else
                    {
                        item.Queue();
                    }
                    item.Refresh();
                    item.LoadIcon();
                    listView.Items.Add(item);
                }

                //přidáno zpoždění protože z nějakého důvodu ScrollIntoView nefunguje hned po přidání položky
                Task.Delay(20).ContinueWith(t =>
                { //počká 20ms bez blokování současného vlákna
                    Dispatcher.Invoke(() =>
                    {
                        //po 20ms se kód spustí zpět na vlákně rozhraní
                        listView.Focus();
                        listView.SelectedIndex = listView.Items.Count - 1;
                        listView.ScrollIntoView(listView.SelectedItem);
                    });
                });
            }
        }
Exemplo n.º 10
0
        private void Client_OnDownloadError(DownloadClient item, string message)
        {
            item.ErrorMsg = message;
            item.Refresh();
            listView.Items.Refresh();

            CheckQueue();


            if (settings.ShowNotification)
            {
                trayIcon.Visible = true;
                trayIcon.ShowBalloonTip(10, Lang.Translate("lang_error"), message, System.Windows.Forms.ToolTipIcon.Error);
            }
            if (settings.PlaySound)
            {
                System.Media.SystemSounds.Hand.Play();
            }
        }
Exemplo n.º 11
0
        private void MenuItemFolder_Click(object sender, RoutedEventArgs e) //Otevřít ve složce
        {
            DownloadClient item = lastItem;

            Process          process   = new Process();
            ProcessStartInfo startInfo = new ProcessStartInfo();

            startInfo.FileName = "explorer.exe";
            string path = item.FullPath;

            if (File.Exists(path))
            {
                startInfo.Arguments = "/select, " + path;
            }
            else
            {
                startInfo.Arguments = item.Directory;
            }
            process.StartInfo = startInfo;
            process.Start();
        }
Exemplo n.º 12
0
 /// <summary>
 /// Vytvoří novou instanci třídy <see cref="RenameWindow"/>
 /// </summary>
 /// <param name="item">Reference na vybranou položku</param>
 public RenameWindow(DownloadClient item)
 {
     InitializeComponent();
     _item = item;
 }
Exemplo n.º 13
0
        private void MenuItemCopy_Click(object sender, RoutedEventArgs e)
        {
            DownloadClient item = lastItem;

            Clipboard.SetText(item.Url);
        }
Exemplo n.º 14
0
 private void Client_OnDownloadInit(DownloadClient item)
 {
     item.LoadIcon();
 }